diff --git a/flyteidl/clients/go/admin/mocks/DataProxyServiceClient.go b/flyteidl/clients/go/admin/mocks/DataProxyServiceClient.go index d161dc3fe..ce7b9de11 100644 --- a/flyteidl/clients/go/admin/mocks/DataProxyServiceClient.go +++ b/flyteidl/clients/go/admin/mocks/DataProxyServiceClient.go @@ -160,3 +160,51 @@ func (_m *DataProxyServiceClient) CreateUploadLocation(ctx context.Context, in * return r0, r1 } + +type DataProxyServiceClient_GetData struct { + *mock.Call +} + +func (_m DataProxyServiceClient_GetData) Return(_a0 *service.GetDataResponse, _a1 error) *DataProxyServiceClient_GetData { + return &DataProxyServiceClient_GetData{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *DataProxyServiceClient) OnGetData(ctx context.Context, in *service.GetDataRequest, opts ...grpc.CallOption) *DataProxyServiceClient_GetData { + c_call := _m.On("GetData", ctx, in, opts) + return &DataProxyServiceClient_GetData{Call: c_call} +} + +func (_m *DataProxyServiceClient) OnGetDataMatch(matchers ...interface{}) *DataProxyServiceClient_GetData { + c_call := _m.On("GetData", matchers...) + return &DataProxyServiceClient_GetData{Call: c_call} +} + +// GetData provides a mock function with given fields: ctx, in, opts +func (_m *DataProxyServiceClient) GetData(ctx context.Context, in *service.GetDataRequest, opts ...grpc.CallOption) (*service.GetDataResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *service.GetDataResponse + if rf, ok := ret.Get(0).(func(context.Context, *service.GetDataRequest, ...grpc.CallOption) *service.GetDataResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*service.GetDataResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *service.GetDataRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} diff --git a/flyteidl/clients/go/admin/mocks/DataProxyServiceServer.go b/flyteidl/clients/go/admin/mocks/DataProxyServiceServer.go index 6ba37135a..ce2dae0da 100644 --- a/flyteidl/clients/go/admin/mocks/DataProxyServiceServer.go +++ b/flyteidl/clients/go/admin/mocks/DataProxyServiceServer.go @@ -136,3 +136,44 @@ func (_m *DataProxyServiceServer) CreateUploadLocation(_a0 context.Context, _a1 return r0, r1 } + +type DataProxyServiceServer_GetData struct { + *mock.Call +} + +func (_m DataProxyServiceServer_GetData) Return(_a0 *service.GetDataResponse, _a1 error) *DataProxyServiceServer_GetData { + return &DataProxyServiceServer_GetData{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *DataProxyServiceServer) OnGetData(_a0 context.Context, _a1 *service.GetDataRequest) *DataProxyServiceServer_GetData { + c_call := _m.On("GetData", _a0, _a1) + return &DataProxyServiceServer_GetData{Call: c_call} +} + +func (_m *DataProxyServiceServer) OnGetDataMatch(matchers ...interface{}) *DataProxyServiceServer_GetData { + c_call := _m.On("GetData", matchers...) + return &DataProxyServiceServer_GetData{Call: c_call} +} + +// GetData provides a mock function with given fields: _a0, _a1 +func (_m *DataProxyServiceServer) GetData(_a0 context.Context, _a1 *service.GetDataRequest) (*service.GetDataResponse, error) { + ret := _m.Called(_a0, _a1) + + var r0 *service.GetDataResponse + if rf, ok := ret.Get(0).(func(context.Context, *service.GetDataRequest) *service.GetDataResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*service.GetDataResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *service.GetDataRequest) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} diff --git a/flyteidl/clients/go/admin/mocks/isDataResponse_Data.go b/flyteidl/clients/go/admin/mocks/isDataResponse_Data.go new file mode 100644 index 000000000..a42a9f210 --- /dev/null +++ b/flyteidl/clients/go/admin/mocks/isDataResponse_Data.go @@ -0,0 +1,15 @@ +// Code generated by mockery v1.0.1. DO NOT EDIT. + +package mocks + +import mock "github.com/stretchr/testify/mock" + +// isDataResponse_Data is an autogenerated mock type for the isDataResponse_Data type +type isDataResponse_Data struct { + mock.Mock +} + +// isDataResponse_Data provides a mock function with given fields: +func (_m *isDataResponse_Data) isDataResponse_Data() { + _m.Called() +} diff --git a/flyteidl/clients/go/admin/mocks/isGetDataResponse_Data.go b/flyteidl/clients/go/admin/mocks/isGetDataResponse_Data.go new file mode 100644 index 000000000..3300b7e1b --- /dev/null +++ b/flyteidl/clients/go/admin/mocks/isGetDataResponse_Data.go @@ -0,0 +1,15 @@ +// Code generated by mockery v1.0.1. DO NOT EDIT. + +package mocks + +import mock "github.com/stretchr/testify/mock" + +// isGetDataResponse_Data is an autogenerated mock type for the isGetDataResponse_Data type +type isGetDataResponse_Data struct { + mock.Mock +} + +// isGetDataResponse_Data provides a mock function with given fields: +func (_m *isGetDataResponse_Data) isGetDataResponse_Data() { + _m.Called() +} diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc index a64ea9629..f9c289156 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.cc @@ -127,6 +127,10 @@ class RawOutputDataConfigDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _RawOutputDataConfig_default_instance_; +class FlyteURLsDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _FlyteURLs_default_instance_; } // namespace admin } // namespace flyteidl static void InitDefaultsNamedEntityIdentifier_flyteidl_2fadmin_2fcommon_2eproto() { @@ -480,6 +484,20 @@ static void InitDefaultsRawOutputDataConfig_flyteidl_2fadmin_2fcommon_2eproto() ::google::protobuf::internal::SCCInfo<0> scc_info_RawOutputDataConfig_flyteidl_2fadmin_2fcommon_2eproto = {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsRawOutputDataConfig_flyteidl_2fadmin_2fcommon_2eproto}, {}}; +static void InitDefaultsFlyteURLs_flyteidl_2fadmin_2fcommon_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_FlyteURLs_default_instance_; + new (ptr) ::flyteidl::admin::FlyteURLs(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::FlyteURLs::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsFlyteURLs_flyteidl_2fadmin_2fcommon_2eproto}, {}}; + void InitDefaults_flyteidl_2fadmin_2fcommon_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_NamedEntityIdentifier_flyteidl_2fadmin_2fcommon_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_NamedEntityMetadata_flyteidl_2fadmin_2fcommon_2eproto.base); @@ -505,9 +523,10 @@ void InitDefaults_flyteidl_2fadmin_2fcommon_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_Annotations_flyteidl_2fadmin_2fcommon_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_AuthRole_flyteidl_2fadmin_2fcommon_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_RawOutputDataConfig_flyteidl_2fadmin_2fcommon_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fcommon_2eproto[24]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fcommon_2eproto[25]; const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fadmin_2fcommon_2eproto[2]; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fadmin_2fcommon_2eproto = nullptr; @@ -693,6 +712,14 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fcommon_2eproto:: ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::admin::RawOutputDataConfig, output_location_prefix_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::FlyteURLs, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::FlyteURLs, inputs_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::FlyteURLs, outputs_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::FlyteURLs, deck_), }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::NamedEntityIdentifier)}, @@ -719,6 +746,7 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 162, -1, sizeof(::flyteidl::admin::Annotations)}, { 168, -1, sizeof(::flyteidl::admin::AuthRole)}, { 175, -1, sizeof(::flyteidl::admin::RawOutputDataConfig)}, + { 181, -1, sizeof(::flyteidl::admin::FlyteURLs)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -746,12 +774,13 @@ static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::admin::_Annotations_default_instance_), reinterpret_cast(&::flyteidl::admin::_AuthRole_default_instance_), reinterpret_cast(&::flyteidl::admin::_RawOutputDataConfig_default_instance_), + reinterpret_cast(&::flyteidl::admin::_FlyteURLs_default_instance_), }; ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fadmin_2fcommon_2eproto = { {}, AddDescriptors_flyteidl_2fadmin_2fcommon_2eproto, "flyteidl/admin/common.proto", schemas, file_default_instances, TableStruct_flyteidl_2fadmin_2fcommon_2eproto::offsets, - file_level_metadata_flyteidl_2fadmin_2fcommon_2eproto, 24, file_level_enum_descriptors_flyteidl_2fadmin_2fcommon_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fcommon_2eproto, + file_level_metadata_flyteidl_2fadmin_2fcommon_2eproto, 25, file_level_enum_descriptors_flyteidl_2fadmin_2fcommon_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fcommon_2eproto, }; const char descriptor_table_protodef_flyteidl_2fadmin_2fcommon_2eproto[] = @@ -817,16 +846,17 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fcommon_2eproto[] = "\n\010AuthRole\022\032\n\022assumable_iam_role\030\001 \001(\t\022\"" "\n\032kubernetes_service_account\030\002 \001(\t:\002\030\001\"5" "\n\023RawOutputDataConfig\022\036\n\026output_location" - "_prefix\030\001 \001(\t*\\\n\020NamedEntityState\022\027\n\023NAM" - "ED_ENTITY_ACTIVE\020\000\022\031\n\025NAMED_ENTITY_ARCHI" - "VED\020\001\022\024\n\020SYSTEM_GENERATED\020\002B7Z5github.co" - "m/flyteorg/flyteidl/gen/pb-go/flyteidl/a" - "dminb\006proto3" + "_prefix\030\001 \001(\t\":\n\tFlyteURLs\022\016\n\006inputs\030\001 \001" + "(\t\022\017\n\007outputs\030\002 \001(\t\022\014\n\004deck\030\003 \001(\t*\\\n\020Nam" + "edEntityState\022\027\n\023NAMED_ENTITY_ACTIVE\020\000\022\031" + "\n\025NAMED_ENTITY_ARCHIVED\020\001\022\024\n\020SYSTEM_GENE" + "RATED\020\002B7Z5github.com/flyteorg/flyteidl/" + "gen/pb-go/flyteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fcommon_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fcommon_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fcommon_2eproto, - "flyteidl/admin/common.proto", &assign_descriptors_table_flyteidl_2fadmin_2fcommon_2eproto, 2652, + "flyteidl/admin/common.proto", &assign_descriptors_table_flyteidl_2fadmin_2fcommon_2eproto, 2712, }; void AddDescriptors_flyteidl_2fadmin_2fcommon_2eproto() { @@ -9540,6 +9570,449 @@ ::google::protobuf::Metadata RawOutputDataConfig::GetMetadata() const { } +// =================================================================== + +void FlyteURLs::InitAsDefaultInstance() { +} +class FlyteURLs::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int FlyteURLs::kInputsFieldNumber; +const int FlyteURLs::kOutputsFieldNumber; +const int FlyteURLs::kDeckFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +FlyteURLs::FlyteURLs() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.FlyteURLs) +} +FlyteURLs::FlyteURLs(const FlyteURLs& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + inputs_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.inputs().size() > 0) { + inputs_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.inputs_); + } + outputs_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.outputs().size() > 0) { + outputs_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.outputs_); + } + deck_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.deck().size() > 0) { + deck_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.deck_); + } + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.FlyteURLs) +} + +void FlyteURLs::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto.base); + inputs_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + outputs_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + deck_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +FlyteURLs::~FlyteURLs() { + // @@protoc_insertion_point(destructor:flyteidl.admin.FlyteURLs) + SharedDtor(); +} + +void FlyteURLs::SharedDtor() { + inputs_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + outputs_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + deck_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void FlyteURLs::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const FlyteURLs& FlyteURLs::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto.base); + return *internal_default_instance(); +} + + +void FlyteURLs::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.FlyteURLs) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + inputs_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + outputs_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + deck_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* FlyteURLs::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // string inputs = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.FlyteURLs.inputs"); + object = msg->mutable_inputs(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // string outputs = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.FlyteURLs.outputs"); + object = msg->mutable_outputs(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // string deck = 3; + case 3: { + if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.FlyteURLs.deck"); + object = msg->mutable_deck(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool FlyteURLs::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.FlyteURLs) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // string inputs = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_inputs())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->inputs().data(), static_cast(this->inputs().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.FlyteURLs.inputs")); + } else { + goto handle_unusual; + } + break; + } + + // string outputs = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_outputs())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->outputs().data(), static_cast(this->outputs().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.FlyteURLs.outputs")); + } else { + goto handle_unusual; + } + break; + } + + // string deck = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_deck())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->deck().data(), static_cast(this->deck().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.FlyteURLs.deck")); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.FlyteURLs) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.FlyteURLs) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void FlyteURLs::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.FlyteURLs) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string inputs = 1; + if (this->inputs().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->inputs().data(), static_cast(this->inputs().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.FlyteURLs.inputs"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->inputs(), output); + } + + // string outputs = 2; + if (this->outputs().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->outputs().data(), static_cast(this->outputs().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.FlyteURLs.outputs"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 2, this->outputs(), output); + } + + // string deck = 3; + if (this->deck().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->deck().data(), static_cast(this->deck().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.FlyteURLs.deck"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 3, this->deck(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.FlyteURLs) +} + +::google::protobuf::uint8* FlyteURLs::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.FlyteURLs) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string inputs = 1; + if (this->inputs().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->inputs().data(), static_cast(this->inputs().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.FlyteURLs.inputs"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->inputs(), target); + } + + // string outputs = 2; + if (this->outputs().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->outputs().data(), static_cast(this->outputs().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.FlyteURLs.outputs"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 2, this->outputs(), target); + } + + // string deck = 3; + if (this->deck().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->deck().data(), static_cast(this->deck().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.FlyteURLs.deck"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 3, this->deck(), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.FlyteURLs) + return target; +} + +size_t FlyteURLs::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.FlyteURLs) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string inputs = 1; + if (this->inputs().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->inputs()); + } + + // string outputs = 2; + if (this->outputs().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->outputs()); + } + + // string deck = 3; + if (this->deck().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->deck()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void FlyteURLs::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.FlyteURLs) + GOOGLE_DCHECK_NE(&from, this); + const FlyteURLs* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.FlyteURLs) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.FlyteURLs) + MergeFrom(*source); + } +} + +void FlyteURLs::MergeFrom(const FlyteURLs& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.FlyteURLs) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.inputs().size() > 0) { + + inputs_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.inputs_); + } + if (from.outputs().size() > 0) { + + outputs_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.outputs_); + } + if (from.deck().size() > 0) { + + deck_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.deck_); + } +} + +void FlyteURLs::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.FlyteURLs) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void FlyteURLs::CopyFrom(const FlyteURLs& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.FlyteURLs) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool FlyteURLs::IsInitialized() const { + return true; +} + +void FlyteURLs::Swap(FlyteURLs* other) { + if (other == this) return; + InternalSwap(other); +} +void FlyteURLs::InternalSwap(FlyteURLs* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + inputs_.Swap(&other->inputs_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + outputs_.Swap(&other->outputs_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + deck_.Swap(&other->deck_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::google::protobuf::Metadata FlyteURLs::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fcommon_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fcommon_2eproto[kIndexInFileMessages]; +} + + // @@protoc_insertion_point(namespace_scope) } // namespace admin } // namespace flyteidl @@ -9617,6 +10090,9 @@ template<> PROTOBUF_NOINLINE ::flyteidl::admin::AuthRole* Arena::CreateMaybeMess template<> PROTOBUF_NOINLINE ::flyteidl::admin::RawOutputDataConfig* Arena::CreateMaybeMessage< ::flyteidl::admin::RawOutputDataConfig >(Arena* arena) { return Arena::CreateInternal< ::flyteidl::admin::RawOutputDataConfig >(arena); } +template<> PROTOBUF_NOINLINE ::flyteidl::admin::FlyteURLs* Arena::CreateMaybeMessage< ::flyteidl::admin::FlyteURLs >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::FlyteURLs >(arena); +} } // namespace protobuf } // namespace google diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h index 22e490356..c452563bf 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/common.pb.h @@ -48,7 +48,7 @@ struct TableStruct_flyteidl_2fadmin_2fcommon_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::google::protobuf::internal::ParseTable schema[24] + static const ::google::protobuf::internal::ParseTable schema[25] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -69,6 +69,9 @@ extern AuthRoleDefaultTypeInternal _AuthRole_default_instance_; class EmailNotification; class EmailNotificationDefaultTypeInternal; extern EmailNotificationDefaultTypeInternal _EmailNotification_default_instance_; +class FlyteURLs; +class FlyteURLsDefaultTypeInternal; +extern FlyteURLsDefaultTypeInternal _FlyteURLs_default_instance_; class Labels; class LabelsDefaultTypeInternal; extern LabelsDefaultTypeInternal _Labels_default_instance_; @@ -137,6 +140,7 @@ template<> ::flyteidl::admin::Annotations* Arena::CreateMaybeMessage<::flyteidl: template<> ::flyteidl::admin::Annotations_ValuesEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::admin::Annotations_ValuesEntry_DoNotUse>(Arena*); template<> ::flyteidl::admin::AuthRole* Arena::CreateMaybeMessage<::flyteidl::admin::AuthRole>(Arena*); template<> ::flyteidl::admin::EmailNotification* Arena::CreateMaybeMessage<::flyteidl::admin::EmailNotification>(Arena*); +template<> ::flyteidl::admin::FlyteURLs* Arena::CreateMaybeMessage<::flyteidl::admin::FlyteURLs>(Arena*); template<> ::flyteidl::admin::Labels* Arena::CreateMaybeMessage<::flyteidl::admin::Labels>(Arena*); template<> ::flyteidl::admin::Labels_ValuesEntry_DoNotUse* Arena::CreateMaybeMessage<::flyteidl::admin::Labels_ValuesEntry_DoNotUse>(Arena*); template<> ::flyteidl::admin::NamedEntity* Arena::CreateMaybeMessage<::flyteidl::admin::NamedEntity>(Arena*); @@ -3263,6 +3267,156 @@ class RawOutputDataConfig final : mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fcommon_2eproto; }; +// ------------------------------------------------------------------- + +class FlyteURLs final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.FlyteURLs) */ { + public: + FlyteURLs(); + virtual ~FlyteURLs(); + + FlyteURLs(const FlyteURLs& from); + + inline FlyteURLs& operator=(const FlyteURLs& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + FlyteURLs(FlyteURLs&& from) noexcept + : FlyteURLs() { + *this = ::std::move(from); + } + + inline FlyteURLs& operator=(FlyteURLs&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const FlyteURLs& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const FlyteURLs* internal_default_instance() { + return reinterpret_cast( + &_FlyteURLs_default_instance_); + } + static constexpr int kIndexInFileMessages = + 24; + + void Swap(FlyteURLs* other); + friend void swap(FlyteURLs& a, FlyteURLs& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline FlyteURLs* New() const final { + return CreateMaybeMessage(nullptr); + } + + FlyteURLs* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const FlyteURLs& from); + void MergeFrom(const FlyteURLs& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(FlyteURLs* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // string inputs = 1; + void clear_inputs(); + static const int kInputsFieldNumber = 1; + const ::std::string& inputs() const; + void set_inputs(const ::std::string& value); + #if LANG_CXX11 + void set_inputs(::std::string&& value); + #endif + void set_inputs(const char* value); + void set_inputs(const char* value, size_t size); + ::std::string* mutable_inputs(); + ::std::string* release_inputs(); + void set_allocated_inputs(::std::string* inputs); + + // string outputs = 2; + void clear_outputs(); + static const int kOutputsFieldNumber = 2; + const ::std::string& outputs() const; + void set_outputs(const ::std::string& value); + #if LANG_CXX11 + void set_outputs(::std::string&& value); + #endif + void set_outputs(const char* value); + void set_outputs(const char* value, size_t size); + ::std::string* mutable_outputs(); + ::std::string* release_outputs(); + void set_allocated_outputs(::std::string* outputs); + + // string deck = 3; + void clear_deck(); + static const int kDeckFieldNumber = 3; + const ::std::string& deck() const; + void set_deck(const ::std::string& value); + #if LANG_CXX11 + void set_deck(::std::string&& value); + #endif + void set_deck(const char* value); + void set_deck(const char* value, size_t size); + ::std::string* mutable_deck(); + ::std::string* release_deck(); + void set_allocated_deck(::std::string* deck); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.FlyteURLs) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr inputs_; + ::google::protobuf::internal::ArenaStringPtr outputs_; + ::google::protobuf::internal::ArenaStringPtr deck_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fcommon_2eproto; +}; // =================================================================== @@ -5584,6 +5738,169 @@ inline void RawOutputDataConfig::set_allocated_output_location_prefix(::std::str // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.RawOutputDataConfig.output_location_prefix) } +// ------------------------------------------------------------------- + +// FlyteURLs + +// string inputs = 1; +inline void FlyteURLs::clear_inputs() { + inputs_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& FlyteURLs::inputs() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.FlyteURLs.inputs) + return inputs_.GetNoArena(); +} +inline void FlyteURLs::set_inputs(const ::std::string& value) { + + inputs_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.FlyteURLs.inputs) +} +#if LANG_CXX11 +inline void FlyteURLs::set_inputs(::std::string&& value) { + + inputs_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.FlyteURLs.inputs) +} +#endif +inline void FlyteURLs::set_inputs(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + inputs_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.FlyteURLs.inputs) +} +inline void FlyteURLs::set_inputs(const char* value, size_t size) { + + inputs_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.FlyteURLs.inputs) +} +inline ::std::string* FlyteURLs::mutable_inputs() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.FlyteURLs.inputs) + return inputs_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* FlyteURLs::release_inputs() { + // @@protoc_insertion_point(field_release:flyteidl.admin.FlyteURLs.inputs) + + return inputs_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void FlyteURLs::set_allocated_inputs(::std::string* inputs) { + if (inputs != nullptr) { + + } else { + + } + inputs_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), inputs); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.FlyteURLs.inputs) +} + +// string outputs = 2; +inline void FlyteURLs::clear_outputs() { + outputs_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& FlyteURLs::outputs() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.FlyteURLs.outputs) + return outputs_.GetNoArena(); +} +inline void FlyteURLs::set_outputs(const ::std::string& value) { + + outputs_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.FlyteURLs.outputs) +} +#if LANG_CXX11 +inline void FlyteURLs::set_outputs(::std::string&& value) { + + outputs_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.FlyteURLs.outputs) +} +#endif +inline void FlyteURLs::set_outputs(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + outputs_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.FlyteURLs.outputs) +} +inline void FlyteURLs::set_outputs(const char* value, size_t size) { + + outputs_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.FlyteURLs.outputs) +} +inline ::std::string* FlyteURLs::mutable_outputs() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.FlyteURLs.outputs) + return outputs_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* FlyteURLs::release_outputs() { + // @@protoc_insertion_point(field_release:flyteidl.admin.FlyteURLs.outputs) + + return outputs_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void FlyteURLs::set_allocated_outputs(::std::string* outputs) { + if (outputs != nullptr) { + + } else { + + } + outputs_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), outputs); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.FlyteURLs.outputs) +} + +// string deck = 3; +inline void FlyteURLs::clear_deck() { + deck_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& FlyteURLs::deck() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.FlyteURLs.deck) + return deck_.GetNoArena(); +} +inline void FlyteURLs::set_deck(const ::std::string& value) { + + deck_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.FlyteURLs.deck) +} +#if LANG_CXX11 +inline void FlyteURLs::set_deck(::std::string&& value) { + + deck_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.FlyteURLs.deck) +} +#endif +inline void FlyteURLs::set_deck(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + deck_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.FlyteURLs.deck) +} +inline void FlyteURLs::set_deck(const char* value, size_t size) { + + deck_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.FlyteURLs.deck) +} +inline ::std::string* FlyteURLs::mutable_deck() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.FlyteURLs.deck) + return deck_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* FlyteURLs::release_deck() { + // @@protoc_insertion_point(field_release:flyteidl.admin.FlyteURLs.deck) + + return deck_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void FlyteURLs::set_allocated_deck(::std::string* deck) { + if (deck != nullptr) { + + } else { + + } + deck_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), deck); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.FlyteURLs.deck) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ @@ -5633,6 +5950,8 @@ inline void RawOutputDataConfig::set_allocated_output_location_prefix(::std::str // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.cc index e2dd230ba..1a175add0 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.cc @@ -16,6 +16,7 @@ // @@protoc_insertion_point(includes) #include +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Sort_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_UrlBlob_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fnode_5fexecution_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_NodeExecutionMetaData_flyteidl_2fadmin_2fnode_5fexecution_2eproto; @@ -276,11 +277,12 @@ static void InitDefaultsNodeExecutionGetDataResponse_flyteidl_2fadmin_2fnode_5fe ::flyteidl::admin::NodeExecutionGetDataResponse::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<3> scc_info_NodeExecutionGetDataResponse_flyteidl_2fadmin_2fnode_5fexecution_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsNodeExecutionGetDataResponse_flyteidl_2fadmin_2fnode_5fexecution_2eproto}, { +::google::protobuf::internal::SCCInfo<4> scc_info_NodeExecutionGetDataResponse_flyteidl_2fadmin_2fnode_5fexecution_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsNodeExecutionGetDataResponse_flyteidl_2fadmin_2fnode_5fexecution_2eproto}, { &scc_info_UrlBlob_flyteidl_2fadmin_2fcommon_2eproto.base, &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base, - &scc_info_DynamicWorkflowNodeMetadata_flyteidl_2fadmin_2fnode_5fexecution_2eproto.base,}}; + &scc_info_DynamicWorkflowNodeMetadata_flyteidl_2fadmin_2fnode_5fexecution_2eproto.base, + &scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto.base,}}; void InitDefaults_flyteidl_2fadmin_2fnode_5fexecution_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_NodeExecutionGetRequest_flyteidl_2fadmin_2fnode_5fexecution_2eproto.base); @@ -411,6 +413,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fnode_5fexecution PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NodeExecutionGetDataResponse, full_inputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NodeExecutionGetDataResponse, full_outputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NodeExecutionGetDataResponse, dynamic_workflow_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::NodeExecutionGetDataResponse, flyte_urls_), }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::NodeExecutionGetRequest)}, @@ -506,21 +509,22 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2fnode_5fexecution_2eproto "CompiledWorkflowClosure\022\034\n\024dynamic_job_s" "pec_uri\030\003 \001(\t\"Q\n\033NodeExecutionGetDataReq" "uest\0222\n\002id\030\001 \001(\0132&.flyteidl.core.NodeExe" - "cutionIdentifier\"\241\002\n\034NodeExecutionGetDat" + "cutionIdentifier\"\320\002\n\034NodeExecutionGetDat" "aResponse\022+\n\006inputs\030\001 \001(\0132\027.flyteidl.adm" "in.UrlBlobB\002\030\001\022,\n\007outputs\030\002 \001(\0132\027.flytei" "dl.admin.UrlBlobB\002\030\001\022.\n\013full_inputs\030\003 \001(" "\0132\031.flyteidl.core.LiteralMap\022/\n\014full_out" "puts\030\004 \001(\0132\031.flyteidl.core.LiteralMap\022E\n" "\020dynamic_workflow\030\020 \001(\0132+.flyteidl.admin" - ".DynamicWorkflowNodeMetadataB7Z5github.c" - "om/flyteorg/flyteidl/gen/pb-go/flyteidl/" - "adminb\006proto3" + ".DynamicWorkflowNodeMetadata\022-\n\nflyte_ur" + "ls\030\021 \001(\0132\031.flyteidl.admin.FlyteURLsB7Z5g" + "ithub.com/flyteorg/flyteidl/gen/pb-go/fl" + "yteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fnode_5fexecution_2eproto = { false, InitDefaults_flyteidl_2fadmin_2fnode_5fexecution_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2fnode_5fexecution_2eproto, - "flyteidl/admin/node_execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2fnode_5fexecution_2eproto, 2653, + "flyteidl/admin/node_execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2fnode_5fexecution_2eproto, 2700, }; void AddDescriptors_flyteidl_2fadmin_2fnode_5fexecution_2eproto() { @@ -5986,6 +5990,8 @@ void NodeExecutionGetDataResponse::InitAsDefaultInstance() { ::flyteidl::core::LiteralMap::internal_default_instance()); ::flyteidl::admin::_NodeExecutionGetDataResponse_default_instance_._instance.get_mutable()->dynamic_workflow_ = const_cast< ::flyteidl::admin::DynamicWorkflowNodeMetadata*>( ::flyteidl::admin::DynamicWorkflowNodeMetadata::internal_default_instance()); + ::flyteidl::admin::_NodeExecutionGetDataResponse_default_instance_._instance.get_mutable()->flyte_urls_ = const_cast< ::flyteidl::admin::FlyteURLs*>( + ::flyteidl::admin::FlyteURLs::internal_default_instance()); } class NodeExecutionGetDataResponse::HasBitSetters { public: @@ -5994,6 +6000,7 @@ class NodeExecutionGetDataResponse::HasBitSetters { static const ::flyteidl::core::LiteralMap& full_inputs(const NodeExecutionGetDataResponse* msg); static const ::flyteidl::core::LiteralMap& full_outputs(const NodeExecutionGetDataResponse* msg); static const ::flyteidl::admin::DynamicWorkflowNodeMetadata& dynamic_workflow(const NodeExecutionGetDataResponse* msg); + static const ::flyteidl::admin::FlyteURLs& flyte_urls(const NodeExecutionGetDataResponse* msg); }; const ::flyteidl::admin::UrlBlob& @@ -6016,6 +6023,10 @@ const ::flyteidl::admin::DynamicWorkflowNodeMetadata& NodeExecutionGetDataResponse::HasBitSetters::dynamic_workflow(const NodeExecutionGetDataResponse* msg) { return *msg->dynamic_workflow_; } +const ::flyteidl::admin::FlyteURLs& +NodeExecutionGetDataResponse::HasBitSetters::flyte_urls(const NodeExecutionGetDataResponse* msg) { + return *msg->flyte_urls_; +} void NodeExecutionGetDataResponse::clear_inputs() { if (GetArenaNoVirtual() == nullptr && inputs_ != nullptr) { delete inputs_; @@ -6040,12 +6051,19 @@ void NodeExecutionGetDataResponse::clear_full_outputs() { } full_outputs_ = nullptr; } +void NodeExecutionGetDataResponse::clear_flyte_urls() { + if (GetArenaNoVirtual() == nullptr && flyte_urls_ != nullptr) { + delete flyte_urls_; + } + flyte_urls_ = nullptr; +} #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int NodeExecutionGetDataResponse::kInputsFieldNumber; const int NodeExecutionGetDataResponse::kOutputsFieldNumber; const int NodeExecutionGetDataResponse::kFullInputsFieldNumber; const int NodeExecutionGetDataResponse::kFullOutputsFieldNumber; const int NodeExecutionGetDataResponse::kDynamicWorkflowFieldNumber; +const int NodeExecutionGetDataResponse::kFlyteUrlsFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 NodeExecutionGetDataResponse::NodeExecutionGetDataResponse() @@ -6082,6 +6100,11 @@ NodeExecutionGetDataResponse::NodeExecutionGetDataResponse(const NodeExecutionGe } else { dynamic_workflow_ = nullptr; } + if (from.has_flyte_urls()) { + flyte_urls_ = new ::flyteidl::admin::FlyteURLs(*from.flyte_urls_); + } else { + flyte_urls_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:flyteidl.admin.NodeExecutionGetDataResponse) } @@ -6089,8 +6112,8 @@ void NodeExecutionGetDataResponse::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_NodeExecutionGetDataResponse_flyteidl_2fadmin_2fnode_5fexecution_2eproto.base); ::memset(&inputs_, 0, static_cast( - reinterpret_cast(&dynamic_workflow_) - - reinterpret_cast(&inputs_)) + sizeof(dynamic_workflow_)); + reinterpret_cast(&flyte_urls_) - + reinterpret_cast(&inputs_)) + sizeof(flyte_urls_)); } NodeExecutionGetDataResponse::~NodeExecutionGetDataResponse() { @@ -6104,6 +6127,7 @@ void NodeExecutionGetDataResponse::SharedDtor() { if (this != internal_default_instance()) delete full_inputs_; if (this != internal_default_instance()) delete full_outputs_; if (this != internal_default_instance()) delete dynamic_workflow_; + if (this != internal_default_instance()) delete flyte_urls_; } void NodeExecutionGetDataResponse::SetCachedSize(int size) const { @@ -6141,6 +6165,10 @@ void NodeExecutionGetDataResponse::Clear() { delete dynamic_workflow_; } dynamic_workflow_ = nullptr; + if (GetArenaNoVirtual() == nullptr && flyte_urls_ != nullptr) { + delete flyte_urls_; + } + flyte_urls_ = nullptr; _internal_metadata_.Clear(); } @@ -6222,6 +6250,19 @@ const char* NodeExecutionGetDataResponse::_InternalParse(const char* begin, cons {parser_till_end, object}, ptr - size, ptr)); break; } + // .flyteidl.admin.FlyteURLs flyte_urls = 17; + case 17: { + if (static_cast<::google::protobuf::uint8>(tag) != 138) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::FlyteURLs::_InternalParse; + object = msg->mutable_flyte_urls(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -6307,6 +6348,17 @@ bool NodeExecutionGetDataResponse::MergePartialFromCodedStream( break; } + // .flyteidl.admin.FlyteURLs flyte_urls = 17; + case 17: { + if (static_cast< ::google::protobuf::uint8>(tag) == (138 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_flyte_urls())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -6364,6 +6416,12 @@ void NodeExecutionGetDataResponse::SerializeWithCachedSizes( 16, HasBitSetters::dynamic_workflow(this), output); } + // .flyteidl.admin.FlyteURLs flyte_urls = 17; + if (this->has_flyte_urls()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 17, HasBitSetters::flyte_urls(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -6412,6 +6470,13 @@ ::google::protobuf::uint8* NodeExecutionGetDataResponse::InternalSerializeWithCa 16, HasBitSetters::dynamic_workflow(this), target); } + // .flyteidl.admin.FlyteURLs flyte_urls = 17; + if (this->has_flyte_urls()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 17, HasBitSetters::flyte_urls(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -6468,6 +6533,13 @@ size_t NodeExecutionGetDataResponse::ByteSizeLong() const { *dynamic_workflow_); } + // .flyteidl.admin.FlyteURLs flyte_urls = 17; + if (this->has_flyte_urls()) { + total_size += 2 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *flyte_urls_); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -6510,6 +6582,9 @@ void NodeExecutionGetDataResponse::MergeFrom(const NodeExecutionGetDataResponse& if (from.has_dynamic_workflow()) { mutable_dynamic_workflow()->::flyteidl::admin::DynamicWorkflowNodeMetadata::MergeFrom(from.dynamic_workflow()); } + if (from.has_flyte_urls()) { + mutable_flyte_urls()->::flyteidl::admin::FlyteURLs::MergeFrom(from.flyte_urls()); + } } void NodeExecutionGetDataResponse::CopyFrom(const ::google::protobuf::Message& from) { @@ -6542,6 +6617,7 @@ void NodeExecutionGetDataResponse::InternalSwap(NodeExecutionGetDataResponse* ot swap(full_inputs_, other->full_inputs_); swap(full_outputs_, other->full_outputs_); swap(dynamic_workflow_, other->dynamic_workflow_); + swap(flyte_urls_, other->flyte_urls_); } ::google::protobuf::Metadata NodeExecutionGetDataResponse::GetMetadata() const { diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.h index ee1b3e7f3..f3646427e 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/node_execution.pb.h @@ -1926,6 +1926,15 @@ class NodeExecutionGetDataResponse final : ::flyteidl::admin::DynamicWorkflowNodeMetadata* mutable_dynamic_workflow(); void set_allocated_dynamic_workflow(::flyteidl::admin::DynamicWorkflowNodeMetadata* dynamic_workflow); + // .flyteidl.admin.FlyteURLs flyte_urls = 17; + bool has_flyte_urls() const; + void clear_flyte_urls(); + static const int kFlyteUrlsFieldNumber = 17; + const ::flyteidl::admin::FlyteURLs& flyte_urls() const; + ::flyteidl::admin::FlyteURLs* release_flyte_urls(); + ::flyteidl::admin::FlyteURLs* mutable_flyte_urls(); + void set_allocated_flyte_urls(::flyteidl::admin::FlyteURLs* flyte_urls); + // @@protoc_insertion_point(class_scope:flyteidl.admin.NodeExecutionGetDataResponse) private: class HasBitSetters; @@ -1936,6 +1945,7 @@ class NodeExecutionGetDataResponse final : ::flyteidl::core::LiteralMap* full_inputs_; ::flyteidl::core::LiteralMap* full_outputs_; ::flyteidl::admin::DynamicWorkflowNodeMetadata* dynamic_workflow_; + ::flyteidl::admin::FlyteURLs* flyte_urls_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2fnode_5fexecution_2eproto; }; @@ -4071,6 +4081,51 @@ inline void NodeExecutionGetDataResponse::set_allocated_dynamic_workflow(::flyte // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NodeExecutionGetDataResponse.dynamic_workflow) } +// .flyteidl.admin.FlyteURLs flyte_urls = 17; +inline bool NodeExecutionGetDataResponse::has_flyte_urls() const { + return this != internal_default_instance() && flyte_urls_ != nullptr; +} +inline const ::flyteidl::admin::FlyteURLs& NodeExecutionGetDataResponse::flyte_urls() const { + const ::flyteidl::admin::FlyteURLs* p = flyte_urls_; + // @@protoc_insertion_point(field_get:flyteidl.admin.NodeExecutionGetDataResponse.flyte_urls) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_FlyteURLs_default_instance_); +} +inline ::flyteidl::admin::FlyteURLs* NodeExecutionGetDataResponse::release_flyte_urls() { + // @@protoc_insertion_point(field_release:flyteidl.admin.NodeExecutionGetDataResponse.flyte_urls) + + ::flyteidl::admin::FlyteURLs* temp = flyte_urls_; + flyte_urls_ = nullptr; + return temp; +} +inline ::flyteidl::admin::FlyteURLs* NodeExecutionGetDataResponse::mutable_flyte_urls() { + + if (flyte_urls_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::FlyteURLs>(GetArenaNoVirtual()); + flyte_urls_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.NodeExecutionGetDataResponse.flyte_urls) + return flyte_urls_; +} +inline void NodeExecutionGetDataResponse::set_allocated_flyte_urls(::flyteidl::admin::FlyteURLs* flyte_urls) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(flyte_urls_); + } + if (flyte_urls) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + flyte_urls = ::google::protobuf::internal::GetOwnedMessage( + message_arena, flyte_urls, submessage_arena); + } + + } else { + + } + flyte_urls_ = flyte_urls; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.NodeExecutionGetDataResponse.flyte_urls) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.cc index 6b552399f..92e0ce3ae 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.cc @@ -16,6 +16,7 @@ // @@protoc_insertion_point(includes) #include +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Sort_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fcommon_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_UrlBlob_flyteidl_2fadmin_2fcommon_2eproto; extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2ftask_5fexecution_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Reason_flyteidl_2fadmin_2ftask_5fexecution_2eproto; @@ -194,10 +195,11 @@ static void InitDefaultsTaskExecutionGetDataResponse_flyteidl_2fadmin_2ftask_5fe ::flyteidl::admin::TaskExecutionGetDataResponse::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<2> scc_info_TaskExecutionGetDataResponse_flyteidl_2fadmin_2ftask_5fexecution_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsTaskExecutionGetDataResponse_flyteidl_2fadmin_2ftask_5fexecution_2eproto}, { +::google::protobuf::internal::SCCInfo<3> scc_info_TaskExecutionGetDataResponse_flyteidl_2fadmin_2ftask_5fexecution_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsTaskExecutionGetDataResponse_flyteidl_2fadmin_2ftask_5fexecution_2eproto}, { &scc_info_UrlBlob_flyteidl_2fadmin_2fcommon_2eproto.base, - &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base,}}; + &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base, + &scc_info_FlyteURLs_flyteidl_2fadmin_2fcommon_2eproto.base,}}; void InitDefaults_flyteidl_2fadmin_2ftask_5fexecution_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_TaskExecutionGetRequest_flyteidl_2fadmin_2ftask_5fexecution_2eproto.base); @@ -290,6 +292,7 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2ftask_5fexecution PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionGetDataResponse, outputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionGetDataResponse, full_inputs_), PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionGetDataResponse, full_outputs_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::TaskExecutionGetDataResponse, flyte_urls_), }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::admin::TaskExecutionGetRequest)}, @@ -360,19 +363,20 @@ const char descriptor_table_protodef_flyteidl_2fadmin_2ftask_5fexecution_2eproto "curred_at\030\001 \001(\0132\032.google.protobuf.Timest" "amp\022\017\n\007message\030\002 \001(\t\"Q\n\033TaskExecutionGet" "DataRequest\0222\n\002id\030\001 \001(\0132&.flyteidl.core." - "TaskExecutionIdentifier\"\332\001\n\034TaskExecutio" + "TaskExecutionIdentifier\"\211\002\n\034TaskExecutio" "nGetDataResponse\022+\n\006inputs\030\001 \001(\0132\027.flyte" "idl.admin.UrlBlobB\002\030\001\022,\n\007outputs\030\002 \001(\0132\027" ".flyteidl.admin.UrlBlobB\002\030\001\022.\n\013full_inpu" "ts\030\003 \001(\0132\031.flyteidl.core.LiteralMap\022/\n\014f" "ull_outputs\030\004 \001(\0132\031.flyteidl.core.Litera" - "lMapB7Z5github.com/flyteorg/flyteidl/gen" - "/pb-go/flyteidl/adminb\006proto3" + "lMap\022-\n\nflyte_urls\030\005 \001(\0132\031.flyteidl.admi" + "n.FlyteURLsB7Z5github.com/flyteorg/flyte" + "idl/gen/pb-go/flyteidl/adminb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2ftask_5fexecution_2eproto = { false, InitDefaults_flyteidl_2fadmin_2ftask_5fexecution_2eproto, descriptor_table_protodef_flyteidl_2fadmin_2ftask_5fexecution_2eproto, - "flyteidl/admin/task_execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2ftask_5fexecution_2eproto, 1909, + "flyteidl/admin/task_execution.proto", &assign_descriptors_table_flyteidl_2fadmin_2ftask_5fexecution_2eproto, 1956, }; void AddDescriptors_flyteidl_2fadmin_2ftask_5fexecution_2eproto() { @@ -4057,6 +4061,8 @@ void TaskExecutionGetDataResponse::InitAsDefaultInstance() { ::flyteidl::core::LiteralMap::internal_default_instance()); ::flyteidl::admin::_TaskExecutionGetDataResponse_default_instance_._instance.get_mutable()->full_outputs_ = const_cast< ::flyteidl::core::LiteralMap*>( ::flyteidl::core::LiteralMap::internal_default_instance()); + ::flyteidl::admin::_TaskExecutionGetDataResponse_default_instance_._instance.get_mutable()->flyte_urls_ = const_cast< ::flyteidl::admin::FlyteURLs*>( + ::flyteidl::admin::FlyteURLs::internal_default_instance()); } class TaskExecutionGetDataResponse::HasBitSetters { public: @@ -4064,6 +4070,7 @@ class TaskExecutionGetDataResponse::HasBitSetters { static const ::flyteidl::admin::UrlBlob& outputs(const TaskExecutionGetDataResponse* msg); static const ::flyteidl::core::LiteralMap& full_inputs(const TaskExecutionGetDataResponse* msg); static const ::flyteidl::core::LiteralMap& full_outputs(const TaskExecutionGetDataResponse* msg); + static const ::flyteidl::admin::FlyteURLs& flyte_urls(const TaskExecutionGetDataResponse* msg); }; const ::flyteidl::admin::UrlBlob& @@ -4082,6 +4089,10 @@ const ::flyteidl::core::LiteralMap& TaskExecutionGetDataResponse::HasBitSetters::full_outputs(const TaskExecutionGetDataResponse* msg) { return *msg->full_outputs_; } +const ::flyteidl::admin::FlyteURLs& +TaskExecutionGetDataResponse::HasBitSetters::flyte_urls(const TaskExecutionGetDataResponse* msg) { + return *msg->flyte_urls_; +} void TaskExecutionGetDataResponse::clear_inputs() { if (GetArenaNoVirtual() == nullptr && inputs_ != nullptr) { delete inputs_; @@ -4106,11 +4117,18 @@ void TaskExecutionGetDataResponse::clear_full_outputs() { } full_outputs_ = nullptr; } +void TaskExecutionGetDataResponse::clear_flyte_urls() { + if (GetArenaNoVirtual() == nullptr && flyte_urls_ != nullptr) { + delete flyte_urls_; + } + flyte_urls_ = nullptr; +} #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int TaskExecutionGetDataResponse::kInputsFieldNumber; const int TaskExecutionGetDataResponse::kOutputsFieldNumber; const int TaskExecutionGetDataResponse::kFullInputsFieldNumber; const int TaskExecutionGetDataResponse::kFullOutputsFieldNumber; +const int TaskExecutionGetDataResponse::kFlyteUrlsFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 TaskExecutionGetDataResponse::TaskExecutionGetDataResponse() @@ -4142,6 +4160,11 @@ TaskExecutionGetDataResponse::TaskExecutionGetDataResponse(const TaskExecutionGe } else { full_outputs_ = nullptr; } + if (from.has_flyte_urls()) { + flyte_urls_ = new ::flyteidl::admin::FlyteURLs(*from.flyte_urls_); + } else { + flyte_urls_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:flyteidl.admin.TaskExecutionGetDataResponse) } @@ -4149,8 +4172,8 @@ void TaskExecutionGetDataResponse::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_TaskExecutionGetDataResponse_flyteidl_2fadmin_2ftask_5fexecution_2eproto.base); ::memset(&inputs_, 0, static_cast( - reinterpret_cast(&full_outputs_) - - reinterpret_cast(&inputs_)) + sizeof(full_outputs_)); + reinterpret_cast(&flyte_urls_) - + reinterpret_cast(&inputs_)) + sizeof(flyte_urls_)); } TaskExecutionGetDataResponse::~TaskExecutionGetDataResponse() { @@ -4163,6 +4186,7 @@ void TaskExecutionGetDataResponse::SharedDtor() { if (this != internal_default_instance()) delete outputs_; if (this != internal_default_instance()) delete full_inputs_; if (this != internal_default_instance()) delete full_outputs_; + if (this != internal_default_instance()) delete flyte_urls_; } void TaskExecutionGetDataResponse::SetCachedSize(int size) const { @@ -4196,6 +4220,10 @@ void TaskExecutionGetDataResponse::Clear() { delete full_outputs_; } full_outputs_ = nullptr; + if (GetArenaNoVirtual() == nullptr && flyte_urls_ != nullptr) { + delete flyte_urls_; + } + flyte_urls_ = nullptr; _internal_metadata_.Clear(); } @@ -4264,6 +4292,19 @@ const char* TaskExecutionGetDataResponse::_InternalParse(const char* begin, cons {parser_till_end, object}, ptr - size, ptr)); break; } + // .flyteidl.admin.FlyteURLs flyte_urls = 5; + case 5: { + if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::FlyteURLs::_InternalParse; + object = msg->mutable_flyte_urls(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -4338,6 +4379,17 @@ bool TaskExecutionGetDataResponse::MergePartialFromCodedStream( break; } + // .flyteidl.admin.FlyteURLs flyte_urls = 5; + case 5: { + if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_flyte_urls())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -4389,6 +4441,12 @@ void TaskExecutionGetDataResponse::SerializeWithCachedSizes( 4, HasBitSetters::full_outputs(this), output); } + // .flyteidl.admin.FlyteURLs flyte_urls = 5; + if (this->has_flyte_urls()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 5, HasBitSetters::flyte_urls(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -4430,6 +4488,13 @@ ::google::protobuf::uint8* TaskExecutionGetDataResponse::InternalSerializeWithCa 4, HasBitSetters::full_outputs(this), target); } + // .flyteidl.admin.FlyteURLs flyte_urls = 5; + if (this->has_flyte_urls()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 5, HasBitSetters::flyte_urls(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -4479,6 +4544,13 @@ size_t TaskExecutionGetDataResponse::ByteSizeLong() const { *full_outputs_); } + // .flyteidl.admin.FlyteURLs flyte_urls = 5; + if (this->has_flyte_urls()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *flyte_urls_); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -4518,6 +4590,9 @@ void TaskExecutionGetDataResponse::MergeFrom(const TaskExecutionGetDataResponse& if (from.has_full_outputs()) { mutable_full_outputs()->::flyteidl::core::LiteralMap::MergeFrom(from.full_outputs()); } + if (from.has_flyte_urls()) { + mutable_flyte_urls()->::flyteidl::admin::FlyteURLs::MergeFrom(from.flyte_urls()); + } } void TaskExecutionGetDataResponse::CopyFrom(const ::google::protobuf::Message& from) { @@ -4549,6 +4624,7 @@ void TaskExecutionGetDataResponse::InternalSwap(TaskExecutionGetDataResponse* ot swap(outputs_, other->outputs_); swap(full_inputs_, other->full_inputs_); swap(full_outputs_, other->full_outputs_); + swap(flyte_urls_, other->flyte_urls_); } ::google::protobuf::Metadata TaskExecutionGetDataResponse::GetMetadata() const { diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.h index 6af0fd081..f792f0bb9 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/task_execution.pb.h @@ -1327,6 +1327,15 @@ class TaskExecutionGetDataResponse final : ::flyteidl::core::LiteralMap* mutable_full_outputs(); void set_allocated_full_outputs(::flyteidl::core::LiteralMap* full_outputs); + // .flyteidl.admin.FlyteURLs flyte_urls = 5; + bool has_flyte_urls() const; + void clear_flyte_urls(); + static const int kFlyteUrlsFieldNumber = 5; + const ::flyteidl::admin::FlyteURLs& flyte_urls() const; + ::flyteidl::admin::FlyteURLs* release_flyte_urls(); + ::flyteidl::admin::FlyteURLs* mutable_flyte_urls(); + void set_allocated_flyte_urls(::flyteidl::admin::FlyteURLs* flyte_urls); + // @@protoc_insertion_point(class_scope:flyteidl.admin.TaskExecutionGetDataResponse) private: class HasBitSetters; @@ -1336,6 +1345,7 @@ class TaskExecutionGetDataResponse final : ::flyteidl::admin::UrlBlob* outputs_; ::flyteidl::core::LiteralMap* full_inputs_; ::flyteidl::core::LiteralMap* full_outputs_; + ::flyteidl::admin::FlyteURLs* flyte_urls_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fadmin_2ftask_5fexecution_2eproto; }; @@ -2840,6 +2850,51 @@ inline void TaskExecutionGetDataResponse::set_allocated_full_outputs(::flyteidl: // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.TaskExecutionGetDataResponse.full_outputs) } +// .flyteidl.admin.FlyteURLs flyte_urls = 5; +inline bool TaskExecutionGetDataResponse::has_flyte_urls() const { + return this != internal_default_instance() && flyte_urls_ != nullptr; +} +inline const ::flyteidl::admin::FlyteURLs& TaskExecutionGetDataResponse::flyte_urls() const { + const ::flyteidl::admin::FlyteURLs* p = flyte_urls_; + // @@protoc_insertion_point(field_get:flyteidl.admin.TaskExecutionGetDataResponse.flyte_urls) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_FlyteURLs_default_instance_); +} +inline ::flyteidl::admin::FlyteURLs* TaskExecutionGetDataResponse::release_flyte_urls() { + // @@protoc_insertion_point(field_release:flyteidl.admin.TaskExecutionGetDataResponse.flyte_urls) + + ::flyteidl::admin::FlyteURLs* temp = flyte_urls_; + flyte_urls_ = nullptr; + return temp; +} +inline ::flyteidl::admin::FlyteURLs* TaskExecutionGetDataResponse::mutable_flyte_urls() { + + if (flyte_urls_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::FlyteURLs>(GetArenaNoVirtual()); + flyte_urls_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.TaskExecutionGetDataResponse.flyte_urls) + return flyte_urls_; +} +inline void TaskExecutionGetDataResponse::set_allocated_flyte_urls(::flyteidl::admin::FlyteURLs* flyte_urls) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(flyte_urls_); + } + if (flyte_urls) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + flyte_urls = ::google::protobuf::internal::GetOwnedMessage( + message_arena, flyte_urls, submessage_arena); + } + + } else { + + } + flyte_urls_ = flyte_urls; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.TaskExecutionGetDataResponse.flyte_urls) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index c1b490d2f..efbf98757 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -52,269 +52,267 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "admin/task_execution.proto\032\034flyteidl/adm" "in/version.proto\032\033flyteidl/admin/common." "proto\032\'flyteidl/admin/description_entity" - ".proto\032\036flyteidl/core/identifier.proto\032\033" - "flyteidl/core/metrics.proto2\204N\n\014AdminSer" - "vice\022m\n\nCreateTask\022!.flyteidl.admin.Task" - "CreateRequest\032\".flyteidl.admin.TaskCreat" - "eResponse\"\030\202\323\344\223\002\022\"\r/api/v1/tasks:\001*\022\210\001\n\007" - "GetTask\022 .flyteidl.admin.ObjectGetReques" - "t\032\024.flyteidl.admin.Task\"E\202\323\344\223\002\?\022=/api/v1" - "/tasks/{id.project}/{id.domain}/{id.name" - "}/{id.version}\022\227\001\n\013ListTaskIds\0220.flyteid" - "l.admin.NamedEntityIdentifierListRequest" - "\032).flyteidl.admin.NamedEntityIdentifierL" - "ist\"+\202\323\344\223\002%\022#/api/v1/task_ids/{project}/" - "{domain}\022\256\001\n\tListTasks\022#.flyteidl.admin." - "ResourceListRequest\032\030.flyteidl.admin.Tas" - "kList\"b\202\323\344\223\002\\\0220/api/v1/tasks/{id.project" - "}/{id.domain}/{id.name}Z(\022&/api/v1/tasks" - "/{id.project}/{id.domain}\022}\n\016CreateWorkf" - "low\022%.flyteidl.admin.WorkflowCreateReque" - "st\032&.flyteidl.admin.WorkflowCreateRespon" - "se\"\034\202\323\344\223\002\026\"\021/api/v1/workflows:\001*\022\224\001\n\013Get" - "Workflow\022 .flyteidl.admin.ObjectGetReque" - "st\032\030.flyteidl.admin.Workflow\"I\202\323\344\223\002C\022A/a" - "pi/v1/workflows/{id.project}/{id.domain}" - "/{id.name}/{id.version}\022\237\001\n\017ListWorkflow" - "Ids\0220.flyteidl.admin.NamedEntityIdentifi" - "erListRequest\032).flyteidl.admin.NamedEnti" - "tyIdentifierList\"/\202\323\344\223\002)\022\'/api/v1/workfl" - "ow_ids/{project}/{domain}\022\276\001\n\rListWorkfl" - "ows\022#.flyteidl.admin.ResourceListRequest" - "\032\034.flyteidl.admin.WorkflowList\"j\202\323\344\223\002d\0224" - "/api/v1/workflows/{id.project}/{id.domai" - "n}/{id.name}Z,\022*/api/v1/workflows/{id.pr" - "oject}/{id.domain}\022\206\001\n\020CreateLaunchPlan\022" - "\'.flyteidl.admin.LaunchPlanCreateRequest" - "\032(.flyteidl.admin.LaunchPlanCreateRespon" - "se\"\037\202\323\344\223\002\031\"\024/api/v1/launch_plans:\001*\022\233\001\n\r" - "GetLaunchPlan\022 .flyteidl.admin.ObjectGet" - "Request\032\032.flyteidl.admin.LaunchPlan\"L\202\323\344" - "\223\002F\022D/api/v1/launch_plans/{id.project}/{" - "id.domain}/{id.name}/{id.version}\022\242\001\n\023Ge" - "tActiveLaunchPlan\022\'.flyteidl.admin.Activ" - "eLaunchPlanRequest\032\032.flyteidl.admin.Laun" - "chPlan\"F\202\323\344\223\002@\022>/api/v1/active_launch_pl" - "ans/{id.project}/{id.domain}/{id.name}\022\234" - "\001\n\025ListActiveLaunchPlans\022+.flyteidl.admi" - "n.ActiveLaunchPlanListRequest\032\036.flyteidl" - ".admin.LaunchPlanList\"6\202\323\344\223\0020\022./api/v1/a" - "ctive_launch_plans/{project}/{domain}\022\244\001" - "\n\021ListLaunchPlanIds\0220.flyteidl.admin.Nam" - "edEntityIdentifierListRequest\032).flyteidl" - ".admin.NamedEntityIdentifierList\"2\202\323\344\223\002," - "\022*/api/v1/launch_plan_ids/{project}/{dom" - "ain}\022\310\001\n\017ListLaunchPlans\022#.flyteidl.admi" - "n.ResourceListRequest\032\036.flyteidl.admin.L" - "aunchPlanList\"p\202\323\344\223\002j\0227/api/v1/launch_pl" - "ans/{id.project}/{id.domain}/{id.name}Z/" - "\022-/api/v1/launch_plans/{id.project}/{id." - "domain}\022\266\001\n\020UpdateLaunchPlan\022\'.flyteidl." - "admin.LaunchPlanUpdateRequest\032(.flyteidl" - ".admin.LaunchPlanUpdateResponse\"O\202\323\344\223\002I\032" - "D/api/v1/launch_plans/{id.project}/{id.d" - "omain}/{id.name}/{id.version}:\001*\022\201\001\n\017Cre" - "ateExecution\022&.flyteidl.admin.ExecutionC" - "reateRequest\032\'.flyteidl.admin.ExecutionC" - "reateResponse\"\035\202\323\344\223\002\027\"\022/api/v1/execution" - "s:\001*\022\216\001\n\021RelaunchExecution\022(.flyteidl.ad" - "min.ExecutionRelaunchRequest\032\'.flyteidl." - "admin.ExecutionCreateResponse\"&\202\323\344\223\002 \"\033/" - "api/v1/executions/relaunch:\001*\022\213\001\n\020Recove" - "rExecution\022\'.flyteidl.admin.ExecutionRec" - "overRequest\032\'.flyteidl.admin.ExecutionCr" - "eateResponse\"%\202\323\344\223\002\037\"\032/api/v1/executions" - "/recover:\001*\022\225\001\n\014GetExecution\022+.flyteidl." - "admin.WorkflowExecutionGetRequest\032\031.flyt" - "eidl.admin.Execution\"=\202\323\344\223\0027\0225/api/v1/ex" - "ecutions/{id.project}/{id.domain}/{id.na" - "me}\022\244\001\n\017UpdateExecution\022&.flyteidl.admin" - ".ExecutionUpdateRequest\032\'.flyteidl.admin" - ".ExecutionUpdateResponse\"@\202\323\344\223\002:\0325/api/v" - "1/executions/{id.project}/{id.domain}/{i" - "d.name}:\001*\022\271\001\n\020GetExecutionData\022/.flytei" - "dl.admin.WorkflowExecutionGetDataRequest" - "\0320.flyteidl.admin.WorkflowExecutionGetDa" - "taResponse\"B\202\323\344\223\002<\022:/api/v1/data/executi" - "ons/{id.project}/{id.domain}/{id.name}\022\211" - "\001\n\016ListExecutions\022#.flyteidl.admin.Resou" - "rceListRequest\032\035.flyteidl.admin.Executio" - "nList\"3\202\323\344\223\002-\022+/api/v1/executions/{id.pr" - "oject}/{id.domain}\022\255\001\n\022TerminateExecutio" - "n\022).flyteidl.admin.ExecutionTerminateReq" - "uest\032*.flyteidl.admin.ExecutionTerminate" - "Response\"@\202\323\344\223\002:*5/api/v1/executions/{id" - ".project}/{id.domain}/{id.name}:\001*\022\322\001\n\020G" - "etNodeExecution\022\'.flyteidl.admin.NodeExe" - "cutionGetRequest\032\035.flyteidl.admin.NodeEx" - "ecution\"v\202\323\344\223\002p\022n/api/v1/node_executions" - "/{id.execution_id.project}/{id.execution" - "_id.domain}/{id.execution_id.name}/{id.n" - "ode_id}\022\336\001\n\022ListNodeExecutions\022(.flyteid" - "l.admin.NodeExecutionListRequest\032!.flyte" - "idl.admin.NodeExecutionList\"{\202\323\344\223\002u\022s/ap" - "i/v1/node_executions/{workflow_execution" - "_id.project}/{workflow_execution_id.doma" - "in}/{workflow_execution_id.name}\022\245\004\n\031Lis" - "tNodeExecutionsForTask\022/.flyteidl.admin." - "NodeExecutionForTaskListRequest\032!.flytei" - "dl.admin.NodeExecutionList\"\263\003\202\323\344\223\002\254\003\022\251\003/" - "api/v1/children/task_executions/{task_ex" - "ecution_id.node_execution_id.execution_i" - "d.project}/{task_execution_id.node_execu" - "tion_id.execution_id.domain}/{task_execu" - "tion_id.node_execution_id.execution_id.n" - "ame}/{task_execution_id.node_execution_i" - "d.node_id}/{task_execution_id.task_id.pr" - "oject}/{task_execution_id.task_id.domain" - "}/{task_execution_id.task_id.name}/{task" - "_execution_id.task_id.version}/{task_exe" - "cution_id.retry_attempt}\022\356\001\n\024GetNodeExec" - "utionData\022+.flyteidl.admin.NodeExecution" - "GetDataRequest\032,.flyteidl.admin.NodeExec" - "utionGetDataResponse\"{\202\323\344\223\002u\022s/api/v1/da" - "ta/node_executions/{id.execution_id.proj" - "ect}/{id.execution_id.domain}/{id.execut" - "ion_id.name}/{id.node_id}\022\177\n\017RegisterPro" - "ject\022&.flyteidl.admin.ProjectRegisterReq" - "uest\032\'.flyteidl.admin.ProjectRegisterRes" - "ponse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022q\n\rUp" - "dateProject\022\027.flyteidl.admin.Project\032%.f" - "lyteidl.admin.ProjectUpdateResponse\" \202\323\344" - "\223\002\032\032\025/api/v1/projects/{id}:\001*\022f\n\014ListPro" - "jects\022\".flyteidl.admin.ProjectListReques" - "t\032\030.flyteidl.admin.Projects\"\030\202\323\344\223\002\022\022\020/ap" - "i/v1/projects\022\231\001\n\023CreateWorkflowEvent\022-." - "flyteidl.admin.WorkflowExecutionEventReq" - "uest\032..flyteidl.admin.WorkflowExecutionE" - "ventResponse\"#\202\323\344\223\002\035\"\030/api/v1/events/wor" - "kflows:\001*\022\211\001\n\017CreateNodeEvent\022).flyteidl" - ".admin.NodeExecutionEventRequest\032*.flyte" - "idl.admin.NodeExecutionEventResponse\"\037\202\323" - "\344\223\002\031\"\024/api/v1/events/nodes:\001*\022\211\001\n\017Create" - "TaskEvent\022).flyteidl.admin.TaskExecution" - "EventRequest\032*.flyteidl.admin.TaskExecut" - "ionEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events" - "/tasks:\001*\022\200\003\n\020GetTaskExecution\022\'.flyteid" - "l.admin.TaskExecutionGetRequest\032\035.flytei" - "dl.admin.TaskExecution\"\243\002\202\323\344\223\002\234\002\022\231\002/api/" - "v1/task_executions/{id.node_execution_id" - ".execution_id.project}/{id.node_executio" - "n_id.execution_id.domain}/{id.node_execu" - "tion_id.execution_id.name}/{id.node_exec" - "ution_id.node_id}/{id.task_id.project}/{" - "id.task_id.domain}/{id.task_id.name}/{id" - ".task_id.version}/{id.retry_attempt}\022\230\002\n" - "\022ListTaskExecutions\022(.flyteidl.admin.Tas" - "kExecutionListRequest\032!.flyteidl.admin.T" - "askExecutionList\"\264\001\202\323\344\223\002\255\001\022\252\001/api/v1/tas" - "k_executions/{node_execution_id.executio" - "n_id.project}/{node_execution_id.executi" - "on_id.domain}/{node_execution_id.executi" - "on_id.name}/{node_execution_id.node_id}\022" - "\234\003\n\024GetTaskExecutionData\022+.flyteidl.admi" - "n.TaskExecutionGetDataRequest\032,.flyteidl" - ".admin.TaskExecutionGetDataResponse\"\250\002\202\323" - "\344\223\002\241\002\022\236\002/api/v1/data/task_executions/{id" - ".node_execution_id.execution_id.project}" - "/{id.node_execution_id.execution_id.doma" - "in}/{id.node_execution_id.execution_id.n" - "ame}/{id.node_execution_id.node_id}/{id." - "task_id.project}/{id.task_id.domain}/{id" - ".task_id.name}/{id.task_id.version}/{id." - "retry_attempt}\022\343\001\n\035UpdateProjectDomainAt" - "tributes\0224.flyteidl.admin.ProjectDomainA" - "ttributesUpdateRequest\0325.flyteidl.admin." - "ProjectDomainAttributesUpdateResponse\"U\202" - "\323\344\223\002O\032J/api/v1/project_domain_attributes" - "/{attributes.project}/{attributes.domain" - "}:\001*\022\301\001\n\032GetProjectDomainAttributes\0221.fl" - "yteidl.admin.ProjectDomainAttributesGetR" - "equest\0322.flyteidl.admin.ProjectDomainAtt" - "ributesGetResponse\"<\202\323\344\223\0026\0224/api/v1/proj" - "ect_domain_attributes/{project}/{domain}" - "\022\315\001\n\035DeleteProjectDomainAttributes\0224.fly" - "teidl.admin.ProjectDomainAttributesDelet" - "eRequest\0325.flyteidl.admin.ProjectDomainA" - "ttributesDeleteResponse\"\?\202\323\344\223\0029*4/api/v1" - "/project_domain_attributes/{project}/{do" - "main}:\001*\022\266\001\n\027UpdateProjectAttributes\022..f" - "lyteidl.admin.ProjectAttributesUpdateReq" - "uest\032/.flyteidl.admin.ProjectAttributesU" - "pdateResponse\":\202\323\344\223\0024\032//api/v1/project_a" - "ttributes/{attributes.project}:\001*\022\237\001\n\024Ge" - "tProjectAttributes\022+.flyteidl.admin.Proj" - "ectAttributesGetRequest\032,.flyteidl.admin" - ".ProjectAttributesGetResponse\",\202\323\344\223\002&\022$/" - "api/v1/project_attributes/{project}\022\253\001\n\027" - "DeleteProjectAttributes\022..flyteidl.admin" - ".ProjectAttributesDeleteRequest\032/.flytei" - "dl.admin.ProjectAttributesDeleteResponse" - "\"/\202\323\344\223\002)*$/api/v1/project_attributes/{pr" - "oject}:\001*\022\344\001\n\030UpdateWorkflowAttributes\022/" - ".flyteidl.admin.WorkflowAttributesUpdate" - "Request\0320.flyteidl.admin.WorkflowAttribu" - "tesUpdateResponse\"e\202\323\344\223\002_\032Z/api/v1/workf" - "low_attributes/{attributes.project}/{att" - "ributes.domain}/{attributes.workflow}:\001*" - "\022\267\001\n\025GetWorkflowAttributes\022,.flyteidl.ad" - "min.WorkflowAttributesGetRequest\032-.flyte" - "idl.admin.WorkflowAttributesGetResponse\"" - "A\202\323\344\223\002;\0229/api/v1/workflow_attributes/{pr" - "oject}/{domain}/{workflow}\022\303\001\n\030DeleteWor" - "kflowAttributes\022/.flyteidl.admin.Workflo" - "wAttributesDeleteRequest\0320.flyteidl.admi" - "n.WorkflowAttributesDeleteResponse\"D\202\323\344\223" - "\002>*9/api/v1/workflow_attributes/{project" - "}/{domain}/{workflow}:\001*\022\240\001\n\027ListMatchab" - "leAttributes\022..flyteidl.admin.ListMatcha" - "bleAttributesRequest\032/.flyteidl.admin.Li" - "stMatchableAttributesResponse\"$\202\323\344\223\002\036\022\034/" - "api/v1/matchable_attributes\022\237\001\n\021ListName" - "dEntities\022&.flyteidl.admin.NamedEntityLi" - "stRequest\032\037.flyteidl.admin.NamedEntityLi" - "st\"A\202\323\344\223\002;\0229/api/v1/named_entities/{reso" - "urce_type}/{project}/{domain}\022\247\001\n\016GetNam" - "edEntity\022%.flyteidl.admin.NamedEntityGet" - "Request\032\033.flyteidl.admin.NamedEntity\"Q\202\323" - "\344\223\002K\022I/api/v1/named_entities/{resource_t" - "ype}/{id.project}/{id.domain}/{id.name}\022" - "\276\001\n\021UpdateNamedEntity\022(.flyteidl.admin.N" - "amedEntityUpdateRequest\032).flyteidl.admin" - ".NamedEntityUpdateResponse\"T\202\323\344\223\002N\032I/api" - "/v1/named_entities/{resource_type}/{id.p" - "roject}/{id.domain}/{id.name}:\001*\022l\n\nGetV" - "ersion\022!.flyteidl.admin.GetVersionReques" - "t\032\".flyteidl.admin.GetVersionResponse\"\027\202" - "\323\344\223\002\021\022\017/api/v1/version\022\304\001\n\024GetDescriptio" - "nEntity\022 .flyteidl.admin.ObjectGetReques" - "t\032!.flyteidl.admin.DescriptionEntity\"g\202\323" - "\344\223\002a\022_/api/v1/description_entities/{id.r" + ".proto2\204N\n\014AdminService\022m\n\nCreateTask\022!." + "flyteidl.admin.TaskCreateRequest\032\".flyte" + "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" + "pi/v1/tasks:\001*\022\210\001\n\007GetTask\022 .flyteidl.ad" + "min.ObjectGetRequest\032\024.flyteidl.admin.Ta" + "sk\"E\202\323\344\223\002\?\022=/api/v1/tasks/{id.project}/{" + "id.domain}/{id.name}/{id.version}\022\227\001\n\013Li" + "stTaskIds\0220.flyteidl.admin.NamedEntityId" + "entifierListRequest\032).flyteidl.admin.Nam" + "edEntityIdentifierList\"+\202\323\344\223\002%\022#/api/v1/" + "task_ids/{project}/{domain}\022\256\001\n\tListTask" + "s\022#.flyteidl.admin.ResourceListRequest\032\030" + ".flyteidl.admin.TaskList\"b\202\323\344\223\002\\\0220/api/v" + "1/tasks/{id.project}/{id.domain}/{id.nam" + "e}Z(\022&/api/v1/tasks/{id.project}/{id.dom" + "ain}\022}\n\016CreateWorkflow\022%.flyteidl.admin." + "WorkflowCreateRequest\032&.flyteidl.admin.W" + "orkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/api/v1/w" + "orkflows:\001*\022\224\001\n\013GetWorkflow\022 .flyteidl.a" + "dmin.ObjectGetRequest\032\030.flyteidl.admin.W" + "orkflow\"I\202\323\344\223\002C\022A/api/v1/workflows/{id.p" + "roject}/{id.domain}/{id.name}/{id.versio" + "n}\022\237\001\n\017ListWorkflowIds\0220.flyteidl.admin." + "NamedEntityIdentifierListRequest\032).flyte" + "idl.admin.NamedEntityIdentifierList\"/\202\323\344" + "\223\002)\022\'/api/v1/workflow_ids/{project}/{dom" + "ain}\022\276\001\n\rListWorkflows\022#.flyteidl.admin." + "ResourceListRequest\032\034.flyteidl.admin.Wor" + "kflowList\"j\202\323\344\223\002d\0224/api/v1/workflows/{id" + ".project}/{id.domain}/{id.name}Z,\022*/api/" + "v1/workflows/{id.project}/{id.domain}\022\206\001" + "\n\020CreateLaunchPlan\022\'.flyteidl.admin.Laun" + "chPlanCreateRequest\032(.flyteidl.admin.Lau" + "nchPlanCreateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/l" + "aunch_plans:\001*\022\233\001\n\rGetLaunchPlan\022 .flyte" + "idl.admin.ObjectGetRequest\032\032.flyteidl.ad" + "min.LaunchPlan\"L\202\323\344\223\002F\022D/api/v1/launch_p" + "lans/{id.project}/{id.domain}/{id.name}/" + "{id.version}\022\242\001\n\023GetActiveLaunchPlan\022\'.f" + "lyteidl.admin.ActiveLaunchPlanRequest\032\032." + "flyteidl.admin.LaunchPlan\"F\202\323\344\223\002@\022>/api/" + "v1/active_launch_plans/{id.project}/{id." + "domain}/{id.name}\022\234\001\n\025ListActiveLaunchPl" + "ans\022+.flyteidl.admin.ActiveLaunchPlanLis" + "tRequest\032\036.flyteidl.admin.LaunchPlanList" + "\"6\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" + "roject}/{domain}\022\244\001\n\021ListLaunchPlanIds\0220" + ".flyteidl.admin.NamedEntityIdentifierLis" + "tRequest\032).flyteidl.admin.NamedEntityIde" + "ntifierList\"2\202\323\344\223\002,\022*/api/v1/launch_plan" + "_ids/{project}/{domain}\022\310\001\n\017ListLaunchPl" + "ans\022#.flyteidl.admin.ResourceListRequest" + "\032\036.flyteidl.admin.LaunchPlanList\"p\202\323\344\223\002j" + "\0227/api/v1/launch_plans/{id.project}/{id." + "domain}/{id.name}Z/\022-/api/v1/launch_plan" + "s/{id.project}/{id.domain}\022\266\001\n\020UpdateLau" + "nchPlan\022\'.flyteidl.admin.LaunchPlanUpdat" + "eRequest\032(.flyteidl.admin.LaunchPlanUpda" + "teResponse\"O\202\323\344\223\002I\032D/api/v1/launch_plans" + "/{id.project}/{id.domain}/{id.name}/{id." + "version}:\001*\022\201\001\n\017CreateExecution\022&.flytei" + "dl.admin.ExecutionCreateRequest\032\'.flytei" + "dl.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027" + "\"\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExec" + "ution\022(.flyteidl.admin.ExecutionRelaunch" + "Request\032\'.flyteidl.admin.ExecutionCreate" + "Response\"&\202\323\344\223\002 \"\033/api/v1/executions/rel" + "aunch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl" + ".admin.ExecutionRecoverRequest\032\'.flyteid" + "l.admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"" + "\032/api/v1/executions/recover:\001*\022\225\001\n\014GetEx" + "ecution\022+.flyteidl.admin.WorkflowExecuti" + "onGetRequest\032\031.flyteidl.admin.Execution\"" + "=\202\323\344\223\0027\0225/api/v1/executions/{id.project}" + "/{id.domain}/{id.name}\022\244\001\n\017UpdateExecuti" + "on\022&.flyteidl.admin.ExecutionUpdateReque" + "st\032\'.flyteidl.admin.ExecutionUpdateRespo" + "nse\"@\202\323\344\223\002:\0325/api/v1/executions/{id.proj" + "ect}/{id.domain}/{id.name}:\001*\022\271\001\n\020GetExe" + "cutionData\022/.flyteidl.admin.WorkflowExec" + "utionGetDataRequest\0320.flyteidl.admin.Wor" + "kflowExecutionGetDataResponse\"B\202\323\344\223\002<\022:/" + "api/v1/data/executions/{id.project}/{id." + "domain}/{id.name}\022\211\001\n\016ListExecutions\022#.f" + "lyteidl.admin.ResourceListRequest\032\035.flyt" + "eidl.admin.ExecutionList\"3\202\323\344\223\002-\022+/api/v" + "1/executions/{id.project}/{id.domain}\022\255\001" + "\n\022TerminateExecution\022).flyteidl.admin.Ex" + "ecutionTerminateRequest\032*.flyteidl.admin" + ".ExecutionTerminateResponse\"@\202\323\344\223\002:*5/ap" + "i/v1/executions/{id.project}/{id.domain}" + "/{id.name}:\001*\022\322\001\n\020GetNodeExecution\022\'.fly" + "teidl.admin.NodeExecutionGetRequest\032\035.fl" + "yteidl.admin.NodeExecution\"v\202\323\344\223\002p\022n/api" + "/v1/node_executions/{id.execution_id.pro" + "ject}/{id.execution_id.domain}/{id.execu" + "tion_id.name}/{id.node_id}\022\336\001\n\022ListNodeE" + "xecutions\022(.flyteidl.admin.NodeExecution" + "ListRequest\032!.flyteidl.admin.NodeExecuti" + "onList\"{\202\323\344\223\002u\022s/api/v1/node_executions/" + "{workflow_execution_id.project}/{workflo" + "w_execution_id.domain}/{workflow_executi" + "on_id.name}\022\245\004\n\031ListNodeExecutionsForTas" + "k\022/.flyteidl.admin.NodeExecutionForTaskL" + "istRequest\032!.flyteidl.admin.NodeExecutio" + "nList\"\263\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_" + "executions/{task_execution_id.node_execu" + "tion_id.execution_id.project}/{task_exec" + "ution_id.node_execution_id.execution_id." + "domain}/{task_execution_id.node_executio" + "n_id.execution_id.name}/{task_execution_" + "id.node_execution_id.node_id}/{task_exec" + "ution_id.task_id.project}/{task_executio" + "n_id.task_id.domain}/{task_execution_id." + "task_id.name}/{task_execution_id.task_id" + ".version}/{task_execution_id.retry_attem" + "pt}\022\356\001\n\024GetNodeExecutionData\022+.flyteidl." + "admin.NodeExecutionGetDataRequest\032,.flyt" + "eidl.admin.NodeExecutionGetDataResponse\"" + "{\202\323\344\223\002u\022s/api/v1/data/node_executions/{i" + "d.execution_id.project}/{id.execution_id" + ".domain}/{id.execution_id.name}/{id.node" + "_id}\022\177\n\017RegisterProject\022&.flyteidl.admin" + ".ProjectRegisterRequest\032\'.flyteidl.admin" + ".ProjectRegisterResponse\"\033\202\323\344\223\002\025\"\020/api/v" + "1/projects:\001*\022q\n\rUpdateProject\022\027.flyteid" + "l.admin.Project\032%.flyteidl.admin.Project" + "UpdateResponse\" \202\323\344\223\002\032\032\025/api/v1/projects" + "/{id}:\001*\022f\n\014ListProjects\022\".flyteidl.admi" + "n.ProjectListRequest\032\030.flyteidl.admin.Pr" + "ojects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022\231\001\n\023Cre" + "ateWorkflowEvent\022-.flyteidl.admin.Workfl" + "owExecutionEventRequest\032..flyteidl.admin" + ".WorkflowExecutionEventResponse\"#\202\323\344\223\002\035\"" + "\030/api/v1/events/workflows:\001*\022\211\001\n\017CreateN" + "odeEvent\022).flyteidl.admin.NodeExecutionE" + "ventRequest\032*.flyteidl.admin.NodeExecuti" + "onEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/" + "nodes:\001*\022\211\001\n\017CreateTaskEvent\022).flyteidl." + "admin.TaskExecutionEventRequest\032*.flytei" + "dl.admin.TaskExecutionEventResponse\"\037\202\323\344" + "\223\002\031\"\024/api/v1/events/tasks:\001*\022\200\003\n\020GetTask" + "Execution\022\'.flyteidl.admin.TaskExecution" + "GetRequest\032\035.flyteidl.admin.TaskExecutio" + "n\"\243\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{i" + "d.node_execution_id.execution_id.project" + "}/{id.node_execution_id.execution_id.dom" + "ain}/{id.node_execution_id.execution_id." + "name}/{id.node_execution_id.node_id}/{id" + ".task_id.project}/{id.task_id.domain}/{i" + "d.task_id.name}/{id.task_id.version}/{id" + ".retry_attempt}\022\230\002\n\022ListTaskExecutions\022(" + ".flyteidl.admin.TaskExecutionListRequest" + "\032!.flyteidl.admin.TaskExecutionList\"\264\001\202\323" + "\344\223\002\255\001\022\252\001/api/v1/task_executions/{node_ex" + "ecution_id.execution_id.project}/{node_e" + "xecution_id.execution_id.domain}/{node_e" + "xecution_id.execution_id.name}/{node_exe" + "cution_id.node_id}\022\234\003\n\024GetTaskExecutionD" + "ata\022+.flyteidl.admin.TaskExecutionGetDat" + "aRequest\032,.flyteidl.admin.TaskExecutionG" + "etDataResponse\"\250\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/" + "task_executions/{id.node_execution_id.ex" + "ecution_id.project}/{id.node_execution_i" + "d.execution_id.domain}/{id.node_executio" + "n_id.execution_id.name}/{id.node_executi" + "on_id.node_id}/{id.task_id.project}/{id." + "task_id.domain}/{id.task_id.name}/{id.ta" + "sk_id.version}/{id.retry_attempt}\022\343\001\n\035Up" + "dateProjectDomainAttributes\0224.flyteidl.a" + "dmin.ProjectDomainAttributesUpdateReques" + "t\0325.flyteidl.admin.ProjectDomainAttribut" + "esUpdateResponse\"U\202\323\344\223\002O\032J/api/v1/projec" + "t_domain_attributes/{attributes.project}" + "/{attributes.domain}:\001*\022\301\001\n\032GetProjectDo" + "mainAttributes\0221.flyteidl.admin.ProjectD" + "omainAttributesGetRequest\0322.flyteidl.adm" + "in.ProjectDomainAttributesGetResponse\"<\202" + "\323\344\223\0026\0224/api/v1/project_domain_attributes" + "/{project}/{domain}\022\315\001\n\035DeleteProjectDom" + "ainAttributes\0224.flyteidl.admin.ProjectDo" + "mainAttributesDeleteRequest\0325.flyteidl.a" + "dmin.ProjectDomainAttributesDeleteRespon" + "se\"\?\202\323\344\223\0029*4/api/v1/project_domain_attri" + "butes/{project}/{domain}:\001*\022\266\001\n\027UpdatePr" + "ojectAttributes\022..flyteidl.admin.Project" + "AttributesUpdateRequest\032/.flyteidl.admin" + ".ProjectAttributesUpdateResponse\":\202\323\344\223\0024" + "\032//api/v1/project_attributes/{attributes" + ".project}:\001*\022\237\001\n\024GetProjectAttributes\022+." + "flyteidl.admin.ProjectAttributesGetReque" + "st\032,.flyteidl.admin.ProjectAttributesGet" + "Response\",\202\323\344\223\002&\022$/api/v1/project_attrib" + "utes/{project}\022\253\001\n\027DeleteProjectAttribut" + "es\022..flyteidl.admin.ProjectAttributesDel" + "eteRequest\032/.flyteidl.admin.ProjectAttri" + "butesDeleteResponse\"/\202\323\344\223\002)*$/api/v1/pro" + "ject_attributes/{project}:\001*\022\344\001\n\030UpdateW" + "orkflowAttributes\022/.flyteidl.admin.Workf" + "lowAttributesUpdateRequest\0320.flyteidl.ad" + "min.WorkflowAttributesUpdateResponse\"e\202\323" + "\344\223\002_\032Z/api/v1/workflow_attributes/{attri" + "butes.project}/{attributes.domain}/{attr" + "ibutes.workflow}:\001*\022\267\001\n\025GetWorkflowAttri" + "butes\022,.flyteidl.admin.WorkflowAttribute" + "sGetRequest\032-.flyteidl.admin.WorkflowAtt" + "ributesGetResponse\"A\202\323\344\223\002;\0229/api/v1/work" + "flow_attributes/{project}/{domain}/{work" + "flow}\022\303\001\n\030DeleteWorkflowAttributes\022/.fly" + "teidl.admin.WorkflowAttributesDeleteRequ" + "est\0320.flyteidl.admin.WorkflowAttributesD" + "eleteResponse\"D\202\323\344\223\002>*9/api/v1/workflow_" + "attributes/{project}/{domain}/{workflow}" + ":\001*\022\240\001\n\027ListMatchableAttributes\022..flytei" + "dl.admin.ListMatchableAttributesRequest\032" + "/.flyteidl.admin.ListMatchableAttributes" + "Response\"$\202\323\344\223\002\036\022\034/api/v1/matchable_attr" + "ibutes\022\237\001\n\021ListNamedEntities\022&.flyteidl." + "admin.NamedEntityListRequest\032\037.flyteidl." + "admin.NamedEntityList\"A\202\323\344\223\002;\0229/api/v1/n" + "amed_entities/{resource_type}/{project}/" + "{domain}\022\247\001\n\016GetNamedEntity\022%.flyteidl.a" + "dmin.NamedEntityGetRequest\032\033.flyteidl.ad" + "min.NamedEntity\"Q\202\323\344\223\002K\022I/api/v1/named_e" + "ntities/{resource_type}/{id.project}/{id" + ".domain}/{id.name}\022\276\001\n\021UpdateNamedEntity" + "\022(.flyteidl.admin.NamedEntityUpdateReque" + "st\032).flyteidl.admin.NamedEntityUpdateRes" + "ponse\"T\202\323\344\223\002N\032I/api/v1/named_entities/{r" "esource_type}/{id.project}/{id.domain}/{" - "id.name}/{id.version}\022\222\002\n\027ListDescriptio" - "nEntities\022,.flyteidl.admin.DescriptionEn" - "tityListRequest\032%.flyteidl.admin.Descrip" - "tionEntityList\"\241\001\202\323\344\223\002\232\001\022O/api/v1/descri" - "ption_entities/{resource_type}/{id.proje" - "ct}/{id.domain}/{id.name}ZG\022E/api/v1/des" - "cription_entities/{resource_type}/{id.pr" - "oject}/{id.domain}\022\305\001\n\023GetExecutionMetri" - "cs\0222.flyteidl.admin.WorkflowExecutionGet" - "MetricsRequest\0323.flyteidl.admin.Workflow" - "ExecutionGetMetricsResponse\"E\202\323\344\223\002\?\022=/ap" - "i/v1/metrics/executions/{id.project}/{id" - ".domain}/{id.name}B9Z7github.com/flyteor" - "g/flyteidl/gen/pb-go/flyteidl/serviceb\006p" - "roto3" + "id.name}:\001*\022l\n\nGetVersion\022!.flyteidl.adm" + "in.GetVersionRequest\032\".flyteidl.admin.Ge" + "tVersionResponse\"\027\202\323\344\223\002\021\022\017/api/v1/versio" + "n\022\304\001\n\024GetDescriptionEntity\022 .flyteidl.ad" + "min.ObjectGetRequest\032!.flyteidl.admin.De" + "scriptionEntity\"g\202\323\344\223\002a\022_/api/v1/descrip" + "tion_entities/{id.resource_type}/{id.pro" + "ject}/{id.domain}/{id.name}/{id.version}" + "\022\222\002\n\027ListDescriptionEntities\022,.flyteidl." + "admin.DescriptionEntityListRequest\032%.fly" + "teidl.admin.DescriptionEntityList\"\241\001\202\323\344\223" + "\002\232\001\022O/api/v1/description_entities/{resou" + "rce_type}/{id.project}/{id.domain}/{id.n" + "ame}ZG\022E/api/v1/description_entities/{re" + "source_type}/{id.project}/{id.domain}\022\305\001" + "\n\023GetExecutionMetrics\0222.flyteidl.admin.W" + "orkflowExecutionGetMetricsRequest\0323.flyt" + "eidl.admin.WorkflowExecutionGetMetricsRe" + "sponse\"E\202\323\344\223\002\?\022=/api/v1/metrics/executio" + "ns/{id.project}/{id.domain}/{id.name}B9Z" + "7github.com/flyteorg/flyteidl/gen/pb-go/" + "flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fadmin_2eproto = { false, InitDefaults_flyteidl_2fservice_2fadmin_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto, - "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 10725, + "flyteidl/service/admin.proto", &assign_descriptors_table_flyteidl_2fservice_2fadmin_2eproto, 10664, }; void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[18] = + static constexpr ::google::protobuf::internal::InitFunc deps[16] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, ::AddDescriptors_flyteidl_2fadmin_2fproject_2eproto, @@ -332,10 +330,8 @@ void AddDescriptors_flyteidl_2fservice_2fadmin_2eproto() { ::AddDescriptors_flyteidl_2fadmin_2fversion_2eproto, ::AddDescriptors_flyteidl_2fadmin_2fcommon_2eproto, ::AddDescriptors_flyteidl_2fadmin_2fdescription_5fentity_2eproto, - ::AddDescriptors_flyteidl_2fcore_2fidentifier_2eproto, - ::AddDescriptors_flyteidl_2fcore_2fmetrics_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fadmin_2eproto, deps, 18); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fadmin_2eproto, deps, 16); } // Force running AddDescriptors() at dynamic initialization time. diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h index fff2ff113..ca8c835a9 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.h @@ -45,8 +45,6 @@ #include "flyteidl/admin/version.pb.h" #include "flyteidl/admin/common.pb.h" #include "flyteidl/admin/description_entity.pb.h" -#include "flyteidl/core/identifier.pb.h" -#include "flyteidl/core/metrics.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fadmin_2eproto diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.cc index 4d84b70f1..2bff0c5a8 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.cc @@ -23,6 +23,7 @@ static const char* DataProxyService_method_names[] = { "/flyteidl.service.DataProxyService/CreateUploadLocation", "/flyteidl.service.DataProxyService/CreateDownloadLocation", "/flyteidl.service.DataProxyService/CreateDownloadLink", + "/flyteidl.service.DataProxyService/GetData", }; std::unique_ptr< DataProxyService::Stub> DataProxyService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { @@ -35,6 +36,7 @@ DataProxyService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& c : channel_(channel), rpcmethod_CreateUploadLocation_(DataProxyService_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_CreateDownloadLocation_(DataProxyService_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_CreateDownloadLink_(DataProxyService_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetData_(DataProxyService_method_names[3], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) {} ::grpc::Status DataProxyService::Stub::CreateUploadLocation(::grpc::ClientContext* context, const ::flyteidl::service::CreateUploadLocationRequest& request, ::flyteidl::service::CreateUploadLocationResponse* response) { @@ -121,6 +123,34 @@ ::grpc::ClientAsyncResponseReader< ::flyteidl::service::CreateDownloadLinkRespon return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::service::CreateDownloadLinkResponse>::Create(channel_.get(), cq, rpcmethod_CreateDownloadLink_, context, request, false); } +::grpc::Status DataProxyService::Stub::GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::flyteidl::service::GetDataResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_GetData_, context, request, response); +} + +void DataProxyService::Stub::experimental_async::GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_GetData_, context, request, response, std::move(f)); +} + +void DataProxyService::Stub::experimental_async::GetData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::GetDataResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_GetData_, context, request, response, std::move(f)); +} + +void DataProxyService::Stub::experimental_async::GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_GetData_, context, request, response, reactor); +} + +void DataProxyService::Stub::experimental_async::GetData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_GetData_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>* DataProxyService::Stub::AsyncGetDataRaw(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::service::GetDataResponse>::Create(channel_.get(), cq, rpcmethod_GetData_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>* DataProxyService::Stub::PrepareAsyncGetDataRaw(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::service::GetDataResponse>::Create(channel_.get(), cq, rpcmethod_GetData_, context, request, false); +} + DataProxyService::Service::Service() { AddMethod(new ::grpc::internal::RpcServiceMethod( DataProxyService_method_names[0], @@ -137,6 +167,11 @@ DataProxyService::Service::Service() { ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< DataProxyService::Service, ::flyteidl::service::CreateDownloadLinkRequest, ::flyteidl::service::CreateDownloadLinkResponse>( std::mem_fn(&DataProxyService::Service::CreateDownloadLink), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + DataProxyService_method_names[3], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< DataProxyService::Service, ::flyteidl::service::GetDataRequest, ::flyteidl::service::GetDataResponse>( + std::mem_fn(&DataProxyService::Service::GetData), this))); } DataProxyService::Service::~Service() { @@ -163,6 +198,13 @@ ::grpc::Status DataProxyService::Service::CreateDownloadLink(::grpc::ServerConte return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } +::grpc::Status DataProxyService::Service::GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + } // namespace flyteidl } // namespace service diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.h index da74beda7..aaf05b601 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.grpc.pb.h @@ -73,6 +73,13 @@ class DataProxyService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::CreateDownloadLinkResponse>> PrepareAsyncCreateDownloadLink(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::CreateDownloadLinkResponse>>(PrepareAsyncCreateDownloadLinkRaw(context, request, cq)); } + virtual ::grpc::Status GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::flyteidl::service::GetDataResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::GetDataResponse>> AsyncGetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::GetDataResponse>>(AsyncGetDataRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::GetDataResponse>> PrepareAsyncGetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::GetDataResponse>>(PrepareAsyncGetDataRaw(context, request, cq)); + } class experimental_async_interface { public: virtual ~experimental_async_interface() {} @@ -91,6 +98,10 @@ class DataProxyService final { virtual void CreateDownloadLink(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::CreateDownloadLinkResponse* response, std::function) = 0; virtual void CreateDownloadLink(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest* request, ::flyteidl::service::CreateDownloadLinkResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateDownloadLink(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::CreateDownloadLinkResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, std::function) = 0; + virtual void GetData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::GetDataResponse* response, std::function) = 0; + virtual void GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void GetData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; }; virtual class experimental_async_interface* experimental_async() { return nullptr; } private: @@ -100,6 +111,8 @@ class DataProxyService final { virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::CreateDownloadLocationResponse>* PrepareAsyncCreateDownloadLocationRaw(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLocationRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::CreateDownloadLinkResponse>* AsyncCreateDownloadLinkRaw(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::CreateDownloadLinkResponse>* PrepareAsyncCreateDownloadLinkRaw(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::GetDataResponse>* AsyncGetDataRaw(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::service::GetDataResponse>* PrepareAsyncGetDataRaw(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) = 0; }; class Stub final : public StubInterface { public: @@ -125,6 +138,13 @@ class DataProxyService final { std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::service::CreateDownloadLinkResponse>> PrepareAsyncCreateDownloadLink(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::service::CreateDownloadLinkResponse>>(PrepareAsyncCreateDownloadLinkRaw(context, request, cq)); } + ::grpc::Status GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::flyteidl::service::GetDataResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>> AsyncGetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>>(AsyncGetDataRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>> PrepareAsyncGetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>>(PrepareAsyncGetDataRaw(context, request, cq)); + } class experimental_async final : public StubInterface::experimental_async_interface { public: @@ -140,6 +160,10 @@ class DataProxyService final { void CreateDownloadLink(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::CreateDownloadLinkResponse* response, std::function) override; void CreateDownloadLink(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest* request, ::flyteidl::service::CreateDownloadLinkResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void CreateDownloadLink(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::CreateDownloadLinkResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, std::function) override; + void GetData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::GetDataResponse* response, std::function) override; + void GetData(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void GetData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; private: friend class Stub; explicit experimental_async(Stub* stub): stub_(stub) { } @@ -157,9 +181,12 @@ class DataProxyService final { ::grpc::ClientAsyncResponseReader< ::flyteidl::service::CreateDownloadLocationResponse>* PrepareAsyncCreateDownloadLocationRaw(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLocationRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::service::CreateDownloadLinkResponse>* AsyncCreateDownloadLinkRaw(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::service::CreateDownloadLinkResponse>* PrepareAsyncCreateDownloadLinkRaw(::grpc::ClientContext* context, const ::flyteidl::service::CreateDownloadLinkRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>* AsyncGetDataRaw(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::service::GetDataResponse>* PrepareAsyncGetDataRaw(::grpc::ClientContext* context, const ::flyteidl::service::GetDataRequest& request, ::grpc::CompletionQueue* cq) override; const ::grpc::internal::RpcMethod rpcmethod_CreateUploadLocation_; const ::grpc::internal::RpcMethod rpcmethod_CreateDownloadLocation_; const ::grpc::internal::RpcMethod rpcmethod_CreateDownloadLink_; + const ::grpc::internal::RpcMethod rpcmethod_GetData_; }; static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); @@ -173,6 +200,7 @@ class DataProxyService final { virtual ::grpc::Status CreateDownloadLocation(::grpc::ServerContext* context, const ::flyteidl::service::CreateDownloadLocationRequest* request, ::flyteidl::service::CreateDownloadLocationResponse* response); // CreateDownloadLocation creates a signed url to download artifacts. virtual ::grpc::Status CreateDownloadLink(::grpc::ServerContext* context, const ::flyteidl::service::CreateDownloadLinkRequest* request, ::flyteidl::service::CreateDownloadLinkResponse* response); + virtual ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response); }; template class WithAsyncMethod_CreateUploadLocation : public BaseClass { @@ -234,7 +262,27 @@ class DataProxyService final { ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); } }; - typedef WithAsyncMethod_CreateUploadLocation > > AsyncService; + template + class WithAsyncMethod_GetData : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_GetData() { + ::grpc::Service::MarkMethodAsync(3); + } + ~WithAsyncMethod_GetData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetData(::grpc::ServerContext* context, ::flyteidl::service::GetDataRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::service::GetDataResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_CreateUploadLocation > > > AsyncService; template class ExperimentalWithCallbackMethod_CreateUploadLocation : public BaseClass { private: @@ -328,7 +376,38 @@ class DataProxyService final { } virtual void CreateDownloadLink(::grpc::ServerContext* context, const ::flyteidl::service::CreateDownloadLinkRequest* request, ::flyteidl::service::CreateDownloadLinkResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; - typedef ExperimentalWithCallbackMethod_CreateUploadLocation > > ExperimentalCallbackService; + template + class ExperimentalWithCallbackMethod_GetData : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithCallbackMethod_GetData() { + ::grpc::Service::experimental().MarkMethodCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::service::GetDataRequest, ::flyteidl::service::GetDataResponse>( + [this](::grpc::ServerContext* context, + const ::flyteidl::service::GetDataRequest* request, + ::flyteidl::service::GetDataResponse* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + return this->GetData(context, request, response, controller); + })); + } + void SetMessageAllocatorFor_GetData( + ::grpc::experimental::MessageAllocator< ::flyteidl::service::GetDataRequest, ::flyteidl::service::GetDataResponse>* allocator) { + static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::service::GetDataRequest, ::flyteidl::service::GetDataResponse>*>( + ::grpc::Service::experimental().GetHandler(3)) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_GetData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + typedef ExperimentalWithCallbackMethod_CreateUploadLocation > > > ExperimentalCallbackService; template class WithGenericMethod_CreateUploadLocation : public BaseClass { private: @@ -381,6 +460,23 @@ class DataProxyService final { } }; template + class WithGenericMethod_GetData : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_GetData() { + ::grpc::Service::MarkMethodGeneric(3); + } + ~WithGenericMethod_GetData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template class WithRawMethod_CreateUploadLocation : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} @@ -441,6 +537,26 @@ class DataProxyService final { } }; template + class WithRawMethod_GetData : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithRawMethod_GetData() { + ::grpc::Service::MarkMethodRaw(3); + } + ~WithRawMethod_GetData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetData(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class ExperimentalWithRawCallbackMethod_CreateUploadLocation : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} @@ -516,6 +632,31 @@ class DataProxyService final { virtual void CreateDownloadLink(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithRawCallbackMethod_GetData : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithRawCallbackMethod_GetData() { + ::grpc::Service::experimental().MarkMethodRawCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this](::grpc::ServerContext* context, + const ::grpc::ByteBuffer* request, + ::grpc::ByteBuffer* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + this->GetData(context, request, response, controller); + })); + } + ~ExperimentalWithRawCallbackMethod_GetData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void GetData(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class WithStreamedUnaryMethod_CreateUploadLocation : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} @@ -575,9 +716,29 @@ class DataProxyService final { // replace default version of method with streamed unary virtual ::grpc::Status StreamedCreateDownloadLink(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::service::CreateDownloadLinkRequest,::flyteidl::service::CreateDownloadLinkResponse>* server_unary_streamer) = 0; }; - typedef WithStreamedUnaryMethod_CreateUploadLocation > > StreamedUnaryService; + template + class WithStreamedUnaryMethod_GetData : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithStreamedUnaryMethod_GetData() { + ::grpc::Service::MarkMethodStreamed(3, + new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::service::GetDataRequest, ::flyteidl::service::GetDataResponse>(std::bind(&WithStreamedUnaryMethod_GetData::StreamedGetData, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_GetData() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetData(::grpc::ServerContext* context, const ::flyteidl::service::GetDataRequest* request, ::flyteidl::service::GetDataResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetData(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::service::GetDataRequest,::flyteidl::service::GetDataResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_CreateUploadLocation > > > StreamedUnaryService; typedef Service SplitStreamedService; - typedef WithStreamedUnaryMethod_CreateUploadLocation > > StreamedService; + typedef WithStreamedUnaryMethod_CreateUploadLocation > > > StreamedService; }; } // namespace service diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc index 246185385..37c893f57 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.cc @@ -17,6 +17,8 @@ #include extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fidentifier_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_NodeExecutionIdentifier_flyteidl_2fcore_2fidentifier_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fcore_2fliterals_2eproto ::google::protobuf::internal::SCCInfo<9> scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fdataproxy_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto; extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fduration_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Duration_google_2fprotobuf_2fduration_2eproto; extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2ftimestamp_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto; namespace flyteidl { @@ -46,6 +48,20 @@ class CreateDownloadLinkResponseDefaultTypeInternal { public: ::google::protobuf::internal::ExplicitlyConstructed _instance; } _CreateDownloadLinkResponse_default_instance_; +class PreSignedURLsDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _PreSignedURLs_default_instance_; +class GetDataRequestDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _GetDataRequest_default_instance_; +class GetDataResponseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; + const ::flyteidl::core::LiteralMap* literal_map_; + const ::flyteidl::service::PreSignedURLs* pre_signed_urls_; +} _GetDataResponse_default_instance_; } // namespace service } // namespace flyteidl static void InitDefaultsCreateUploadLocationResponse_flyteidl_2fservice_2fdataproxy_2eproto() { @@ -135,10 +151,56 @@ static void InitDefaultsCreateDownloadLinkResponse_flyteidl_2fservice_2fdataprox ::flyteidl::service::CreateDownloadLinkResponse::InitAsDefaultInstance(); } -::google::protobuf::internal::SCCInfo<1> scc_info_CreateDownloadLinkResponse_flyteidl_2fservice_2fdataproxy_2eproto = - {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsCreateDownloadLinkResponse_flyteidl_2fservice_2fdataproxy_2eproto}, { +::google::protobuf::internal::SCCInfo<2> scc_info_CreateDownloadLinkResponse_flyteidl_2fservice_2fdataproxy_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsCreateDownloadLinkResponse_flyteidl_2fservice_2fdataproxy_2eproto}, { + &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base, + &scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto.base,}}; + +static void InitDefaultsPreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::service::_PreSignedURLs_default_instance_; + new (ptr) ::flyteidl::service::PreSignedURLs(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::service::PreSignedURLs::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsPreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto}, { &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}}; +static void InitDefaultsGetDataRequest_flyteidl_2fservice_2fdataproxy_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::service::_GetDataRequest_default_instance_; + new (ptr) ::flyteidl::service::GetDataRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::service::GetDataRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_GetDataRequest_flyteidl_2fservice_2fdataproxy_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsGetDataRequest_flyteidl_2fservice_2fdataproxy_2eproto}, {}}; + +static void InitDefaultsGetDataResponse_flyteidl_2fservice_2fdataproxy_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::service::_GetDataResponse_default_instance_; + new (ptr) ::flyteidl::service::GetDataResponse(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::service::GetDataResponse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<2> scc_info_GetDataResponse_flyteidl_2fservice_2fdataproxy_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsGetDataResponse_flyteidl_2fservice_2fdataproxy_2eproto}, { + &scc_info_Literal_flyteidl_2fcore_2fliterals_2eproto.base, + &scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto.base,}}; + void InitDefaults_flyteidl_2fservice_2fdataproxy_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_CreateUploadLocationResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateUploadLocationRequest_flyteidl_2fservice_2fdataproxy_2eproto.base); @@ -146,9 +208,12 @@ void InitDefaults_flyteidl_2fservice_2fdataproxy_2eproto() { ::google::protobuf::internal::InitSCC(&scc_info_CreateDownloadLocationResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateDownloadLinkRequest_flyteidl_2fservice_2fdataproxy_2eproto.base); ::google::protobuf::internal::InitSCC(&scc_info_CreateDownloadLinkResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_GetDataRequest_flyteidl_2fservice_2fdataproxy_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_GetDataResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); } -::google::protobuf::Metadata file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto[6]; +::google::protobuf::Metadata file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto[9]; const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_flyteidl_2fservice_2fdataproxy_2eproto[1]; constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fservice_2fdataproxy_2eproto = nullptr; @@ -201,6 +266,28 @@ const ::google::protobuf::uint32 TableStruct_flyteidl_2fservice_2fdataproxy_2epr ~0u, // no _weak_field_map_ PROTOBUF_FIELD_OFFSET(::flyteidl::service::CreateDownloadLinkResponse, signed_url_), PROTOBUF_FIELD_OFFSET(::flyteidl::service::CreateDownloadLinkResponse, expires_at_), + PROTOBUF_FIELD_OFFSET(::flyteidl::service::CreateDownloadLinkResponse, pre_signed_urls_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::service::PreSignedURLs, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::service::PreSignedURLs, signed_url_), + PROTOBUF_FIELD_OFFSET(::flyteidl::service::PreSignedURLs, expires_at_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::service::GetDataRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::service::GetDataRequest, flyte_url_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::service::GetDataResponse, _internal_metadata_), + ~0u, // no _extensions_ + PROTOBUF_FIELD_OFFSET(::flyteidl::service::GetDataResponse, _oneof_case_[0]), + ~0u, // no _weak_field_map_ + offsetof(::flyteidl::service::GetDataResponseDefaultTypeInternal, literal_map_), + offsetof(::flyteidl::service::GetDataResponseDefaultTypeInternal, pre_signed_urls_), + PROTOBUF_FIELD_OFFSET(::flyteidl::service::GetDataResponse, data_), }; static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, sizeof(::flyteidl::service::CreateUploadLocationResponse)}, @@ -209,6 +296,9 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SE { 25, -1, sizeof(::flyteidl::service::CreateDownloadLocationResponse)}, { 32, -1, sizeof(::flyteidl::service::CreateDownloadLinkRequest)}, { 41, -1, sizeof(::flyteidl::service::CreateDownloadLinkResponse)}, + { 49, -1, sizeof(::flyteidl::service::PreSignedURLs)}, + { 56, -1, sizeof(::flyteidl::service::GetDataRequest)}, + { 62, -1, sizeof(::flyteidl::service::GetDataResponse)}, }; static ::google::protobuf::Message const * const file_default_instances[] = { @@ -218,12 +308,15 @@ static ::google::protobuf::Message const * const file_default_instances[] = { reinterpret_cast(&::flyteidl::service::_CreateDownloadLocationResponse_default_instance_), reinterpret_cast(&::flyteidl::service::_CreateDownloadLinkRequest_default_instance_), reinterpret_cast(&::flyteidl::service::_CreateDownloadLinkResponse_default_instance_), + reinterpret_cast(&::flyteidl::service::_PreSignedURLs_default_instance_), + reinterpret_cast(&::flyteidl::service::_GetDataRequest_default_instance_), + reinterpret_cast(&::flyteidl::service::_GetDataResponse_default_instance_), }; ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto = { {}, AddDescriptors_flyteidl_2fservice_2fdataproxy_2eproto, "flyteidl/service/dataproxy.proto", schemas, file_default_instances, TableStruct_flyteidl_2fservice_2fdataproxy_2eproto::offsets, - file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto, 6, file_level_enum_descriptors_flyteidl_2fservice_2fdataproxy_2eproto, file_level_service_descriptors_flyteidl_2fservice_2fdataproxy_2eproto, + file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto, 9, file_level_enum_descriptors_flyteidl_2fservice_2fdataproxy_2eproto, file_level_service_descriptors_flyteidl_2fservice_2fdataproxy_2eproto, }; const char descriptor_table_protodef_flyteidl_2fservice_2fdataproxy_2eproto[] = @@ -231,59 +324,71 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fdataproxy_2eproto[] = "eidl.service\032\034google/api/annotations.pro" "to\032\036google/protobuf/duration.proto\032\037goog" "le/protobuf/timestamp.proto\032\036flyteidl/co" - "re/identifier.proto\"v\n\034CreateUploadLocat" - "ionResponse\022\022\n\nsigned_url\030\001 \001(\t\022\022\n\nnativ" - "e_url\030\002 \001(\t\022.\n\nexpires_at\030\003 \001(\0132\032.google" - ".protobuf.Timestamp\"\224\001\n\033CreateUploadLoca" - "tionRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" - " \001(\t\022\020\n\010filename\030\003 \001(\t\022-\n\nexpires_in\030\004 \001" - "(\0132\031.google.protobuf.Duration\022\023\n\013content" - "_md5\030\005 \001(\014\"f\n\035CreateDownloadLocationRequ" - "est\022\022\n\nnative_url\030\001 \001(\t\022-\n\nexpires_in\030\002 " - "\001(\0132\031.google.protobuf.Duration:\002\030\001\"h\n\036Cr" - "eateDownloadLocationResponse\022\022\n\nsigned_u" - "rl\030\001 \001(\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.pr" - "otobuf.Timestamp:\002\030\001\"\320\001\n\031CreateDownloadL" - "inkRequest\0225\n\rartifact_type\030\001 \001(\0162\036.flyt" - "eidl.service.ArtifactType\022-\n\nexpires_in\030" - "\002 \001(\0132\031.google.protobuf.Duration\022C\n\021node" - "_execution_id\030\003 \001(\0132&.flyteidl.core.Node" - "ExecutionIdentifierH\000B\010\n\006source\"`\n\032Creat" - "eDownloadLinkResponse\022\022\n\nsigned_url\030\001 \003(" - "\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.protobuf." - "Timestamp*C\n\014ArtifactType\022\033\n\027ARTIFACT_TY" - "PE_UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DECK\020\0012\374" - "\003\n\020DataProxyService\022\240\001\n\024CreateUploadLoca" - "tion\022-.flyteidl.service.CreateUploadLoca" - "tionRequest\032..flyteidl.service.CreateUpl" - "oadLocationResponse\")\202\323\344\223\002#\"\036/api/v1/dat" - "aproxy/artifact_urn:\001*\022\246\001\n\026CreateDownloa" - "dLocation\022/.flyteidl.service.CreateDownl" - "oadLocationRequest\0320.flyteidl.service.Cr" - "eateDownloadLocationResponse\")\210\002\001\202\323\344\223\002 \022" - "\036/api/v1/dataproxy/artifact_urn\022\233\001\n\022Crea" - "teDownloadLink\022+.flyteidl.service.Create" - "DownloadLinkRequest\032,.flyteidl.service.C" - "reateDownloadLinkResponse\"*\202\323\344\223\002$\"\037/api/" - "v1/dataproxy/artifact_link:\001*B9Z7github." - "com/flyteorg/flyteidl/gen/pb-go/flyteidl" - "/serviceb\006proto3" + "re/identifier.proto\032\034flyteidl/core/liter" + "als.proto\"v\n\034CreateUploadLocationRespons" + "e\022\022\n\nsigned_url\030\001 \001(\t\022\022\n\nnative_url\030\002 \001(" + "\t\022.\n\nexpires_at\030\003 \001(\0132\032.google.protobuf." + "Timestamp\"\224\001\n\033CreateUploadLocationReques" + "t\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010fi" + "lename\030\003 \001(\t\022-\n\nexpires_in\030\004 \001(\0132\031.googl" + "e.protobuf.Duration\022\023\n\013content_md5\030\005 \001(\014" + "\"f\n\035CreateDownloadLocationRequest\022\022\n\nnat" + "ive_url\030\001 \001(\t\022-\n\nexpires_in\030\002 \001(\0132\031.goog" + "le.protobuf.Duration:\002\030\001\"h\n\036CreateDownlo" + "adLocationResponse\022\022\n\nsigned_url\030\001 \001(\t\022." + "\n\nexpires_at\030\002 \001(\0132\032.google.protobuf.Tim" + "estamp:\002\030\001\"\320\001\n\031CreateDownloadLinkRequest" + "\0225\n\rartifact_type\030\001 \001(\0162\036.flyteidl.servi" + "ce.ArtifactType\022-\n\nexpires_in\030\002 \001(\0132\031.go" + "ogle.protobuf.Duration\022C\n\021node_execution" + "_id\030\003 \001(\0132&.flyteidl.core.NodeExecutionI" + "dentifierH\000B\010\n\006source\"\242\001\n\032CreateDownload" + "LinkResponse\022\026\n\nsigned_url\030\001 \003(\tB\002\030\001\0222\n\n" + "expires_at\030\002 \001(\0132\032.google.protobuf.Times" + "tampB\002\030\001\0228\n\017pre_signed_urls\030\003 \001(\0132\037.flyt" + "eidl.service.PreSignedURLs\"S\n\rPreSignedU" + "RLs\022\022\n\nsigned_url\030\001 \003(\t\022.\n\nexpires_at\030\002 " + "\001(\0132\032.google.protobuf.Timestamp\"#\n\016GetDa" + "taRequest\022\021\n\tflyte_url\030\001 \001(\t\"\207\001\n\017GetData" + "Response\0220\n\013literal_map\030\001 \001(\0132\031.flyteidl" + ".core.LiteralMapH\000\022:\n\017pre_signed_urls\030\002 " + "\001(\0132\037.flyteidl.service.PreSignedURLsH\000B\006" + "\n\004data*C\n\014ArtifactType\022\033\n\027ARTIFACT_TYPE_" + "UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DECK\020\0012\342\004\n\020" + "DataProxyService\022\240\001\n\024CreateUploadLocatio" + "n\022-.flyteidl.service.CreateUploadLocatio" + "nRequest\032..flyteidl.service.CreateUpload" + "LocationResponse\")\202\323\344\223\002#\"\036/api/v1/datapr" + "oxy/artifact_urn:\001*\022\246\001\n\026CreateDownloadLo" + "cation\022/.flyteidl.service.CreateDownload" + "LocationRequest\0320.flyteidl.service.Creat" + "eDownloadLocationResponse\")\210\002\001\202\323\344\223\002 \022\036/a" + "pi/v1/dataproxy/artifact_urn\022\233\001\n\022CreateD" + "ownloadLink\022+.flyteidl.service.CreateDow" + "nloadLinkRequest\032,.flyteidl.service.Crea" + "teDownloadLinkResponse\"*\202\323\344\223\002$\"\037/api/v1/" + "dataproxy/artifact_link:\001*\022d\n\007GetData\022 ." + "flyteidl.service.GetDataRequest\032!.flytei" + "dl.service.GetDataResponse\"\024\202\323\344\223\002\016\022\014/api" + "/v1/dataB9Z7github.com/flyteorg/flyteidl" + "/gen/pb-go/flyteidl/serviceb\006proto3" ; ::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fservice_2fdataproxy_2eproto = { false, InitDefaults_flyteidl_2fservice_2fdataproxy_2eproto, descriptor_table_protodef_flyteidl_2fservice_2fdataproxy_2eproto, - "flyteidl/service/dataproxy.proto", &assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto, 1616, + "flyteidl/service/dataproxy.proto", &assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto, 2075, }; void AddDescriptors_flyteidl_2fservice_2fdataproxy_2eproto() { - static constexpr ::google::protobuf::internal::InitFunc deps[4] = + static constexpr ::google::protobuf::internal::InitFunc deps[5] = { ::AddDescriptors_google_2fapi_2fannotations_2eproto, ::AddDescriptors_google_2fprotobuf_2fduration_2eproto, ::AddDescriptors_google_2fprotobuf_2ftimestamp_2eproto, ::AddDescriptors_flyteidl_2fcore_2fidentifier_2eproto, + ::AddDescriptors_flyteidl_2fcore_2fliterals_2eproto, }; - ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fdataproxy_2eproto, deps, 4); + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fservice_2fdataproxy_2eproto, deps, 5); } // Force running AddDescriptors() at dynamic initialization time. @@ -2529,16 +2634,23 @@ ::google::protobuf::Metadata CreateDownloadLinkRequest::GetMetadata() const { void CreateDownloadLinkResponse::InitAsDefaultInstance() { ::flyteidl::service::_CreateDownloadLinkResponse_default_instance_._instance.get_mutable()->expires_at_ = const_cast< ::google::protobuf::Timestamp*>( ::google::protobuf::Timestamp::internal_default_instance()); + ::flyteidl::service::_CreateDownloadLinkResponse_default_instance_._instance.get_mutable()->pre_signed_urls_ = const_cast< ::flyteidl::service::PreSignedURLs*>( + ::flyteidl::service::PreSignedURLs::internal_default_instance()); } class CreateDownloadLinkResponse::HasBitSetters { public: static const ::google::protobuf::Timestamp& expires_at(const CreateDownloadLinkResponse* msg); + static const ::flyteidl::service::PreSignedURLs& pre_signed_urls(const CreateDownloadLinkResponse* msg); }; const ::google::protobuf::Timestamp& CreateDownloadLinkResponse::HasBitSetters::expires_at(const CreateDownloadLinkResponse* msg) { return *msg->expires_at_; } +const ::flyteidl::service::PreSignedURLs& +CreateDownloadLinkResponse::HasBitSetters::pre_signed_urls(const CreateDownloadLinkResponse* msg) { + return *msg->pre_signed_urls_; +} void CreateDownloadLinkResponse::clear_expires_at() { if (GetArenaNoVirtual() == nullptr && expires_at_ != nullptr) { delete expires_at_; @@ -2548,6 +2660,7 @@ void CreateDownloadLinkResponse::clear_expires_at() { #if !defined(_MSC_VER) || _MSC_VER >= 1900 const int CreateDownloadLinkResponse::kSignedUrlFieldNumber; const int CreateDownloadLinkResponse::kExpiresAtFieldNumber; +const int CreateDownloadLinkResponse::kPreSignedUrlsFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 CreateDownloadLinkResponse::CreateDownloadLinkResponse() @@ -2565,13 +2678,20 @@ CreateDownloadLinkResponse::CreateDownloadLinkResponse(const CreateDownloadLinkR } else { expires_at_ = nullptr; } + if (from.has_pre_signed_urls()) { + pre_signed_urls_ = new ::flyteidl::service::PreSignedURLs(*from.pre_signed_urls_); + } else { + pre_signed_urls_ = nullptr; + } // @@protoc_insertion_point(copy_constructor:flyteidl.service.CreateDownloadLinkResponse) } void CreateDownloadLinkResponse::SharedCtor() { ::google::protobuf::internal::InitSCC( &scc_info_CreateDownloadLinkResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); - expires_at_ = nullptr; + ::memset(&expires_at_, 0, static_cast( + reinterpret_cast(&pre_signed_urls_) - + reinterpret_cast(&expires_at_)) + sizeof(pre_signed_urls_)); } CreateDownloadLinkResponse::~CreateDownloadLinkResponse() { @@ -2581,6 +2701,7 @@ CreateDownloadLinkResponse::~CreateDownloadLinkResponse() { void CreateDownloadLinkResponse::SharedDtor() { if (this != internal_default_instance()) delete expires_at_; + if (this != internal_default_instance()) delete pre_signed_urls_; } void CreateDownloadLinkResponse::SetCachedSize(int size) const { @@ -2603,6 +2724,10 @@ void CreateDownloadLinkResponse::Clear() { delete expires_at_; } expires_at_ = nullptr; + if (GetArenaNoVirtual() == nullptr && pre_signed_urls_ != nullptr) { + delete pre_signed_urls_; + } + pre_signed_urls_ = nullptr; _internal_metadata_.Clear(); } @@ -2619,7 +2744,7 @@ const char* CreateDownloadLinkResponse::_InternalParse(const char* begin, const ptr = ::google::protobuf::io::Parse32(ptr, &tag); GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); switch (tag >> 3) { - // repeated string signed_url = 1; + // repeated string signed_url = 1 [deprecated = true]; case 1: { if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; do { @@ -2638,7 +2763,7 @@ const char* CreateDownloadLinkResponse::_InternalParse(const char* begin, const } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1)); break; } - // .google.protobuf.Timestamp expires_at = 2; + // .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; case 2: { if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; ptr = ::google::protobuf::io::ReadSize(ptr, &size); @@ -2651,6 +2776,19 @@ const char* CreateDownloadLinkResponse::_InternalParse(const char* begin, const {parser_till_end, object}, ptr - size, ptr)); break; } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + case 3: { + if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::service::PreSignedURLs::_InternalParse; + object = msg->mutable_pre_signed_urls(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } default: { handle_unusual: if ((tag & 7) == 4 || tag == 0) { @@ -2685,7 +2823,7 @@ bool CreateDownloadLinkResponse::MergePartialFromCodedStream( tag = p.first; if (!p.second) goto handle_unusual; switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // repeated string signed_url = 1; + // repeated string signed_url = 1 [deprecated = true]; case 1: { if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadString( @@ -2701,7 +2839,7 @@ bool CreateDownloadLinkResponse::MergePartialFromCodedStream( break; } - // .google.protobuf.Timestamp expires_at = 2; + // .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; case 2: { if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( @@ -2712,6 +2850,17 @@ bool CreateDownloadLinkResponse::MergePartialFromCodedStream( break; } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + case 3: { + if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_pre_signed_urls())); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -2739,7 +2888,7 @@ void CreateDownloadLinkResponse::SerializeWithCachedSizes( ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // repeated string signed_url = 1; + // repeated string signed_url = 1 [deprecated = true]; for (int i = 0, n = this->signed_url_size(); i < n; i++) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->signed_url(i).data(), static_cast(this->signed_url(i).length()), @@ -2749,12 +2898,18 @@ void CreateDownloadLinkResponse::SerializeWithCachedSizes( 1, this->signed_url(i), output); } - // .google.protobuf.Timestamp expires_at = 2; + // .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; if (this->has_expires_at()) { ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( 2, HasBitSetters::expires_at(this), output); } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + if (this->has_pre_signed_urls()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 3, HasBitSetters::pre_signed_urls(this), output); + } + if (_internal_metadata_.have_unknown_fields()) { ::google::protobuf::internal::WireFormat::SerializeUnknownFields( _internal_metadata_.unknown_fields(), output); @@ -2768,7 +2923,7 @@ ::google::protobuf::uint8* CreateDownloadLinkResponse::InternalSerializeWithCach ::google::protobuf::uint32 cached_has_bits = 0; (void) cached_has_bits; - // repeated string signed_url = 1; + // repeated string signed_url = 1 [deprecated = true]; for (int i = 0, n = this->signed_url_size(); i < n; i++) { ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( this->signed_url(i).data(), static_cast(this->signed_url(i).length()), @@ -2778,13 +2933,20 @@ ::google::protobuf::uint8* CreateDownloadLinkResponse::InternalSerializeWithCach WriteStringToArray(1, this->signed_url(i), target); } - // .google.protobuf.Timestamp expires_at = 2; + // .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; if (this->has_expires_at()) { target = ::google::protobuf::internal::WireFormatLite:: InternalWriteMessageToArray( 2, HasBitSetters::expires_at(this), target); } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + if (this->has_pre_signed_urls()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 3, HasBitSetters::pre_signed_urls(this), target); + } + if (_internal_metadata_.have_unknown_fields()) { target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields(), target); @@ -2806,7 +2968,7 @@ size_t CreateDownloadLinkResponse::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // repeated string signed_url = 1; + // repeated string signed_url = 1 [deprecated = true]; total_size += 1 * ::google::protobuf::internal::FromIntSize(this->signed_url_size()); for (int i = 0, n = this->signed_url_size(); i < n; i++) { @@ -2814,13 +2976,20 @@ size_t CreateDownloadLinkResponse::ByteSizeLong() const { this->signed_url(i)); } - // .google.protobuf.Timestamp expires_at = 2; + // .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; if (this->has_expires_at()) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::MessageSize( *expires_at_); } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + if (this->has_pre_signed_urls()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *pre_signed_urls_); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -2852,6 +3021,9 @@ void CreateDownloadLinkResponse::MergeFrom(const CreateDownloadLinkResponse& fro if (from.has_expires_at()) { mutable_expires_at()->::google::protobuf::Timestamp::MergeFrom(from.expires_at()); } + if (from.has_pre_signed_urls()) { + mutable_pre_signed_urls()->::flyteidl::service::PreSignedURLs::MergeFrom(from.pre_signed_urls()); + } } void CreateDownloadLinkResponse::CopyFrom(const ::google::protobuf::Message& from) { @@ -2881,6 +3053,7 @@ void CreateDownloadLinkResponse::InternalSwap(CreateDownloadLinkResponse* other) _internal_metadata_.Swap(&other->_internal_metadata_); signed_url_.InternalSwap(CastToBase(&other->signed_url_)); swap(expires_at_, other->expires_at_); + swap(pre_signed_urls_, other->pre_signed_urls_); } ::google::protobuf::Metadata CreateDownloadLinkResponse::GetMetadata() const { @@ -2889,28 +3062,1115 @@ ::google::protobuf::Metadata CreateDownloadLinkResponse::GetMetadata() const { } -// @@protoc_insertion_point(namespace_scope) -} // namespace service -} // namespace flyteidl -namespace google { -namespace protobuf { -template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateUploadLocationResponse* Arena::CreateMaybeMessage< ::flyteidl::service::CreateUploadLocationResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::service::CreateUploadLocationResponse >(arena); +// =================================================================== + +void PreSignedURLs::InitAsDefaultInstance() { + ::flyteidl::service::_PreSignedURLs_default_instance_._instance.get_mutable()->expires_at_ = const_cast< ::google::protobuf::Timestamp*>( + ::google::protobuf::Timestamp::internal_default_instance()); } -template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateUploadLocationRequest* Arena::CreateMaybeMessage< ::flyteidl::service::CreateUploadLocationRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::service::CreateUploadLocationRequest >(arena); +class PreSignedURLs::HasBitSetters { + public: + static const ::google::protobuf::Timestamp& expires_at(const PreSignedURLs* msg); +}; + +const ::google::protobuf::Timestamp& +PreSignedURLs::HasBitSetters::expires_at(const PreSignedURLs* msg) { + return *msg->expires_at_; } -template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLocationRequest* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLocationRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLocationRequest >(arena); +void PreSignedURLs::clear_expires_at() { + if (GetArenaNoVirtual() == nullptr && expires_at_ != nullptr) { + delete expires_at_; + } + expires_at_ = nullptr; } -template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLocationResponse* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLocationResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLocationResponse >(arena); +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int PreSignedURLs::kSignedUrlFieldNumber; +const int PreSignedURLs::kExpiresAtFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +PreSignedURLs::PreSignedURLs() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.service.PreSignedURLs) } -template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLinkRequest* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLinkRequest >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLinkRequest >(arena); +PreSignedURLs::PreSignedURLs(const PreSignedURLs& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr), + signed_url_(from.signed_url_) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + if (from.has_expires_at()) { + expires_at_ = new ::google::protobuf::Timestamp(*from.expires_at_); + } else { + expires_at_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:flyteidl.service.PreSignedURLs) } -template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLinkResponse* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLinkResponse >(Arena* arena) { - return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLinkResponse >(arena); + +void PreSignedURLs::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto.base); + expires_at_ = nullptr; +} + +PreSignedURLs::~PreSignedURLs() { + // @@protoc_insertion_point(destructor:flyteidl.service.PreSignedURLs) + SharedDtor(); +} + +void PreSignedURLs::SharedDtor() { + if (this != internal_default_instance()) delete expires_at_; +} + +void PreSignedURLs::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const PreSignedURLs& PreSignedURLs::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_PreSignedURLs_flyteidl_2fservice_2fdataproxy_2eproto.base); + return *internal_default_instance(); +} + + +void PreSignedURLs::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.service.PreSignedURLs) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + signed_url_.Clear(); + if (GetArenaNoVirtual() == nullptr && expires_at_ != nullptr) { + delete expires_at_; + } + expires_at_ = nullptr; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* PreSignedURLs::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // repeated string signed_url = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + do { + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.service.PreSignedURLs.signed_url"); + object = msg->add_signed_url(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + if (ptr >= end) break; + } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1)); + break; + } + // .google.protobuf.Timestamp expires_at = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::google::protobuf::Timestamp::_InternalParse; + object = msg->mutable_expires_at(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool PreSignedURLs::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.service.PreSignedURLs) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // repeated string signed_url = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->add_signed_url())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->signed_url(this->signed_url_size() - 1).data(), + static_cast(this->signed_url(this->signed_url_size() - 1).length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.service.PreSignedURLs.signed_url")); + } else { + goto handle_unusual; + } + break; + } + + // .google.protobuf.Timestamp expires_at = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_expires_at())); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.service.PreSignedURLs) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.service.PreSignedURLs) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void PreSignedURLs::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.service.PreSignedURLs) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string signed_url = 1; + for (int i = 0, n = this->signed_url_size(); i < n; i++) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->signed_url(i).data(), static_cast(this->signed_url(i).length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.service.PreSignedURLs.signed_url"); + ::google::protobuf::internal::WireFormatLite::WriteString( + 1, this->signed_url(i), output); + } + + // .google.protobuf.Timestamp expires_at = 2; + if (this->has_expires_at()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, HasBitSetters::expires_at(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.service.PreSignedURLs) +} + +::google::protobuf::uint8* PreSignedURLs::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.service.PreSignedURLs) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // repeated string signed_url = 1; + for (int i = 0, n = this->signed_url_size(); i < n; i++) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->signed_url(i).data(), static_cast(this->signed_url(i).length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.service.PreSignedURLs.signed_url"); + target = ::google::protobuf::internal::WireFormatLite:: + WriteStringToArray(1, this->signed_url(i), target); + } + + // .google.protobuf.Timestamp expires_at = 2; + if (this->has_expires_at()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 2, HasBitSetters::expires_at(this), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.service.PreSignedURLs) + return target; +} + +size_t PreSignedURLs::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.service.PreSignedURLs) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated string signed_url = 1; + total_size += 1 * + ::google::protobuf::internal::FromIntSize(this->signed_url_size()); + for (int i = 0, n = this->signed_url_size(); i < n; i++) { + total_size += ::google::protobuf::internal::WireFormatLite::StringSize( + this->signed_url(i)); + } + + // .google.protobuf.Timestamp expires_at = 2; + if (this->has_expires_at()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *expires_at_); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void PreSignedURLs::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.service.PreSignedURLs) + GOOGLE_DCHECK_NE(&from, this); + const PreSignedURLs* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.service.PreSignedURLs) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.service.PreSignedURLs) + MergeFrom(*source); + } +} + +void PreSignedURLs::MergeFrom(const PreSignedURLs& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.service.PreSignedURLs) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + signed_url_.MergeFrom(from.signed_url_); + if (from.has_expires_at()) { + mutable_expires_at()->::google::protobuf::Timestamp::MergeFrom(from.expires_at()); + } +} + +void PreSignedURLs::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.service.PreSignedURLs) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void PreSignedURLs::CopyFrom(const PreSignedURLs& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.service.PreSignedURLs) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool PreSignedURLs::IsInitialized() const { + return true; +} + +void PreSignedURLs::Swap(PreSignedURLs* other) { + if (other == this) return; + InternalSwap(other); +} +void PreSignedURLs::InternalSwap(PreSignedURLs* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + signed_url_.InternalSwap(CastToBase(&other->signed_url_)); + swap(expires_at_, other->expires_at_); +} + +::google::protobuf::Metadata PreSignedURLs::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto); + return ::file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void GetDataRequest::InitAsDefaultInstance() { +} +class GetDataRequest::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int GetDataRequest::kFlyteUrlFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +GetDataRequest::GetDataRequest() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.service.GetDataRequest) +} +GetDataRequest::GetDataRequest(const GetDataRequest& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + flyte_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.flyte_url().size() > 0) { + flyte_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.flyte_url_); + } + // @@protoc_insertion_point(copy_constructor:flyteidl.service.GetDataRequest) +} + +void GetDataRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_GetDataRequest_flyteidl_2fservice_2fdataproxy_2eproto.base); + flyte_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +GetDataRequest::~GetDataRequest() { + // @@protoc_insertion_point(destructor:flyteidl.service.GetDataRequest) + SharedDtor(); +} + +void GetDataRequest::SharedDtor() { + flyte_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void GetDataRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetDataRequest& GetDataRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_GetDataRequest_flyteidl_2fservice_2fdataproxy_2eproto.base); + return *internal_default_instance(); +} + + +void GetDataRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.service.GetDataRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + flyte_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* GetDataRequest::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // string flyte_url = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.service.GetDataRequest.flyte_url"); + object = msg->mutable_flyte_url(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool GetDataRequest::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.service.GetDataRequest) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // string flyte_url = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_flyte_url())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->flyte_url().data(), static_cast(this->flyte_url().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.service.GetDataRequest.flyte_url")); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.service.GetDataRequest) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.service.GetDataRequest) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void GetDataRequest::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.service.GetDataRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string flyte_url = 1; + if (this->flyte_url().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->flyte_url().data(), static_cast(this->flyte_url().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.service.GetDataRequest.flyte_url"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->flyte_url(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.service.GetDataRequest) +} + +::google::protobuf::uint8* GetDataRequest::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.service.GetDataRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string flyte_url = 1; + if (this->flyte_url().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->flyte_url().data(), static_cast(this->flyte_url().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.service.GetDataRequest.flyte_url"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->flyte_url(), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.service.GetDataRequest) + return target; +} + +size_t GetDataRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.service.GetDataRequest) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string flyte_url = 1; + if (this->flyte_url().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->flyte_url()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetDataRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.service.GetDataRequest) + GOOGLE_DCHECK_NE(&from, this); + const GetDataRequest* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.service.GetDataRequest) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.service.GetDataRequest) + MergeFrom(*source); + } +} + +void GetDataRequest::MergeFrom(const GetDataRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.service.GetDataRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.flyte_url().size() > 0) { + + flyte_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.flyte_url_); + } +} + +void GetDataRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.service.GetDataRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetDataRequest::CopyFrom(const GetDataRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.service.GetDataRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetDataRequest::IsInitialized() const { + return true; +} + +void GetDataRequest::Swap(GetDataRequest* other) { + if (other == this) return; + InternalSwap(other); +} +void GetDataRequest::InternalSwap(GetDataRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + flyte_url_.Swap(&other->flyte_url_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); +} + +::google::protobuf::Metadata GetDataRequest::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto); + return ::file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void GetDataResponse::InitAsDefaultInstance() { + ::flyteidl::service::_GetDataResponse_default_instance_.literal_map_ = const_cast< ::flyteidl::core::LiteralMap*>( + ::flyteidl::core::LiteralMap::internal_default_instance()); + ::flyteidl::service::_GetDataResponse_default_instance_.pre_signed_urls_ = const_cast< ::flyteidl::service::PreSignedURLs*>( + ::flyteidl::service::PreSignedURLs::internal_default_instance()); +} +class GetDataResponse::HasBitSetters { + public: + static const ::flyteidl::core::LiteralMap& literal_map(const GetDataResponse* msg); + static const ::flyteidl::service::PreSignedURLs& pre_signed_urls(const GetDataResponse* msg); +}; + +const ::flyteidl::core::LiteralMap& +GetDataResponse::HasBitSetters::literal_map(const GetDataResponse* msg) { + return *msg->data_.literal_map_; +} +const ::flyteidl::service::PreSignedURLs& +GetDataResponse::HasBitSetters::pre_signed_urls(const GetDataResponse* msg) { + return *msg->data_.pre_signed_urls_; +} +void GetDataResponse::set_allocated_literal_map(::flyteidl::core::LiteralMap* literal_map) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_data(); + if (literal_map) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + literal_map = ::google::protobuf::internal::GetOwnedMessage( + message_arena, literal_map, submessage_arena); + } + set_has_literal_map(); + data_.literal_map_ = literal_map; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.service.GetDataResponse.literal_map) +} +void GetDataResponse::clear_literal_map() { + if (has_literal_map()) { + delete data_.literal_map_; + clear_has_data(); + } +} +void GetDataResponse::set_allocated_pre_signed_urls(::flyteidl::service::PreSignedURLs* pre_signed_urls) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + clear_data(); + if (pre_signed_urls) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + pre_signed_urls = ::google::protobuf::internal::GetOwnedMessage( + message_arena, pre_signed_urls, submessage_arena); + } + set_has_pre_signed_urls(); + data_.pre_signed_urls_ = pre_signed_urls; + } + // @@protoc_insertion_point(field_set_allocated:flyteidl.service.GetDataResponse.pre_signed_urls) +} +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int GetDataResponse::kLiteralMapFieldNumber; +const int GetDataResponse::kPreSignedUrlsFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +GetDataResponse::GetDataResponse() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.service.GetDataResponse) +} +GetDataResponse::GetDataResponse(const GetDataResponse& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + clear_has_data(); + switch (from.data_case()) { + case kLiteralMap: { + mutable_literal_map()->::flyteidl::core::LiteralMap::MergeFrom(from.literal_map()); + break; + } + case kPreSignedUrls: { + mutable_pre_signed_urls()->::flyteidl::service::PreSignedURLs::MergeFrom(from.pre_signed_urls()); + break; + } + case DATA_NOT_SET: { + break; + } + } + // @@protoc_insertion_point(copy_constructor:flyteidl.service.GetDataResponse) +} + +void GetDataResponse::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_GetDataResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); + clear_has_data(); +} + +GetDataResponse::~GetDataResponse() { + // @@protoc_insertion_point(destructor:flyteidl.service.GetDataResponse) + SharedDtor(); +} + +void GetDataResponse::SharedDtor() { + if (has_data()) { + clear_data(); + } +} + +void GetDataResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const GetDataResponse& GetDataResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_GetDataResponse_flyteidl_2fservice_2fdataproxy_2eproto.base); + return *internal_default_instance(); +} + + +void GetDataResponse::clear_data() { +// @@protoc_insertion_point(one_of_clear_start:flyteidl.service.GetDataResponse) + switch (data_case()) { + case kLiteralMap: { + delete data_.literal_map_; + break; + } + case kPreSignedUrls: { + delete data_.pre_signed_urls_; + break; + } + case DATA_NOT_SET: { + break; + } + } + _oneof_case_[0] = DATA_NOT_SET; +} + + +void GetDataResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.service.GetDataResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + clear_data(); + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* GetDataResponse::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // .flyteidl.core.LiteralMap literal_map = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::core::LiteralMap::_InternalParse; + object = msg->mutable_literal_map(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::service::PreSignedURLs::_InternalParse; + object = msg->mutable_pre_signed_urls(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool GetDataResponse::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.service.GetDataResponse) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // .flyteidl.core.LiteralMap literal_map = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_literal_map())); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_pre_signed_urls())); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.service.GetDataResponse) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.service.GetDataResponse) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void GetDataResponse::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.service.GetDataResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.core.LiteralMap literal_map = 1; + if (has_literal_map()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 1, HasBitSetters::literal_map(this), output); + } + + // .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + if (has_pre_signed_urls()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, HasBitSetters::pre_signed_urls(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.service.GetDataResponse) +} + +::google::protobuf::uint8* GetDataResponse::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.service.GetDataResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.core.LiteralMap literal_map = 1; + if (has_literal_map()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 1, HasBitSetters::literal_map(this), target); + } + + // .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + if (has_pre_signed_urls()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 2, HasBitSetters::pre_signed_urls(this), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.service.GetDataResponse) + return target; +} + +size_t GetDataResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.service.GetDataResponse) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + switch (data_case()) { + // .flyteidl.core.LiteralMap literal_map = 1; + case kLiteralMap: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *data_.literal_map_); + break; + } + // .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + case kPreSignedUrls: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *data_.pre_signed_urls_); + break; + } + case DATA_NOT_SET: { + break; + } + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void GetDataResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.service.GetDataResponse) + GOOGLE_DCHECK_NE(&from, this); + const GetDataResponse* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.service.GetDataResponse) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.service.GetDataResponse) + MergeFrom(*source); + } +} + +void GetDataResponse::MergeFrom(const GetDataResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.service.GetDataResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + switch (from.data_case()) { + case kLiteralMap: { + mutable_literal_map()->::flyteidl::core::LiteralMap::MergeFrom(from.literal_map()); + break; + } + case kPreSignedUrls: { + mutable_pre_signed_urls()->::flyteidl::service::PreSignedURLs::MergeFrom(from.pre_signed_urls()); + break; + } + case DATA_NOT_SET: { + break; + } + } +} + +void GetDataResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.service.GetDataResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void GetDataResponse::CopyFrom(const GetDataResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.service.GetDataResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetDataResponse::IsInitialized() const { + return true; +} + +void GetDataResponse::Swap(GetDataResponse* other) { + if (other == this) return; + InternalSwap(other); +} +void GetDataResponse::InternalSwap(GetDataResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(data_, other->data_); + swap(_oneof_case_[0], other->_oneof_case_[0]); +} + +::google::protobuf::Metadata GetDataResponse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fservice_2fdataproxy_2eproto); + return ::file_level_metadata_flyteidl_2fservice_2fdataproxy_2eproto[kIndexInFileMessages]; +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace service +} // namespace flyteidl +namespace google { +namespace protobuf { +template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateUploadLocationResponse* Arena::CreateMaybeMessage< ::flyteidl::service::CreateUploadLocationResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::CreateUploadLocationResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateUploadLocationRequest* Arena::CreateMaybeMessage< ::flyteidl::service::CreateUploadLocationRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::CreateUploadLocationRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLocationRequest* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLocationRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLocationRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLocationResponse* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLocationResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLocationResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLinkRequest* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLinkRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLinkRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::CreateDownloadLinkResponse* Arena::CreateMaybeMessage< ::flyteidl::service::CreateDownloadLinkResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::CreateDownloadLinkResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::PreSignedURLs* Arena::CreateMaybeMessage< ::flyteidl::service::PreSignedURLs >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::PreSignedURLs >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::GetDataRequest* Arena::CreateMaybeMessage< ::flyteidl::service::GetDataRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::GetDataRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::service::GetDataResponse* Arena::CreateMaybeMessage< ::flyteidl::service::GetDataResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::service::GetDataResponse >(arena); } } // namespace protobuf } // namespace google diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h index 9a45afda1..c62937f87 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/dataproxy.pb.h @@ -36,6 +36,7 @@ #include #include #include "flyteidl/core/identifier.pb.h" +#include "flyteidl/core/literals.pb.h" // @@protoc_insertion_point(includes) #include #define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fservice_2fdataproxy_2eproto @@ -46,7 +47,7 @@ struct TableStruct_flyteidl_2fservice_2fdataproxy_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::google::protobuf::internal::ParseTable schema[6] + static const ::google::protobuf::internal::ParseTable schema[9] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::google::protobuf::internal::FieldMetadata field_metadata[]; static const ::google::protobuf::internal::SerializationTable serialization_table[]; @@ -73,6 +74,15 @@ extern CreateUploadLocationRequestDefaultTypeInternal _CreateUploadLocationReque class CreateUploadLocationResponse; class CreateUploadLocationResponseDefaultTypeInternal; extern CreateUploadLocationResponseDefaultTypeInternal _CreateUploadLocationResponse_default_instance_; +class GetDataRequest; +class GetDataRequestDefaultTypeInternal; +extern GetDataRequestDefaultTypeInternal _GetDataRequest_default_instance_; +class GetDataResponse; +class GetDataResponseDefaultTypeInternal; +extern GetDataResponseDefaultTypeInternal _GetDataResponse_default_instance_; +class PreSignedURLs; +class PreSignedURLsDefaultTypeInternal; +extern PreSignedURLsDefaultTypeInternal _PreSignedURLs_default_instance_; } // namespace service } // namespace flyteidl namespace google { @@ -83,6 +93,9 @@ template<> ::flyteidl::service::CreateDownloadLocationRequest* Arena::CreateMayb template<> ::flyteidl::service::CreateDownloadLocationResponse* Arena::CreateMaybeMessage<::flyteidl::service::CreateDownloadLocationResponse>(Arena*); template<> ::flyteidl::service::CreateUploadLocationRequest* Arena::CreateMaybeMessage<::flyteidl::service::CreateUploadLocationRequest>(Arena*); template<> ::flyteidl::service::CreateUploadLocationResponse* Arena::CreateMaybeMessage<::flyteidl::service::CreateUploadLocationResponse>(Arena*); +template<> ::flyteidl::service::GetDataRequest* Arena::CreateMaybeMessage<::flyteidl::service::GetDataRequest>(Arena*); +template<> ::flyteidl::service::GetDataResponse* Arena::CreateMaybeMessage<::flyteidl::service::GetDataResponse>(Arena*); +template<> ::flyteidl::service::PreSignedURLs* Arena::CreateMaybeMessage<::flyteidl::service::PreSignedURLs>(Arena*); } // namespace protobuf } // namespace google namespace flyteidl { @@ -934,6 +947,154 @@ class CreateDownloadLinkResponse final : // accessors ------------------------------------------------------- + // repeated string signed_url = 1 [deprecated = true]; + PROTOBUF_DEPRECATED int signed_url_size() const; + PROTOBUF_DEPRECATED void clear_signed_url(); + PROTOBUF_DEPRECATED static const int kSignedUrlFieldNumber = 1; + PROTOBUF_DEPRECATED const ::std::string& signed_url(int index) const; + PROTOBUF_DEPRECATED ::std::string* mutable_signed_url(int index); + PROTOBUF_DEPRECATED void set_signed_url(int index, const ::std::string& value); + #if LANG_CXX11 + PROTOBUF_DEPRECATED void set_signed_url(int index, ::std::string&& value); + #endif + PROTOBUF_DEPRECATED void set_signed_url(int index, const char* value); + PROTOBUF_DEPRECATED void set_signed_url(int index, const char* value, size_t size); + PROTOBUF_DEPRECATED ::std::string* add_signed_url(); + PROTOBUF_DEPRECATED void add_signed_url(const ::std::string& value); + #if LANG_CXX11 + PROTOBUF_DEPRECATED void add_signed_url(::std::string&& value); + #endif + PROTOBUF_DEPRECATED void add_signed_url(const char* value); + PROTOBUF_DEPRECATED void add_signed_url(const char* value, size_t size); + PROTOBUF_DEPRECATED const ::google::protobuf::RepeatedPtrField<::std::string>& signed_url() const; + PROTOBUF_DEPRECATED ::google::protobuf::RepeatedPtrField<::std::string>* mutable_signed_url(); + + // .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; + PROTOBUF_DEPRECATED bool has_expires_at() const; + PROTOBUF_DEPRECATED void clear_expires_at(); + PROTOBUF_DEPRECATED static const int kExpiresAtFieldNumber = 2; + PROTOBUF_DEPRECATED const ::google::protobuf::Timestamp& expires_at() const; + PROTOBUF_DEPRECATED ::google::protobuf::Timestamp* release_expires_at(); + PROTOBUF_DEPRECATED ::google::protobuf::Timestamp* mutable_expires_at(); + PROTOBUF_DEPRECATED void set_allocated_expires_at(::google::protobuf::Timestamp* expires_at); + + // .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + bool has_pre_signed_urls() const; + void clear_pre_signed_urls(); + static const int kPreSignedUrlsFieldNumber = 3; + const ::flyteidl::service::PreSignedURLs& pre_signed_urls() const; + ::flyteidl::service::PreSignedURLs* release_pre_signed_urls(); + ::flyteidl::service::PreSignedURLs* mutable_pre_signed_urls(); + void set_allocated_pre_signed_urls(::flyteidl::service::PreSignedURLs* pre_signed_urls); + + // @@protoc_insertion_point(class_scope:flyteidl.service.CreateDownloadLinkResponse) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::RepeatedPtrField<::std::string> signed_url_; + ::google::protobuf::Timestamp* expires_at_; + ::flyteidl::service::PreSignedURLs* pre_signed_urls_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fservice_2fdataproxy_2eproto; +}; +// ------------------------------------------------------------------- + +class PreSignedURLs final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.service.PreSignedURLs) */ { + public: + PreSignedURLs(); + virtual ~PreSignedURLs(); + + PreSignedURLs(const PreSignedURLs& from); + + inline PreSignedURLs& operator=(const PreSignedURLs& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + PreSignedURLs(PreSignedURLs&& from) noexcept + : PreSignedURLs() { + *this = ::std::move(from); + } + + inline PreSignedURLs& operator=(PreSignedURLs&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const PreSignedURLs& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const PreSignedURLs* internal_default_instance() { + return reinterpret_cast( + &_PreSignedURLs_default_instance_); + } + static constexpr int kIndexInFileMessages = + 6; + + void Swap(PreSignedURLs* other); + friend void swap(PreSignedURLs& a, PreSignedURLs& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline PreSignedURLs* New() const final { + return CreateMaybeMessage(nullptr); + } + + PreSignedURLs* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const PreSignedURLs& from); + void MergeFrom(const PreSignedURLs& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(PreSignedURLs* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + // repeated string signed_url = 1; int signed_url_size() const; void clear_signed_url(); @@ -965,7 +1126,7 @@ class CreateDownloadLinkResponse final : ::google::protobuf::Timestamp* mutable_expires_at(); void set_allocated_expires_at(::google::protobuf::Timestamp* expires_at); - // @@protoc_insertion_point(class_scope:flyteidl.service.CreateDownloadLinkResponse) + // @@protoc_insertion_point(class_scope:flyteidl.service.PreSignedURLs) private: class HasBitSetters; @@ -975,6 +1136,269 @@ class CreateDownloadLinkResponse final : mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::TableStruct_flyteidl_2fservice_2fdataproxy_2eproto; }; +// ------------------------------------------------------------------- + +class GetDataRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.service.GetDataRequest) */ { + public: + GetDataRequest(); + virtual ~GetDataRequest(); + + GetDataRequest(const GetDataRequest& from); + + inline GetDataRequest& operator=(const GetDataRequest& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + GetDataRequest(GetDataRequest&& from) noexcept + : GetDataRequest() { + *this = ::std::move(from); + } + + inline GetDataRequest& operator=(GetDataRequest&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const GetDataRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetDataRequest* internal_default_instance() { + return reinterpret_cast( + &_GetDataRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 7; + + void Swap(GetDataRequest* other); + friend void swap(GetDataRequest& a, GetDataRequest& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline GetDataRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + GetDataRequest* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const GetDataRequest& from); + void MergeFrom(const GetDataRequest& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetDataRequest* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // string flyte_url = 1; + void clear_flyte_url(); + static const int kFlyteUrlFieldNumber = 1; + const ::std::string& flyte_url() const; + void set_flyte_url(const ::std::string& value); + #if LANG_CXX11 + void set_flyte_url(::std::string&& value); + #endif + void set_flyte_url(const char* value); + void set_flyte_url(const char* value, size_t size); + ::std::string* mutable_flyte_url(); + ::std::string* release_flyte_url(); + void set_allocated_flyte_url(::std::string* flyte_url); + + // @@protoc_insertion_point(class_scope:flyteidl.service.GetDataRequest) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr flyte_url_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fservice_2fdataproxy_2eproto; +}; +// ------------------------------------------------------------------- + +class GetDataResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.service.GetDataResponse) */ { + public: + GetDataResponse(); + virtual ~GetDataResponse(); + + GetDataResponse(const GetDataResponse& from); + + inline GetDataResponse& operator=(const GetDataResponse& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + GetDataResponse(GetDataResponse&& from) noexcept + : GetDataResponse() { + *this = ::std::move(from); + } + + inline GetDataResponse& operator=(GetDataResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const GetDataResponse& default_instance(); + + enum DataCase { + kLiteralMap = 1, + kPreSignedUrls = 2, + DATA_NOT_SET = 0, + }; + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const GetDataResponse* internal_default_instance() { + return reinterpret_cast( + &_GetDataResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 8; + + void Swap(GetDataResponse* other); + friend void swap(GetDataResponse& a, GetDataResponse& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline GetDataResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + GetDataResponse* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const GetDataResponse& from); + void MergeFrom(const GetDataResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetDataResponse* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // .flyteidl.core.LiteralMap literal_map = 1; + bool has_literal_map() const; + void clear_literal_map(); + static const int kLiteralMapFieldNumber = 1; + const ::flyteidl::core::LiteralMap& literal_map() const; + ::flyteidl::core::LiteralMap* release_literal_map(); + ::flyteidl::core::LiteralMap* mutable_literal_map(); + void set_allocated_literal_map(::flyteidl::core::LiteralMap* literal_map); + + // .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + bool has_pre_signed_urls() const; + void clear_pre_signed_urls(); + static const int kPreSignedUrlsFieldNumber = 2; + const ::flyteidl::service::PreSignedURLs& pre_signed_urls() const; + ::flyteidl::service::PreSignedURLs* release_pre_signed_urls(); + ::flyteidl::service::PreSignedURLs* mutable_pre_signed_urls(); + void set_allocated_pre_signed_urls(::flyteidl::service::PreSignedURLs* pre_signed_urls); + + void clear_data(); + DataCase data_case() const; + // @@protoc_insertion_point(class_scope:flyteidl.service.GetDataResponse) + private: + class HasBitSetters; + void set_has_literal_map(); + void set_has_pre_signed_urls(); + + inline bool has_data() const; + inline void clear_has_data(); + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + union DataUnion { + DataUnion() {} + ::flyteidl::core::LiteralMap* literal_map_; + ::flyteidl::service::PreSignedURLs* pre_signed_urls_; + } data_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + ::google::protobuf::uint32 _oneof_case_[1]; + + friend struct ::TableStruct_flyteidl_2fservice_2fdataproxy_2eproto; +}; // =================================================================== @@ -1718,7 +2142,7 @@ inline CreateDownloadLinkRequest::SourceCase CreateDownloadLinkRequest::source_c // CreateDownloadLinkResponse -// repeated string signed_url = 1; +// repeated string signed_url = 1 [deprecated = true]; inline int CreateDownloadLinkResponse::signed_url_size() const { return signed_url_.size(); } @@ -1787,7 +2211,7 @@ CreateDownloadLinkResponse::mutable_signed_url() { return &signed_url_; } -// .google.protobuf.Timestamp expires_at = 2; +// .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; inline bool CreateDownloadLinkResponse::has_expires_at() const { return this != internal_default_instance() && expires_at_ != nullptr; } @@ -1833,6 +2257,322 @@ inline void CreateDownloadLinkResponse::set_allocated_expires_at(::google::proto // @@protoc_insertion_point(field_set_allocated:flyteidl.service.CreateDownloadLinkResponse.expires_at) } +// .flyteidl.service.PreSignedURLs pre_signed_urls = 3; +inline bool CreateDownloadLinkResponse::has_pre_signed_urls() const { + return this != internal_default_instance() && pre_signed_urls_ != nullptr; +} +inline void CreateDownloadLinkResponse::clear_pre_signed_urls() { + if (GetArenaNoVirtual() == nullptr && pre_signed_urls_ != nullptr) { + delete pre_signed_urls_; + } + pre_signed_urls_ = nullptr; +} +inline const ::flyteidl::service::PreSignedURLs& CreateDownloadLinkResponse::pre_signed_urls() const { + const ::flyteidl::service::PreSignedURLs* p = pre_signed_urls_; + // @@protoc_insertion_point(field_get:flyteidl.service.CreateDownloadLinkResponse.pre_signed_urls) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::service::_PreSignedURLs_default_instance_); +} +inline ::flyteidl::service::PreSignedURLs* CreateDownloadLinkResponse::release_pre_signed_urls() { + // @@protoc_insertion_point(field_release:flyteidl.service.CreateDownloadLinkResponse.pre_signed_urls) + + ::flyteidl::service::PreSignedURLs* temp = pre_signed_urls_; + pre_signed_urls_ = nullptr; + return temp; +} +inline ::flyteidl::service::PreSignedURLs* CreateDownloadLinkResponse::mutable_pre_signed_urls() { + + if (pre_signed_urls_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::service::PreSignedURLs>(GetArenaNoVirtual()); + pre_signed_urls_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.service.CreateDownloadLinkResponse.pre_signed_urls) + return pre_signed_urls_; +} +inline void CreateDownloadLinkResponse::set_allocated_pre_signed_urls(::flyteidl::service::PreSignedURLs* pre_signed_urls) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete pre_signed_urls_; + } + if (pre_signed_urls) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + pre_signed_urls = ::google::protobuf::internal::GetOwnedMessage( + message_arena, pre_signed_urls, submessage_arena); + } + + } else { + + } + pre_signed_urls_ = pre_signed_urls; + // @@protoc_insertion_point(field_set_allocated:flyteidl.service.CreateDownloadLinkResponse.pre_signed_urls) +} + +// ------------------------------------------------------------------- + +// PreSignedURLs + +// repeated string signed_url = 1; +inline int PreSignedURLs::signed_url_size() const { + return signed_url_.size(); +} +inline void PreSignedURLs::clear_signed_url() { + signed_url_.Clear(); +} +inline const ::std::string& PreSignedURLs::signed_url(int index) const { + // @@protoc_insertion_point(field_get:flyteidl.service.PreSignedURLs.signed_url) + return signed_url_.Get(index); +} +inline ::std::string* PreSignedURLs::mutable_signed_url(int index) { + // @@protoc_insertion_point(field_mutable:flyteidl.service.PreSignedURLs.signed_url) + return signed_url_.Mutable(index); +} +inline void PreSignedURLs::set_signed_url(int index, const ::std::string& value) { + // @@protoc_insertion_point(field_set:flyteidl.service.PreSignedURLs.signed_url) + signed_url_.Mutable(index)->assign(value); +} +#if LANG_CXX11 +inline void PreSignedURLs::set_signed_url(int index, ::std::string&& value) { + // @@protoc_insertion_point(field_set:flyteidl.service.PreSignedURLs.signed_url) + signed_url_.Mutable(index)->assign(std::move(value)); +} +#endif +inline void PreSignedURLs::set_signed_url(int index, const char* value) { + GOOGLE_DCHECK(value != nullptr); + signed_url_.Mutable(index)->assign(value); + // @@protoc_insertion_point(field_set_char:flyteidl.service.PreSignedURLs.signed_url) +} +inline void PreSignedURLs::set_signed_url(int index, const char* value, size_t size) { + signed_url_.Mutable(index)->assign( + reinterpret_cast(value), size); + // @@protoc_insertion_point(field_set_pointer:flyteidl.service.PreSignedURLs.signed_url) +} +inline ::std::string* PreSignedURLs::add_signed_url() { + // @@protoc_insertion_point(field_add_mutable:flyteidl.service.PreSignedURLs.signed_url) + return signed_url_.Add(); +} +inline void PreSignedURLs::add_signed_url(const ::std::string& value) { + signed_url_.Add()->assign(value); + // @@protoc_insertion_point(field_add:flyteidl.service.PreSignedURLs.signed_url) +} +#if LANG_CXX11 +inline void PreSignedURLs::add_signed_url(::std::string&& value) { + signed_url_.Add(std::move(value)); + // @@protoc_insertion_point(field_add:flyteidl.service.PreSignedURLs.signed_url) +} +#endif +inline void PreSignedURLs::add_signed_url(const char* value) { + GOOGLE_DCHECK(value != nullptr); + signed_url_.Add()->assign(value); + // @@protoc_insertion_point(field_add_char:flyteidl.service.PreSignedURLs.signed_url) +} +inline void PreSignedURLs::add_signed_url(const char* value, size_t size) { + signed_url_.Add()->assign(reinterpret_cast(value), size); + // @@protoc_insertion_point(field_add_pointer:flyteidl.service.PreSignedURLs.signed_url) +} +inline const ::google::protobuf::RepeatedPtrField<::std::string>& +PreSignedURLs::signed_url() const { + // @@protoc_insertion_point(field_list:flyteidl.service.PreSignedURLs.signed_url) + return signed_url_; +} +inline ::google::protobuf::RepeatedPtrField<::std::string>* +PreSignedURLs::mutable_signed_url() { + // @@protoc_insertion_point(field_mutable_list:flyteidl.service.PreSignedURLs.signed_url) + return &signed_url_; +} + +// .google.protobuf.Timestamp expires_at = 2; +inline bool PreSignedURLs::has_expires_at() const { + return this != internal_default_instance() && expires_at_ != nullptr; +} +inline const ::google::protobuf::Timestamp& PreSignedURLs::expires_at() const { + const ::google::protobuf::Timestamp* p = expires_at_; + // @@protoc_insertion_point(field_get:flyteidl.service.PreSignedURLs.expires_at) + return p != nullptr ? *p : *reinterpret_cast( + &::google::protobuf::_Timestamp_default_instance_); +} +inline ::google::protobuf::Timestamp* PreSignedURLs::release_expires_at() { + // @@protoc_insertion_point(field_release:flyteidl.service.PreSignedURLs.expires_at) + + ::google::protobuf::Timestamp* temp = expires_at_; + expires_at_ = nullptr; + return temp; +} +inline ::google::protobuf::Timestamp* PreSignedURLs::mutable_expires_at() { + + if (expires_at_ == nullptr) { + auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual()); + expires_at_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.service.PreSignedURLs.expires_at) + return expires_at_; +} +inline void PreSignedURLs::set_allocated_expires_at(::google::protobuf::Timestamp* expires_at) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(expires_at_); + } + if (expires_at) { + ::google::protobuf::Arena* submessage_arena = + reinterpret_cast<::google::protobuf::MessageLite*>(expires_at)->GetArena(); + if (message_arena != submessage_arena) { + expires_at = ::google::protobuf::internal::GetOwnedMessage( + message_arena, expires_at, submessage_arena); + } + + } else { + + } + expires_at_ = expires_at; + // @@protoc_insertion_point(field_set_allocated:flyteidl.service.PreSignedURLs.expires_at) +} + +// ------------------------------------------------------------------- + +// GetDataRequest + +// string flyte_url = 1; +inline void GetDataRequest::clear_flyte_url() { + flyte_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& GetDataRequest::flyte_url() const { + // @@protoc_insertion_point(field_get:flyteidl.service.GetDataRequest.flyte_url) + return flyte_url_.GetNoArena(); +} +inline void GetDataRequest::set_flyte_url(const ::std::string& value) { + + flyte_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.service.GetDataRequest.flyte_url) +} +#if LANG_CXX11 +inline void GetDataRequest::set_flyte_url(::std::string&& value) { + + flyte_url_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.service.GetDataRequest.flyte_url) +} +#endif +inline void GetDataRequest::set_flyte_url(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + flyte_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.service.GetDataRequest.flyte_url) +} +inline void GetDataRequest::set_flyte_url(const char* value, size_t size) { + + flyte_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.service.GetDataRequest.flyte_url) +} +inline ::std::string* GetDataRequest::mutable_flyte_url() { + + // @@protoc_insertion_point(field_mutable:flyteidl.service.GetDataRequest.flyte_url) + return flyte_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* GetDataRequest::release_flyte_url() { + // @@protoc_insertion_point(field_release:flyteidl.service.GetDataRequest.flyte_url) + + return flyte_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void GetDataRequest::set_allocated_flyte_url(::std::string* flyte_url) { + if (flyte_url != nullptr) { + + } else { + + } + flyte_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), flyte_url); + // @@protoc_insertion_point(field_set_allocated:flyteidl.service.GetDataRequest.flyte_url) +} + +// ------------------------------------------------------------------- + +// GetDataResponse + +// .flyteidl.core.LiteralMap literal_map = 1; +inline bool GetDataResponse::has_literal_map() const { + return data_case() == kLiteralMap; +} +inline void GetDataResponse::set_has_literal_map() { + _oneof_case_[0] = kLiteralMap; +} +inline ::flyteidl::core::LiteralMap* GetDataResponse::release_literal_map() { + // @@protoc_insertion_point(field_release:flyteidl.service.GetDataResponse.literal_map) + if (has_literal_map()) { + clear_has_data(); + ::flyteidl::core::LiteralMap* temp = data_.literal_map_; + data_.literal_map_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::flyteidl::core::LiteralMap& GetDataResponse::literal_map() const { + // @@protoc_insertion_point(field_get:flyteidl.service.GetDataResponse.literal_map) + return has_literal_map() + ? *data_.literal_map_ + : *reinterpret_cast< ::flyteidl::core::LiteralMap*>(&::flyteidl::core::_LiteralMap_default_instance_); +} +inline ::flyteidl::core::LiteralMap* GetDataResponse::mutable_literal_map() { + if (!has_literal_map()) { + clear_data(); + set_has_literal_map(); + data_.literal_map_ = CreateMaybeMessage< ::flyteidl::core::LiteralMap >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:flyteidl.service.GetDataResponse.literal_map) + return data_.literal_map_; +} + +// .flyteidl.service.PreSignedURLs pre_signed_urls = 2; +inline bool GetDataResponse::has_pre_signed_urls() const { + return data_case() == kPreSignedUrls; +} +inline void GetDataResponse::set_has_pre_signed_urls() { + _oneof_case_[0] = kPreSignedUrls; +} +inline void GetDataResponse::clear_pre_signed_urls() { + if (has_pre_signed_urls()) { + delete data_.pre_signed_urls_; + clear_has_data(); + } +} +inline ::flyteidl::service::PreSignedURLs* GetDataResponse::release_pre_signed_urls() { + // @@protoc_insertion_point(field_release:flyteidl.service.GetDataResponse.pre_signed_urls) + if (has_pre_signed_urls()) { + clear_has_data(); + ::flyteidl::service::PreSignedURLs* temp = data_.pre_signed_urls_; + data_.pre_signed_urls_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::flyteidl::service::PreSignedURLs& GetDataResponse::pre_signed_urls() const { + // @@protoc_insertion_point(field_get:flyteidl.service.GetDataResponse.pre_signed_urls) + return has_pre_signed_urls() + ? *data_.pre_signed_urls_ + : *reinterpret_cast< ::flyteidl::service::PreSignedURLs*>(&::flyteidl::service::_PreSignedURLs_default_instance_); +} +inline ::flyteidl::service::PreSignedURLs* GetDataResponse::mutable_pre_signed_urls() { + if (!has_pre_signed_urls()) { + clear_data(); + set_has_pre_signed_urls(); + data_.pre_signed_urls_ = CreateMaybeMessage< ::flyteidl::service::PreSignedURLs >( + GetArenaNoVirtual()); + } + // @@protoc_insertion_point(field_mutable:flyteidl.service.GetDataResponse.pre_signed_urls) + return data_.pre_signed_urls_; +} + +inline bool GetDataResponse::has_data() const { + return data_case() != DATA_NOT_SET; +} +inline void GetDataResponse::clear_has_data() { + _oneof_case_[0] = DATA_NOT_SET; +} +inline GetDataResponse::DataCase GetDataResponse::data_case() const { + return GetDataResponse::DataCase(_oneof_case_[0]); +} #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ @@ -1846,6 +2586,12 @@ inline void CreateDownloadLinkResponse::set_allocated_expires_at(::google::proto // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go index e450b7661..f6f6484ce 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/common.pb.go @@ -1351,6 +1351,62 @@ func (m *RawOutputDataConfig) GetOutputLocationPrefix() string { return "" } +// These URLs are returned as part of node and task execution data requests. +type FlyteURLs struct { + Inputs string `protobuf:"bytes,1,opt,name=inputs,proto3" json:"inputs,omitempty"` + Outputs string `protobuf:"bytes,2,opt,name=outputs,proto3" json:"outputs,omitempty"` + Deck string `protobuf:"bytes,3,opt,name=deck,proto3" json:"deck,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FlyteURLs) Reset() { *m = FlyteURLs{} } +func (m *FlyteURLs) String() string { return proto.CompactTextString(m) } +func (*FlyteURLs) ProtoMessage() {} +func (*FlyteURLs) Descriptor() ([]byte, []int) { + return fileDescriptor_7c2cf612a185829c, []int{22} +} + +func (m *FlyteURLs) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FlyteURLs.Unmarshal(m, b) +} +func (m *FlyteURLs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FlyteURLs.Marshal(b, m, deterministic) +} +func (m *FlyteURLs) XXX_Merge(src proto.Message) { + xxx_messageInfo_FlyteURLs.Merge(m, src) +} +func (m *FlyteURLs) XXX_Size() int { + return xxx_messageInfo_FlyteURLs.Size(m) +} +func (m *FlyteURLs) XXX_DiscardUnknown() { + xxx_messageInfo_FlyteURLs.DiscardUnknown(m) +} + +var xxx_messageInfo_FlyteURLs proto.InternalMessageInfo + +func (m *FlyteURLs) GetInputs() string { + if m != nil { + return m.Inputs + } + return "" +} + +func (m *FlyteURLs) GetOutputs() string { + if m != nil { + return m.Outputs + } + return "" +} + +func (m *FlyteURLs) GetDeck() string { + if m != nil { + return m.Deck + } + return "" +} + func init() { proto.RegisterEnum("flyteidl.admin.NamedEntityState", NamedEntityState_name, NamedEntityState_value) proto.RegisterEnum("flyteidl.admin.Sort_Direction", Sort_Direction_name, Sort_Direction_value) @@ -1378,80 +1434,84 @@ func init() { proto.RegisterMapType((map[string]string)(nil), "flyteidl.admin.Annotations.ValuesEntry") proto.RegisterType((*AuthRole)(nil), "flyteidl.admin.AuthRole") proto.RegisterType((*RawOutputDataConfig)(nil), "flyteidl.admin.RawOutputDataConfig") + proto.RegisterType((*FlyteURLs)(nil), "flyteidl.admin.FlyteURLs") } func init() { proto.RegisterFile("flyteidl/admin/common.proto", fileDescriptor_7c2cf612a185829c) } var fileDescriptor_7c2cf612a185829c = []byte{ - // 1117 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x73, 0xdb, 0x44, - 0x10, 0x8f, 0xfc, 0x95, 0x7a, 0xdd, 0xa6, 0xee, 0x25, 0x0d, 0x4e, 0x32, 0x94, 0x20, 0x86, 0x8f, - 0x76, 0xa8, 0x3d, 0x13, 0x08, 0xa5, 0x99, 0x92, 0xe2, 0xc4, 0x22, 0xf1, 0x90, 0xb8, 0x19, 0xd9, - 0x0d, 0x53, 0x06, 0x46, 0x9c, 0xa5, 0xb3, 0x73, 0x44, 0xd2, 0x89, 0xd3, 0xa9, 0xad, 0x79, 0x61, - 0xe0, 0x8d, 0x37, 0x1e, 0xf8, 0x87, 0x78, 0x62, 0x78, 0xe7, 0x0f, 0x62, 0x74, 0xfa, 0xb0, 0xec, - 0x38, 0x81, 0xa4, 0x9d, 0xe1, 0xcd, 0x7b, 0xfb, 0xdb, 0xbb, 0xdf, 0xfe, 0x6e, 0x77, 0x75, 0x86, - 0xb5, 0x81, 0x3d, 0x12, 0x84, 0x5a, 0x76, 0x03, 0x5b, 0x0e, 0x75, 0x1b, 0x26, 0x73, 0x1c, 0xe6, - 0xd6, 0x3d, 0xce, 0x04, 0x43, 0x0b, 0x89, 0xb3, 0x2e, 0x9d, 0xab, 0x6f, 0xa6, 0x60, 0x93, 0x71, - 0xd2, 0x20, 0x2f, 0x89, 0x19, 0x08, 0x9a, 0xc0, 0x57, 0xef, 0x4c, 0xba, 0xa9, 0x45, 0x5c, 0x41, - 0x07, 0x94, 0xf0, 0xd8, 0xff, 0xd6, 0x90, 0xb1, 0xa1, 0x4d, 0x1a, 0xd2, 0xea, 0x07, 0x83, 0x86, - 0xa0, 0x0e, 0xf1, 0x05, 0x76, 0xbc, 0x08, 0xa0, 0x7e, 0x0b, 0xb7, 0x3b, 0xd8, 0x21, 0x96, 0xe6, - 0x0a, 0x2a, 0x46, 0xed, 0x34, 0x1e, 0xd5, 0x60, 0xde, 0xe3, 0xec, 0x7b, 0x62, 0x8a, 0x9a, 0xb2, - 0xae, 0x7c, 0x50, 0xd6, 0x13, 0x13, 0x2d, 0x43, 0xc9, 0x62, 0x0e, 0xa6, 0x6e, 0x2d, 0x27, 0x1d, - 0xb1, 0x85, 0x10, 0x14, 0x5c, 0xec, 0x90, 0x5a, 0x5e, 0xae, 0xca, 0xdf, 0x2a, 0x83, 0xc5, 0xcc, - 0xf6, 0x87, 0x44, 0x60, 0x0b, 0x0b, 0x8c, 0xd6, 0xa1, 0x62, 0x11, 0xdf, 0xe4, 0xd4, 0x0b, 0x73, - 0x89, 0x0f, 0xc8, 0x2e, 0xa1, 0x4f, 0xa0, 0xe8, 0x0b, 0x2c, 0x88, 0x3c, 0x63, 0x61, 0x63, 0xbd, - 0x3e, 0xa9, 0x4b, 0x3d, 0xb3, 0x6b, 0x37, 0xc4, 0xe9, 0x11, 0x5c, 0xfd, 0x53, 0x81, 0x4a, 0xc6, - 0x87, 0x3e, 0x87, 0x1b, 0x9c, 0xf8, 0x2c, 0xe0, 0x26, 0x31, 0xc4, 0xc8, 0x23, 0xf2, 0xac, 0x85, - 0x8d, 0xb5, 0xf1, 0x7e, 0xa1, 0x70, 0x75, 0x3d, 0xc6, 0xf4, 0x46, 0x1e, 0xd1, 0xaf, 0xf3, 0x8c, - 0x85, 0x36, 0x21, 0x47, 0x2d, 0x49, 0xa3, 0xb2, 0xf1, 0xee, 0x05, 0x34, 0xc6, 0xda, 0xe9, 0x39, - 0x6a, 0xa1, 0xc7, 0x70, 0xcd, 0x89, 0xd3, 0x95, 0x8a, 0x54, 0x36, 0xde, 0xb9, 0x20, 0x38, 0x51, - 0x46, 0x4f, 0x83, 0xd4, 0x5f, 0x14, 0x28, 0x74, 0x19, 0x17, 0xa8, 0x0a, 0xf9, 0x53, 0x32, 0x8a, - 0x45, 0x0a, 0x7f, 0xa2, 0x47, 0x50, 0xb6, 0x28, 0x27, 0xa6, 0x14, 0x2f, 0x12, 0xe8, 0xce, 0xf4, - 0xe6, 0x61, 0x68, 0xbd, 0x95, 0xa0, 0xf4, 0x71, 0x80, 0x7a, 0x0f, 0xca, 0xe9, 0x3a, 0x5a, 0x00, - 0x68, 0x69, 0xdd, 0x5d, 0xad, 0xd3, 0x6a, 0x77, 0xf6, 0xaa, 0x73, 0xe8, 0x06, 0x94, 0x9b, 0xa9, - 0xa9, 0xa8, 0x7f, 0x29, 0xb0, 0x3e, 0x33, 0xc7, 0x03, 0xea, 0x0b, 0x9d, 0xfc, 0x10, 0x10, 0x5f, - 0x5c, 0xa1, 0x54, 0x96, 0xa0, 0x68, 0x53, 0x87, 0x0a, 0xa9, 0xcc, 0x0d, 0x3d, 0x32, 0xc2, 0x55, - 0xc1, 0x4e, 0x89, 0x5b, 0x2b, 0x48, 0x70, 0x64, 0xa0, 0xfb, 0x30, 0xef, 0x33, 0x2e, 0x8c, 0xfe, - 0xa8, 0x56, 0x94, 0x3a, 0x2e, 0xcd, 0x4a, 0x55, 0x2f, 0x85, 0xa0, 0x9d, 0x51, 0x48, 0x66, 0x40, - 0x6d, 0x41, 0xb8, 0x5f, 0x2b, 0x45, 0x64, 0x62, 0x53, 0xfd, 0x39, 0x07, 0xcb, 0x99, 0x5c, 0xb2, - 0x19, 0xbc, 0x7a, 0x95, 0x64, 0x34, 0xc8, 0x9d, 0xa7, 0x41, 0x7e, 0xb6, 0x06, 0x85, 0x99, 0x1a, - 0x14, 0xcf, 0xd1, 0xa0, 0x74, 0x39, 0x0d, 0xe6, 0x27, 0x35, 0x10, 0xb0, 0x72, 0xee, 0x75, 0xa2, - 0x26, 0x5c, 0x0b, 0x6d, 0x41, 0x89, 0x5f, 0x53, 0xd6, 0xf3, 0xff, 0xbd, 0xde, 0xd3, 0xb0, 0x31, - 0xfd, 0x5c, 0x86, 0xbe, 0xfa, 0x1d, 0xdc, 0x9c, 0x12, 0x1e, 0x3d, 0x38, 0x73, 0xd6, 0xda, 0x05, - 0x67, 0xfd, 0xeb, 0x09, 0xbf, 0x29, 0x13, 0x73, 0x6c, 0x8f, 0xbc, 0xc6, 0xab, 0xbd, 0xda, 0x00, - 0x50, 0xff, 0x56, 0xa0, 0x96, 0xf1, 0x3e, 0xf5, 0xac, 0x70, 0x4c, 0xfd, 0xcf, 0xac, 0x5e, 0x7d, - 0x2c, 0xad, 0x4d, 0x54, 0x50, 0x92, 0x95, 0xef, 0x31, 0xd7, 0x27, 0xea, 0x67, 0x50, 0x7d, 0xd2, - 0x0f, 0xab, 0x3e, 0x73, 0x01, 0x77, 0x25, 0x51, 0x45, 0x9e, 0xb5, 0x32, 0x95, 0xdf, 0x94, 0x64, - 0x7f, 0x28, 0xb0, 0x98, 0xa4, 0x9c, 0x6d, 0xcf, 0xcd, 0xcc, 0x16, 0x97, 0xc8, 0x35, 0xed, 0xb0, - 0xdc, 0xcc, 0x0e, 0xcb, 0x67, 0x3b, 0x2c, 0xd3, 0x32, 0x85, 0x89, 0x96, 0xb9, 0xe4, 0xfc, 0x51, - 0xb7, 0xe1, 0x96, 0xe6, 0x60, 0x6a, 0x77, 0x58, 0xc8, 0xc4, 0xc4, 0x72, 0xca, 0xde, 0x85, 0x2a, - 0x27, 0x26, 0xf5, 0x28, 0x71, 0x85, 0x6f, 0x90, 0xd0, 0x2f, 0xab, 0xbe, 0xac, 0xdf, 0x1c, 0xaf, - 0xcb, 0x30, 0x75, 0x07, 0x6e, 0x1f, 0xe1, 0x21, 0xe1, 0xad, 0x40, 0x8c, 0xae, 0xba, 0xc7, 0x36, - 0xdc, 0xea, 0xda, 0xd8, 0x3c, 0xbd, 0x6a, 0xfc, 0xef, 0x39, 0xb8, 0x3e, 0x11, 0xbb, 0x0d, 0x25, - 0xef, 0x04, 0xfb, 0x71, 0xaf, 0x2e, 0x6c, 0xbc, 0x37, 0x75, 0x8f, 0x5f, 0x31, 0x7e, 0x3a, 0xb0, - 0xd9, 0x0b, 0x2d, 0x7d, 0x9e, 0x1c, 0x85, 0x70, 0x3d, 0x8e, 0x42, 0x0f, 0xa1, 0x18, 0x1d, 0x18, - 0xd5, 0xeb, 0xdb, 0xd3, 0x0a, 0x9e, 0x51, 0x6c, 0x7f, 0x4e, 0x8f, 0x22, 0xd0, 0x17, 0x00, 0x5e, - 0xa8, 0x87, 0x61, 0x05, 0x62, 0x14, 0x97, 0xec, 0x99, 0x1a, 0x98, 0xa9, 0xd8, 0xfe, 0x9c, 0x5e, - 0xf6, 0x12, 0x47, 0x48, 0xc1, 0x0f, 0x35, 0x91, 0xd7, 0x3b, 0x83, 0xc2, 0x19, 0xc1, 0x42, 0x0a, - 0x32, 0x62, 0xa7, 0x04, 0x85, 0xb0, 0x47, 0xd5, 0x4d, 0x98, 0x7f, 0xca, 0xed, 0x1d, 0x9b, 0xf5, - 0xc3, 0x6f, 0x72, 0xc0, 0xed, 0xe4, 0x9b, 0x1c, 0x70, 0x3b, 0x2c, 0xab, 0xfe, 0x48, 0x10, 0x5f, - 0xa6, 0x98, 0xd7, 0x23, 0x63, 0x2b, 0x57, 0x53, 0xd4, 0x9f, 0xa0, 0x74, 0x80, 0xfb, 0xc4, 0xf6, - 0xd1, 0x16, 0x94, 0x9e, 0x63, 0x3b, 0x48, 0x47, 0x9e, 0x3a, 0x4d, 0x22, 0xc2, 0xd5, 0x8f, 0x25, - 0x48, 0x73, 0x05, 0x1f, 0xe9, 0x71, 0xc4, 0xea, 0x43, 0xa8, 0x64, 0x96, 0x67, 0x3c, 0x0a, 0x96, - 0xa0, 0x28, 0xa1, 0xc9, 0x60, 0x94, 0xc6, 0x56, 0xee, 0x53, 0x45, 0xfd, 0x55, 0x81, 0x4a, 0xd3, - 0x75, 0x99, 0x90, 0x79, 0xf9, 0xe8, 0xf1, 0x14, 0x8d, 0xf7, 0xa7, 0x69, 0x64, 0xc0, 0xaf, 0x9b, - 0xcb, 0x8f, 0x70, 0xad, 0x19, 0x88, 0x13, 0x9d, 0xd9, 0x04, 0x7d, 0x08, 0x08, 0xfb, 0x7e, 0xe0, - 0xe0, 0xbe, 0x4d, 0x0c, 0x8a, 0x1d, 0x83, 0x33, 0x9b, 0xc4, 0xdb, 0x54, 0x53, 0x4f, 0x1b, 0x3b, - 0x12, 0xfd, 0x08, 0x56, 0x4f, 0x83, 0x3e, 0xe1, 0x2e, 0x11, 0xc4, 0x37, 0x7c, 0xc2, 0x9f, 0x53, - 0x93, 0x18, 0xd8, 0x34, 0x59, 0xe0, 0x26, 0x1f, 0xdd, 0xda, 0x18, 0xd1, 0x8d, 0x00, 0xcd, 0xc8, - 0x2f, 0x2f, 0xe2, 0x4b, 0x58, 0xd4, 0xf1, 0x8b, 0x27, 0x81, 0xf0, 0x02, 0xd1, 0xc2, 0x02, 0xef, - 0x32, 0x77, 0x40, 0x87, 0xe8, 0x63, 0x58, 0x66, 0x72, 0xcd, 0xb0, 0x59, 0x74, 0xf5, 0x86, 0xc7, - 0xc9, 0x80, 0xbe, 0x8c, 0xa9, 0x2c, 0x45, 0xde, 0x83, 0xd8, 0x79, 0x24, 0x7d, 0xf7, 0xbe, 0x81, - 0xea, 0xf4, 0x1b, 0x14, 0xbd, 0x01, 0x8b, 0x9d, 0xe6, 0xa1, 0xd6, 0x32, 0xb4, 0x4e, 0xaf, 0xdd, - 0x7b, 0x66, 0x34, 0x77, 0x7b, 0xed, 0x63, 0xad, 0x3a, 0x87, 0x56, 0xe0, 0xf6, 0xa4, 0x43, 0xdf, - 0xdd, 0x6f, 0x1f, 0x6b, 0xad, 0xaa, 0x82, 0x96, 0xa0, 0xda, 0x7d, 0xd6, 0xed, 0x69, 0x87, 0xc6, - 0x9e, 0xd6, 0xd1, 0xf4, 0x66, 0x4f, 0x6b, 0x55, 0x73, 0x3b, 0x0f, 0xbe, 0xde, 0x1c, 0x52, 0x71, - 0x12, 0xf4, 0xeb, 0x26, 0x73, 0x1a, 0xf2, 0x7a, 0x18, 0x1f, 0x36, 0xd2, 0xd7, 0xfe, 0x90, 0xb8, - 0x0d, 0xaf, 0x7f, 0x7f, 0xc8, 0x1a, 0x93, 0x7f, 0x26, 0xfa, 0x25, 0xf9, 0xac, 0xff, 0xe8, 0x9f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x5f, 0xa6, 0x64, 0x65, 0x0c, 0x00, 0x00, + // 1157 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x93, 0x13, 0x45, + 0x14, 0xde, 0xc9, 0x26, 0x59, 0xf2, 0x02, 0x4b, 0xe8, 0x5d, 0x30, 0xec, 0x96, 0xb8, 0x8e, 0xe5, + 0x0f, 0x28, 0x49, 0xaa, 0x56, 0x57, 0x84, 0x42, 0x30, 0xbb, 0x19, 0x20, 0xe5, 0x12, 0x70, 0x12, + 0xb0, 0xb0, 0xb4, 0xc6, 0xce, 0x4c, 0x27, 0xb4, 0x99, 0x99, 0x1e, 0xbb, 0x7b, 0x80, 0x78, 0xb1, + 0xf4, 0xe6, 0xcd, 0x83, 0xff, 0x90, 0x27, 0xcb, 0xbb, 0x7f, 0x90, 0xd5, 0x3d, 0x33, 0xc9, 0x24, + 0x1b, 0x50, 0x16, 0xaa, 0xbc, 0xcd, 0xeb, 0xf7, 0xbd, 0xee, 0xef, 0x7d, 0xfd, 0xfa, 0x75, 0x0f, + 0x6c, 0x0f, 0xfd, 0x89, 0x24, 0xd4, 0xf3, 0x9b, 0xd8, 0x0b, 0x68, 0xd8, 0x74, 0x59, 0x10, 0xb0, + 0xb0, 0x11, 0x71, 0x26, 0x19, 0x5a, 0xcf, 0x9c, 0x0d, 0xed, 0xdc, 0x7a, 0x73, 0x0a, 0x76, 0x19, + 0x27, 0x4d, 0xf2, 0x8c, 0xb8, 0xb1, 0xa4, 0x19, 0x7c, 0xeb, 0xc2, 0xbc, 0x9b, 0x7a, 0x24, 0x94, + 0x74, 0x48, 0x09, 0x4f, 0xfd, 0x6f, 0x8d, 0x18, 0x1b, 0xf9, 0xa4, 0xa9, 0xad, 0x41, 0x3c, 0x6c, + 0x4a, 0x1a, 0x10, 0x21, 0x71, 0x10, 0x25, 0x00, 0xf3, 0x5b, 0x38, 0xdb, 0xc5, 0x01, 0xf1, 0xac, + 0x50, 0x52, 0x39, 0xe9, 0x4c, 0xe3, 0x51, 0x1d, 0xd6, 0x22, 0xce, 0xbe, 0x27, 0xae, 0xac, 0x1b, + 0x3b, 0xc6, 0x07, 0x15, 0x3b, 0x33, 0xd1, 0x39, 0x28, 0x7b, 0x2c, 0xc0, 0x34, 0xac, 0x17, 0xb4, + 0x23, 0xb5, 0x10, 0x82, 0x62, 0x88, 0x03, 0x52, 0x5f, 0xd5, 0xa3, 0xfa, 0xdb, 0x64, 0xb0, 0x91, + 0x9b, 0xfe, 0x2e, 0x91, 0xd8, 0xc3, 0x12, 0xa3, 0x1d, 0xa8, 0x7a, 0x44, 0xb8, 0x9c, 0x46, 0x2a, + 0x97, 0x74, 0x81, 0xfc, 0x10, 0xfa, 0x04, 0x4a, 0x42, 0x62, 0x49, 0xf4, 0x1a, 0xeb, 0xbb, 0x3b, + 0x8d, 0x79, 0x5d, 0x1a, 0xb9, 0x59, 0x7b, 0x0a, 0x67, 0x27, 0x70, 0xf3, 0x4f, 0x03, 0xaa, 0x39, + 0x1f, 0xfa, 0x1c, 0x4e, 0x71, 0x22, 0x58, 0xcc, 0x5d, 0xe2, 0xc8, 0x49, 0x44, 0xf4, 0x5a, 0xeb, + 0xbb, 0xdb, 0xb3, 0xf9, 0x94, 0x70, 0x0d, 0x3b, 0xc5, 0xf4, 0x27, 0x11, 0xb1, 0x4f, 0xf2, 0x9c, + 0x85, 0xf6, 0xa0, 0x40, 0x3d, 0x4d, 0xa3, 0xba, 0xfb, 0xee, 0x0b, 0x68, 0xcc, 0xb4, 0xb3, 0x0b, + 0xd4, 0x43, 0x37, 0xe1, 0x44, 0x90, 0xa6, 0xab, 0x15, 0xa9, 0xee, 0xbe, 0xf3, 0x82, 0xe0, 0x4c, + 0x19, 0x7b, 0x1a, 0x64, 0xfe, 0x62, 0x40, 0xb1, 0xc7, 0xb8, 0x44, 0x35, 0x58, 0x1d, 0x93, 0x49, + 0x2a, 0x92, 0xfa, 0x44, 0xd7, 0xa1, 0xe2, 0x51, 0x4e, 0x5c, 0x2d, 0x5e, 0x22, 0xd0, 0x85, 0xc5, + 0xc9, 0x55, 0x68, 0xa3, 0x9d, 0xa1, 0xec, 0x59, 0x80, 0x79, 0x09, 0x2a, 0xd3, 0x71, 0xb4, 0x0e, + 0xd0, 0xb6, 0x7a, 0x07, 0x56, 0xb7, 0xdd, 0xe9, 0xde, 0xae, 0xad, 0xa0, 0x53, 0x50, 0x69, 0x4d, + 0x4d, 0xc3, 0xfc, 0xcb, 0x80, 0x9d, 0xa5, 0x39, 0x1e, 0x52, 0x21, 0x6d, 0xf2, 0x43, 0x4c, 0x84, + 0x3c, 0x46, 0xa9, 0x6c, 0x42, 0xc9, 0xa7, 0x01, 0x95, 0x5a, 0x99, 0x53, 0x76, 0x62, 0xa8, 0x51, + 0xc9, 0xc6, 0x24, 0xac, 0x17, 0x35, 0x38, 0x31, 0xd0, 0x65, 0x58, 0x13, 0x8c, 0x4b, 0x67, 0x30, + 0xa9, 0x97, 0xb4, 0x8e, 0x9b, 0xcb, 0x52, 0xb5, 0xcb, 0x0a, 0xb4, 0x3f, 0x51, 0x64, 0x86, 0xd4, + 0x97, 0x84, 0x8b, 0x7a, 0x39, 0x21, 0x93, 0x9a, 0xe6, 0xcf, 0x05, 0x38, 0x97, 0xcb, 0x25, 0x9f, + 0xc1, 0xab, 0x57, 0x49, 0x4e, 0x83, 0xc2, 0xf3, 0x34, 0x58, 0x5d, 0xae, 0x41, 0x71, 0xa9, 0x06, + 0xa5, 0xe7, 0x68, 0x50, 0x7e, 0x39, 0x0d, 0xd6, 0xe6, 0x35, 0x90, 0x70, 0xfe, 0xb9, 0xdb, 0x89, + 0x5a, 0x70, 0x42, 0xd9, 0x92, 0x12, 0x51, 0x37, 0x76, 0x56, 0xff, 0x7b, 0xbd, 0x4f, 0xc3, 0x66, + 0xf4, 0x0b, 0x39, 0xfa, 0xe6, 0x77, 0x70, 0x7a, 0x41, 0x78, 0x74, 0xe5, 0xc8, 0x5a, 0xdb, 0x2f, + 0x58, 0xeb, 0x5f, 0x57, 0xf8, 0xcd, 0x98, 0xeb, 0x63, 0xb7, 0xc9, 0x6b, 0xdc, 0xda, 0xe3, 0x35, + 0x00, 0xf3, 0x6f, 0x03, 0xea, 0x39, 0xef, 0x83, 0xc8, 0x53, 0x6d, 0xea, 0x7f, 0x66, 0xf5, 0xea, + 0x6d, 0x69, 0x7b, 0xae, 0x82, 0xb2, 0xac, 0x44, 0xc4, 0x42, 0x41, 0xcc, 0xcf, 0xa0, 0x76, 0x6f, + 0xa0, 0xaa, 0x3e, 0xb7, 0x01, 0x17, 0x35, 0x51, 0x43, 0xaf, 0x75, 0x7e, 0x21, 0xbf, 0x05, 0xc9, + 0xfe, 0x30, 0x60, 0x23, 0x4b, 0x39, 0x7f, 0x3c, 0xf7, 0x72, 0x53, 0xbc, 0x44, 0xae, 0xd3, 0x13, + 0x56, 0x58, 0x7a, 0xc2, 0x56, 0xf3, 0x27, 0x2c, 0x77, 0x64, 0x8a, 0x73, 0x47, 0xe6, 0x25, 0xfb, + 0x8f, 0x79, 0x03, 0xce, 0x58, 0x01, 0xa6, 0x7e, 0x97, 0x29, 0x26, 0x2e, 0xd6, 0x5d, 0xf6, 0x22, + 0xd4, 0x38, 0x71, 0x69, 0x44, 0x49, 0x28, 0x85, 0x43, 0x94, 0x5f, 0x57, 0x7d, 0xc5, 0x3e, 0x3d, + 0x1b, 0xd7, 0x61, 0xe6, 0x3e, 0x9c, 0xbd, 0x8f, 0x47, 0x84, 0xb7, 0x63, 0x39, 0x39, 0xee, 0x1c, + 0x37, 0xe0, 0x4c, 0xcf, 0xc7, 0xee, 0xf8, 0xb8, 0xf1, 0xbf, 0x17, 0xe0, 0xe4, 0x5c, 0xec, 0x0d, + 0x28, 0x47, 0x8f, 0xb1, 0x48, 0xcf, 0xea, 0xfa, 0xee, 0x7b, 0x0b, 0xfb, 0xf8, 0x15, 0xe3, 0xe3, + 0xa1, 0xcf, 0x9e, 0x5a, 0xd3, 0xe7, 0xc9, 0x7d, 0x05, 0xb7, 0xd3, 0x28, 0x74, 0x15, 0x4a, 0xc9, + 0x82, 0x49, 0xbd, 0xbe, 0xbd, 0xa8, 0xe0, 0x11, 0xc5, 0xee, 0xac, 0xd8, 0x49, 0x04, 0xba, 0x05, + 0x10, 0x29, 0x3d, 0x1c, 0x2f, 0x96, 0x93, 0xb4, 0x64, 0x8f, 0xd4, 0xc0, 0x52, 0xc5, 0xee, 0xac, + 0xd8, 0x95, 0x28, 0x73, 0x28, 0x0a, 0x42, 0x69, 0xa2, 0xb7, 0x77, 0x09, 0x85, 0x23, 0x82, 0x29, + 0x0a, 0x3a, 0x62, 0xbf, 0x0c, 0x45, 0x75, 0x46, 0xcd, 0x3d, 0x58, 0x7b, 0xc0, 0xfd, 0x7d, 0x9f, + 0x0d, 0xd4, 0x9d, 0x1c, 0x73, 0x3f, 0xbb, 0x93, 0x63, 0xee, 0xab, 0xb2, 0x1a, 0x4c, 0x24, 0x11, + 0x3a, 0xc5, 0x55, 0x3b, 0x31, 0xae, 0x15, 0xea, 0x86, 0xf9, 0x13, 0x94, 0x0f, 0xf1, 0x80, 0xf8, + 0x02, 0x5d, 0x83, 0xf2, 0x13, 0xec, 0xc7, 0xd3, 0x96, 0x67, 0x2e, 0x92, 0x48, 0x70, 0x8d, 0x87, + 0x1a, 0x64, 0x85, 0x92, 0x4f, 0xec, 0x34, 0x62, 0xeb, 0x2a, 0x54, 0x73, 0xc3, 0x4b, 0x1e, 0x05, + 0x9b, 0x50, 0xd2, 0xd0, 0xac, 0x31, 0x6a, 0xe3, 0x5a, 0xe1, 0x53, 0xc3, 0xfc, 0xd5, 0x80, 0x6a, + 0x2b, 0x0c, 0x99, 0xd4, 0x79, 0x09, 0x74, 0x73, 0x81, 0xc6, 0xfb, 0x8b, 0x34, 0x72, 0xe0, 0xd7, + 0xcd, 0xe5, 0x47, 0x38, 0xd1, 0x8a, 0xe5, 0x63, 0x9b, 0xf9, 0x04, 0x7d, 0x08, 0x08, 0x0b, 0x11, + 0x07, 0x78, 0xe0, 0x13, 0x87, 0xe2, 0xc0, 0xe1, 0xcc, 0x27, 0xe9, 0x34, 0xb5, 0xa9, 0xa7, 0x83, + 0x03, 0x8d, 0xbe, 0x0e, 0x5b, 0xe3, 0x78, 0x40, 0x78, 0x48, 0x24, 0x11, 0x8e, 0x20, 0xfc, 0x09, + 0x75, 0x89, 0x83, 0x5d, 0x97, 0xc5, 0x61, 0x76, 0xe9, 0xd6, 0x67, 0x88, 0x5e, 0x02, 0x68, 0x25, + 0x7e, 0xbd, 0x11, 0x5f, 0xc0, 0x86, 0x8d, 0x9f, 0xde, 0x8b, 0x65, 0x14, 0xcb, 0x36, 0x96, 0xf8, + 0x80, 0x85, 0x43, 0x3a, 0x42, 0x1f, 0xc3, 0x39, 0xa6, 0xc7, 0x1c, 0x9f, 0x25, 0x5b, 0xef, 0x44, + 0x9c, 0x0c, 0xe9, 0xb3, 0x94, 0xca, 0x66, 0xe2, 0x3d, 0x4c, 0x9d, 0xf7, 0xb5, 0xcf, 0xfc, 0x12, + 0x2a, 0xb7, 0x94, 0x6a, 0x0f, 0xec, 0x43, 0xa1, 0xee, 0x78, 0x1a, 0x46, 0xb1, 0x14, 0x69, 0x48, + 0x6a, 0xa9, 0xae, 0x92, 0x04, 0x8b, 0xec, 0x55, 0x90, 0x9a, 0xea, 0xb1, 0xec, 0x11, 0x77, 0x9c, + 0x3d, 0x96, 0xd5, 0xf7, 0xa5, 0x6f, 0xa0, 0xb6, 0xf8, 0xac, 0x45, 0x6f, 0xc0, 0x46, 0xb7, 0x75, + 0xd7, 0x6a, 0x3b, 0x56, 0xb7, 0xdf, 0xe9, 0x3f, 0x72, 0x5a, 0x07, 0xfd, 0xce, 0x43, 0xab, 0xb6, + 0x82, 0xce, 0xc3, 0xd9, 0x79, 0x87, 0x7d, 0x70, 0xa7, 0xf3, 0xd0, 0x6a, 0xd7, 0x0c, 0xb4, 0x09, + 0xb5, 0xde, 0xa3, 0x5e, 0xdf, 0xba, 0xeb, 0xdc, 0xb6, 0xba, 0x96, 0xdd, 0xea, 0x5b, 0xed, 0x5a, + 0x61, 0xff, 0xca, 0xd7, 0x7b, 0x23, 0x2a, 0x1f, 0xc7, 0x83, 0x86, 0xcb, 0x82, 0xa6, 0xde, 0x71, + 0xc6, 0x47, 0xcd, 0xe9, 0x0f, 0xc4, 0x88, 0x84, 0xcd, 0x68, 0x70, 0x79, 0xc4, 0x9a, 0xf3, 0xff, + 0x27, 0x83, 0xb2, 0xfe, 0x53, 0xf8, 0xe8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x25, 0x7f, 0xbf, + 0x38, 0xb8, 0x0c, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/common.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/admin/common.pb.validate.go index 2e1d38dfc..c5e000b5d 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/common.pb.validate.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/common.pb.validate.go @@ -1734,3 +1734,73 @@ var _ interface { Cause() error ErrorName() string } = RawOutputDataConfigValidationError{} + +// Validate checks the field values on FlyteURLs with the rules defined in the +// proto definition for this message. If any rules are violated, an error is returned. +func (m *FlyteURLs) Validate() error { + if m == nil { + return nil + } + + // no validation rules for Inputs + + // no validation rules for Outputs + + // no validation rules for Deck + + return nil +} + +// FlyteURLsValidationError is the validation error returned by +// FlyteURLs.Validate if the designated constraints aren't met. +type FlyteURLsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e FlyteURLsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e FlyteURLsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e FlyteURLsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e FlyteURLsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e FlyteURLsValidationError) ErrorName() string { return "FlyteURLsValidationError" } + +// Error satisfies the builtin error interface +func (e FlyteURLsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sFlyteURLs.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = FlyteURLsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = FlyteURLsValidationError{} diff --git a/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go index beed50cd4..4e69dbc4d 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go @@ -865,6 +865,7 @@ type NodeExecutionGetDataResponse struct { FullOutputs *core.LiteralMap `protobuf:"bytes,4,opt,name=full_outputs,json=fullOutputs,proto3" json:"full_outputs,omitempty"` // Optional Workflow closure for a dynamically generated workflow, in the case this node yields a dynamic workflow we return its structure here. DynamicWorkflow *DynamicWorkflowNodeMetadata `protobuf:"bytes,16,opt,name=dynamic_workflow,json=dynamicWorkflow,proto3" json:"dynamic_workflow,omitempty"` + FlyteUrls *FlyteURLs `protobuf:"bytes,17,opt,name=flyte_urls,json=flyteUrls,proto3" json:"flyte_urls,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -932,6 +933,13 @@ func (m *NodeExecutionGetDataResponse) GetDynamicWorkflow() *DynamicWorkflowNode return nil } +func (m *NodeExecutionGetDataResponse) GetFlyteUrls() *FlyteURLs { + if m != nil { + return m.FlyteUrls + } + return nil +} + func init() { proto.RegisterType((*NodeExecutionGetRequest)(nil), "flyteidl.admin.NodeExecutionGetRequest") proto.RegisterType((*NodeExecutionListRequest)(nil), "flyteidl.admin.NodeExecutionListRequest") @@ -952,78 +960,80 @@ func init() { } var fileDescriptor_f73b3eae493fd736 = []byte{ - // 1164 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x6e, 0x1b, 0xc5, - 0x17, 0xef, 0x3a, 0x4d, 0x62, 0x1f, 0x27, 0x8e, 0x33, 0x7f, 0xf7, 0x5f, 0xb7, 0xe9, 0x87, 0xd9, - 0xb6, 0x28, 0x80, 0x6a, 0x4b, 0xae, 0xc2, 0x97, 0x10, 0x10, 0x27, 0xfd, 0x08, 0xb4, 0x50, 0x26, - 0x0d, 0x48, 0x08, 0xb1, 0x1a, 0xef, 0x8e, 0x9d, 0xc1, 0xeb, 0x9d, 0xed, 0xcc, 0xac, 0x82, 0x1f, - 0x85, 0x2b, 0x5e, 0x85, 0x27, 0xe0, 0x09, 0xb8, 0x47, 0xe2, 0x01, 0xb8, 0x46, 0x33, 0x3b, 0xbb, - 0xf6, 0x6e, 0xdd, 0x44, 0x2a, 0x17, 0x5c, 0xce, 0x39, 0xbf, 0xf3, 0x39, 0xbf, 0x73, 0x66, 0x17, - 0xee, 0x8c, 0xc2, 0x99, 0xa2, 0x2c, 0x08, 0x7b, 0x24, 0x98, 0xb2, 0xa8, 0x17, 0xf1, 0x80, 0x7a, - 0xf4, 0x67, 0xea, 0x27, 0x8a, 0xf1, 0xa8, 0x1b, 0x0b, 0xae, 0x38, 0x6a, 0x64, 0xa0, 0xae, 0x01, - 0x5d, 0xdf, 0x29, 0x19, 0xf9, 0x7c, 0x3a, 0xcd, 0xc0, 0xd7, 0x6f, 0xe6, 0x4a, 0x9f, 0x0b, 0xda, - 0x2b, 0xf9, 0x5a, 0xb0, 0x35, 0x6a, 0x9f, 0x28, 0x12, 0xf2, 0xb1, 0x55, 0xde, 0x28, 0x29, 0xf9, - 0x34, 0x66, 0x21, 0x15, 0x56, 0x7b, 0xab, 0xa8, 0x65, 0x01, 0x8d, 0x14, 0x1b, 0xb1, 0x5c, 0x5f, - 0xb2, 0x0e, 0x99, 0xa2, 0x82, 0x84, 0xd2, 0x6a, 0x6f, 0x8f, 0x39, 0x1f, 0x87, 0xb4, 0x67, 0x4e, - 0xc3, 0x64, 0xd4, 0x53, 0x6c, 0x4a, 0xa5, 0x22, 0xd3, 0x38, 0x73, 0x5f, 0x06, 0x04, 0x89, 0x20, - 0xf3, 0xcc, 0xdd, 0x6f, 0xe0, 0xea, 0x57, 0x3c, 0xa0, 0x0f, 0xb3, 0x82, 0x1e, 0x53, 0x85, 0xe9, - 0xcb, 0x84, 0x4a, 0x85, 0xde, 0x87, 0x0a, 0x0b, 0xda, 0x4e, 0xc7, 0xd9, 0xad, 0xf7, 0xdf, 0xee, - 0xe6, 0xdd, 0xd2, 0x69, 0x74, 0x0b, 0x36, 0x47, 0x79, 0xce, 0xb8, 0xc2, 0x02, 0xf7, 0x97, 0x0a, - 0xb4, 0x0b, 0xfa, 0xa7, 0x4c, 0xe6, 0x4e, 0x7f, 0x84, 0x2b, 0x67, 0x5c, 0x4c, 0x46, 0x21, 0x3f, - 0x9b, 0xdf, 0x88, 0x97, 0xc7, 0x79, 0xb7, 0x14, 0xe7, 0x3b, 0x8b, 0x5d, 0x16, 0xeb, 0x7f, 0x67, - 0xaf, 0x2a, 0x51, 0x0b, 0x56, 0x43, 0x36, 0x65, 0xaa, 0x5d, 0xe9, 0x38, 0xbb, 0x9b, 0x38, 0x3d, - 0x68, 0xa9, 0xe2, 0x13, 0x1a, 0xb5, 0x57, 0x3a, 0xce, 0x6e, 0x0d, 0xa7, 0x07, 0xd4, 0x86, 0xf5, - 0x11, 0x0b, 0x15, 0x15, 0xb2, 0x7d, 0xd9, 0xc8, 0xb3, 0x23, 0xba, 0x0f, 0xeb, 0x92, 0x0b, 0xe5, - 0x0d, 0x67, 0xed, 0x55, 0x93, 0x57, 0xab, 0x5b, 0x64, 0x4b, 0xf7, 0x98, 0x0b, 0x85, 0xd7, 0x34, - 0x68, 0x30, 0x43, 0xbb, 0xd0, 0x4c, 0x22, 0xf6, 0x32, 0xa1, 0x5e, 0x4c, 0x04, 0x8d, 0x94, 0xae, - 0x67, 0xcd, 0x78, 0x6c, 0xa4, 0xf2, 0xe7, 0x46, 0x7c, 0x14, 0xb8, 0x7f, 0x39, 0x70, 0xbb, 0xd0, - 0x9b, 0x47, 0x5c, 0xbc, 0x20, 0x72, 0xb2, 0xd8, 0x22, 0x0c, 0xdb, 0x8a, 0xc8, 0xc9, 0xb2, 0xf6, - 0x94, 0xaf, 0x41, 0x9b, 0x2e, 0x6b, 0xcd, 0x96, 0x2a, 0x2a, 0xfe, 0x93, 0xb6, 0xb8, 0x7f, 0x3a, - 0xb0, 0x59, 0x28, 0xf6, 0x4d, 0x29, 0x85, 0x76, 0xa0, 0xc6, 0xa2, 0x38, 0x51, 0x5e, 0x22, 0x98, - 0x29, 0xa1, 0x86, 0xab, 0x46, 0x70, 0x22, 0x18, 0xfa, 0x14, 0xd6, 0xfd, 0x90, 0xcb, 0x44, 0x50, - 0x53, 0x47, 0xbd, 0x7f, 0xb7, 0x9c, 0x55, 0xc1, 0xf5, 0x41, 0x8a, 0xc5, 0x99, 0x11, 0xda, 0x87, - 0xea, 0x94, 0x2a, 0x12, 0x10, 0x45, 0x4c, 0xc1, 0xf5, 0xfe, 0xbd, 0x73, 0x1d, 0x3c, 0xa3, 0x8a, - 0x1c, 0x12, 0x45, 0x70, 0x6e, 0xe6, 0xfe, 0xea, 0xc0, 0x95, 0xa5, 0x18, 0x74, 0x1b, 0xea, 0x82, - 0x2a, 0x31, 0xf3, 0xc6, 0x82, 0x27, 0xb1, 0x29, 0xbd, 0x86, 0xc1, 0x88, 0x1e, 0x6b, 0x09, 0xba, - 0x0b, 0x0d, 0x26, 0x33, 0xde, 0xe8, 0x45, 0x65, 0xea, 0xab, 0xe2, 0x0d, 0x26, 0x53, 0xd6, 0x68, - 0xbf, 0xa8, 0x03, 0x1b, 0x32, 0xa6, 0xbe, 0x01, 0x68, 0x3a, 0xa4, 0x17, 0x06, 0x5a, 0xa6, 0xf5, - 0x47, 0x01, 0xba, 0x09, 0xc0, 0xa4, 0x17, 0xcc, 0x22, 0x32, 0x65, 0xbe, 0xa9, 0xa3, 0x8a, 0x6b, - 0x4c, 0x1e, 0xa6, 0x02, 0xf7, 0x25, 0x6c, 0xbf, 0x32, 0x93, 0xe8, 0x11, 0x6c, 0x15, 0x57, 0xa3, - 0x6c, 0x3b, 0x9d, 0x95, 0xdd, 0x7a, 0xff, 0xe6, 0xb9, 0x0d, 0xc0, 0x8d, 0x68, 0xf1, 0x28, 0xe7, - 0x3c, 0xaa, 0x2c, 0xf0, 0xc8, 0xfd, 0x7b, 0x15, 0x5a, 0xcb, 0x3a, 0x8f, 0xee, 0x00, 0xf0, 0x44, - 0x65, 0xd7, 0x69, 0x5a, 0x32, 0xa8, 0xb4, 0x9d, 0x27, 0x97, 0x70, 0x2d, 0x95, 0xeb, 0x5b, 0xdd, - 0x83, 0x55, 0x2a, 0x04, 0x17, 0xc6, 0x67, 0x21, 0x23, 0xc3, 0x96, 0xdc, 0xe9, 0x43, 0x0d, 0x7a, - 0x72, 0x09, 0xa7, 0x68, 0xf4, 0x39, 0xd4, 0xad, 0x6f, 0x73, 0x9f, 0x60, 0x8c, 0xaf, 0x95, 0x8c, - 0x9f, 0xa6, 0x4b, 0xf4, 0x19, 0x89, 0x6d, 0x5c, 0x9b, 0x8f, 0xb9, 0xb1, 0x0f, 0x61, 0x35, 0x3e, - 0x25, 0x32, 0x25, 0x53, 0xa3, 0xef, 0x9e, 0x47, 0xd3, 0xee, 0x73, 0x8d, 0xc4, 0xa9, 0x01, 0xfa, - 0x08, 0x40, 0x2a, 0x22, 0x14, 0x0d, 0x3c, 0xa2, 0x2c, 0x95, 0xae, 0x77, 0xd3, 0x05, 0xdc, 0xcd, - 0x16, 0x70, 0xf7, 0x45, 0xb6, 0xa1, 0x71, 0xcd, 0xa2, 0xf7, 0x15, 0xda, 0x83, 0x6a, 0xb6, 0x98, - 0xed, 0x68, 0x5d, 0x7b, 0xc5, 0xf0, 0xd0, 0x02, 0x70, 0x0e, 0xd5, 0x11, 0x7d, 0x41, 0x89, 0x8d, - 0xb8, 0x76, 0x71, 0x44, 0x8b, 0xde, 0x57, 0xda, 0x34, 0x89, 0x83, 0xcc, 0x74, 0xfd, 0x62, 0x53, - 0x8b, 0xde, 0x57, 0xe8, 0x07, 0xf8, 0x7f, 0xbe, 0xc3, 0x0d, 0x7f, 0xf2, 0xf1, 0xa9, 0x2e, 0x9f, - 0xbf, 0x6c, 0x8b, 0xeb, 0xde, 0x3d, 0xb3, 0xd8, 0x27, 0x0e, 0x6e, 0x9d, 0x2d, 0x91, 0xa3, 0xe7, - 0x80, 0xcc, 0xfa, 0x2b, 0x7a, 0xae, 0x19, 0xcf, 0x9d, 0xb2, 0x67, 0xbd, 0x00, 0x4b, 0x5e, 0x9b, - 0xaa, 0x24, 0x43, 0xd7, 0xa0, 0x1a, 0x50, 0x7f, 0x62, 0xd8, 0x56, 0x4f, 0x37, 0x9a, 0x3e, 0x6b, - 0x96, 0xf5, 0xa0, 0x65, 0x47, 0xc6, 0xfb, 0x89, 0x0f, 0x3d, 0x33, 0x63, 0x1a, 0xb6, 0x61, 0x60, - 0xdb, 0x56, 0xf7, 0x05, 0x1f, 0x1e, 0xc7, 0xd4, 0x3f, 0x11, 0x6c, 0xb0, 0x05, 0x9b, 0x96, 0x5f, - 0x82, 0xca, 0x24, 0x54, 0x83, 0x6d, 0xd8, 0x52, 0x44, 0x8c, 0xa9, 0xca, 0x73, 0x75, 0x03, 0x68, - 0x2d, 0xab, 0x18, 0x3d, 0x85, 0x3a, 0x9d, 0x2f, 0xb8, 0x37, 0x78, 0xf1, 0x16, 0xcd, 0xdd, 0xdf, - 0x1c, 0x68, 0x96, 0xcb, 0x47, 0x87, 0xb0, 0xe1, 0x13, 0xff, 0x94, 0x7a, 0x52, 0x11, 0x95, 0x48, - 0x13, 0xa3, 0xd1, 0x7f, 0xab, 0x14, 0xe3, 0x20, 0xfd, 0x3e, 0x39, 0xd0, 0xc8, 0x63, 0x03, 0xc4, - 0x75, 0x7f, 0x7e, 0x40, 0x9f, 0x41, 0xdd, 0x7e, 0xc2, 0x78, 0x13, 0x3a, 0xb3, 0x13, 0x78, 0x6b, - 0xb9, 0x93, 0x2c, 0x34, 0x06, 0x6b, 0xf2, 0x25, 0x9d, 0xa1, 0x7b, 0xd0, 0xf0, 0x4f, 0xa9, 0x3f, - 0x89, 0x39, 0x8b, 0xd2, 0x29, 0x4f, 0x5f, 0x92, 0xcd, 0xb9, 0xf4, 0x44, 0x30, 0xf7, 0x77, 0x07, - 0x76, 0xec, 0x82, 0x5a, 0xda, 0xb0, 0x77, 0x16, 0x9e, 0x8b, 0xf2, 0x0c, 0x97, 0x5e, 0x88, 0x63, - 0xd8, 0xb6, 0x1f, 0x56, 0x81, 0x97, 0xd1, 0xca, 0x26, 0x5e, 0x7e, 0x68, 0x0e, 0x2c, 0x2e, 0x0b, - 0x99, 0x3d, 0x08, 0x4d, 0xbf, 0xa4, 0x78, 0x2d, 0x3b, 0x56, 0x5e, 0xc3, 0x0e, 0xf7, 0x04, 0x76, - 0xca, 0x5f, 0x53, 0xe6, 0xa5, 0xf8, 0x97, 0x5f, 0x54, 0x7f, 0x54, 0xe0, 0xc6, 0x72, 0xbf, 0x32, - 0xe6, 0x91, 0xa4, 0xe8, 0x01, 0xac, 0x99, 0xe7, 0x50, 0x5a, 0xe7, 0x57, 0xcb, 0x73, 0x72, 0x22, - 0xc2, 0x41, 0xc8, 0x87, 0x7a, 0xdd, 0x61, 0x0b, 0x45, 0x7b, 0xb0, 0x9e, 0x52, 0x59, 0xda, 0x46, - 0x9d, 0x6b, 0x95, 0x61, 0xd1, 0xc7, 0x50, 0x1f, 0x25, 0x61, 0xe8, 0xd9, 0x80, 0x2b, 0x17, 0x6c, - 0x58, 0x0c, 0x1a, 0x7d, 0x94, 0x86, 0xfc, 0x04, 0x36, 0x8c, 0x6d, 0x16, 0xf7, 0xf2, 0x45, 0xc6, - 0x26, 0xd4, 0xd7, 0x36, 0xf2, 0xb7, 0xd0, 0xcc, 0xae, 0x23, 0xbf, 0xe2, 0xa6, 0xf1, 0xf0, 0x5e, - 0x39, 0xf3, 0x73, 0x58, 0x85, 0xb7, 0x82, 0xa2, 0x72, 0xf0, 0xc1, 0xf7, 0x7b, 0x63, 0xa6, 0x4e, - 0x93, 0x61, 0xd7, 0xe7, 0xd3, 0x9e, 0xf1, 0xc4, 0xc5, 0xb8, 0x97, 0x7f, 0x78, 0x8f, 0x69, 0xd4, - 0x8b, 0x87, 0xf7, 0xc7, 0xbc, 0x57, 0xfc, 0x45, 0x18, 0xae, 0x99, 0x3d, 0xf9, 0xe0, 0x9f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x42, 0xbd, 0xb0, 0xab, 0x70, 0x0c, 0x00, 0x00, + // 1187 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x6e, 0x1b, 0x45, + 0x14, 0xee, 0x26, 0x4d, 0x62, 0x1f, 0x27, 0x4e, 0x32, 0xb8, 0xd4, 0x6d, 0xfa, 0x63, 0xb6, 0x2d, + 0x0a, 0xa0, 0xda, 0x92, 0xab, 0x40, 0x41, 0x08, 0x88, 0x93, 0xfe, 0x04, 0x52, 0x28, 0x93, 0x1a, + 0x24, 0x84, 0x58, 0x8d, 0x77, 0xc7, 0xce, 0xe0, 0xf5, 0xce, 0x76, 0x66, 0x56, 0xc1, 0x2f, 0x82, + 0xc4, 0x15, 0xaf, 0xc2, 0x13, 0xf0, 0x1a, 0x48, 0x3c, 0x00, 0xd7, 0x68, 0x66, 0x67, 0xd7, 0xde, + 0xad, 0x9b, 0x48, 0xe5, 0x82, 0xcb, 0x39, 0xe7, 0x3b, 0xbf, 0xf3, 0x9d, 0x33, 0xbb, 0x70, 0x67, + 0x18, 0x4e, 0x15, 0x65, 0x41, 0xd8, 0x21, 0xc1, 0x84, 0x45, 0x9d, 0x88, 0x07, 0xd4, 0xa3, 0xbf, + 0x50, 0x3f, 0x51, 0x8c, 0x47, 0xed, 0x58, 0x70, 0xc5, 0x51, 0x3d, 0x03, 0xb5, 0x0d, 0xe8, 0xfa, + 0x4e, 0xc9, 0xc8, 0xe7, 0x93, 0x49, 0x06, 0xbe, 0x7e, 0x33, 0x57, 0xfa, 0x5c, 0xd0, 0x4e, 0xc9, + 0xd7, 0x9c, 0xad, 0x51, 0xfb, 0x44, 0x91, 0x90, 0x8f, 0xac, 0xf2, 0x46, 0x49, 0xc9, 0x27, 0x31, + 0x0b, 0xa9, 0xb0, 0xda, 0x5b, 0x45, 0x2d, 0x0b, 0x68, 0xa4, 0xd8, 0x90, 0xe5, 0xfa, 0x92, 0x75, + 0xc8, 0x14, 0x15, 0x24, 0x94, 0x56, 0x7b, 0x7b, 0xc4, 0xf9, 0x28, 0xa4, 0x1d, 0x73, 0x1a, 0x24, + 0xc3, 0x8e, 0x62, 0x13, 0x2a, 0x15, 0x99, 0xc4, 0x99, 0xfb, 0x32, 0x20, 0x48, 0x04, 0x99, 0x65, + 0xee, 0x7e, 0x0b, 0x57, 0xbf, 0xe6, 0x01, 0x7d, 0x94, 0x15, 0xf4, 0x84, 0x2a, 0x4c, 0x5f, 0x26, + 0x54, 0x2a, 0xf4, 0x21, 0x2c, 0xb1, 0xa0, 0xe9, 0xb4, 0x9c, 0xdd, 0x5a, 0xf7, 0xdd, 0x76, 0xde, + 0x2d, 0x9d, 0x46, 0xbb, 0x60, 0x73, 0x94, 0xe7, 0x8c, 0x97, 0x58, 0xe0, 0xfe, 0xb6, 0x04, 0xcd, + 0x82, 0xfe, 0x98, 0xc9, 0xdc, 0xe9, 0x4f, 0x70, 0xe5, 0x8c, 0x8b, 0xf1, 0x30, 0xe4, 0x67, 0xb3, + 0x1b, 0xf1, 0xf2, 0x38, 0xef, 0x97, 0xe2, 0x7c, 0x6f, 0xb1, 0x8b, 0x62, 0xbd, 0x75, 0xf6, 0xaa, + 0x12, 0x35, 0x60, 0x25, 0x64, 0x13, 0xa6, 0x9a, 0x4b, 0x2d, 0x67, 0x77, 0x03, 0xa7, 0x07, 0x2d, + 0x55, 0x7c, 0x4c, 0xa3, 0xe6, 0x72, 0xcb, 0xd9, 0xad, 0xe2, 0xf4, 0x80, 0x9a, 0xb0, 0x36, 0x64, + 0xa1, 0xa2, 0x42, 0x36, 0x2f, 0x1b, 0x79, 0x76, 0x44, 0xf7, 0x61, 0x4d, 0x72, 0xa1, 0xbc, 0xc1, + 0xb4, 0xb9, 0x62, 0xf2, 0x6a, 0xb4, 0x8b, 0x6c, 0x69, 0x9f, 0x70, 0xa1, 0xf0, 0xaa, 0x06, 0xf5, + 0xa6, 0x68, 0x17, 0xb6, 0x92, 0x88, 0xbd, 0x4c, 0xa8, 0x17, 0x13, 0x41, 0x23, 0xa5, 0xeb, 0x59, + 0x35, 0x1e, 0xeb, 0xa9, 0xfc, 0xb9, 0x11, 0x1f, 0x05, 0xee, 0xdf, 0x0e, 0xdc, 0x2e, 0xf4, 0xe6, + 0x31, 0x17, 0x2f, 0x88, 0x1c, 0xcf, 0xb7, 0x08, 0xc3, 0xb6, 0x22, 0x72, 0xbc, 0xa8, 0x3d, 0xe5, + 0x6b, 0xd0, 0xa6, 0x8b, 0x5a, 0xb3, 0xa9, 0x8a, 0x8a, 0xff, 0xa5, 0x2d, 0xee, 0x5f, 0x0e, 0x6c, + 0x14, 0x8a, 0x7d, 0x53, 0x4a, 0xa1, 0x1d, 0xa8, 0xb2, 0x28, 0x4e, 0x94, 0x97, 0x08, 0x66, 0x4a, + 0xa8, 0xe2, 0x8a, 0x11, 0xf4, 0x05, 0x43, 0x9f, 0xc1, 0x9a, 0x1f, 0x72, 0x99, 0x08, 0x6a, 0xea, + 0xa8, 0x75, 0xef, 0x96, 0xb3, 0x2a, 0xb8, 0x3e, 0x48, 0xb1, 0x38, 0x33, 0x42, 0xfb, 0x50, 0x99, + 0x50, 0x45, 0x02, 0xa2, 0x88, 0x29, 0xb8, 0xd6, 0xbd, 0x77, 0xae, 0x83, 0x67, 0x54, 0x91, 0x43, + 0xa2, 0x08, 0xce, 0xcd, 0xdc, 0xdf, 0x1d, 0xb8, 0xb2, 0x10, 0x83, 0x6e, 0x43, 0x4d, 0x50, 0x25, + 0xa6, 0xde, 0x48, 0xf0, 0x24, 0x36, 0xa5, 0x57, 0x31, 0x18, 0xd1, 0x13, 0x2d, 0x41, 0x77, 0xa1, + 0xce, 0x64, 0xc6, 0x1b, 0xbd, 0xa8, 0x4c, 0x7d, 0x15, 0xbc, 0xce, 0x64, 0xca, 0x1a, 0xed, 0x17, + 0xb5, 0x60, 0x5d, 0xc6, 0xd4, 0x37, 0x00, 0x4d, 0x87, 0xf4, 0xc2, 0x40, 0xcb, 0xb4, 0xfe, 0x28, + 0x40, 0x37, 0x01, 0x98, 0xf4, 0x82, 0x69, 0x44, 0x26, 0xcc, 0x37, 0x75, 0x54, 0x70, 0x95, 0xc9, + 0xc3, 0x54, 0xe0, 0xbe, 0x84, 0xed, 0x57, 0x66, 0x12, 0x3d, 0x86, 0xcd, 0xe2, 0x6a, 0x94, 0x4d, + 0xa7, 0xb5, 0xbc, 0x5b, 0xeb, 0xde, 0x3c, 0xb7, 0x01, 0xb8, 0x1e, 0xcd, 0x1f, 0xe5, 0x8c, 0x47, + 0x4b, 0x73, 0x3c, 0x72, 0xff, 0x59, 0x81, 0xc6, 0xa2, 0xce, 0xa3, 0x3b, 0x00, 0x3c, 0x51, 0xd9, + 0x75, 0x9a, 0x96, 0xf4, 0x96, 0x9a, 0xce, 0xd3, 0x4b, 0xb8, 0x9a, 0xca, 0xf5, 0xad, 0xee, 0xc1, + 0x0a, 0x15, 0x82, 0x0b, 0xe3, 0xb3, 0x90, 0x91, 0x61, 0x4b, 0xee, 0xf4, 0x91, 0x06, 0x3d, 0xbd, + 0x84, 0x53, 0x34, 0xfa, 0x02, 0x6a, 0xd6, 0xb7, 0xb9, 0x4f, 0x30, 0xc6, 0xd7, 0x4a, 0xc6, 0xc7, + 0xe9, 0x12, 0x7d, 0x46, 0x62, 0x1b, 0xd7, 0xe6, 0x63, 0x6e, 0xec, 0x21, 0xac, 0xc4, 0xa7, 0x44, + 0xa6, 0x64, 0xaa, 0x77, 0xdd, 0xf3, 0x68, 0xda, 0x7e, 0xae, 0x91, 0x38, 0x35, 0x40, 0x1f, 0x03, + 0x48, 0x45, 0x84, 0xa2, 0x81, 0x47, 0x94, 0xa5, 0xd2, 0xf5, 0x76, 0xba, 0x80, 0xdb, 0xd9, 0x02, + 0x6e, 0xbf, 0xc8, 0x36, 0x34, 0xae, 0x5a, 0xf4, 0xbe, 0x42, 0x7b, 0x50, 0xc9, 0x16, 0xb3, 0x1d, + 0xad, 0x6b, 0xaf, 0x18, 0x1e, 0x5a, 0x00, 0xce, 0xa1, 0x3a, 0xa2, 0x2f, 0x28, 0xb1, 0x11, 0x57, + 0x2f, 0x8e, 0x68, 0xd1, 0xfb, 0x4a, 0x9b, 0x26, 0x71, 0x90, 0x99, 0xae, 0x5d, 0x6c, 0x6a, 0xd1, + 0xfb, 0x0a, 0xfd, 0x08, 0x6f, 0xe7, 0x3b, 0xdc, 0xf0, 0x27, 0x1f, 0x9f, 0xca, 0xe2, 0xf9, 0xcb, + 0xb6, 0xb8, 0xee, 0xdd, 0x33, 0x8b, 0x7d, 0xea, 0xe0, 0xc6, 0xd9, 0x02, 0x39, 0x7a, 0x0e, 0xc8, + 0xac, 0xbf, 0xa2, 0xe7, 0xaa, 0xf1, 0xdc, 0x2a, 0x7b, 0xd6, 0x0b, 0xb0, 0xe4, 0x75, 0x4b, 0x95, + 0x64, 0xe8, 0x1a, 0x54, 0x02, 0xea, 0x8f, 0x0d, 0xdb, 0x6a, 0xe9, 0x46, 0xd3, 0x67, 0xcd, 0xb2, + 0x0e, 0x34, 0xec, 0xc8, 0x78, 0x3f, 0xf3, 0x81, 0x67, 0x66, 0x4c, 0xc3, 0xd6, 0x0d, 0x6c, 0xdb, + 0xea, 0xbe, 0xe4, 0x83, 0x93, 0x98, 0xfa, 0x7d, 0xc1, 0x7a, 0x9b, 0xb0, 0x61, 0xf9, 0x25, 0xa8, + 0x4c, 0x42, 0xd5, 0xdb, 0x86, 0x4d, 0x45, 0xc4, 0x88, 0xaa, 0x3c, 0x57, 0x37, 0x80, 0xc6, 0xa2, + 0x8a, 0xd1, 0x31, 0xd4, 0xe8, 0x6c, 0xc1, 0xbd, 0xc1, 0x8b, 0x37, 0x6f, 0xee, 0xfe, 0xe1, 0xc0, + 0x56, 0xb9, 0x7c, 0x74, 0x08, 0xeb, 0x3e, 0xf1, 0x4f, 0xa9, 0x27, 0x15, 0x51, 0x89, 0x34, 0x31, + 0xea, 0xdd, 0x77, 0x4a, 0x31, 0x0e, 0xd2, 0xef, 0x93, 0x03, 0x8d, 0x3c, 0x31, 0x40, 0x5c, 0xf3, + 0x67, 0x07, 0xf4, 0x39, 0xd4, 0xec, 0x27, 0x8c, 0x37, 0xa6, 0x53, 0x3b, 0x81, 0xb7, 0x16, 0x3b, + 0xc9, 0x42, 0x63, 0xb0, 0x26, 0x5f, 0xd1, 0x29, 0xba, 0x07, 0x75, 0xff, 0x94, 0xfa, 0xe3, 0x98, + 0xb3, 0x28, 0x9d, 0xf2, 0xf4, 0x25, 0xd9, 0x98, 0x49, 0xfb, 0x82, 0xb9, 0x7f, 0x3a, 0xb0, 0x63, + 0x17, 0xd4, 0xc2, 0x86, 0xbd, 0x37, 0xf7, 0x5c, 0x94, 0x67, 0xb8, 0xf4, 0x42, 0x9c, 0xc0, 0xb6, + 0xfd, 0xb0, 0x0a, 0xbc, 0x8c, 0x56, 0x36, 0xf1, 0xf2, 0x43, 0x73, 0x60, 0x71, 0x59, 0xc8, 0xec, + 0x41, 0xd8, 0xf2, 0x4b, 0x8a, 0xd7, 0xb2, 0x63, 0xf9, 0x35, 0xec, 0x70, 0xfb, 0xb0, 0x53, 0xfe, + 0x9a, 0x32, 0x2f, 0xc5, 0x7f, 0xfc, 0xa2, 0xfa, 0x75, 0x19, 0x6e, 0x2c, 0xf6, 0x2b, 0x63, 0x1e, + 0x49, 0x8a, 0x1e, 0xc0, 0xaa, 0x79, 0x0e, 0xa5, 0x75, 0x7e, 0xb5, 0x3c, 0x27, 0x7d, 0x11, 0xf6, + 0x42, 0x3e, 0xd0, 0xeb, 0x0e, 0x5b, 0x28, 0xda, 0x83, 0xb5, 0x94, 0xca, 0xd2, 0x36, 0xea, 0x5c, + 0xab, 0x0c, 0x8b, 0x3e, 0x81, 0xda, 0x30, 0x09, 0x43, 0xcf, 0x06, 0x5c, 0xbe, 0x60, 0xc3, 0x62, + 0xd0, 0xe8, 0xa3, 0x34, 0xe4, 0xa7, 0xb0, 0x6e, 0x6c, 0xb3, 0xb8, 0x97, 0x2f, 0x32, 0x36, 0xa1, + 0xbe, 0xb1, 0x91, 0xbf, 0x83, 0xad, 0xec, 0x3a, 0xf2, 0x2b, 0xde, 0x32, 0x1e, 0x3e, 0x28, 0x67, + 0x7e, 0x0e, 0xab, 0xf0, 0x66, 0x50, 0x54, 0xa2, 0x87, 0x00, 0xc6, 0xdc, 0x4b, 0x44, 0x28, 0x9b, + 0xdb, 0xe5, 0x9c, 0x52, 0x8f, 0x8f, 0xf5, 0xb1, 0x8f, 0x8f, 0x25, 0xae, 0x1a, 0x4d, 0x5f, 0x84, + 0xb2, 0xf7, 0xd1, 0x0f, 0x7b, 0x23, 0xa6, 0x4e, 0x93, 0x41, 0xdb, 0xe7, 0x93, 0x8e, 0x91, 0x73, + 0x31, 0xea, 0xe4, 0x9f, 0xec, 0x23, 0x1a, 0x75, 0xe2, 0xc1, 0xfd, 0x11, 0xef, 0x14, 0x7f, 0x2e, + 0x06, 0xab, 0x66, 0xc3, 0x3e, 0xf8, 0x37, 0x00, 0x00, 0xff, 0xff, 0x26, 0xae, 0x74, 0xa3, 0xaa, + 0x0c, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.validate.go index 2f600735e..72b85d59f 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.validate.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.validate.go @@ -1118,6 +1118,16 @@ func (m *NodeExecutionGetDataResponse) Validate() error { } } + if v, ok := interface{}(m.GetFlyteUrls()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NodeExecutionGetDataResponseValidationError{ + field: "FlyteUrls", + reason: "embedded message failed validation", + cause: err, + } + } + } + return nil } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go index b7178854b..a68b8936c 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go @@ -588,10 +588,13 @@ type TaskExecutionGetDataResponse struct { // Full_inputs will only be populated if they are under a configured size threshold. FullInputs *core.LiteralMap `protobuf:"bytes,3,opt,name=full_inputs,json=fullInputs,proto3" json:"full_inputs,omitempty"` // Full_outputs will only be populated if they are under a configured size threshold. - FullOutputs *core.LiteralMap `protobuf:"bytes,4,opt,name=full_outputs,json=fullOutputs,proto3" json:"full_outputs,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FullOutputs *core.LiteralMap `protobuf:"bytes,4,opt,name=full_outputs,json=fullOutputs,proto3" json:"full_outputs,omitempty"` + // flyte tiny url to fetch a core.LiteralMap of task execution's IO + // Deck will be empty for task + FlyteUrls *FlyteURLs `protobuf:"bytes,5,opt,name=flyte_urls,json=flyteUrls,proto3" json:"flyte_urls,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *TaskExecutionGetDataResponse) Reset() { *m = TaskExecutionGetDataResponse{} } @@ -649,6 +652,13 @@ func (m *TaskExecutionGetDataResponse) GetFullOutputs() *core.LiteralMap { return nil } +func (m *TaskExecutionGetDataResponse) GetFlyteUrls() *FlyteURLs { + if m != nil { + return m.FlyteUrls + } + return nil +} + func init() { proto.RegisterType((*TaskExecutionGetRequest)(nil), "flyteidl.admin.TaskExecutionGetRequest") proto.RegisterType((*TaskExecutionListRequest)(nil), "flyteidl.admin.TaskExecutionListRequest") @@ -665,62 +675,63 @@ func init() { } var fileDescriptor_8cde4c3aa101642e = []byte{ - // 902 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x6d, 0x6f, 0x1b, 0x45, - 0x10, 0xee, 0x39, 0xf1, 0xdb, 0x38, 0x2f, 0x64, 0x15, 0x35, 0x87, 0x93, 0x82, 0xe5, 0x00, 0xb2, - 0x90, 0x7a, 0x46, 0xa9, 0x02, 0xe5, 0x45, 0x08, 0x9b, 0x16, 0x1a, 0x29, 0x85, 0xb2, 0x4d, 0xf8, - 0xc0, 0x97, 0xd3, 0xfa, 0x6e, 0xed, 0xae, 0x72, 0x77, 0x7b, 0xdd, 0xdd, 0xab, 0xf0, 0x77, 0x7e, - 0x06, 0x7f, 0x86, 0xdf, 0xc2, 0x1f, 0x41, 0xfb, 0x72, 0x4e, 0xee, 0x12, 0x62, 0x09, 0xbe, 0x58, - 0x9a, 0x9d, 0xe7, 0x99, 0xd9, 0x79, 0x66, 0x66, 0x7d, 0x70, 0x3c, 0x4f, 0x96, 0x8a, 0xb2, 0x38, - 0x19, 0x93, 0x38, 0x65, 0xd9, 0x58, 0x11, 0x79, 0x15, 0xd2, 0xdf, 0x69, 0x54, 0x28, 0xc6, 0xb3, - 0x20, 0x17, 0x5c, 0x71, 0xb4, 0x53, 0x82, 0x02, 0x03, 0xea, 0x1f, 0xd6, 0x48, 0x11, 0x4f, 0xd3, - 0x12, 0xdc, 0x7f, 0xb4, 0x72, 0x46, 0x5c, 0xd0, 0x71, 0x2d, 0x56, 0xff, 0x83, 0xaa, 0x9b, 0xc5, - 0x34, 0x53, 0x6c, 0xce, 0xa8, 0x70, 0xfe, 0xa3, 0xaa, 0x3f, 0x61, 0x8a, 0x0a, 0x92, 0x48, 0xe7, - 0xed, 0xaf, 0xbc, 0xf4, 0x1d, 0xcd, 0x94, 0xfd, 0x75, 0xbe, 0x0f, 0x17, 0x9c, 0x2f, 0x12, 0x3a, - 0x36, 0xd6, 0xac, 0x98, 0x8f, 0x15, 0x4b, 0xa9, 0x54, 0x24, 0xcd, 0xcb, 0xd4, 0x75, 0x40, 0x5c, - 0x08, 0x72, 0xe3, 0x6a, 0x47, 0x75, 0xbf, 0x54, 0xa2, 0x88, 0x5c, 0xf8, 0xe1, 0x2f, 0x70, 0x70, - 0x41, 0xe4, 0xd5, 0xf3, 0xb2, 0x9e, 0x1f, 0xa9, 0xc2, 0xf4, 0x6d, 0x41, 0xa5, 0x42, 0x9f, 0x43, - 0x83, 0xc5, 0xbe, 0x37, 0xf0, 0x46, 0xbd, 0x93, 0x4f, 0x82, 0x95, 0x58, 0xba, 0x80, 0xa0, 0xc2, - 0x39, 0x5b, 0x55, 0x8b, 0x1b, 0x2c, 0x1e, 0xfe, 0xed, 0x81, 0x5f, 0xf1, 0x9f, 0x33, 0xb9, 0x0a, - 0x8a, 0x61, 0x2f, 0xe3, 0x31, 0xbd, 0x6e, 0x46, 0xf8, 0xaf, 0x39, 0x7e, 0xe2, 0x31, 0xbd, 0x2b, - 0xc7, 0x6e, 0x56, 0x75, 0xa0, 0x7d, 0x68, 0x26, 0x2c, 0x65, 0xca, 0x6f, 0x0c, 0xbc, 0xd1, 0x36, - 0xb6, 0x86, 0x3e, 0x55, 0xfc, 0x8a, 0x66, 0xfe, 0xc6, 0xc0, 0x1b, 0x75, 0xb1, 0x35, 0x90, 0x0f, - 0xed, 0x39, 0x4b, 0x14, 0x15, 0xd2, 0xdf, 0x34, 0xe7, 0xa5, 0x89, 0x1e, 0x43, 0x5b, 0x72, 0xa1, - 0xc2, 0xd9, 0xd2, 0x6f, 0x9a, 0xfb, 0xec, 0x07, 0xd5, 0x01, 0x09, 0x5e, 0x73, 0xa1, 0x70, 0x4b, - 0x83, 0xa6, 0xcb, 0xe1, 0x5f, 0x1e, 0x6c, 0x57, 0xaa, 0xfc, 0xaf, 0x7a, 0xa1, 0x43, 0xe8, 0xb2, - 0x2c, 0x2f, 0x54, 0x58, 0x08, 0x66, 0x4a, 0xe8, 0xe2, 0x8e, 0x39, 0xb8, 0x14, 0x0c, 0x7d, 0x0b, - 0xed, 0x28, 0xe1, 0xb2, 0x10, 0xd4, 0xd4, 0xd1, 0x3b, 0xf9, 0xa8, 0x7e, 0xab, 0x4a, 0xe8, 0xef, - 0x2d, 0x16, 0x97, 0x24, 0x13, 0x5c, 0x86, 0x39, 0x11, 0x34, 0x53, 0xa6, 0xe2, 0x0e, 0xee, 0x30, - 0xf9, 0xca, 0xd8, 0xc3, 0xb7, 0xb0, 0x77, 0xab, 0x51, 0xe8, 0x07, 0xd8, 0xad, 0xae, 0x8b, 0xf4, - 0xbd, 0xc1, 0xc6, 0xa8, 0x77, 0xf2, 0xe8, 0xde, 0xcc, 0x78, 0x47, 0xdd, 0x34, 0xe5, 0xb5, 0xfe, - 0x8d, 0x1b, 0xfa, 0x0f, 0xff, 0x6c, 0xc1, 0xfe, 0x5d, 0x37, 0x46, 0xc7, 0x00, 0xbc, 0x50, 0xa5, - 0x0c, 0x5a, 0xc5, 0xee, 0xb4, 0xe1, 0x7b, 0x2f, 0x1e, 0xe0, 0xae, 0x3d, 0xd7, 0x6a, 0x9c, 0x42, - 0x93, 0x0a, 0xc1, 0x85, 0x89, 0x59, 0xb9, 0x91, 0x51, 0x79, 0x15, 0xf4, 0xb9, 0x06, 0xbd, 0x78, - 0x80, 0x2d, 0x1a, 0x7d, 0x07, 0x3d, 0x17, 0x3b, 0x26, 0x8a, 0xf8, 0x5b, 0x86, 0xfc, 0x7e, 0x8d, - 0x7c, 0x6e, 0x77, 0xf2, 0x25, 0xc9, 0x5d, 0x5e, 0x77, 0x9f, 0x67, 0x44, 0x11, 0xf4, 0x14, 0x9a, - 0xf9, 0x1b, 0x22, 0x6d, 0x13, 0x76, 0x4e, 0x86, 0xf7, 0xb5, 0x37, 0x78, 0xa5, 0x91, 0xd8, 0x12, - 0xd0, 0xa7, 0xb0, 0x99, 0xf0, 0x85, 0x9e, 0x36, 0xad, 0xe1, 0xc3, 0x3b, 0x88, 0xe7, 0x7c, 0x81, - 0x0d, 0x06, 0x7d, 0x09, 0x20, 0x15, 0x11, 0x8a, 0xc6, 0x21, 0x51, 0x6e, 0x0a, 0xfb, 0x81, 0xdd, - 0xdf, 0xa0, 0xdc, 0xdf, 0xe0, 0xa2, 0x7c, 0x00, 0x70, 0xd7, 0xa1, 0x27, 0x0a, 0x9d, 0x42, 0xa7, - 0xdc, 0x7b, 0xbf, 0xe5, 0xea, 0xab, 0x13, 0x9f, 0x39, 0x00, 0x5e, 0x41, 0x75, 0xc6, 0x48, 0x50, - 0xe2, 0x32, 0xb6, 0xd7, 0x67, 0x74, 0xe8, 0x89, 0xd2, 0xd4, 0x22, 0x8f, 0x4b, 0x6a, 0x67, 0x3d, - 0xd5, 0xa1, 0x27, 0x0a, 0x3d, 0x85, 0x5e, 0x54, 0x48, 0xc5, 0xd3, 0x90, 0x65, 0x73, 0xee, 0x77, - 0x0d, 0xf7, 0xe0, 0x16, 0xf7, 0xb5, 0x79, 0xa8, 0x30, 0x58, 0xec, 0x59, 0x36, 0xe7, 0xe8, 0x21, - 0xb4, 0x04, 0x25, 0x92, 0x67, 0x3e, 0x98, 0xa9, 0x72, 0x96, 0x1e, 0x73, 0x33, 0xb4, 0x6a, 0x99, - 0x53, 0xbf, 0x67, 0x77, 0x48, 0x1f, 0x5c, 0x2c, 0x73, 0x8a, 0x26, 0xd0, 0x49, 0xa9, 0x22, 0xa6, - 0xf7, 0xef, 0x99, 0x5c, 0x1f, 0x5f, 0xb7, 0xc1, 0xbe, 0xb5, 0x95, 0x06, 0xbe, 0x74, 0x60, 0xbc, - 0xa2, 0xa1, 0x63, 0xd8, 0x36, 0xc0, 0xf0, 0x1d, 0x15, 0x52, 0x6b, 0xbc, 0x37, 0xf0, 0x46, 0x4d, - 0xbc, 0x65, 0x0e, 0x7f, 0xb5, 0x67, 0xe8, 0x33, 0x68, 0xdb, 0xeb, 0x48, 0x1f, 0xd5, 0xbb, 0x6d, - 0x37, 0x06, 0x1b, 0x37, 0x2e, 0x61, 0xd3, 0x5d, 0xd8, 0x76, 0x83, 0x29, 0xa8, 0x2c, 0x12, 0x35, - 0x0c, 0xa1, 0x65, 0x31, 0xe8, 0x6b, 0xe8, 0xf1, 0x28, 0x2a, 0x84, 0xb0, 0xfa, 0x7a, 0x6b, 0xf5, - 0x85, 0x12, 0x3e, 0x51, 0xfa, 0x95, 0x4b, 0xa9, 0x94, 0x64, 0x41, 0xdd, 0xf6, 0x95, 0xe6, 0xf0, - 0x12, 0x0e, 0xeb, 0xef, 0xbd, 0x1e, 0xf0, 0xff, 0xfb, 0xe6, 0xff, 0xd1, 0x80, 0xa3, 0xbb, 0xe3, - 0xca, 0x9c, 0x67, 0x92, 0xa2, 0x27, 0xd0, 0x32, 0x6f, 0x9a, 0x74, 0xc1, 0x0f, 0xea, 0xd2, 0x5c, - 0x8a, 0x64, 0x9a, 0xf0, 0x99, 0xde, 0x3d, 0xec, 0xa0, 0xe8, 0x14, 0xda, 0x56, 0x1e, 0xe9, 0x16, - 0xfe, 0x5e, 0x56, 0x89, 0x45, 0x5f, 0x41, 0x6f, 0x5e, 0x24, 0x49, 0xe8, 0x12, 0x6e, 0xac, 0x59, - 0x77, 0x0c, 0x1a, 0x7d, 0x66, 0x53, 0x7e, 0x03, 0x5b, 0x86, 0x5b, 0xe6, 0xdd, 0x5c, 0x47, 0x36, - 0xa9, 0x7e, 0xb6, 0xe8, 0xe9, 0x17, 0xbf, 0x9d, 0x2e, 0x98, 0x7a, 0x53, 0xcc, 0x82, 0x88, 0xa7, - 0x63, 0xc3, 0xe1, 0x62, 0x31, 0x5e, 0xfd, 0xbd, 0x2f, 0x68, 0x36, 0xce, 0x67, 0x8f, 0x17, 0x7c, - 0x5c, 0xfd, 0xd6, 0x98, 0xb5, 0x4c, 0x43, 0x9f, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x85, - 0xa6, 0xe7, 0xb9, 0x08, 0x00, 0x00, + // 925 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xeb, 0x6e, 0x1b, 0x45, + 0x14, 0xee, 0xba, 0x89, 0x2f, 0xc7, 0xb9, 0x90, 0x51, 0xd4, 0x6c, 0x9d, 0x14, 0x2c, 0x07, 0x90, + 0x85, 0xd4, 0x35, 0x4a, 0x15, 0x08, 0x17, 0x21, 0x6c, 0xda, 0xd2, 0x48, 0x29, 0x94, 0x69, 0xcc, + 0x0f, 0xfe, 0xac, 0xc6, 0xbb, 0x63, 0x77, 0x94, 0xdd, 0x9d, 0xed, 0xcc, 0x6c, 0x85, 0xdf, 0x85, + 0x67, 0x41, 0xe2, 0x59, 0x78, 0x11, 0x34, 0x97, 0x75, 0xb2, 0xdb, 0x10, 0x4b, 0xf0, 0x67, 0xa5, + 0x73, 0xce, 0xf7, 0x9d, 0xfb, 0x19, 0x2d, 0x1c, 0xcf, 0x93, 0xa5, 0xa2, 0x2c, 0x4e, 0x46, 0x24, + 0x4e, 0x59, 0x36, 0x52, 0x44, 0x5e, 0x85, 0xf4, 0x77, 0x1a, 0x15, 0x8a, 0xf1, 0x2c, 0xc8, 0x05, + 0x57, 0x1c, 0xed, 0x94, 0xa0, 0xc0, 0x80, 0x7a, 0x87, 0x35, 0x52, 0xc4, 0xd3, 0xb4, 0x04, 0xf7, + 0x1e, 0xad, 0x8c, 0x11, 0x17, 0x74, 0x54, 0xf3, 0xd5, 0xfb, 0xb0, 0x6a, 0x66, 0x31, 0xcd, 0x14, + 0x9b, 0x33, 0x2a, 0x9c, 0xfd, 0xa8, 0x6a, 0x4f, 0x98, 0xa2, 0x82, 0x24, 0xd2, 0x59, 0x7b, 0x2b, + 0x2b, 0x7d, 0x47, 0x33, 0x65, 0xbf, 0xce, 0xf6, 0xd1, 0x82, 0xf3, 0x45, 0x42, 0x47, 0x46, 0x9a, + 0x15, 0xf3, 0x91, 0x62, 0x29, 0x95, 0x8a, 0xa4, 0x79, 0x19, 0xba, 0x0e, 0x88, 0x0b, 0x41, 0x6e, + 0xa4, 0x76, 0x54, 0xb7, 0x4b, 0x25, 0x8a, 0xc8, 0xb9, 0x1f, 0xfc, 0x02, 0x07, 0x97, 0x44, 0x5e, + 0x3d, 0x2b, 0xeb, 0xf9, 0x91, 0x2a, 0x4c, 0xdf, 0x16, 0x54, 0x2a, 0xf4, 0x05, 0x34, 0x58, 0xec, + 0x7b, 0x7d, 0x6f, 0xd8, 0x3d, 0xf9, 0x34, 0x58, 0x35, 0x4b, 0x17, 0x10, 0x54, 0x38, 0xe7, 0xab, + 0x6a, 0x71, 0x83, 0xc5, 0x83, 0xbf, 0x3d, 0xf0, 0x2b, 0xf6, 0x0b, 0x26, 0x57, 0x4e, 0x31, 0xec, + 0x65, 0x3c, 0xa6, 0xd7, 0xc3, 0x08, 0xff, 0x35, 0xc6, 0x4f, 0x3c, 0xa6, 0xb7, 0xc5, 0xd8, 0xcd, + 0xaa, 0x06, 0xb4, 0x0f, 0x9b, 0x09, 0x4b, 0x99, 0xf2, 0x1b, 0x7d, 0x6f, 0xb8, 0x8d, 0xad, 0xa0, + 0xb5, 0x8a, 0x5f, 0xd1, 0xcc, 0xbf, 0xdf, 0xf7, 0x86, 0x1d, 0x6c, 0x05, 0xe4, 0x43, 0x6b, 0xce, + 0x12, 0x45, 0x85, 0xf4, 0x37, 0x8c, 0xbe, 0x14, 0xd1, 0x63, 0x68, 0x49, 0x2e, 0x54, 0x38, 0x5b, + 0xfa, 0x9b, 0x26, 0x9f, 0xfd, 0xa0, 0xba, 0x20, 0xc1, 0x6b, 0x2e, 0x14, 0x6e, 0x6a, 0xd0, 0x64, + 0x39, 0xf8, 0xcb, 0x83, 0xed, 0x4a, 0x95, 0xff, 0xb5, 0x5f, 0xe8, 0x10, 0x3a, 0x2c, 0xcb, 0x0b, + 0x15, 0x16, 0x82, 0x99, 0x12, 0x3a, 0xb8, 0x6d, 0x14, 0x53, 0xc1, 0xd0, 0x77, 0xd0, 0x8a, 0x12, + 0x2e, 0x0b, 0x41, 0x4d, 0x1d, 0xdd, 0x93, 0x8f, 0xeb, 0x59, 0x55, 0x5c, 0xff, 0x60, 0xb1, 0xb8, + 0x24, 0x19, 0xe7, 0x32, 0xcc, 0x89, 0xa0, 0x99, 0x32, 0x15, 0xb7, 0x71, 0x9b, 0xc9, 0x57, 0x46, + 0x1e, 0xbc, 0x85, 0xbd, 0xf7, 0x06, 0x85, 0x9e, 0xc3, 0x6e, 0xf5, 0x5c, 0xa4, 0xef, 0xf5, 0xef, + 0x0f, 0xbb, 0x27, 0x8f, 0xee, 0x8c, 0x8c, 0x77, 0xd4, 0x4d, 0x51, 0x5e, 0xf7, 0xbf, 0x71, 0xa3, + 0xff, 0x83, 0x3f, 0x9a, 0xb0, 0x7f, 0x5b, 0xc6, 0xe8, 0x18, 0x80, 0x17, 0xaa, 0x6c, 0x83, 0xee, + 0x62, 0x67, 0xd2, 0xf0, 0xbd, 0x17, 0xf7, 0x70, 0xc7, 0xea, 0x75, 0x37, 0x4e, 0x61, 0x93, 0x0a, + 0xc1, 0x85, 0xf1, 0x59, 0xc9, 0xc8, 0x74, 0x79, 0xe5, 0xf4, 0x99, 0x06, 0xbd, 0xb8, 0x87, 0x2d, + 0x1a, 0x7d, 0x0f, 0x5d, 0xe7, 0x3b, 0x26, 0x8a, 0xf8, 0x5b, 0x86, 0xfc, 0xb0, 0x46, 0xbe, 0xb0, + 0x37, 0xf9, 0x92, 0xe4, 0x2e, 0xae, 0xcb, 0xe7, 0x29, 0x51, 0x04, 0x9d, 0xc1, 0x66, 0xfe, 0x86, + 0x48, 0x3b, 0x84, 0x9d, 0x93, 0xc1, 0x5d, 0xe3, 0x0d, 0x5e, 0x69, 0x24, 0xb6, 0x04, 0xf4, 0x19, + 0x6c, 0x24, 0x7c, 0xa1, 0xb7, 0x4d, 0xf7, 0xf0, 0xc1, 0x2d, 0xc4, 0x0b, 0xbe, 0xc0, 0x06, 0x83, + 0xbe, 0x02, 0x90, 0x8a, 0x08, 0x45, 0xe3, 0x90, 0x28, 0xb7, 0x85, 0xbd, 0xc0, 0xde, 0x6f, 0x50, + 0xde, 0x6f, 0x70, 0x59, 0x3e, 0x00, 0xb8, 0xe3, 0xd0, 0x63, 0x85, 0x4e, 0xa1, 0x5d, 0xde, 0xbd, + 0xdf, 0x74, 0xf5, 0xd5, 0x89, 0x4f, 0x1d, 0x00, 0xaf, 0xa0, 0x3a, 0x62, 0x24, 0x28, 0x71, 0x11, + 0x5b, 0xeb, 0x23, 0x3a, 0xf4, 0x58, 0x69, 0x6a, 0x91, 0xc7, 0x25, 0xb5, 0xbd, 0x9e, 0xea, 0xd0, + 0x63, 0x85, 0xce, 0xa0, 0x1b, 0x15, 0x52, 0xf1, 0x34, 0x64, 0xd9, 0x9c, 0xfb, 0x1d, 0xc3, 0x3d, + 0x78, 0x8f, 0xfb, 0xda, 0x3c, 0x54, 0x18, 0x2c, 0xf6, 0x3c, 0x9b, 0x73, 0xf4, 0x00, 0x9a, 0x82, + 0x12, 0xc9, 0x33, 0x1f, 0xcc, 0x56, 0x39, 0x49, 0xaf, 0xb9, 0x59, 0x5a, 0xb5, 0xcc, 0xa9, 0xdf, + 0xb5, 0x37, 0xa4, 0x15, 0x97, 0xcb, 0x9c, 0xa2, 0x31, 0xb4, 0x53, 0xaa, 0x88, 0x99, 0xfd, 0x07, + 0x26, 0xd6, 0x27, 0xd7, 0x63, 0xb0, 0x6f, 0x6d, 0x65, 0x80, 0x2f, 0x1d, 0x18, 0xaf, 0x68, 0xe8, + 0x18, 0xb6, 0x0d, 0x30, 0x7c, 0x47, 0x85, 0xd4, 0x3d, 0xde, 0xeb, 0x7b, 0xc3, 0x4d, 0xbc, 0x65, + 0x94, 0xbf, 0x5a, 0x1d, 0xfa, 0x1c, 0x5a, 0x36, 0x1d, 0xe9, 0xa3, 0xfa, 0xb4, 0xed, 0xc5, 0x60, + 0x63, 0xc6, 0x25, 0x6c, 0xb2, 0x0b, 0xdb, 0x6e, 0x31, 0x05, 0x95, 0x45, 0xa2, 0x06, 0x21, 0x34, + 0x2d, 0x06, 0x7d, 0x03, 0x5d, 0x1e, 0x45, 0x85, 0x10, 0xb6, 0xbf, 0xde, 0xda, 0xfe, 0x42, 0x09, + 0x1f, 0x2b, 0xfd, 0xca, 0xa5, 0x54, 0x4a, 0xb2, 0xa0, 0xee, 0xfa, 0x4a, 0x71, 0x30, 0x85, 0xc3, + 0xfa, 0x7b, 0xaf, 0x17, 0xfc, 0xff, 0xbe, 0xf9, 0x7f, 0x36, 0xe0, 0xe8, 0x76, 0xbf, 0x32, 0xe7, + 0x99, 0xa4, 0xe8, 0x09, 0x34, 0xcd, 0x9b, 0x26, 0x9d, 0xf3, 0x83, 0x7a, 0x6b, 0xa6, 0x22, 0x99, + 0x24, 0x7c, 0xa6, 0x6f, 0x0f, 0x3b, 0x28, 0x3a, 0x85, 0x96, 0x6d, 0x8f, 0x74, 0x07, 0x7f, 0x27, + 0xab, 0xc4, 0xa2, 0xaf, 0xa1, 0x3b, 0x2f, 0x92, 0x24, 0x74, 0x01, 0xef, 0xaf, 0x39, 0x77, 0x0c, + 0x1a, 0x7d, 0x6e, 0x43, 0x7e, 0x0b, 0x5b, 0x86, 0x5b, 0xc6, 0xdd, 0x58, 0x47, 0x36, 0xa1, 0x7e, + 0x76, 0x91, 0xcf, 0x00, 0x0c, 0x30, 0x2c, 0x44, 0x22, 0xdd, 0x01, 0x3f, 0xac, 0xe7, 0xfc, 0x5c, + 0x8b, 0x53, 0x7c, 0x21, 0x71, 0xc7, 0x58, 0xa6, 0x22, 0x91, 0x93, 0x2f, 0x7f, 0x3b, 0x5d, 0x30, + 0xf5, 0xa6, 0x98, 0x05, 0x11, 0x4f, 0x47, 0x46, 0xcf, 0xc5, 0x62, 0xb4, 0xfa, 0x31, 0x58, 0xd0, + 0x6c, 0x94, 0xcf, 0x1e, 0x2f, 0xf8, 0xa8, 0xfa, 0x97, 0x32, 0x6b, 0x9a, 0x55, 0x78, 0xf2, 0x4f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xae, 0x02, 0x8d, 0xf3, 0x08, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.validate.go b/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.validate.go index ab4c1dc11..625e73bac 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.validate.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.validate.go @@ -781,6 +781,16 @@ func (m *TaskExecutionGetDataResponse) Validate() error { } } + if v, ok := interface{}(m.GetFlyteUrls()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return TaskExecutionGetDataResponseValidationError{ + field: "FlyteUrls", + reason: "embedded message failed validation", + cause: err, + } + } + } + return nil } diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index 06c565ded..1b35e94e4 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -7,7 +7,6 @@ import ( context "context" fmt "fmt" admin "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin" - _ "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/core" proto "github.com/golang/protobuf/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" @@ -30,143 +29,142 @@ const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("flyteidl/service/admin.proto", fileDescriptor_5cfa31da1d67295d) } var fileDescriptor_5cfa31da1d67295d = []byte{ - // 2179 bytes of a gzipped FileDescriptorProto + // 2163 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x9a, 0xdf, 0x6f, 0x1d, 0x47, 0x15, 0xc7, 0x35, 0x36, 0x02, 0x31, 0x4d, 0x62, 0x7b, 0x9a, 0x60, 0x67, 0x63, 0x27, 0xe9, 0xba, 0x8e, 0x7f, 0xdf, 0x75, 0x93, 0xb4, 0x51, 0x42, 0x7f, 0xb9, 0xb5, 0x73, 0x65, 0x48, 0x93, 0x62, 0x52, 0x90, 0x2c, 0xa4, 0xab, 0xf5, 0xdd, 0x89, 0xb3, 0xc9, 0xbd, 0x77, 0x6f, 0x77, 0xc7, 0x2e, 0x96, 0x65, 0xf1, 0x43, 0x08, 0x51, 0x21, 0xf1, 0xc0, 0x0f, 0x41, 0x21, 0xa2, 0x14, 0x8a, 0xf8, 0x59, 0x5e, 0x40, 0x45, 0xbc, 0x54, 0x42, 0x80, 0xc4, 0x0b, 0x2f, 0xf0, 0xce, 0x0b, 0x7d, 0xe6, - 0x6f, 0x40, 0x7b, 0x76, 0x66, 0xef, 0xce, 0xce, 0xce, 0xee, 0xac, 0x49, 0x79, 0xe2, 0xcd, 0xbe, + 0x6f, 0x40, 0x7b, 0x66, 0x66, 0xef, 0xce, 0xee, 0xce, 0xee, 0xac, 0x49, 0x79, 0xe2, 0xcd, 0xbe, 0xe7, 0x3b, 0x33, 0x9f, 0x73, 0xe6, 0xcc, 0x99, 0xd9, 0xdd, 0xc1, 0x93, 0x77, 0x3a, 0xfb, 0x8c, 0xfa, 0x5e, 0xc7, 0x89, 0x68, 0xb8, 0xe7, 0xb7, 0xa9, 0xe3, 0x7a, 0x5d, 0xbf, 0xd7, 0xe8, 0x87, - 0x01, 0x0b, 0xc8, 0xa8, 0xb0, 0x36, 0xb8, 0xd5, 0x9a, 0xdc, 0x09, 0x82, 0x9d, 0x0e, 0x75, 0xdc, - 0xbe, 0xef, 0xb8, 0xbd, 0x5e, 0xc0, 0x5c, 0xe6, 0x07, 0xbd, 0x28, 0xd1, 0x5b, 0x83, 0xde, 0xa0, - 0x17, 0xa7, 0x1f, 0x06, 0xf7, 0x68, 0x9b, 0x71, 0x6b, 0xa3, 0xd8, 0xda, 0xf2, 0x82, 0xae, 0xeb, - 0xf7, 0x5a, 0x2e, 0x63, 0xa1, 0xbf, 0xbd, 0xcb, 0xa8, 0xe8, 0x6d, 0x56, 0xa3, 0x57, 0x84, 0xa7, - 0x73, 0x42, 0xe6, 0x46, 0xf7, 0xb9, 0x69, 0x2a, 0x67, 0x7a, 0x2d, 0x08, 0xef, 0xdf, 0xe9, 0x04, - 0xaf, 0x71, 0xf3, 0x9c, 0xc6, 0xac, 0x8e, 0x71, 0x3e, 0xa7, 0xec, 0xb8, 0xbb, 0xbd, 0xf6, 0xdd, - 0x56, 0xbf, 0xe3, 0xf2, 0x60, 0x59, 0x56, 0x4e, 0x41, 0xf7, 0x68, 0x4f, 0xb8, 0x7e, 0x36, 0x6f, - 0xfb, 0x3c, 0x6d, 0xef, 0xc6, 0x91, 0xd3, 0xb8, 0xda, 0x75, 0x59, 0xfb, 0xae, 0xbb, 0xdd, 0xa1, - 0xad, 0x90, 0x46, 0xc1, 0x6e, 0xd8, 0xa6, 0x5c, 0x38, 0x9d, 0x13, 0xf6, 0x02, 0x8f, 0xb6, 0xf2, - 0xbd, 0x4d, 0x17, 0xc4, 0x43, 0x11, 0xe5, 0xe7, 0x6a, 0x8f, 0x86, 0xd1, 0xc0, 0x7a, 0x26, 0x67, - 0x6d, 0x07, 0xdd, 0xae, 0x96, 0xd6, 0xa3, 0x51, 0x3b, 0xf4, 0xfb, 0x71, 0xe7, 0x2d, 0xda, 0x63, - 0x3e, 0xdb, 0x57, 0xdc, 0x6e, 0x07, 0x21, 0x75, 0x7c, 0x2f, 0xb6, 0xde, 0xf1, 0x69, 0xa8, 0x8c, - 0x02, 0xf6, 0x2e, 0x65, 0xa1, 0xdf, 0xe6, 0x11, 0xbf, 0xf8, 0x95, 0x9b, 0xf8, 0xd8, 0x6a, 0xdc, - 0xff, 0xa7, 0x93, 0xdc, 0x23, 0x5d, 0x8c, 0x5f, 0x0c, 0xa9, 0xcb, 0xe8, 0x6d, 0x37, 0xba, 0x4f, - 0x1e, 0x4b, 0xd3, 0xa9, 0x91, 0xa4, 0x6c, 0xfc, 0x6b, 0x62, 0xdf, 0xa4, 0xaf, 0xee, 0xd2, 0x88, - 0x59, 0x76, 0x99, 0x24, 0xea, 0x07, 0xbd, 0x88, 0xda, 0x13, 0x5f, 0xfe, 0xc7, 0xfb, 0xdf, 0x1a, - 0x22, 0xf6, 0x71, 0x48, 0xe9, 0xbd, 0x27, 0x20, 0x58, 0xd1, 0x35, 0xb4, 0x40, 0xbe, 0x86, 0xf0, - 0x47, 0x9a, 0x94, 0xc1, 0x60, 0xe7, 0xf3, 0x3d, 0xdd, 0xda, 0x8e, 0x53, 0xb1, 0x49, 0x99, 0x18, - 0xeb, 0x64, 0xd1, 0x58, 0xf6, 0x3a, 0xf4, 0xfe, 0x1c, 0x79, 0x46, 0xea, 0xdd, 0x39, 0xf0, 0xbd, - 0x06, 0xcf, 0xe6, 0x43, 0xf8, 0x27, 0x59, 0x02, 0xc9, 0xdf, 0x3d, 0xb7, 0x4b, 0x93, 0xbf, 0xf8, - 0x94, 0x1c, 0x92, 0xef, 0x22, 0xfc, 0xc8, 0x0d, 0x3f, 0x02, 0x96, 0x0d, 0x2f, 0x22, 0x2b, 0xf9, - 0xc1, 0x6e, 0xba, 0x5d, 0xea, 0xad, 0x43, 0xe8, 0x37, 0xd2, 0x20, 0xc7, 0x2d, 0x04, 0xde, 0xbc, - 0x71, 0x0b, 0x7b, 0x11, 0x98, 0x67, 0xc8, 0x74, 0x96, 0xb9, 0xe5, 0x7b, 0x91, 0x73, 0x30, 0x60, - 0xe6, 0xc0, 0xe4, 0x37, 0x08, 0x7f, 0x54, 0x90, 0x45, 0x64, 0x3a, 0x3f, 0xca, 0x26, 0xcf, 0xde, - 0x2c, 0xca, 0x44, 0x51, 0xa4, 0x60, 0xe4, 0x6d, 0x18, 0xf9, 0x73, 0x64, 0xa5, 0x6e, 0xb4, 0xb6, - 0xe6, 0xc8, 0x05, 0xb3, 0x36, 0xe4, 0x10, 0x9f, 0x48, 0x32, 0xe0, 0xb3, 0x7c, 0xa9, 0x93, 0x99, - 0x3c, 0x8f, 0xb0, 0xc8, 0xc9, 0x74, 0xa1, 0x4a, 0xc6, 0x13, 0x6a, 0x12, 0x9c, 0xf8, 0x98, 0x3d, - 0x26, 0x80, 0x44, 0x4d, 0x81, 0xa4, 0xfa, 0x36, 0xc2, 0x8f, 0x34, 0x29, 0x4b, 0x07, 0xaf, 0x4e, - 0xac, 0x09, 0xdd, 0xb8, 0xf6, 0x06, 0x8c, 0xf4, 0x22, 0x59, 0x55, 0x46, 0xaa, 0x9d, 0x60, 0x6f, - 0x22, 0x3c, 0x12, 0x4f, 0x81, 0xe8, 0xfb, 0x03, 0x4f, 0x32, 0x07, 0xd8, 0xe7, 0xc9, 0x6c, 0x9e, - 0x5d, 0x97, 0x68, 0xef, 0x21, 0x7c, 0x3c, 0x4b, 0x68, 0x98, 0x6c, 0x93, 0xba, 0xe8, 0x01, 0xc5, - 0x3d, 0xa0, 0xf0, 0xc8, 0xe5, 0xa3, 0x44, 0x70, 0x6b, 0x89, 0x2c, 0x98, 0xb7, 0x23, 0x5f, 0x45, - 0x78, 0x34, 0x49, 0x95, 0x1b, 0xb0, 0x75, 0xbc, 0xdc, 0x71, 0x7b, 0x64, 0x36, 0x8f, 0x37, 0xb0, - 0xc9, 0xd9, 0x37, 0x57, 0x2d, 0xe4, 0xf9, 0x77, 0x0e, 0x7c, 0x3a, 0x6d, 0x9f, 0x14, 0x6c, 0x99, - 0x9d, 0x0a, 0x52, 0xf0, 0x07, 0x08, 0x1f, 0x6f, 0x52, 0x96, 0xa1, 0xa8, 0x4e, 0x42, 0x4b, 0x3f, - 0xbc, 0x7d, 0x03, 0x06, 0xbc, 0x4e, 0xd6, 0x8a, 0x06, 0xac, 0x9d, 0x89, 0x3f, 0x46, 0xf8, 0xd1, - 0x26, 0x65, 0xab, 0x6d, 0xe6, 0xef, 0x95, 0x46, 0x2a, 0xaf, 0x30, 0x41, 0xbd, 0x0e, 0xa8, 0xcf, - 0x93, 0x67, 0x05, 0xaa, 0x0b, 0x9d, 0xb4, 0x6a, 0x12, 0x93, 0x07, 0x08, 0x9f, 0x8a, 0x13, 0x28, - 0xcf, 0x10, 0x91, 0xc5, 0x2a, 0xcc, 0x6c, 0x72, 0x9e, 0xd5, 0xa3, 0x42, 0x7a, 0x3e, 0x05, 0xb8, - 0x2b, 0xa4, 0x51, 0x8a, 0xab, 0xae, 0x95, 0xb7, 0x11, 0x1e, 0x8b, 0x3b, 0x18, 0x74, 0xf7, 0x81, - 0xaf, 0xe7, 0x8b, 0x80, 0x9a, 0x59, 0x11, 0x19, 0x46, 0xdd, 0x92, 0xfe, 0x2b, 0x2f, 0x3a, 0xd9, - 0xf8, 0x19, 0x2d, 0xea, 0xaa, 0xb8, 0xf5, 0x01, 0xe6, 0x1e, 0xb9, 0x72, 0xc4, 0x8c, 0xdc, 0x72, - 0xc8, 0x72, 0xad, 0xa6, 0xe4, 0x5d, 0x84, 0x47, 0x5f, 0xe9, 0x7b, 0xc6, 0x8b, 0x3b, 0xd1, 0x1a, - 0x2c, 0x6e, 0x21, 0xe4, 0x8b, 0xfb, 0x16, 0x78, 0xb6, 0x61, 0x3d, 0x94, 0xb5, 0x16, 0x17, 0x83, - 0x2f, 0x21, 0x3c, 0x92, 0x14, 0x90, 0x75, 0x71, 0x3e, 0x24, 0xca, 0x4e, 0x97, 0x9a, 0xe4, 0x9a, - 0x34, 0x5b, 0xa9, 0xe3, 0xd4, 0x53, 0x40, 0x3d, 0x6e, 0x13, 0x41, 0x9d, 0x9e, 0x45, 0xa1, 0x20, - 0x7d, 0x03, 0xe1, 0xb1, 0x4d, 0x9a, 0x78, 0x32, 0xa0, 0x98, 0xd3, 0xf6, 0x2e, 0xb4, 0xb5, 0x39, - 0x2e, 0x00, 0xc7, 0x79, 0xfb, 0x8c, 0xca, 0xe1, 0x84, 0xbc, 0xd3, 0x18, 0xe8, 0xeb, 0x08, 0x8f, - 0x6e, 0xd2, 0x76, 0xb0, 0x47, 0xc3, 0x01, 0xcf, 0x6c, 0x09, 0x0f, 0x48, 0x6b, 0xe3, 0xcc, 0x00, - 0xce, 0x39, 0xdb, 0x2a, 0xc4, 0x81, 0x3e, 0x63, 0x9a, 0xef, 0x20, 0x7c, 0xac, 0x49, 0xd9, 0x80, - 0x64, 0x51, 0xb7, 0xa7, 0xa5, 0x92, 0x4c, 0xe5, 0x3e, 0xad, 0xa5, 0xb1, 0x9f, 0x81, 0xf1, 0xaf, - 0x90, 0x27, 0x0b, 0xc6, 0x37, 0x28, 0x82, 0x6f, 0x23, 0x3c, 0x92, 0xa4, 0xa7, 0x49, 0xea, 0xc8, - 0x19, 0x3f, 0x5b, 0xa9, 0xe3, 0x31, 0x7a, 0x1e, 0x18, 0xaf, 0x59, 0x47, 0x63, 0x8c, 0xc3, 0xf7, - 0x07, 0x84, 0x47, 0xb3, 0xe1, 0x5b, 0x73, 0x99, 0x4b, 0x1c, 0x93, 0x10, 0xc6, 0x4a, 0x01, 0xbc, - 0x62, 0xde, 0x80, 0x93, 0xbf, 0x00, 0xe4, 0x4f, 0x93, 0x6b, 0x82, 0xdc, 0x73, 0x99, 0x5b, 0x33, - 0xc4, 0xaf, 0x23, 0x7c, 0x22, 0xae, 0x68, 0xe9, 0x20, 0x86, 0x05, 0x72, 0x4a, 0x1b, 0x5e, 0xa8, - 0x8f, 0x97, 0x00, 0x6d, 0x99, 0x2c, 0xd6, 0x08, 0x2a, 0x79, 0x07, 0x61, 0x72, 0x9b, 0x86, 0x5d, - 0xbf, 0x27, 0xcd, 0xf8, 0xbc, 0x76, 0xa8, 0x54, 0x2c, 0xa8, 0x16, 0x4c, 0xa4, 0xf2, 0xbc, 0x2f, - 0x1c, 0x7d, 0xde, 0xff, 0x9e, 0xcc, 0xfb, 0xcd, 0xc0, 0xa3, 0x25, 0x8b, 0x58, 0x32, 0x67, 0x96, - 0xcd, 0x54, 0xa9, 0xd0, 0xde, 0x03, 0xbc, 0x3e, 0xe9, 0x09, 0x3c, 0xf9, 0x39, 0x3c, 0x61, 0x4c, - 0xff, 0x6d, 0xe5, 0x81, 0x25, 0x4b, 0x96, 0x5e, 0x32, 0x0c, 0x2a, 0x36, 0xf4, 0xee, 0x7b, 0x87, - 0xe4, 0x9f, 0x08, 0x93, 0x78, 0x0a, 0x25, 0x9a, 0x48, 0xad, 0x95, 0x92, 0x3d, 0x9b, 0x19, 0x8f, - 0x55, 0x2a, 0xed, 0x03, 0xf0, 0x6d, 0x97, 0x44, 0x5a, 0xdf, 0xd2, 0xb3, 0xba, 0xc6, 0xc3, 0x62, - 0x7b, 0xea, 0x67, 0xb1, 0x39, 0xc9, 0xf8, 0x9f, 0x7e, 0x08, 0x9f, 0x56, 0x1d, 0xbc, 0x1e, 0x84, - 0xf0, 0x18, 0xee, 0x94, 0xd2, 0x73, 0x55, 0x4d, 0x77, 0x7f, 0x3b, 0x0c, 0xfe, 0xfe, 0x7a, 0x98, - 0xfc, 0x62, 0x58, 0x78, 0xdc, 0xbe, 0xeb, 0x77, 0xbc, 0x90, 0xe6, 0xdf, 0x9c, 0x44, 0xce, 0x81, - 0xfc, 0x43, 0x4b, 0xcc, 0x8d, 0xf4, 0x8b, 0x26, 0x2a, 0xb5, 0x9b, 0xa6, 0x01, 0xab, 0xdd, 0x92, - 0x67, 0x8e, 0x49, 0x3b, 0x91, 0x5a, 0x45, 0x6a, 0xfe, 0xe0, 0x5f, 0xea, 0x83, 0xd0, 0x94, 0xc0, - 0x0a, 0x89, 0x96, 0x4a, 0x08, 0xc4, 0xc1, 0xa4, 0x48, 0x13, 0x52, 0x16, 0xee, 0xb7, 0x5c, 0xc6, - 0x68, 0xb7, 0xcf, 0x0e, 0xc9, 0xbf, 0x11, 0x3e, 0x99, 0x5f, 0xdd, 0x50, 0xd9, 0x17, 0xab, 0x56, - 0x78, 0xb6, 0xaa, 0x2f, 0x99, 0x89, 0x79, 0x4d, 0x52, 0x16, 0x06, 0x54, 0xf4, 0xff, 0xd1, 0xca, - 0xff, 0x02, 0x1e, 0xd9, 0xa4, 0x3b, 0x7e, 0xc4, 0x68, 0xf8, 0x72, 0xd2, 0xa1, 0xba, 0xd9, 0x72, - 0x83, 0xd0, 0x69, 0x37, 0x5b, 0x45, 0xc7, 0x1d, 0x3c, 0x03, 0x0e, 0x9e, 0xb2, 0x47, 0x85, 0x83, - 0x1c, 0x1d, 0x4e, 0x69, 0xaf, 0xe2, 0xe3, 0xc9, 0xde, 0x2c, 0x86, 0x1f, 0xd7, 0x74, 0x6b, 0xcd, - 0x68, 0x0c, 0xb9, 0xad, 0xfd, 0x3c, 0x8c, 0x66, 0x59, 0xa7, 0xf2, 0xa3, 0xc5, 0x8e, 0x43, 0x09, - 0xbf, 0x83, 0x8f, 0xc5, 0x4b, 0x94, 0x37, 0x8f, 0x88, 0xad, 0xe9, 0xb8, 0xf4, 0xed, 0x92, 0x68, - 0x2d, 0xde, 0xf4, 0x11, 0xc5, 0x3b, 0xf2, 0x06, 0xc2, 0x8f, 0xca, 0x2f, 0x85, 0xd6, 0xf7, 0x68, - 0x8f, 0x91, 0xe5, 0xca, 0x4d, 0x1f, 0x74, 0x62, 0xe8, 0x86, 0xa9, 0x9c, 0x07, 0x60, 0x1a, 0x80, - 0xa6, 0xec, 0x89, 0x74, 0x8f, 0x8b, 0xcd, 0x91, 0xfc, 0xc2, 0xe8, 0xf5, 0xf4, 0x80, 0x0e, 0xb9, - 0x09, 0x5c, 0xf3, 0xa5, 0x69, 0x2b, 0x31, 0x2d, 0x98, 0x48, 0x75, 0x6f, 0x0e, 0x38, 0x4f, 0x9c, - 0x83, 0x39, 0x96, 0xb8, 0xce, 0x6a, 0x58, 0xc0, 0x64, 0xc6, 0x52, 0x24, 0xad, 0x60, 0x49, 0xdf, - 0xce, 0x7e, 0x71, 0x18, 0xb6, 0x77, 0xa9, 0x0b, 0x75, 0x7b, 0x97, 0xcc, 0x65, 0xdb, 0xbb, 0x24, - 0xb4, 0x7f, 0x32, 0x04, 0xc3, 0x3f, 0x18, 0x22, 0x6f, 0x0c, 0x49, 0x6f, 0x41, 0x73, 0xeb, 0xdc, - 0xb8, 0xf6, 0xd7, 0x28, 0xf6, 0xc6, 0xd5, 0xbd, 0xa2, 0x9c, 0x17, 0xd6, 0xef, 0xa2, 0x82, 0xad, - 0x56, 0xe8, 0xc2, 0x92, 0xac, 0xd6, 0xe0, 0xef, 0x0d, 0x25, 0x87, 0x11, 0x29, 0x76, 0x05, 0x87, - 0x11, 0xc9, 0x5e, 0xba, 0x3b, 0x2b, 0x4a, 0xfb, 0x77, 0x08, 0x66, 0xe2, 0x1d, 0x44, 0x7e, 0x89, - 0xb4, 0x33, 0x61, 0x3c, 0x0d, 0xa6, 0x73, 0x60, 0x36, 0x01, 0xfa, 0xe8, 0x93, 0x07, 0xc3, 0xb0, - 0x3d, 0x49, 0xfe, 0x14, 0x6f, 0x4f, 0xf9, 0x0c, 0x2d, 0xdd, 0x9e, 0x8a, 0xc5, 0x7c, 0xc9, 0xfc, - 0x3c, 0x49, 0xda, 0xb7, 0x86, 0xc8, 0x0f, 0x87, 0xa4, 0x1d, 0xea, 0xff, 0x99, 0x9b, 0xcf, 0xdc, - 0x7f, 0x21, 0x3c, 0x25, 0x6d, 0x66, 0x6b, 0xd0, 0xe5, 0x6a, 0xfa, 0xd1, 0x8f, 0x5c, 0xd6, 0x6c, - 0x23, 0x79, 0xa1, 0xfc, 0x58, 0xfb, 0x64, 0xcd, 0x56, 0x7c, 0xe6, 0x5e, 0x81, 0x89, 0xbb, 0x65, - 0x7d, 0x22, 0xb7, 0x33, 0xa9, 0x5f, 0x46, 0x9d, 0x03, 0xf9, 0xc3, 0x24, 0x0f, 0x4e, 0xe6, 0x47, - 0x1e, 0x9c, 0xb8, 0x44, 0xfe, 0x11, 0x61, 0xab, 0x49, 0x99, 0xce, 0xc5, 0x27, 0x0c, 0x61, 0x33, - 0x65, 0xf3, 0x62, 0x9d, 0x26, 0xdc, 0xb9, 0xa7, 0xc1, 0xb9, 0xa7, 0x06, 0xef, 0xd8, 0x4b, 0x9c, - 0x53, 0xdf, 0x11, 0xfe, 0x0d, 0xe1, 0xa9, 0x35, 0xda, 0xa1, 0xff, 0xfd, 0x4c, 0x25, 0xbd, 0xd4, - 0x9d, 0x29, 0xd1, 0x8a, 0x3b, 0xf3, 0x1c, 0x38, 0x73, 0x75, 0xe1, 0x48, 0xce, 0xc4, 0x73, 0xf2, - 0x2e, 0xc2, 0xe3, 0x52, 0xe6, 0x65, 0x3c, 0x69, 0x68, 0x98, 0x74, 0xd9, 0xe6, 0x18, 0xeb, 0x39, - 0xfd, 0x35, 0xa0, 0xbf, 0x6c, 0x39, 0x79, 0xfa, 0x8a, 0x04, 0x8b, 0xc1, 0xdf, 0x4c, 0x0e, 0xdc, - 0x2a, 0xf5, 0x62, 0x25, 0x45, 0x26, 0x81, 0x96, 0xcc, 0xc4, 0x9c, 0x77, 0x09, 0x78, 0x2f, 0x90, - 0xc7, 0xcb, 0x78, 0x05, 0x24, 0xf9, 0x15, 0xc2, 0xe3, 0x52, 0xaa, 0xd4, 0x0a, 0xad, 0x9c, 0x1e, - 0x8e, 0xb1, 0x9e, 0xa3, 0xf2, 0xef, 0x59, 0x0b, 0x46, 0xa8, 0x71, 0x3c, 0xdf, 0x47, 0x78, 0x22, - 0x99, 0x1e, 0x71, 0x4a, 0xcc, 0xe0, 0x6a, 0x5f, 0x4f, 0xe9, 0x52, 0x61, 0xc5, 0xbc, 0x01, 0x07, - 0xa6, 0x00, 0xdc, 0xb2, 0xb6, 0x94, 0x0f, 0x70, 0x47, 0xa8, 0x36, 0xd2, 0x6f, 0xa2, 0x23, 0x70, - 0xf3, 0xf7, 0x08, 0x9f, 0xca, 0x7c, 0xef, 0xcc, 0xf8, 0xb8, 0x54, 0x8d, 0x9c, 0x49, 0x9c, 0x65, - 0x43, 0x35, 0xf7, 0x6e, 0x15, 0xbc, 0xfb, 0x38, 0xb9, 0x5a, 0xea, 0x9d, 0xb2, 0x42, 0x07, 0xef, - 0x26, 0x0e, 0xc9, 0x9f, 0x10, 0x9e, 0x48, 0x26, 0xf9, 0x68, 0x13, 0x24, 0x27, 0xd4, 0x8a, 0x79, - 0x03, 0xee, 0xc2, 0x1a, 0xb8, 0xf0, 0xec, 0xc2, 0xd1, 0x5d, 0x88, 0xe3, 0xff, 0x23, 0x84, 0xc7, - 0xe3, 0x83, 0xd4, 0x4b, 0xe2, 0x42, 0x49, 0xd9, 0xa2, 0xd0, 0x08, 0xb5, 0x8b, 0x42, 0xab, 0xe7, - 0x2e, 0x3c, 0x0e, 0x2e, 0x9c, 0x25, 0x93, 0xc2, 0x85, 0xc1, 0xb5, 0x96, 0x81, 0x0f, 0x71, 0x65, - 0x81, 0xaf, 0x55, 0x83, 0x8f, 0x4b, 0x3e, 0x8d, 0xd4, 0x87, 0xdb, 0xcc, 0xb7, 0xa7, 0xec, 0x19, - 0xf2, 0x5c, 0x85, 0x4e, 0x4d, 0x85, 0xf8, 0xa8, 0xe0, 0x25, 0xf7, 0x54, 0xfc, 0x38, 0x84, 0xe2, - 0x86, 0x4d, 0x8b, 0xed, 0xf7, 0xe3, 0x33, 0x84, 0xba, 0x09, 0xfd, 0x0c, 0xe1, 0x13, 0x4d, 0x9a, - 0x01, 0xdc, 0x57, 0x2f, 0x0d, 0x64, 0x8c, 0x99, 0xb4, 0x3d, 0x53, 0x22, 0xb3, 0x3f, 0x05, 0x64, - 0x9f, 0x24, 0x1b, 0xa6, 0x64, 0xd5, 0x2f, 0x8c, 0xdf, 0x43, 0x78, 0x2c, 0x59, 0xe8, 0x59, 0xd8, - 0xb9, 0x12, 0x0a, 0xb9, 0x8e, 0xcc, 0x1b, 0x28, 0xf9, 0xe4, 0xde, 0x06, 0xfa, 0x9b, 0xd6, 0xc3, - 0xa3, 0x8f, 0xf3, 0xb5, 0x83, 0x71, 0x93, 0xb2, 0xcf, 0x24, 0x67, 0x37, 0xf5, 0x8e, 0xcf, 0xc0, - 0xa6, 0xbd, 0xe3, 0x93, 0x95, 0x70, 0xd4, 0x71, 0x40, 0x1d, 0x23, 0x23, 0x02, 0x95, 0x9f, 0x0d, - 0xc9, 0x9f, 0x93, 0x4d, 0x6d, 0x6d, 0x70, 0x7f, 0x89, 0x47, 0xac, 0xfa, 0x8b, 0xb8, 0x82, 0xa6, - 0x74, 0x62, 0xef, 0xc0, 0xb0, 0x2e, 0x69, 0xa5, 0xa7, 0xf1, 0xfc, 0x3d, 0x29, 0x88, 0x13, 0x1c, - 0x4f, 0x6b, 0x86, 0x4a, 0xfe, 0x66, 0xfe, 0xcd, 0xa1, 0x64, 0x91, 0xe7, 0x11, 0xfc, 0xa2, 0x32, - 0xab, 0x70, 0x66, 0x57, 0xd3, 0x8c, 0x91, 0xda, 0x7e, 0x2b, 0x79, 0x2a, 0xfb, 0x3e, 0x22, 0xb7, - 0xca, 0x7d, 0xab, 0xed, 0xd8, 0x56, 0x93, 0xac, 0x3f, 0x94, 0x2e, 0xc9, 0x5f, 0x92, 0x8b, 0x04, - 0xe9, 0xe3, 0xd2, 0x4b, 0xc9, 0xe5, 0x32, 0x72, 0xd1, 0xe4, 0x4b, 0x0e, 0x17, 0x8b, 0xb0, 0x5c, - 0xaa, 0xd5, 0x86, 0x67, 0x9d, 0x72, 0xf7, 0x8b, 0x5f, 0x6f, 0xab, 0xf7, 0x29, 0xe3, 0x85, 0xab, - 0x5b, 0x57, 0x76, 0x7c, 0x76, 0x77, 0x77, 0xbb, 0xd1, 0x0e, 0xba, 0x0e, 0x70, 0x04, 0xe1, 0x8e, - 0x93, 0xde, 0x9c, 0xdb, 0xa1, 0x3d, 0xa7, 0xbf, 0xbd, 0xbc, 0x13, 0x38, 0xf9, 0xab, 0x9c, 0xdb, - 0x1f, 0x86, 0x8b, 0x74, 0x97, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x01, 0x50, 0xd6, 0xe5, + 0x01, 0x0b, 0xc8, 0xa8, 0xb4, 0x36, 0x84, 0xd5, 0x9a, 0xdc, 0x09, 0x82, 0x9d, 0x0e, 0x75, 0xdc, + 0xbe, 0xef, 0xb8, 0xbd, 0x5e, 0xc0, 0x5c, 0xe6, 0x07, 0xbd, 0x88, 0xeb, 0xad, 0x41, 0x6f, 0xd0, + 0x8b, 0xd3, 0x0f, 0x83, 0x7b, 0xb4, 0xcd, 0x84, 0xb5, 0x51, 0x6c, 0x6d, 0x79, 0x41, 0xd7, 0xf5, + 0x7b, 0x2d, 0x97, 0xb1, 0xd0, 0xdf, 0xde, 0x65, 0x54, 0xf6, 0x36, 0xab, 0xd1, 0xe7, 0x84, 0xa7, + 0x33, 0x42, 0xe6, 0x46, 0xf7, 0x85, 0x69, 0x2a, 0x63, 0x7a, 0x2d, 0x08, 0xef, 0xdf, 0xe9, 0x04, + 0xaf, 0x09, 0xf3, 0x9c, 0xc6, 0x9c, 0x1f, 0xe3, 0x7c, 0x46, 0xd9, 0x71, 0x77, 0x7b, 0xed, 0xbb, + 0xad, 0x7e, 0xc7, 0x15, 0xc1, 0xb2, 0xac, 0x8c, 0x82, 0xee, 0xd1, 0x9e, 0x74, 0xfd, 0x6c, 0xd6, + 0xf6, 0x79, 0xda, 0xde, 0x8d, 0x23, 0xa7, 0x71, 0xb5, 0xeb, 0xb2, 0xf6, 0x5d, 0x77, 0xbb, 0x43, + 0x5b, 0x21, 0x8d, 0x82, 0xdd, 0xb0, 0x4d, 0x85, 0x70, 0x3a, 0x23, 0xec, 0x05, 0x1e, 0x6d, 0x65, + 0x7b, 0x9b, 0x2e, 0x88, 0x47, 0x4e, 0x94, 0x9d, 0xab, 0x3d, 0x1a, 0x46, 0x03, 0xeb, 0x99, 0x8c, + 0xb5, 0x1d, 0x74, 0xbb, 0x5a, 0x5a, 0x8f, 0x46, 0xed, 0xd0, 0xef, 0xc7, 0x9d, 0xb7, 0x68, 0x8f, + 0xf9, 0x6c, 0x9f, 0x0b, 0x2f, 0x7e, 0xe5, 0x26, 0x3e, 0xb6, 0x1a, 0x4b, 0x3e, 0xcd, 0xd3, 0x87, + 0x74, 0x31, 0x7e, 0x31, 0xa4, 0x2e, 0xa3, 0xb7, 0xdd, 0xe8, 0x3e, 0x79, 0x2c, 0xc9, 0x88, 0x06, + 0xcf, 0xba, 0xf8, 0x57, 0x6e, 0xdf, 0xa4, 0xaf, 0xee, 0xd2, 0x88, 0x59, 0x76, 0x99, 0x24, 0xea, + 0x07, 0xbd, 0x88, 0xda, 0x13, 0x5f, 0xfe, 0xc7, 0xfb, 0xdf, 0x1a, 0x22, 0xf6, 0x71, 0xc8, 0xca, + 0xbd, 0x27, 0xc0, 0xdf, 0xe8, 0x1a, 0x5a, 0x20, 0x5f, 0x43, 0xf8, 0x23, 0x4d, 0xca, 0x60, 0xb0, + 0xf3, 0xd9, 0x9e, 0x6e, 0x6d, 0xc7, 0xd9, 0xd4, 0xa4, 0x4c, 0x8e, 0x75, 0xb2, 0x68, 0x2c, 0x7b, + 0x1d, 0x7a, 0x7f, 0x8e, 0x3c, 0xa3, 0xf4, 0xee, 0x1c, 0xf8, 0x5e, 0x43, 0x24, 0xe4, 0x21, 0xfc, + 0xc3, 0xb3, 0x98, 0xff, 0xdd, 0x73, 0xbb, 0x94, 0xff, 0x25, 0xa2, 0x7a, 0x48, 0xbe, 0x8b, 0xf0, + 0x23, 0x37, 0xfc, 0x08, 0x58, 0x36, 0xbc, 0x88, 0xac, 0x64, 0x07, 0xbb, 0xe9, 0x76, 0xa9, 0xb7, + 0x0e, 0xd1, 0xdb, 0xf0, 0xe2, 0x28, 0xde, 0xf1, 0x69, 0x18, 0xb7, 0x90, 0x78, 0xf3, 0xc6, 0x2d, + 0xec, 0x45, 0x60, 0x9e, 0x21, 0xd3, 0x69, 0xe6, 0x96, 0xef, 0x45, 0xce, 0xc1, 0x80, 0x59, 0x00, + 0x93, 0xdf, 0x20, 0xfc, 0x51, 0x49, 0x16, 0x91, 0xe9, 0xec, 0x28, 0x9b, 0x22, 0x01, 0xd3, 0x28, + 0x13, 0x45, 0x91, 0x82, 0x91, 0xb7, 0x61, 0xe4, 0xcf, 0x91, 0x95, 0xba, 0xd1, 0xda, 0x9a, 0x23, + 0x17, 0xcc, 0xda, 0x90, 0x43, 0x7c, 0x82, 0x67, 0xc0, 0x67, 0xc5, 0x6a, 0x25, 0x33, 0x59, 0x1e, + 0x69, 0x51, 0x93, 0xe9, 0x42, 0x95, 0x4c, 0x24, 0xd4, 0x24, 0x38, 0xf1, 0x31, 0x7b, 0x4c, 0x02, + 0xc9, 0xb2, 0x00, 0x49, 0xf5, 0x6d, 0x84, 0x1f, 0x69, 0x52, 0x96, 0x0c, 0x5e, 0x9d, 0x58, 0x13, + 0xba, 0x71, 0xed, 0x0d, 0x18, 0xe9, 0x45, 0xb2, 0x9a, 0x1b, 0xa9, 0x76, 0x82, 0xbd, 0x89, 0xf0, + 0x48, 0x3c, 0x05, 0xb2, 0xef, 0x0f, 0x3c, 0xc9, 0x1c, 0x60, 0x9f, 0x27, 0xb3, 0x59, 0x76, 0x5d, + 0xa2, 0xbd, 0x87, 0xf0, 0xf1, 0x34, 0xa1, 0x61, 0xb2, 0x4d, 0xea, 0xa2, 0x07, 0x14, 0xf7, 0x80, + 0xc2, 0x23, 0x97, 0x8f, 0x12, 0xc1, 0xad, 0x25, 0xb2, 0x60, 0xde, 0x8e, 0x7c, 0x15, 0xe1, 0x51, + 0x9e, 0x2a, 0x37, 0xa0, 0xfa, 0xbf, 0xdc, 0x71, 0x7b, 0x64, 0x36, 0x8b, 0x37, 0xb0, 0xa9, 0xd9, + 0x37, 0x57, 0x2d, 0x14, 0xf9, 0x77, 0x0e, 0x7c, 0x3a, 0x6d, 0x9f, 0x94, 0x6c, 0xa9, 0xcd, 0x06, + 0x52, 0xf0, 0x07, 0x08, 0x1f, 0x6f, 0x52, 0x96, 0xa2, 0xa8, 0x4e, 0x42, 0x4b, 0x3f, 0xbc, 0x7d, + 0x03, 0x06, 0xbc, 0x4e, 0xd6, 0x8a, 0x06, 0xac, 0x9d, 0x89, 0x3f, 0x46, 0xf8, 0xd1, 0x26, 0x65, + 0xab, 0x6d, 0xe6, 0xef, 0x95, 0x46, 0x2a, 0xab, 0x30, 0x41, 0xbd, 0x0e, 0xa8, 0xcf, 0x93, 0x67, + 0x25, 0xaa, 0x0b, 0x9d, 0xb4, 0x6a, 0x12, 0x93, 0x07, 0x08, 0x9f, 0x8a, 0x13, 0x28, 0xcb, 0x10, + 0x91, 0xc5, 0x2a, 0xcc, 0x74, 0x72, 0x9e, 0xd5, 0xa3, 0x42, 0x7a, 0x3e, 0x05, 0xb8, 0x2b, 0xa4, + 0x51, 0x8a, 0x9b, 0x5f, 0x2b, 0x6f, 0x23, 0x3c, 0x16, 0x77, 0x30, 0xe8, 0xee, 0x03, 0x5f, 0xcf, + 0x17, 0x01, 0x35, 0xb5, 0x22, 0x52, 0x8c, 0xba, 0x25, 0xfd, 0x57, 0x51, 0x74, 0xd2, 0xf1, 0x33, + 0x5a, 0xd4, 0x55, 0x71, 0xeb, 0x03, 0xcc, 0x3d, 0x72, 0xe5, 0x88, 0x19, 0xb9, 0xe5, 0x90, 0xe5, + 0x5a, 0x4d, 0xc9, 0xbb, 0x08, 0x8f, 0xbe, 0xd2, 0xf7, 0x8c, 0x17, 0x37, 0xd7, 0x1a, 0x2c, 0x6e, + 0x29, 0x14, 0x8b, 0xfb, 0x16, 0x78, 0xb6, 0x61, 0x3d, 0x94, 0xb5, 0x16, 0x17, 0x83, 0x2f, 0x21, + 0x3c, 0xc2, 0x0b, 0xc8, 0xba, 0x3c, 0xe2, 0x91, 0xdc, 0x4e, 0x97, 0x98, 0xd4, 0x9a, 0x34, 0x5b, + 0xa9, 0x13, 0xd4, 0x53, 0x40, 0x3d, 0x6e, 0x13, 0x49, 0x9d, 0x1c, 0x27, 0xa1, 0x20, 0x7d, 0x03, + 0xe1, 0xb1, 0x4d, 0xca, 0x3d, 0x19, 0x50, 0xcc, 0x69, 0x7b, 0x97, 0xda, 0xda, 0x1c, 0x17, 0x80, + 0xe3, 0xbc, 0x7d, 0x26, 0xcf, 0xe1, 0x84, 0xa2, 0xd3, 0x18, 0xe8, 0xeb, 0x08, 0x8f, 0x6e, 0xd2, + 0x76, 0xb0, 0x47, 0xc3, 0x01, 0xcf, 0x6c, 0x09, 0x0f, 0x48, 0x6b, 0xe3, 0xcc, 0x00, 0xce, 0x39, + 0xdb, 0x2a, 0xc4, 0x81, 0x3e, 0x63, 0x9a, 0xef, 0x20, 0x7c, 0xac, 0x49, 0xd9, 0x80, 0x64, 0x51, + 0xb7, 0xa7, 0x25, 0x92, 0x54, 0xe5, 0x3e, 0xad, 0xa5, 0xb1, 0x9f, 0x81, 0xf1, 0xaf, 0x90, 0x27, + 0x0b, 0xc6, 0x37, 0x28, 0x82, 0x6f, 0x23, 0x3c, 0xc2, 0xd3, 0xd3, 0x24, 0x75, 0xd4, 0x8c, 0x9f, + 0xad, 0xd4, 0x89, 0x18, 0x3d, 0x0f, 0x8c, 0xd7, 0xac, 0xa3, 0x31, 0xc6, 0xe1, 0xfb, 0x03, 0xc2, + 0xa3, 0xe9, 0xf0, 0xad, 0xb9, 0xcc, 0x25, 0x8e, 0x49, 0x08, 0x63, 0xa5, 0x04, 0x5e, 0x31, 0x6f, + 0x20, 0xc8, 0x5f, 0x00, 0xf2, 0xa7, 0xc9, 0x35, 0x49, 0xee, 0xb9, 0xcc, 0xad, 0x19, 0xe2, 0xd7, + 0x11, 0x3e, 0x11, 0x57, 0xb4, 0x64, 0x10, 0xc3, 0x02, 0x39, 0xa5, 0x0d, 0x2f, 0xd4, 0xc7, 0x4b, + 0x80, 0xb6, 0x4c, 0x16, 0x6b, 0x04, 0x95, 0xbc, 0x83, 0x30, 0xb9, 0x4d, 0xc3, 0xae, 0xdf, 0x53, + 0x66, 0x7c, 0x5e, 0x3b, 0x54, 0x22, 0x96, 0x54, 0x0b, 0x26, 0x52, 0x75, 0xde, 0x17, 0x8e, 0x3e, + 0xef, 0x7f, 0xe7, 0xf3, 0x7e, 0x33, 0xf0, 0x68, 0xc9, 0x22, 0x56, 0xcc, 0xa9, 0x65, 0x33, 0x55, + 0x2a, 0xb4, 0xf7, 0x00, 0xaf, 0x4f, 0x7a, 0x12, 0x4f, 0x7d, 0x94, 0xe6, 0x8c, 0xc9, 0xbf, 0xad, + 0x2c, 0xb0, 0x62, 0x49, 0xd3, 0x2b, 0x86, 0x41, 0xc5, 0x86, 0xde, 0x7d, 0xef, 0x90, 0xfc, 0x13, + 0x61, 0x12, 0x4f, 0xa1, 0x42, 0x13, 0xe5, 0x6b, 0xa5, 0x62, 0x4f, 0x67, 0xc6, 0x63, 0x95, 0x4a, + 0xfb, 0x00, 0x7c, 0xdb, 0x25, 0x91, 0xd6, 0xb7, 0xe4, 0xac, 0xae, 0xf1, 0xb0, 0xd8, 0x9e, 0xf8, + 0x59, 0x6c, 0xe6, 0x19, 0xff, 0xd3, 0x0f, 0xe1, 0xd3, 0x79, 0x07, 0xaf, 0x07, 0x21, 0x3c, 0x86, + 0x3b, 0xa5, 0xf4, 0x42, 0x55, 0xd3, 0xdd, 0xdf, 0x0e, 0x83, 0xbf, 0xbf, 0x1e, 0x26, 0xbf, 0x18, + 0x96, 0x1e, 0xb7, 0xef, 0xfa, 0x1d, 0x2f, 0xa4, 0xd9, 0x97, 0x1f, 0x91, 0x73, 0xa0, 0xfe, 0xd0, + 0x92, 0x73, 0xa3, 0xfc, 0xa2, 0x89, 0x4a, 0xed, 0xa6, 0x49, 0xc0, 0x6a, 0xb7, 0x14, 0x99, 0x63, + 0xd2, 0x4e, 0xa6, 0x56, 0x91, 0x5a, 0x3c, 0xf8, 0x97, 0xfa, 0x20, 0x35, 0x25, 0xb0, 0x52, 0xa2, + 0xa5, 0x92, 0x02, 0x79, 0x30, 0x29, 0xd2, 0x84, 0x94, 0x85, 0xfb, 0x2d, 0x97, 0x31, 0xda, 0xed, + 0xb3, 0x43, 0xf2, 0x6f, 0x84, 0x4f, 0x66, 0x57, 0x37, 0x54, 0xf6, 0xc5, 0xaa, 0x15, 0x9e, 0xae, + 0xea, 0x4b, 0x66, 0x62, 0x51, 0x93, 0x72, 0x0b, 0x03, 0x2a, 0xfa, 0xff, 0x68, 0xe5, 0x7f, 0x01, + 0x8f, 0x6c, 0xd2, 0x1d, 0x3f, 0x62, 0x34, 0x7c, 0x99, 0x77, 0x98, 0xdf, 0x6c, 0x85, 0x41, 0xea, + 0xb4, 0x9b, 0x6d, 0x4e, 0x27, 0x1c, 0x3c, 0x03, 0x0e, 0x9e, 0xb2, 0x47, 0xa5, 0x83, 0x02, 0x1d, + 0x4e, 0x69, 0xaf, 0xe2, 0xe3, 0x7c, 0x6f, 0x96, 0xc3, 0x8f, 0x6b, 0xba, 0xb5, 0x66, 0x34, 0x86, + 0xcc, 0xd6, 0x7e, 0x1e, 0x46, 0xb3, 0xac, 0x53, 0xd9, 0xd1, 0x62, 0xc7, 0xa1, 0x84, 0xdf, 0xc1, + 0xc7, 0xe2, 0x25, 0x2a, 0x9a, 0x47, 0xc4, 0xd6, 0x74, 0x5c, 0xfa, 0x76, 0x49, 0xb6, 0x96, 0x6f, + 0xfa, 0x48, 0xce, 0x3b, 0xf2, 0x06, 0xc2, 0x8f, 0xaa, 0x2f, 0x85, 0xd6, 0xf7, 0x68, 0x8f, 0x91, + 0xe5, 0xca, 0x4d, 0x1f, 0x74, 0x72, 0xe8, 0x86, 0xa9, 0x5c, 0x04, 0x60, 0x1a, 0x80, 0xa6, 0xec, + 0x89, 0x64, 0x8f, 0x8b, 0xcd, 0x91, 0xfa, 0xc2, 0xe8, 0xf5, 0xe4, 0x80, 0x0e, 0xb9, 0x09, 0x5c, + 0xf3, 0xa5, 0x69, 0xab, 0x30, 0x2d, 0x98, 0x48, 0x75, 0x6f, 0x0e, 0x04, 0x4f, 0x9c, 0x83, 0x19, + 0x96, 0xb8, 0xce, 0x6a, 0x58, 0xc0, 0x64, 0xc6, 0x52, 0x24, 0xad, 0x60, 0x49, 0xde, 0xce, 0x7e, + 0x71, 0x18, 0xb6, 0x77, 0xa5, 0x8b, 0xfc, 0xf6, 0xae, 0x98, 0xcb, 0xb6, 0x77, 0x45, 0x68, 0xff, + 0x64, 0x08, 0x86, 0x7f, 0x30, 0x44, 0xde, 0x18, 0x52, 0xde, 0x82, 0x66, 0xd6, 0xb9, 0x71, 0xed, + 0xaf, 0x51, 0xec, 0x8d, 0xab, 0x7b, 0x45, 0x39, 0x2f, 0xac, 0xdf, 0x45, 0x05, 0x3b, 0x5f, 0xa1, + 0x0b, 0x4b, 0x72, 0xbe, 0x06, 0x7f, 0x6f, 0x88, 0x1f, 0x46, 0x94, 0xd8, 0x15, 0x1c, 0x46, 0x14, + 0x7b, 0xe9, 0xee, 0x9c, 0x53, 0xda, 0xbf, 0x43, 0x30, 0x13, 0xef, 0x20, 0xf2, 0x4b, 0xa4, 0x9d, + 0x09, 0xe3, 0x69, 0x30, 0x9d, 0x03, 0xb3, 0x09, 0xd0, 0x47, 0x9f, 0x3c, 0x18, 0x86, 0xed, 0x49, + 0xf1, 0xa7, 0x78, 0x7b, 0xca, 0x66, 0x68, 0xe9, 0xf6, 0x54, 0x2c, 0x16, 0x4b, 0xe6, 0xe7, 0x3c, + 0x69, 0xdf, 0x1a, 0x22, 0x3f, 0x1c, 0x52, 0x76, 0xa8, 0xff, 0x67, 0x6e, 0x36, 0x73, 0xff, 0x85, + 0xf0, 0x94, 0xb2, 0x99, 0xad, 0x41, 0x97, 0xab, 0xc9, 0x77, 0x3b, 0x72, 0x59, 0xb3, 0x8d, 0x64, + 0x85, 0xea, 0x63, 0xed, 0x93, 0x35, 0x5b, 0x89, 0x99, 0x7b, 0x05, 0x26, 0xee, 0x96, 0xf5, 0x89, + 0xcc, 0xce, 0x94, 0xff, 0xb8, 0xe9, 0x1c, 0xa8, 0xdf, 0x16, 0x45, 0x70, 0x52, 0x3f, 0x8a, 0xe0, + 0xc4, 0x25, 0xf2, 0x8f, 0x08, 0x5b, 0x4d, 0xca, 0x74, 0x2e, 0x3e, 0x61, 0x08, 0x9b, 0x2a, 0x9b, + 0x17, 0xeb, 0x34, 0x11, 0xce, 0x3d, 0x0d, 0xce, 0x3d, 0x35, 0x78, 0xc7, 0x5e, 0xe2, 0x5c, 0xfe, + 0x1d, 0xe1, 0xdf, 0x10, 0x9e, 0x5a, 0xa3, 0x1d, 0xfa, 0xdf, 0xcf, 0x14, 0xef, 0xa5, 0xee, 0x4c, + 0xc9, 0x56, 0xc2, 0x99, 0xe7, 0xc0, 0x99, 0xab, 0x0b, 0x47, 0x72, 0x26, 0x9e, 0x93, 0x77, 0x11, + 0x1e, 0x57, 0x32, 0x2f, 0xe5, 0x49, 0x43, 0xc3, 0xa4, 0xcb, 0x36, 0xc7, 0x58, 0x2f, 0xe8, 0xaf, + 0x01, 0xfd, 0x65, 0xcb, 0xc9, 0xd2, 0x57, 0x24, 0x58, 0x0c, 0xfe, 0x26, 0x3f, 0x70, 0xe7, 0xa9, + 0x17, 0x2b, 0x29, 0x52, 0x09, 0xb4, 0x64, 0x26, 0x16, 0xbc, 0x4b, 0xc0, 0x7b, 0x81, 0x3c, 0x5e, + 0xc6, 0x2b, 0x21, 0xc9, 0xaf, 0x10, 0x1e, 0x57, 0x52, 0xa5, 0x56, 0x68, 0xd5, 0xf4, 0x70, 0x8c, + 0xf5, 0x02, 0x55, 0x7c, 0xcf, 0x5a, 0x30, 0x42, 0x8d, 0xe3, 0xf9, 0x3e, 0xc2, 0x13, 0x7c, 0x7a, + 0xe4, 0x29, 0x31, 0x85, 0xab, 0x7d, 0x3d, 0xa5, 0x4b, 0x85, 0x15, 0xf3, 0x06, 0x02, 0x98, 0x02, + 0x70, 0xcb, 0xda, 0xca, 0x7d, 0x80, 0x3b, 0x42, 0xb5, 0x51, 0x7e, 0x93, 0x1d, 0x81, 0x9b, 0xbf, + 0x47, 0xf8, 0x54, 0xea, 0x7b, 0x67, 0xca, 0xc7, 0xa5, 0x6a, 0xe4, 0x54, 0xe2, 0x2c, 0x1b, 0xaa, + 0x85, 0x77, 0xab, 0xe0, 0xdd, 0xc7, 0xc9, 0xd5, 0x52, 0xef, 0x72, 0x2b, 0x74, 0xf0, 0x6e, 0xe2, + 0x90, 0xfc, 0x09, 0xe1, 0x09, 0x3e, 0xc9, 0x47, 0x9b, 0x20, 0x35, 0xa1, 0x56, 0xcc, 0x1b, 0x08, + 0x17, 0xd6, 0xc0, 0x85, 0x67, 0x17, 0x8e, 0xee, 0x42, 0x1c, 0xff, 0x1f, 0x21, 0x3c, 0x1e, 0x1f, + 0xa4, 0x5e, 0x92, 0x77, 0x42, 0xca, 0x16, 0x85, 0x46, 0xa8, 0x5d, 0x14, 0x5a, 0xbd, 0x70, 0xe1, + 0x71, 0x70, 0xe1, 0x2c, 0x99, 0x94, 0x2e, 0x0c, 0x6e, 0xa6, 0x0c, 0x7c, 0x88, 0x2b, 0x0b, 0x7c, + 0xad, 0x1a, 0x7c, 0x5c, 0xf2, 0x69, 0x94, 0x7f, 0xb8, 0x4d, 0x7d, 0x7b, 0x4a, 0x9f, 0x21, 0xcf, + 0x55, 0xe8, 0xf2, 0xa9, 0x10, 0x1f, 0x15, 0x3c, 0x7e, 0xd5, 0xc4, 0x8f, 0x43, 0x28, 0x2f, 0xc9, + 0xb4, 0xd8, 0x7e, 0x3f, 0x3e, 0x43, 0xe4, 0x37, 0xa1, 0x9f, 0x21, 0x7c, 0xa2, 0x49, 0x53, 0x80, + 0xfb, 0xf9, 0x4b, 0x03, 0x29, 0x63, 0x2a, 0x6d, 0xcf, 0x94, 0xc8, 0xec, 0x4f, 0x01, 0xd9, 0x27, + 0xc9, 0x86, 0x29, 0x59, 0xf5, 0x0b, 0xe3, 0xf7, 0x10, 0x1e, 0xe3, 0x0b, 0x3d, 0x0d, 0x3b, 0x57, + 0x42, 0xa1, 0xd6, 0x91, 0x79, 0x03, 0xa5, 0x98, 0xdc, 0xdb, 0x40, 0x7f, 0xd3, 0x7a, 0x78, 0xf4, + 0x71, 0xbe, 0x76, 0x30, 0x6e, 0x52, 0xf6, 0x19, 0x7e, 0x76, 0xcb, 0xdf, 0xf1, 0x19, 0xd8, 0xb4, + 0x77, 0x7c, 0xd2, 0x12, 0x81, 0x3a, 0x0e, 0xa8, 0x63, 0x64, 0x44, 0xa2, 0x8a, 0xb3, 0x21, 0xf9, + 0x33, 0xdf, 0xd4, 0xd6, 0x06, 0x57, 0x90, 0x44, 0xc4, 0xaa, 0xbf, 0x88, 0xe7, 0xd0, 0x72, 0x9d, + 0xd8, 0x3b, 0x30, 0xac, 0x4b, 0x5a, 0xc9, 0x69, 0x3c, 0x7b, 0xd5, 0x09, 0xe2, 0x04, 0xc7, 0xd3, + 0x9a, 0xa1, 0x52, 0xbf, 0x99, 0x7f, 0x73, 0x88, 0x2f, 0xf2, 0x2c, 0x82, 0x5f, 0x54, 0x66, 0x73, + 0x9c, 0xe9, 0xd5, 0x34, 0x63, 0xa4, 0xb6, 0xdf, 0xe2, 0x4f, 0x65, 0xdf, 0x47, 0xe4, 0x56, 0xb9, + 0x6f, 0xb5, 0x1d, 0xdb, 0x6a, 0x92, 0xf5, 0x87, 0xd2, 0x25, 0xf9, 0x0b, 0xbf, 0x48, 0x90, 0x3c, + 0x2e, 0xbd, 0x44, 0x59, 0xe8, 0xb7, 0x23, 0x72, 0xd1, 0xe4, 0x4b, 0x8e, 0x10, 0xcb, 0xb0, 0x5c, + 0xaa, 0xd5, 0x46, 0x64, 0x5d, 0xee, 0xee, 0x57, 0x97, 0x0b, 0xea, 0x7d, 0xca, 0x78, 0xe1, 0xea, + 0xd6, 0x95, 0x1d, 0x9f, 0xdd, 0xdd, 0xdd, 0x6e, 0xb4, 0x83, 0xae, 0x03, 0x1c, 0x41, 0xb8, 0xe3, + 0x24, 0xb7, 0xe8, 0x76, 0x68, 0xcf, 0xe9, 0x6f, 0x2f, 0xef, 0x04, 0x4e, 0xf6, 0x36, 0xe6, 0xf6, + 0x87, 0xe1, 0x22, 0xdd, 0xa5, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x92, 0x51, 0x02, 0xc6, 0xa8, 0x29, 0x00, 0x00, } diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index 242f84f47..a6f5cad5e 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -4092,6 +4092,21 @@ "default": "MINUTE", "description": "Represents a frequency at which to run a schedule." }, + "adminFlyteURLs": { + "type": "object", + "properties": { + "inputs": { + "type": "string" + }, + "outputs": { + "type": "string" + }, + "deck": { + "type": "string" + } + }, + "description": "These URLs are returned as part of node and task execution data requests." + }, "adminGetVersionResponse": { "type": "object", "properties": { @@ -4607,6 +4622,9 @@ "dynamic_workflow": { "$ref": "#/definitions/flyteidladminDynamicWorkflowNodeMetadata", "description": "Optional Workflow closure for a dynamically generated workflow, in the case this node yields a dynamic workflow we return its structure here." + }, + "flyte_urls": { + "$ref": "#/definitions/adminFlyteURLs" } }, "description": "Response structure for NodeExecutionGetDataRequest which contains inputs and outputs for a node execution." @@ -5144,6 +5162,10 @@ "full_outputs": { "$ref": "#/definitions/coreLiteralMap", "description": "Full_outputs will only be populated if they are under a configured size threshold." + }, + "flyte_urls": { + "$ref": "#/definitions/adminFlyteURLs", + "title": "flyte tiny url to fetch a core.LiteralMap of task execution's IO\nDeck will be empty for task" } }, "description": "Response structure for TaskExecutionGetDataRequest which contains inputs and outputs for a task execution." diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go index 7af285aad..0033cb5fd 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.go @@ -392,12 +392,14 @@ func (*CreateDownloadLinkRequest) XXX_OneofWrappers() []interface{} { // CreateDownloadLinkResponse defines the response for the generated links type CreateDownloadLinkResponse struct { // SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) - SignedUrl []string `protobuf:"bytes,1,rep,name=signed_url,json=signedUrl,proto3" json:"signed_url,omitempty"` + SignedUrl []string `protobuf:"bytes,1,rep,name=signed_url,json=signedUrl,proto3" json:"signed_url,omitempty"` // Deprecated: Do not use. // ExpiresAt defines when will the signed URL expire. - ExpiresAt *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ExpiresAt *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // Deprecated: Do not use. + // New wrapper object containing the signed urls and expiration time + PreSignedUrls *PreSignedURLs `protobuf:"bytes,3,opt,name=pre_signed_urls,json=preSignedUrls,proto3" json:"pre_signed_urls,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CreateDownloadLinkResponse) Reset() { *m = CreateDownloadLinkResponse{} } @@ -425,6 +427,7 @@ func (m *CreateDownloadLinkResponse) XXX_DiscardUnknown() { var xxx_messageInfo_CreateDownloadLinkResponse proto.InternalMessageInfo +// Deprecated: Do not use. func (m *CreateDownloadLinkResponse) GetSignedUrl() []string { if m != nil { return m.SignedUrl @@ -432,6 +435,7 @@ func (m *CreateDownloadLinkResponse) GetSignedUrl() []string { return nil } +// Deprecated: Do not use. func (m *CreateDownloadLinkResponse) GetExpiresAt() *timestamp.Timestamp { if m != nil { return m.ExpiresAt @@ -439,6 +443,187 @@ func (m *CreateDownloadLinkResponse) GetExpiresAt() *timestamp.Timestamp { return nil } +func (m *CreateDownloadLinkResponse) GetPreSignedUrls() *PreSignedURLs { + if m != nil { + return m.PreSignedUrls + } + return nil +} + +// Wrapper object since the message is shared across this and the GetDataResponse +type PreSignedURLs struct { + // SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) + SignedUrl []string `protobuf:"bytes,1,rep,name=signed_url,json=signedUrl,proto3" json:"signed_url,omitempty"` + // ExpiresAt defines when will the signed URL expire. + ExpiresAt *timestamp.Timestamp `protobuf:"bytes,2,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PreSignedURLs) Reset() { *m = PreSignedURLs{} } +func (m *PreSignedURLs) String() string { return proto.CompactTextString(m) } +func (*PreSignedURLs) ProtoMessage() {} +func (*PreSignedURLs) Descriptor() ([]byte, []int) { + return fileDescriptor_bffb71366d75dab0, []int{6} +} + +func (m *PreSignedURLs) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PreSignedURLs.Unmarshal(m, b) +} +func (m *PreSignedURLs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PreSignedURLs.Marshal(b, m, deterministic) +} +func (m *PreSignedURLs) XXX_Merge(src proto.Message) { + xxx_messageInfo_PreSignedURLs.Merge(m, src) +} +func (m *PreSignedURLs) XXX_Size() int { + return xxx_messageInfo_PreSignedURLs.Size(m) +} +func (m *PreSignedURLs) XXX_DiscardUnknown() { + xxx_messageInfo_PreSignedURLs.DiscardUnknown(m) +} + +var xxx_messageInfo_PreSignedURLs proto.InternalMessageInfo + +func (m *PreSignedURLs) GetSignedUrl() []string { + if m != nil { + return m.SignedUrl + } + return nil +} + +func (m *PreSignedURLs) GetExpiresAt() *timestamp.Timestamp { + if m != nil { + return m.ExpiresAt + } + return nil +} + +// General request artifact to retrieve data from a Flyte artifact url. +type GetDataRequest struct { + // A unique identifier in the form of flyte:// that uniquely, for a given Flyte + // backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.). + // e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input) + // flyte://v1/proj/development/execid/n2/i (for node execution input) + FlyteUrl string `protobuf:"bytes,1,opt,name=flyte_url,json=flyteUrl,proto3" json:"flyte_url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDataRequest) Reset() { *m = GetDataRequest{} } +func (m *GetDataRequest) String() string { return proto.CompactTextString(m) } +func (*GetDataRequest) ProtoMessage() {} +func (*GetDataRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_bffb71366d75dab0, []int{7} +} + +func (m *GetDataRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDataRequest.Unmarshal(m, b) +} +func (m *GetDataRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDataRequest.Marshal(b, m, deterministic) +} +func (m *GetDataRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDataRequest.Merge(m, src) +} +func (m *GetDataRequest) XXX_Size() int { + return xxx_messageInfo_GetDataRequest.Size(m) +} +func (m *GetDataRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetDataRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDataRequest proto.InternalMessageInfo + +func (m *GetDataRequest) GetFlyteUrl() string { + if m != nil { + return m.FlyteUrl + } + return "" +} + +type GetDataResponse struct { + // Types that are valid to be assigned to Data: + // *GetDataResponse_LiteralMap + // *GetDataResponse_PreSignedUrls + Data isGetDataResponse_Data `protobuf_oneof:"data"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDataResponse) Reset() { *m = GetDataResponse{} } +func (m *GetDataResponse) String() string { return proto.CompactTextString(m) } +func (*GetDataResponse) ProtoMessage() {} +func (*GetDataResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bffb71366d75dab0, []int{8} +} + +func (m *GetDataResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDataResponse.Unmarshal(m, b) +} +func (m *GetDataResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDataResponse.Marshal(b, m, deterministic) +} +func (m *GetDataResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDataResponse.Merge(m, src) +} +func (m *GetDataResponse) XXX_Size() int { + return xxx_messageInfo_GetDataResponse.Size(m) +} +func (m *GetDataResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetDataResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDataResponse proto.InternalMessageInfo + +type isGetDataResponse_Data interface { + isGetDataResponse_Data() +} + +type GetDataResponse_LiteralMap struct { + LiteralMap *core.LiteralMap `protobuf:"bytes,1,opt,name=literal_map,json=literalMap,proto3,oneof"` +} + +type GetDataResponse_PreSignedUrls struct { + PreSignedUrls *PreSignedURLs `protobuf:"bytes,2,opt,name=pre_signed_urls,json=preSignedUrls,proto3,oneof"` +} + +func (*GetDataResponse_LiteralMap) isGetDataResponse_Data() {} + +func (*GetDataResponse_PreSignedUrls) isGetDataResponse_Data() {} + +func (m *GetDataResponse) GetData() isGetDataResponse_Data { + if m != nil { + return m.Data + } + return nil +} + +func (m *GetDataResponse) GetLiteralMap() *core.LiteralMap { + if x, ok := m.GetData().(*GetDataResponse_LiteralMap); ok { + return x.LiteralMap + } + return nil +} + +func (m *GetDataResponse) GetPreSignedUrls() *PreSignedURLs { + if x, ok := m.GetData().(*GetDataResponse_PreSignedUrls); ok { + return x.PreSignedUrls + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*GetDataResponse) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*GetDataResponse_LiteralMap)(nil), + (*GetDataResponse_PreSignedUrls)(nil), + } +} + func init() { proto.RegisterEnum("flyteidl.service.ArtifactType", ArtifactType_name, ArtifactType_value) proto.RegisterType((*CreateUploadLocationResponse)(nil), "flyteidl.service.CreateUploadLocationResponse") @@ -447,56 +632,70 @@ func init() { proto.RegisterType((*CreateDownloadLocationResponse)(nil), "flyteidl.service.CreateDownloadLocationResponse") proto.RegisterType((*CreateDownloadLinkRequest)(nil), "flyteidl.service.CreateDownloadLinkRequest") proto.RegisterType((*CreateDownloadLinkResponse)(nil), "flyteidl.service.CreateDownloadLinkResponse") + proto.RegisterType((*PreSignedURLs)(nil), "flyteidl.service.PreSignedURLs") + proto.RegisterType((*GetDataRequest)(nil), "flyteidl.service.GetDataRequest") + proto.RegisterType((*GetDataResponse)(nil), "flyteidl.service.GetDataResponse") } func init() { proto.RegisterFile("flyteidl/service/dataproxy.proto", fileDescriptor_bffb71366d75dab0) } var fileDescriptor_bffb71366d75dab0 = []byte{ - // 702 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xcf, 0x6e, 0xd3, 0x4a, - 0x14, 0xc6, 0x3b, 0xe9, 0xbd, 0xbd, 0xcd, 0xb4, 0xf7, 0xde, 0x30, 0x42, 0x25, 0x75, 0xdb, 0x34, - 0x32, 0x08, 0x95, 0x40, 0x6d, 0x28, 0xaa, 0xa0, 0xdd, 0xa5, 0x49, 0x2a, 0x22, 0xa0, 0xaa, 0x4c, - 0xba, 0x80, 0x8d, 0x35, 0xb1, 0x4f, 0xc2, 0x50, 0x67, 0xc6, 0x8c, 0xc7, 0xa1, 0x91, 0x10, 0x0b, - 0x56, 0xec, 0x59, 0xb0, 0x60, 0xc3, 0x8a, 0x47, 0xe1, 0x05, 0x78, 0x05, 0x9e, 0x02, 0xb1, 0x40, - 0xb1, 0x9d, 0xa4, 0x49, 0x93, 0x36, 0x20, 0x96, 0x67, 0xbe, 0x2f, 0x39, 0xbf, 0x39, 0x7f, 0xc6, - 0x38, 0xdf, 0xf0, 0x3a, 0x0a, 0x98, 0xeb, 0x99, 0x01, 0xc8, 0x36, 0x73, 0xc0, 0x74, 0xa9, 0xa2, - 0xbe, 0x14, 0x27, 0x1d, 0xc3, 0x97, 0x42, 0x09, 0x92, 0xe9, 0x39, 0x8c, 0xc4, 0xa1, 0xad, 0x36, - 0x85, 0x68, 0x7a, 0x60, 0x52, 0x9f, 0x99, 0x94, 0x73, 0xa1, 0xa8, 0x62, 0x82, 0x07, 0xb1, 0x5f, - 0xcb, 0x25, 0x6a, 0x14, 0xd5, 0xc3, 0x86, 0xe9, 0x86, 0x32, 0x32, 0x24, 0xfa, 0xfa, 0xa8, 0xae, - 0x58, 0x0b, 0x02, 0x45, 0x5b, 0x7e, 0xef, 0x0f, 0xfa, 0x48, 0x8e, 0x90, 0x60, 0x32, 0x17, 0xb8, - 0x62, 0x0d, 0x06, 0x32, 0xd6, 0xf5, 0x0f, 0x08, 0xaf, 0x96, 0x24, 0x50, 0x05, 0x47, 0xbe, 0x27, - 0xa8, 0xfb, 0x48, 0x38, 0xd1, 0xff, 0x5b, 0x10, 0xf8, 0x82, 0x07, 0x40, 0xd6, 0x30, 0x0e, 0x58, - 0x93, 0x83, 0x6b, 0x87, 0xd2, 0xcb, 0xa2, 0x3c, 0xda, 0x48, 0x5b, 0xe9, 0xf8, 0xe4, 0x48, 0x7a, - 0x5d, 0x99, 0x53, 0xc5, 0xda, 0x10, 0xc9, 0xa9, 0x58, 0x8e, 0x4f, 0xba, 0xf2, 0x0e, 0xc6, 0x70, - 0xe2, 0x33, 0x09, 0x81, 0x4d, 0x55, 0x76, 0x36, 0x8f, 0x36, 0x16, 0xb6, 0x34, 0x23, 0x86, 0x36, - 0x7a, 0xd0, 0x46, 0xad, 0x07, 0x6d, 0xa5, 0x13, 0x77, 0x51, 0xe9, 0x5f, 0x10, 0x5e, 0x19, 0x4f, - 0xf6, 0x32, 0x84, 0x40, 0x91, 0x2c, 0xfe, 0xc7, 0x97, 0xe2, 0x05, 0x38, 0x2a, 0xa1, 0xea, 0x85, - 0x64, 0x09, 0xcf, 0xb9, 0xa2, 0x45, 0x19, 0x4f, 0x78, 0x92, 0x88, 0x68, 0x78, 0xbe, 0xc1, 0x3c, - 0xe0, 0xb4, 0x05, 0x11, 0x4a, 0xda, 0xea, 0xc7, 0xe4, 0xfe, 0x00, 0x94, 0xf1, 0xec, 0x5f, 0x11, - 0xe8, 0xf2, 0x19, 0xd0, 0x72, 0x52, 0xfd, 0x3e, 0x67, 0x95, 0x93, 0x75, 0xbc, 0xe0, 0x08, 0xae, - 0x80, 0x2b, 0xbb, 0xe5, 0x6e, 0x67, 0xff, 0xce, 0xa3, 0x8d, 0x45, 0x0b, 0x27, 0x47, 0x8f, 0xdd, - 0x6d, 0xfd, 0x35, 0x5e, 0x8b, 0xef, 0x51, 0x16, 0xaf, 0xf8, 0xb8, 0x9b, 0x0c, 0xd7, 0x10, 0x8d, - 0xd6, 0x70, 0x18, 0x2d, 0x35, 0x3d, 0xda, 0x6e, 0x2a, 0x8b, 0xf4, 0x37, 0x38, 0x37, 0x29, 0xfb, - 0x74, 0x1d, 0x1e, 0x6e, 0x61, 0xea, 0x17, 0x5a, 0x18, 0xe5, 0xff, 0x8e, 0xf0, 0xf2, 0x08, 0x00, - 0xe3, 0xc7, 0xbd, 0xab, 0x97, 0xf0, 0xbf, 0x54, 0x2a, 0xd6, 0xa0, 0x8e, 0xb2, 0x55, 0xc7, 0x87, - 0x28, 0xfd, 0x7f, 0x5b, 0x39, 0x63, 0x74, 0x4f, 0x8c, 0x62, 0x62, 0xab, 0x75, 0x7c, 0xb0, 0x16, - 0xe9, 0xa9, 0xe8, 0xf7, 0x0b, 0x44, 0x6a, 0xf8, 0x12, 0x17, 0x2e, 0xd8, 0x70, 0x02, 0x4e, 0xd8, - 0x15, 0x6d, 0xe6, 0x26, 0x53, 0x7a, 0x7d, 0x80, 0xd0, 0xdd, 0x1c, 0xe3, 0x40, 0xb8, 0x50, 0xe9, - 0xd9, 0xaa, 0xfd, 0x35, 0x7a, 0x30, 0x63, 0xfd, 0xcf, 0x87, 0xa5, 0xbd, 0x79, 0x3c, 0x17, 0x88, - 0x50, 0x3a, 0xa0, 0xb7, 0xb1, 0x36, 0xee, 0xee, 0x13, 0x0a, 0x3f, 0xfb, 0xa7, 0x0a, 0x5f, 0x28, - 0xe1, 0xc5, 0xd3, 0xf5, 0x22, 0x2b, 0xf8, 0x4a, 0xd1, 0xaa, 0x55, 0xf7, 0x8b, 0xa5, 0x9a, 0x5d, - 0x7b, 0x7a, 0x58, 0xb1, 0x8f, 0x0e, 0xca, 0x95, 0xfd, 0xea, 0x41, 0xa5, 0x9c, 0x99, 0x21, 0x4b, - 0x98, 0x0c, 0x8b, 0xe5, 0x4a, 0xe9, 0x61, 0x06, 0x6d, 0xfd, 0x98, 0xc5, 0x99, 0x32, 0x55, 0xf4, - 0xb0, 0xfb, 0x7e, 0x3d, 0x89, 0xdb, 0x40, 0x3e, 0x21, 0x7c, 0x79, 0xdc, 0x56, 0x92, 0xcd, 0xb3, - 0x2d, 0x3b, 0x67, 0x7b, 0x35, 0x63, 0x5a, 0x7b, 0x5c, 0x2b, 0xfd, 0xc6, 0xdb, 0xaf, 0xdf, 0xde, - 0xa7, 0xae, 0xea, 0xb9, 0xe8, 0xa1, 0x6c, 0xdf, 0x19, 0xbc, 0xac, 0x66, 0x7f, 0x80, 0x42, 0xc9, - 0x77, 0x51, 0x81, 0x7c, 0x46, 0x78, 0x69, 0xfc, 0xc8, 0x13, 0x73, 0x52, 0xd6, 0x09, 0xab, 0xa9, - 0xdd, 0x9e, 0xfe, 0x07, 0x43, 0xa0, 0x79, 0x72, 0x01, 0xe8, 0xbb, 0x14, 0x22, 0x1f, 0x11, 0x26, - 0x67, 0xc7, 0x83, 0xdc, 0xbc, 0x30, 0xe7, 0x60, 0x81, 0xb4, 0x5b, 0xd3, 0x99, 0x13, 0xb8, 0x42, - 0x04, 0x77, 0x4d, 0x5f, 0x3f, 0x07, 0xce, 0x63, 0xfc, 0x78, 0x17, 0x15, 0xf6, 0x76, 0x9e, 0xdd, - 0x6b, 0x32, 0xf5, 0x3c, 0xac, 0x1b, 0x8e, 0x68, 0x99, 0x51, 0x16, 0x21, 0x9b, 0x66, 0xff, 0x7b, - 0xd2, 0x04, 0x6e, 0xfa, 0xf5, 0xcd, 0xa6, 0x30, 0x47, 0xbf, 0x7a, 0xf5, 0xb9, 0x68, 0x3a, 0xef, - 0xfe, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xac, 0xd3, 0xb4, 0x10, 0x07, 0x00, 0x00, + // 872 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x6f, 0xe3, 0x44, + 0x14, 0xef, 0xa4, 0xa5, 0xdb, 0xbc, 0xfe, 0x65, 0xb4, 0x2a, 0x59, 0xb7, 0xdb, 0x66, 0x0d, 0x42, + 0xa5, 0x50, 0x1b, 0x8a, 0x56, 0xb0, 0x2b, 0x38, 0xb4, 0x49, 0x76, 0x1b, 0xd1, 0xad, 0x2a, 0x6f, + 0x7a, 0x80, 0x8b, 0x35, 0xb5, 0x27, 0x61, 0x58, 0x67, 0xc6, 0x8c, 0x27, 0xa5, 0x91, 0x10, 0x07, + 0x4e, 0xdc, 0x39, 0x70, 0xe0, 0x82, 0x38, 0xf0, 0x51, 0xe0, 0x03, 0xf0, 0x0d, 0x10, 0x9f, 0x82, + 0x13, 0xf2, 0x78, 0xe2, 0xc4, 0x49, 0xda, 0xcd, 0x22, 0x8e, 0x6f, 0x7e, 0x6f, 0xfc, 0xfb, 0xbd, + 0xdf, 0xbc, 0x37, 0x63, 0xa8, 0xb6, 0xa3, 0xbe, 0xa2, 0x2c, 0x8c, 0xdc, 0x84, 0xca, 0x2b, 0x16, + 0x50, 0x37, 0x24, 0x8a, 0xc4, 0x52, 0x5c, 0xf7, 0x9d, 0x58, 0x0a, 0x25, 0xf0, 0xc6, 0x20, 0xc3, + 0x31, 0x19, 0xd6, 0x76, 0x47, 0x88, 0x4e, 0x44, 0x5d, 0x12, 0x33, 0x97, 0x70, 0x2e, 0x14, 0x51, + 0x4c, 0xf0, 0x24, 0xcb, 0xb7, 0x76, 0x0c, 0xaa, 0xa3, 0xcb, 0x5e, 0xdb, 0x0d, 0x7b, 0x52, 0x27, + 0x18, 0x7c, 0x77, 0x1c, 0x57, 0xac, 0x4b, 0x13, 0x45, 0xba, 0xf1, 0xe0, 0x03, 0xb9, 0xa4, 0x40, + 0x48, 0xea, 0xb2, 0x90, 0x72, 0xc5, 0xda, 0x8c, 0x4a, 0x83, 0x6f, 0x17, 0xf1, 0x88, 0x29, 0x2a, + 0x49, 0x64, 0xe8, 0xed, 0x9f, 0x10, 0x6c, 0xd7, 0x24, 0x25, 0x8a, 0x5e, 0xc4, 0x91, 0x20, 0xe1, + 0xa9, 0x08, 0x34, 0xbb, 0x47, 0x93, 0x58, 0xf0, 0x84, 0xe2, 0xfb, 0x00, 0x09, 0xeb, 0x70, 0x1a, + 0xfa, 0x3d, 0x19, 0x55, 0x50, 0x15, 0xed, 0x95, 0xbd, 0x72, 0xb6, 0x72, 0x21, 0xa3, 0x14, 0xe6, + 0x44, 0xb1, 0x2b, 0xaa, 0xe1, 0x52, 0x06, 0x67, 0x2b, 0x29, 0xfc, 0x08, 0x80, 0x5e, 0xc7, 0x4c, + 0xd2, 0xc4, 0x27, 0xaa, 0x32, 0x5f, 0x45, 0x7b, 0xcb, 0x87, 0x96, 0x93, 0x95, 0xe4, 0x0c, 0x4a, + 0x72, 0x5a, 0x83, 0x92, 0xbc, 0xb2, 0xc9, 0x3e, 0x52, 0xf6, 0xef, 0x08, 0xb6, 0xa6, 0x2b, 0xfb, + 0xba, 0x47, 0x13, 0x85, 0x2b, 0x70, 0x27, 0x96, 0xe2, 0x2b, 0x1a, 0x28, 0xa3, 0x6a, 0x10, 0xe2, + 0x4d, 0x58, 0x0c, 0x45, 0x97, 0x30, 0x6e, 0xf4, 0x98, 0x08, 0x5b, 0xb0, 0xd4, 0x66, 0x11, 0xe5, + 0xa4, 0x4b, 0xb5, 0x94, 0xb2, 0x97, 0xc7, 0xf8, 0xe3, 0xa1, 0x50, 0xc6, 0x2b, 0x0b, 0x5a, 0xe8, + 0xbd, 0x09, 0xa1, 0x75, 0x73, 0x36, 0xb9, 0xce, 0x26, 0xc7, 0xbb, 0xb0, 0x1c, 0x08, 0xae, 0x28, + 0x57, 0x7e, 0x37, 0x7c, 0x58, 0x79, 0xad, 0x8a, 0xf6, 0x56, 0x3c, 0x30, 0x4b, 0xcf, 0xc2, 0x87, + 0xf6, 0xb7, 0x70, 0x3f, 0xab, 0xa3, 0x2e, 0xbe, 0xe1, 0xd3, 0x2a, 0x29, 0x7a, 0x88, 0xc6, 0x3d, + 0x2c, 0x4a, 0x2b, 0xcd, 0x2e, 0xed, 0x71, 0xa9, 0x82, 0xec, 0xef, 0x60, 0xe7, 0x26, 0xf6, 0xd9, + 0x4e, 0xb8, 0x78, 0x84, 0xa5, 0x57, 0x38, 0x42, 0xcd, 0xff, 0x0f, 0x82, 0x7b, 0x63, 0x02, 0x18, + 0x7f, 0x31, 0x28, 0xbd, 0x06, 0xab, 0x44, 0x2a, 0xd6, 0x26, 0x81, 0xf2, 0x55, 0x3f, 0xa6, 0x9a, + 0x7e, 0xed, 0x70, 0xc7, 0x19, 0x9f, 0x22, 0xe7, 0xc8, 0xa4, 0xb5, 0xfa, 0x31, 0xf5, 0x56, 0xc8, + 0x48, 0xf4, 0xdf, 0x0d, 0xc2, 0x2d, 0x78, 0x9d, 0x8b, 0x90, 0xfa, 0xf4, 0x9a, 0x06, 0xbd, 0x14, + 0xf4, 0x59, 0x68, 0xba, 0xf4, 0xed, 0xa1, 0x84, 0x74, 0x6e, 0x9c, 0x33, 0x11, 0xd2, 0xc6, 0x20, + 0xad, 0x99, 0x0f, 0xd9, 0xc9, 0x9c, 0xb7, 0xce, 0x8b, 0xd0, 0xf1, 0x12, 0x2c, 0x26, 0xa2, 0x27, + 0x03, 0x6a, 0xff, 0x81, 0xc0, 0x9a, 0x56, 0xbc, 0x71, 0xfe, 0xc1, 0x98, 0xf3, 0xf3, 0x7b, 0xe5, + 0xe3, 0x52, 0x05, 0x8d, 0xba, 0xff, 0xe9, 0xab, 0xb9, 0x9f, 0x6d, 0xcf, 0x4f, 0x00, 0x3f, 0x85, + 0xf5, 0x58, 0x52, 0x7f, 0xc8, 0x92, 0x98, 0xf2, 0x76, 0x27, 0x1d, 0x3e, 0x97, 0xf4, 0x79, 0xc6, + 0xeb, 0x9d, 0x26, 0xde, 0x6a, 0x9c, 0x87, 0x32, 0x4a, 0x6c, 0x06, 0xab, 0x05, 0x7c, 0xa2, 0x6b, + 0xe6, 0xff, 0xaf, 0xae, 0xb1, 0x0f, 0x60, 0xed, 0x29, 0x55, 0x75, 0xa2, 0xc8, 0xa0, 0x4b, 0xb6, + 0xa0, 0xac, 0xd5, 0x8e, 0x34, 0xe8, 0x92, 0x5e, 0xb8, 0x90, 0x91, 0xfd, 0x2b, 0x82, 0xf5, 0x3c, + 0xdf, 0x18, 0xfb, 0x09, 0x2c, 0x9b, 0x7b, 0xce, 0xef, 0x92, 0x58, 0x6f, 0x49, 0x5b, 0xa2, 0x78, + 0xa2, 0xa7, 0x59, 0xc6, 0x33, 0x12, 0x9f, 0xcc, 0x79, 0x10, 0xe5, 0x11, 0x6e, 0x4e, 0x9a, 0x56, + 0x9a, 0xc9, 0xb4, 0x93, 0xb9, 0x31, 0xdb, 0x8e, 0x17, 0x61, 0x21, 0x7d, 0x20, 0xf6, 0x6b, 0xb0, + 0x32, 0xda, 0xc0, 0x78, 0x0b, 0xde, 0x38, 0xf2, 0x5a, 0xcd, 0x27, 0x47, 0xb5, 0x96, 0xdf, 0xfa, + 0xfc, 0xbc, 0xe1, 0x5f, 0x9c, 0xd5, 0x1b, 0x4f, 0x9a, 0x67, 0x8d, 0xfa, 0xc6, 0x1c, 0xde, 0x04, + 0x5c, 0x04, 0xeb, 0x8d, 0xda, 0x67, 0x1b, 0xe8, 0xf0, 0xaf, 0x05, 0xd8, 0x48, 0xcb, 0x3c, 0x4f, + 0x9f, 0x9b, 0xe7, 0x99, 0x00, 0xfc, 0x0b, 0x82, 0xbb, 0xd3, 0xae, 0x49, 0x7c, 0x30, 0x29, 0xf6, + 0x96, 0xeb, 0xd4, 0x72, 0x66, 0x4d, 0xcf, 0x2c, 0xb6, 0xdf, 0xf9, 0xfe, 0xcf, 0xbf, 0x7f, 0x2c, + 0xbd, 0x69, 0xef, 0xe8, 0x77, 0xed, 0xea, 0x83, 0xe1, 0x43, 0xe8, 0xe6, 0x13, 0xdd, 0x93, 0xfc, + 0x31, 0xda, 0xc7, 0xbf, 0x21, 0xd8, 0x9c, 0x7e, 0x07, 0x61, 0xf7, 0x26, 0xd6, 0x1b, 0xee, 0x4a, + 0xeb, 0xfd, 0xd9, 0x37, 0x14, 0x84, 0x56, 0xf1, 0x4b, 0x84, 0xfe, 0x50, 0x42, 0xf8, 0x67, 0x04, + 0x78, 0x72, 0x5c, 0xf1, 0xbb, 0x2f, 0xe5, 0x1c, 0xde, 0x68, 0xd6, 0x7b, 0xb3, 0x25, 0x1b, 0x71, + 0xfb, 0x5a, 0xdc, 0x5b, 0xf6, 0xee, 0x2d, 0xe2, 0x22, 0xc6, 0x5f, 0xa4, 0x36, 0x86, 0x70, 0xc7, + 0xf4, 0x39, 0xae, 0x4e, 0x92, 0x14, 0x47, 0xc6, 0x7a, 0x70, 0x4b, 0x86, 0xe1, 0xbe, 0xab, 0xb9, + 0xd7, 0xf0, 0xca, 0x28, 0xf7, 0xf1, 0xa3, 0x2f, 0x3e, 0xea, 0x30, 0xf5, 0x65, 0xef, 0xd2, 0x09, + 0x44, 0xd7, 0xd5, 0x1f, 0x11, 0xb2, 0xe3, 0xe6, 0x3f, 0x11, 0x1d, 0xca, 0xdd, 0xf8, 0xf2, 0xa0, + 0x23, 0xdc, 0xf1, 0x5f, 0xa1, 0xcb, 0x45, 0x3d, 0xd7, 0x1f, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, + 0xd7, 0x01, 0x0d, 0xde, 0x25, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -517,6 +716,7 @@ type DataProxyServiceClient interface { CreateDownloadLocation(ctx context.Context, in *CreateDownloadLocationRequest, opts ...grpc.CallOption) (*CreateDownloadLocationResponse, error) // CreateDownloadLocation creates a signed url to download artifacts. CreateDownloadLink(ctx context.Context, in *CreateDownloadLinkRequest, opts ...grpc.CallOption) (*CreateDownloadLinkResponse, error) + GetData(ctx context.Context, in *GetDataRequest, opts ...grpc.CallOption) (*GetDataResponse, error) } type dataProxyServiceClient struct { @@ -555,6 +755,15 @@ func (c *dataProxyServiceClient) CreateDownloadLink(ctx context.Context, in *Cre return out, nil } +func (c *dataProxyServiceClient) GetData(ctx context.Context, in *GetDataRequest, opts ...grpc.CallOption) (*GetDataResponse, error) { + out := new(GetDataResponse) + err := c.cc.Invoke(ctx, "/flyteidl.service.DataProxyService/GetData", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // DataProxyServiceServer is the server API for DataProxyService service. type DataProxyServiceServer interface { // CreateUploadLocation creates a signed url to upload artifacts to for a given project/domain. @@ -563,6 +772,7 @@ type DataProxyServiceServer interface { CreateDownloadLocation(context.Context, *CreateDownloadLocationRequest) (*CreateDownloadLocationResponse, error) // CreateDownloadLocation creates a signed url to download artifacts. CreateDownloadLink(context.Context, *CreateDownloadLinkRequest) (*CreateDownloadLinkResponse, error) + GetData(context.Context, *GetDataRequest) (*GetDataResponse, error) } // UnimplementedDataProxyServiceServer can be embedded to have forward compatible implementations. @@ -578,6 +788,9 @@ func (*UnimplementedDataProxyServiceServer) CreateDownloadLocation(ctx context.C func (*UnimplementedDataProxyServiceServer) CreateDownloadLink(ctx context.Context, req *CreateDownloadLinkRequest) (*CreateDownloadLinkResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateDownloadLink not implemented") } +func (*UnimplementedDataProxyServiceServer) GetData(ctx context.Context, req *GetDataRequest) (*GetDataResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetData not implemented") +} func RegisterDataProxyServiceServer(s *grpc.Server, srv DataProxyServiceServer) { s.RegisterService(&_DataProxyService_serviceDesc, srv) @@ -637,6 +850,24 @@ func _DataProxyService_CreateDownloadLink_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _DataProxyService_GetData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDataRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataProxyServiceServer).GetData(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/flyteidl.service.DataProxyService/GetData", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataProxyServiceServer).GetData(ctx, req.(*GetDataRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _DataProxyService_serviceDesc = grpc.ServiceDesc{ ServiceName: "flyteidl.service.DataProxyService", HandlerType: (*DataProxyServiceServer)(nil), @@ -653,6 +884,10 @@ var _DataProxyService_serviceDesc = grpc.ServiceDesc{ MethodName: "CreateDownloadLink", Handler: _DataProxyService_CreateDownloadLink_Handler, }, + { + MethodName: "GetData", + Handler: _DataProxyService_GetData_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "flyteidl/service/dataproxy.proto", diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.gw.go b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.gw.go index 3b819e343..c11d94174 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.gw.go +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.pb.gw.go @@ -82,6 +82,26 @@ func request_DataProxyService_CreateDownloadLink_0(ctx context.Context, marshale } +var ( + filter_DataProxyService_GetData_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_DataProxyService_GetData_0(ctx context.Context, marshaler runtime.Marshaler, client DataProxyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDataRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DataProxyService_GetData_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + // RegisterDataProxyServiceHandlerFromEndpoint is same as RegisterDataProxyServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. func RegisterDataProxyServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { @@ -180,6 +200,26 @@ func RegisterDataProxyServiceHandlerClient(ctx context.Context, mux *runtime.Ser }) + mux.Handle("GET", pattern_DataProxyService_GetData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_DataProxyService_GetData_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_DataProxyService_GetData_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -189,6 +229,8 @@ var ( pattern_DataProxyService_CreateDownloadLocation_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "dataproxy", "artifact_urn"}, "")) pattern_DataProxyService_CreateDownloadLink_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "dataproxy", "artifact_link"}, "")) + + pattern_DataProxyService_GetData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "data"}, "")) ) var ( @@ -197,4 +239,6 @@ var ( forward_DataProxyService_CreateDownloadLocation_0 = runtime.ForwardResponseMessage forward_DataProxyService_CreateDownloadLink_0 = runtime.ForwardResponseMessage + + forward_DataProxyService_GetData_0 = runtime.ForwardResponseMessage ) diff --git a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json index b74476ec1..e0177556d 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/dataproxy.swagger.json @@ -15,6 +15,31 @@ "application/json" ], "paths": { + "/api/v1/data": { + "get": { + "operationId": "GetData", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/serviceGetDataResponse" + } + } + }, + "parameters": [ + { + "name": "flyte_url", + "description": "A unique identifier in the form of flyte://\u003csomething\u003e that uniquely, for a given Flyte\nbackend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).\ne.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)\n flyte://v1/proj/development/execid/n2/i (for node execution input).", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "DataProxyService" + ] + } + }, "/api/v1/dataproxy/artifact_link": { "post": { "summary": "CreateDownloadLocation creates a signed url to download artifacts.", @@ -102,6 +127,221 @@ } }, "definitions": { + "BlobTypeBlobDimensionality": { + "type": "string", + "enum": [ + "SINGLE", + "MULTIPART" + ], + "default": "SINGLE" + }, + "SchemaColumnSchemaColumnType": { + "type": "string", + "enum": [ + "INTEGER", + "FLOAT", + "STRING", + "BOOLEAN", + "DATETIME", + "DURATION" + ], + "default": "INTEGER" + }, + "SchemaTypeSchemaColumn": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "A unique name -within the schema type- for the column" + }, + "type": { + "$ref": "#/definitions/SchemaColumnSchemaColumnType", + "description": "The column type. This allows a limited set of types currently." + } + } + }, + "StructuredDatasetTypeDatasetColumn": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name within the schema type for the column." + }, + "literal_type": { + "$ref": "#/definitions/coreLiteralType", + "description": "The column type." + } + } + }, + "coreBinary": { + "type": "object", + "properties": { + "value": { + "type": "string", + "format": "byte" + }, + "tag": { + "type": "string" + } + }, + "description": "A simple byte array with a tag to help different parts of the system communicate about what is in the byte array.\nIt's strongly advisable that consumers of this type define a unique tag and validate the tag before parsing the data." + }, + "coreBlob": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/coreBlobMetadata" + }, + "uri": { + "type": "string" + } + }, + "description": "Refers to an offloaded set of files. It encapsulates the type of the store and a unique uri for where the data is.\nThere are no restrictions on how the uri is formatted since it will depend on how to interact with the store." + }, + "coreBlobMetadata": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/coreBlobType" + } + } + }, + "coreBlobType": { + "type": "object", + "properties": { + "format": { + "type": "string", + "title": "Format can be a free form string understood by SDK/UI etc like\ncsv, parquet etc" + }, + "dimensionality": { + "$ref": "#/definitions/BlobTypeBlobDimensionality" + } + }, + "title": "Defines type behavior for blob objects" + }, + "coreEnumType": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Predefined set of enum values." + } + }, + "description": "Enables declaring enum types, with predefined string values\nFor len(values) \u003e 0, the first value in the ordered list is regarded as the default value. If you wish\nTo provide no defaults, make the first value as undefined." + }, + "coreError": { + "type": "object", + "properties": { + "failed_node_id": { + "type": "string", + "description": "The node id that threw the error." + }, + "message": { + "type": "string", + "description": "Error message thrown." + } + }, + "description": "Represents an error thrown from a node." + }, + "coreLiteral": { + "type": "object", + "properties": { + "scalar": { + "$ref": "#/definitions/coreScalar", + "description": "A simple value." + }, + "collection": { + "$ref": "#/definitions/coreLiteralCollection", + "description": "A collection of literals to allow nesting." + }, + "map": { + "$ref": "#/definitions/coreLiteralMap", + "description": "A map of strings to literals." + }, + "hash": { + "type": "string", + "title": "A hash representing this literal.\nThis is used for caching purposes. For more details refer to RFC 1893\n(https://github.com/flyteorg/flyte/blob/master/rfc/system/1893-caching-of-offloaded-objects.md)" + } + }, + "description": "A simple value. This supports any level of nesting (e.g. array of array of array of Blobs) as well as simple primitives." + }, + "coreLiteralCollection": { + "type": "object", + "properties": { + "literals": { + "type": "array", + "items": { + "$ref": "#/definitions/coreLiteral" + } + } + }, + "description": "A collection of literals. This is a workaround since oneofs in proto messages cannot contain a repeated field." + }, + "coreLiteralMap": { + "type": "object", + "properties": { + "literals": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/coreLiteral" + } + } + }, + "description": "A map of literals. This is a workaround since oneofs in proto messages cannot contain a repeated field." + }, + "coreLiteralType": { + "type": "object", + "properties": { + "simple": { + "$ref": "#/definitions/coreSimpleType", + "description": "A simple type that can be compared one-to-one with another." + }, + "schema": { + "$ref": "#/definitions/coreSchemaType", + "description": "A complex type that requires matching of inner fields." + }, + "collection_type": { + "$ref": "#/definitions/coreLiteralType", + "description": "Defines the type of the value of a collection. Only homogeneous collections are allowed." + }, + "map_value_type": { + "$ref": "#/definitions/coreLiteralType", + "description": "Defines the type of the value of a map type. The type of the key is always a string." + }, + "blob": { + "$ref": "#/definitions/coreBlobType", + "description": "A blob might have specialized implementation details depending on associated metadata." + }, + "enum_type": { + "$ref": "#/definitions/coreEnumType", + "description": "Defines an enum with pre-defined string values." + }, + "structured_dataset_type": { + "$ref": "#/definitions/coreStructuredDatasetType", + "title": "Generalized schema support" + }, + "union_type": { + "$ref": "#/definitions/coreUnionType", + "description": "Defines an union type with pre-defined LiteralTypes." + }, + "metadata": { + "$ref": "#/definitions/protobufStruct", + "description": "This field contains type metadata that is descriptive of the type, but is NOT considered in type-checking. This might be used by\nconsumers to identify special behavior or display extended information for the type." + }, + "annotation": { + "$ref": "#/definitions/coreTypeAnnotation", + "description": "This field contains arbitrary data that might have special semantic\nmeaning for the client but does not effect internal flyte behavior." + }, + "structure": { + "$ref": "#/definitions/coreTypeStructure", + "description": "Hints to improve type matching." + } + }, + "description": "Defines a strong type to allow type checking between interfaces." + }, "coreNodeExecutionIdentifier": { "type": "object", "properties": { @@ -114,6 +354,203 @@ }, "description": "Encapsulation of fields that identify a Flyte node execution entity." }, + "corePrimitive": { + "type": "object", + "properties": { + "integer": { + "type": "string", + "format": "int64" + }, + "float_value": { + "type": "number", + "format": "double" + }, + "string_value": { + "type": "string" + }, + "boolean": { + "type": "boolean", + "format": "boolean" + }, + "datetime": { + "type": "string", + "format": "date-time" + }, + "duration": { + "type": "string" + } + }, + "title": "Primitive Types" + }, + "coreScalar": { + "type": "object", + "properties": { + "primitive": { + "$ref": "#/definitions/corePrimitive" + }, + "blob": { + "$ref": "#/definitions/coreBlob" + }, + "binary": { + "$ref": "#/definitions/coreBinary" + }, + "schema": { + "$ref": "#/definitions/coreSchema" + }, + "none_type": { + "$ref": "#/definitions/coreVoid" + }, + "error": { + "$ref": "#/definitions/coreError" + }, + "generic": { + "$ref": "#/definitions/protobufStruct" + }, + "structured_dataset": { + "$ref": "#/definitions/coreStructuredDataset" + }, + "union": { + "$ref": "#/definitions/coreUnion" + } + } + }, + "coreSchema": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/coreSchemaType" + } + }, + "description": "A strongly typed schema that defines the interface of data retrieved from the underlying storage medium." + }, + "coreSchemaType": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "$ref": "#/definitions/SchemaTypeSchemaColumn" + }, + "description": "A list of ordered columns this schema comprises of." + } + }, + "description": "Defines schema columns and types to strongly type-validate schemas interoperability." + }, + "coreSimpleType": { + "type": "string", + "enum": [ + "NONE", + "INTEGER", + "FLOAT", + "STRING", + "BOOLEAN", + "DATETIME", + "DURATION", + "BINARY", + "ERROR", + "STRUCT" + ], + "default": "NONE", + "description": "Define a set of simple types." + }, + "coreStructuredDataset": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "title": "String location uniquely identifying where the data is.\nShould start with the storage location (e.g. s3://, gs://, bq://, etc.)" + }, + "metadata": { + "$ref": "#/definitions/coreStructuredDatasetMetadata" + } + } + }, + "coreStructuredDatasetMetadata": { + "type": "object", + "properties": { + "structured_dataset_type": { + "$ref": "#/definitions/coreStructuredDatasetType", + "description": "Bundle the type information along with the literal.\nThis is here because StructuredDatasets can often be more defined at run time than at compile time.\nThat is, at compile time you might only declare a task to return a pandas dataframe or a StructuredDataset,\nwithout any column information, but at run time, you might have that column information.\nflytekit python will copy this type information into the literal, from the type information, if not provided by\nthe various plugins (encoders).\nSince this field is run time generated, it's not used for any type checking." + } + } + }, + "coreStructuredDatasetType": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "$ref": "#/definitions/StructuredDatasetTypeDatasetColumn" + }, + "description": "A list of ordered columns this schema comprises of." + }, + "format": { + "type": "string", + "description": "This is the storage format, the format of the bits at rest\nparquet, feather, csv, etc.\nFor two types to be compatible, the format will need to be an exact match." + }, + "external_schema_type": { + "type": "string", + "description": "This is a string representing the type that the bytes in external_schema_bytes are formatted in.\nThis is an optional field that will not be used for type checking." + }, + "external_schema_bytes": { + "type": "string", + "format": "byte", + "description": "The serialized bytes of a third-party schema library like Arrow.\nThis is an optional field that will not be used for type checking." + } + } + }, + "coreTypeAnnotation": { + "type": "object", + "properties": { + "annotations": { + "$ref": "#/definitions/protobufStruct", + "description": "A arbitrary JSON payload to describe a type." + } + }, + "description": "TypeAnnotation encapsulates registration time information about a type. This can be used for various control-plane operations. TypeAnnotation will not be available at runtime when a task runs." + }, + "coreTypeStructure": { + "type": "object", + "properties": { + "tag": { + "type": "string", + "title": "Must exactly match for types to be castable" + } + }, + "description": "Hints to improve type matching\ne.g. allows distinguishing output from custom type transformers\neven if the underlying IDL serialization matches." + }, + "coreUnion": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/coreLiteral" + }, + "type": { + "$ref": "#/definitions/coreLiteralType" + } + }, + "description": "The runtime representation of a tagged union value. See `UnionType` for more details." + }, + "coreUnionType": { + "type": "object", + "properties": { + "variants": { + "type": "array", + "items": { + "$ref": "#/definitions/coreLiteralType" + }, + "description": "Predefined set of variants in union." + } + }, + "description": "Defines a tagged union type, also known as a variant (and formally as the sum type).\n\nA sum type S is defined by a sequence of types (A, B, C, ...), each tagged by a string tag\nA value of type S is constructed from a value of any of the variant types. The specific choice of type is recorded by\nstoring the varaint's tag with the literal value and can be examined in runtime.\n\nType S is typically written as\nS := Apple A | Banana B | Cantaloupe C | ...\n\nNotably, a nullable (optional) type is a sum type between some type X and the singleton type representing a null-value:\nOptional X := X | Null\n\nSee also: https://en.wikipedia.org/wiki/Tagged_union" + }, + "coreVoid": { + "type": "object", + "description": "Used to denote a nil/null/None assignment to a scalar value. The underlying LiteralType for Void is intentionally\nundefined since it can be assigned to a scalar of any LiteralType." + }, "coreWorkflowExecutionIdentifier": { "type": "object", "properties": { @@ -132,6 +569,72 @@ }, "title": "Encapsulation of fields that uniquely identifies a Flyte workflow execution" }, + "protobufListValue": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufValue" + }, + "description": "Repeated field of dynamically typed values." + } + }, + "description": "`ListValue` is a wrapper around a repeated field of values.\n\nThe JSON representation for `ListValue` is JSON array." + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + }, + "protobufStruct": { + "type": "object", + "properties": { + "fields": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/protobufValue" + }, + "description": "Unordered map of dynamically typed values." + } + }, + "description": "`Struct` represents a structured data value, consisting of fields\nwhich map to dynamically typed values. In some languages, `Struct`\nmight be supported by a native representation. For example, in\nscripting languages like JS a struct is represented as an\nobject. The details of that representation are described together\nwith the proto support for the language.\n\nThe JSON representation for `Struct` is JSON object." + }, + "protobufValue": { + "type": "object", + "properties": { + "null_value": { + "$ref": "#/definitions/protobufNullValue", + "description": "Represents a null value." + }, + "number_value": { + "type": "number", + "format": "double", + "description": "Represents a double value." + }, + "string_value": { + "type": "string", + "description": "Represents a string value." + }, + "bool_value": { + "type": "boolean", + "format": "boolean", + "description": "Represents a boolean value." + }, + "struct_value": { + "$ref": "#/definitions/protobufStruct", + "description": "Represents a structured value." + }, + "list_value": { + "$ref": "#/definitions/protobufListValue", + "description": "Represents a repeated `Value`." + } + }, + "description": "`Value` represents a dynamically typed value which can be either\nnull, a number, a string, a boolean, a recursive struct value, or a\nlist of values. A producer of value is expected to set one of that\nvariants, absence of any variant indicates an error.\n\nThe JSON representation for `Value` is JSON value." + }, "serviceArtifactType": { "type": "string", "enum": [ @@ -174,6 +677,10 @@ "type": "string", "format": "date-time", "description": "ExpiresAt defines when will the signed URL expire." + }, + "pre_signed_urls": { + "$ref": "#/definitions/servicePreSignedURLs", + "title": "New wrapper object containing the signed urls and expiration time" } }, "title": "CreateDownloadLinkResponse defines the response for the generated links" @@ -236,6 +743,37 @@ "description": "ExpiresAt defines when will the signed URL expires." } } + }, + "serviceGetDataResponse": { + "type": "object", + "properties": { + "literal_map": { + "$ref": "#/definitions/coreLiteralMap", + "title": "literal map data will be returned" + }, + "pre_signed_urls": { + "$ref": "#/definitions/servicePreSignedURLs", + "title": "Flyte deck html will be returned as a signed url users can download" + } + } + }, + "servicePreSignedURLs": { + "type": "object", + "properties": { + "signed_url": { + "type": "array", + "items": { + "type": "string" + }, + "title": "SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)" + }, + "expires_at": { + "type": "string", + "format": "date-time", + "description": "ExpiresAt defines when will the signed URL expire." + } + }, + "title": "Wrapper object since the message is shared across this and the GetDataResponse" } } } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index d108b0511..c719fbc8b 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -114,6 +114,7 @@ Class | Method | HTTP request | Description - [AdminExecutionUpdateResponse](docs/AdminExecutionUpdateResponse.md) - [AdminFixedRate](docs/AdminFixedRate.md) - [AdminFixedRateUnit](docs/AdminFixedRateUnit.md) + - [AdminFlyteUrLs](docs/AdminFlyteUrLs.md) - [AdminGetVersionResponse](docs/AdminGetVersionResponse.md) - [AdminLabels](docs/AdminLabels.md) - [AdminLaunchPlan](docs/AdminLaunchPlan.md) diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index 92996d1d6..e9cd32fab 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -4548,6 +4548,21 @@ definitions: - "HOUR" - "DAY" default: "MINUTE" + adminFlyteURLs: + type: "object" + properties: + inputs: + type: "string" + outputs: + type: "string" + deck: + type: "string" + description: "These URLs are returned as part of node and task execution data\ + \ requests." + example: + outputs: "outputs" + inputs: "inputs" + deck: "deck" adminGetVersionResponse: type: "object" properties: @@ -7614,12 +7629,18 @@ definitions: \ in the case this node yields a dynamic workflow we return its structure\ \ here." $ref: "#/definitions/flyteidladminDynamicWorkflowNodeMetadata" + flyte_urls: + $ref: "#/definitions/adminFlyteURLs" description: "Response structure for NodeExecutionGetDataRequest which contains\ \ inputs and outputs for a node execution." example: outputs: bytes: "bytes" url: "url" + flyte_urls: + outputs: "outputs" + inputs: "inputs" + deck: "deck" full_inputs: literals: {} dynamic_workflow: @@ -15912,12 +15933,20 @@ definitions: description: "Full_outputs will only be populated if they are under a configured\ \ size threshold." $ref: "#/definitions/coreLiteralMap" + flyte_urls: + title: "flyte tiny url to fetch a core.LiteralMap of task execution's IO\n\ + Deck will be empty for task" + $ref: "#/definitions/adminFlyteURLs" description: "Response structure for TaskExecutionGetDataRequest which contains\ \ inputs and outputs for a task execution." example: outputs: bytes: "bytes" url: "url" + flyte_urls: + outputs: "outputs" + inputs: "inputs" + deck: "deck" full_inputs: literals: {} inputs: diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_flyte_ur_ls.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_flyte_ur_ls.go new file mode 100644 index 000000000..6b8a49a66 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_flyte_ur_ls.go @@ -0,0 +1,17 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +// These URLs are returned as part of node and task execution data requests. +type AdminFlyteUrLs struct { + Inputs string `json:"inputs,omitempty"` + Outputs string `json:"outputs,omitempty"` + Deck string `json:"deck,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_get_data_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_get_data_response.go index afeaa710f..0ab85da7c 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_get_data_response.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_get_data_response.go @@ -21,4 +21,5 @@ type AdminNodeExecutionGetDataResponse struct { FullOutputs *CoreLiteralMap `json:"full_outputs,omitempty"` // Optional Workflow closure for a dynamically generated workflow, in the case this node yields a dynamic workflow we return its structure here. DynamicWorkflow *FlyteidladminDynamicWorkflowNodeMetadata `json:"dynamic_workflow,omitempty"` + FlyteUrls *AdminFlyteUrLs `json:"flyte_urls,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_get_data_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_get_data_response.go index 2c8e19da7..75c3e8423 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_get_data_response.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_get_data_response.go @@ -19,4 +19,5 @@ type AdminTaskExecutionGetDataResponse struct { FullInputs *CoreLiteralMap `json:"full_inputs,omitempty"` // Full_outputs will only be populated if they are under a configured size threshold. FullOutputs *CoreLiteralMap `json:"full_outputs,omitempty"` + FlyteUrls *AdminFlyteUrLs `json:"flyte_urls,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 8d953b0d7..473495afe 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/openapi.go +++ b/flyteidl/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x79\x73\x23\x37\x96\x2f\x0c\xff\x3f\x9f\x02\xb7\xe6\x46\xd8\xee\xd1\xe2\x76\xcf\xf4\xdb\xa1\x89\x1b\xef\x43\x4b\xac\xb2\xae\xb5\xb5\x16\x7b\xfc\x0c\x27\x68\x30\x13\x24\xd1\xca\x04\xb2\x01\xa4\x54\x74\x47\x7f\xf7\x27\x70\xb0\x24\x72\x23\x93\x8b\x24\xaa\x9c\x33\x11\x6d\x15\x33\x13\xeb\xc1\xc1\x59\x7f\xe7\x1f\xff\x82\xd0\x07\xf9\x8c\x67\x33\x22\x3e\x9c\xa0\x0f\xdf\x1d\x7d\xfb\xe1\x40\xff\x46\xd9\x94\x7f\x38\x41\xfa\x39\x42\x1f\x14\x55\x09\xd1\xcf\xa7\xc9\x42\x11\x1a\x27\xc7\x92\x88\x27\x1a\x91\x63\x1c\xa7\x94\x1d\x65\x82\x2b\x0e\x1f\x22\xf4\xe1\x89\x08\x49\x39\xd3\xaf\xdb\x3f\x11\xe3\x0a\x49\xa2\x3e\xfc\x0b\x42\xff\x84\xe6\x65\x34\x27\x29\x91\x1f\x4e\xd0\x7f\x9b\x8f\xe6\x4a\x65\xae\x01\xfd\xb7\xd4\xef\xfe\x0f\xbc\x1b\x71\x26\xf3\xd2\xcb\x38\xcb\x12\x1a\x61\x45\x39\x3b\xfe\x9b\xe4\xac\x78\x37\x13\x3c\xce\xa3\x8e\xef\x62\x35\x97\xc5\x1c\x8f\x71\x46\x8f\x9f\xfe\x78\x8c\x23\x45\x9f\xc8\x38\xc1\x39\x8b\xe6\xe3\x2c\xc1\x4c\x1e\xff\x83\xc6\x7a\x8e\x7f\x23\x91\xfa\x27\xfc\x23\xe6\x29\xa6\xcc\xfc\xcd\x70\x4a\xfe\xe9\xdb\x41\xe8\xc3\x8c\xa8\xe0\x9f\x7a\xb6\x79\x9a\x62\xb1\xd0\x2b\xf2\x91\xa8\x68\x8e\xd4\x9c\x20\xd3\x0f\x72\x4b\xc4\xa7\x08\xa3\x13\x41\xa6\x27\xbf\x0a\x32\x1d\xbb\x85\x3e\x32\x0b\x7c\x01\xa3\xb9\x49\x30\xfb\xf5\xc8\x2e\x13\xb4\xcc\x33\x22\x60\x6e\xe7\xb1\x6e\xfd\x13\x51\x03\x68\xb6\x78\x3f\x7c\x5b\x10\x99\x71\x26\x89\x2c\x0d\x0f\xa1\x0f\xdf\x7d\xfb\x6d\xe5\x27\x84\x3e\xc4\x44\x46\x82\x66\xca\xee\xe5\x00\xc9\x3c\x8a\x88\x94\xd3\x3c\x41\xae\xa5\x70\x30\x66\xaa\x7a\x63\x71\xad\x31\x84\x3e\xfc\x6f\x41\xa6\xba\x9d\x7f\x3d\x8e\xc9\x94\x32\xaa\xdb\x95\x86\x7e\x82\xd1\x96\xbe\xfa\xe7\xbf\x34\xfd\xfd\xcf\x60\x46\x19\x16\x38\x25\x8a\x88\x62\xc7\xcd\xff\x55\xe6\xa2\xf7\x48\x77\x5e\xec\x63\x75\xe0\x95\xd9\x5e\xe1\x94\xe8\x3d\xd1\x3b\x65\xbf\x80\xbf\x05\x91\x3c\x17\x11\x41\x13\x92\x70\x36\x93\x48\xf1\xda\x1a\x50\x68\x41\x93\x57\xf5\x89\x20\x7f\xcf\xa9\x20\x7a\xaf\x94\xc8\x49\xe5\xa9\x5a\x64\x30\x48\xa9\x04\x65\xb3\x70\x29\xfe\x79\xd0\x69\x6a\x86\x2a\xd7\x98\x99\xf9\xa0\x75\x62\x23\x36\x70\xaf\x44\x98\xa1\x09\x41\xfa\x2c\xd2\x98\x08\x12\x23\x2c\x11\x46\x32\x9f\x48\xa2\xd0\x33\x55\x73\xca\xf4\xbf\x33\x12\xd1\x29\x8d\xdc\x9a\xed\xcf\xda\xc0\x9f\xcb\x57\xe6\x41\x12\xa1\x07\xfe\x44\x63\x12\xa3\x27\x9c\xe4\x04\x4d\xb9\x28\x2d\xcf\xd1\x88\xdd\xcf\xf5\x3a\xa4\x13\xca\xe0\xe4\xe9\xb5\x74\x14\xf2\x6f\x6e\xb9\xfe\x0d\xe9\xfe\x50\xce\xe8\xdf\x73\x92\x2c\x10\x8d\x09\x53\x74\x4a\x89\xac\xb6\xf6\x6f\x1c\xfa\xc7\x09\x3a\x44\x7a\x9d\x89\x50\xb0\xde\x9c\x29\xf2\x59\x49\x74\x88\x12\xfa\x48\xd0\x57\x17\x54\x2a\x34\xb8\x39\xff\xea\x00\x7d\x65\xce\x0b\x02\xde\xf4\xd5\x2b\xac\xb0\xff\xfb\x7f\x82\xa3\xa7\xf0\xac\x7a\xe8\x3e\x0c\xf4\x69\xbe\x33\x57\x43\xd1\xc2\xff\xfc\x4b\xd8\x8e\xdd\xaf\xe5\xfc\xb6\x60\xb6\x96\xd3\x76\xe5\xaf\xb0\x4c\x65\xd6\x2a\xf5\x0e\x6d\xcb\x59\x75\xbb\x55\xd6\x2a\xdf\x17\x6f\xd5\x53\x78\x69\xfe\xba\x0d\x73\xc5\x0a\xa8\x1e\x53\x66\x0e\x89\x3f\x33\x42\xea\x73\xe2\xa8\x77\x4f\x58\xca\x36\xbc\x36\x98\x59\xc0\x6e\x1d\x17\x0d\x56\x65\x0f\xe7\x9d\xd0\x94\xae\xda\xdf\x73\x16\x6b\x91\xcb\x32\x3b\x96\xa7\x13\x22\xf4\x32\x38\xb6\x07\xb3\x9d\x68\x36\xa8\x72\xc1\x48\xdc\x61\x9a\x7f\xcf\x89\x58\x2c\x99\xe7\x14\x27\xb2\x6d\xa2\x94\x29\xa2\xe5\xdb\xca\xe3\x29\x17\x29\x56\xf6\x85\x3f\xff\xfb\xba\x0b\xa1\xf8\x23\x59\xb5\xff\xe7\x66\x37\x23\x2c\x81\x0c\xd2\x3c\x51\x34\x4b\x08\xca\xf0\x8c\x48\xbb\x22\x79\xa2\xe4\x01\xbc\xa6\x65\x6a\x22\x0e\xfd\x0d\x04\x3d\xb8\x9b\x37\x97\xf0\x0b\x9a\x7a\x01\x92\x91\xcf\x0a\x5a\x1a\x31\xb8\x7b\x61\x89\xc2\x1b\xe5\x05\x96\x72\x33\x9a\x91\x5c\xa8\xf1\x64\x71\xf4\x48\x6a\xfd\xb6\x52\x0e\x66\x08\x2b\x25\xe8\x24\x57\x44\xcf\x5b\xb7\xe1\xee\x4e\x60\x8f\xe6\x82\xee\xc2\x1a\xde\x6e\xc2\x31\x15\x24\x82\xb9\xad\x73\x60\xfc\x57\x7a\xde\x5a\x7f\x59\x98\xd9\x3f\x92\x05\xc8\x23\x0d\x2b\xe0\xb7\x7c\xc4\x46\x0c\x1d\xa2\xb3\xe1\xdd\xe9\xf0\xea\xec\xfc\xea\xd3\x09\xfa\x7e\x81\x62\x32\xc5\x79\xa2\x0e\xd0\x94\x92\x24\x96\x08\x0b\x02\x4d\x92\x58\xcb\x1c\x7a\x30\x84\xc5\x94\xcd\x10\x17\x31\x11\x2f\xb7\x8c\x95\xa7\x84\xe5\x69\xe5\x5e\x81\xdf\x8b\xd1\x57\xbe\xd0\x22\x86\x7f\x54\x7a\xf2\x3f\xb5\x05\x86\x19\xeb\xbe\x83\xd6\x5e\x4d\xa8\x89\xe6\x34\x89\x05\x61\xc7\x0a\xcb\xc7\x31\xf9\x4c\xa2\xdc\xdc\xc9\xff\x28\xff\x30\xd6\x92\x29\x8f\x49\xf9\x97\xd2\x3f\x0a\x51\x68\xed\x4f\xbd\x96\xba\xf6\x97\xa0\xd3\x76\xfb\x0e\x7e\xa1\x71\xe3\xdb\xf0\xcb\x8a\x39\xb8\x77\x96\x0c\xd6\xbd\xd2\x3a\x2a\xf7\x82\x95\xf8\x1a\xdf\x11\x44\x89\xc5\x18\x2b\x45\xd2\x4c\xad\xa9\xaf\x63\x94\x68\xb9\x72\x99\x1c\x79\xc5\x63\x32\x74\xfd\xfd\x8a\x8c\x38\x4b\x62\x34\x59\x58\xae\x35\x25\x82\xb0\x88\xb4\xb7\x70\x8f\xe5\x63\xd1\xc2\x2a\x61\xb4\xd4\x9f\xfc\xc8\x85\xfe\xfc\x3d\x08\xa4\xa5\x81\xbf\x86\x4c\xba\xe9\x89\xfb\xe2\x2c\x04\x1b\xf2\x8f\xde\x9e\xb0\xfd\x4a\x76\xb5\x3e\x70\x81\xe4\x42\x2a\x92\xae\xb4\x43\xbc\x9f\x85\xb0\x17\xc4\xbe\x0e\xb8\x72\x47\xfd\x0e\x4e\x7d\xf9\xc6\xed\x8f\xf7\x1a\x4b\xb6\x2b\x2b\xe2\xbe\xcf\xd3\xf9\x70\x96\x4f\xf5\xce\x6d\x5f\xe0\xc4\x78\x17\xd3\x2c\xc9\x82\xbb\x1e\xe4\x0b\x99\x1b\x5a\xf7\xca\xad\xf6\x18\x06\xb0\x42\xd1\x2c\xdb\xa1\xfd\xf9\xd3\x9f\x86\x16\x1a\x63\x8e\x53\x73\x2a\x03\x63\x15\x8a\xb8\x30\xb2\x60\x6c\xcf\xbb\xd1\x35\x07\xf7\x83\xbb\xe1\xfd\x09\x1a\xa0\x18\x2b\xac\x0f\xb8\x20\x99\x20\x92\x30\x05\x7a\xbc\xfe\x5e\x2d\x50\xca\x63\x92\x18\x8d\xf3\xa3\x96\x7c\xd1\x19\x56\xf8\x14\x2b\x9c\xf0\xd9\x11\x1a\xc0\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\x23\x2b\x12\xbb\x26\x30\x8b\x1d\x6b\xc1\x28\xe2\x69\x46\x13\x6f\x83\xf7\xc6\x15\xca\x62\xfa\x44\xe3\x1c\x27\x88\x4f\x34\x57\xd1\x1a\xf2\xf0\x89\x30\x95\xe3\x24\x59\x20\x9c\x24\xc8\x76\xeb\x5e\x40\x72\xce\xf3\x24\xd6\xed\xba\x51\x4a\x9a\xd2\x04\x0b\xad\x82\x9b\xd1\x5e\xdb\xb6\xd0\xfd\x9c\xf8\xb1\xc2\xb8\xf4\x6a\xa6\xf8\x91\x48\x44\x15\xca\xb8\x94\x74\x92\x14\x67\xfe\xe1\x1c\xc1\xb8\x4f\x2f\xce\x41\x9f\x8f\x14\xe2\x86\x87\xba\xce\xad\xfd\xc6\xf5\x98\x62\xc6\x08\x74\xcc\xd5\x9c\x08\xdb\xbd\x7d\xf9\xad\x55\xf3\x87\xab\xbb\x9b\xe1\xe9\xf9\xc7\xf3\xe1\x59\x5d\x37\xbf\x1f\xdc\xfd\x58\xff\xf5\xe7\xeb\xdb\x1f\x3f\x5e\x5c\xff\x5c\x7f\x72\x31\x78\xb8\x3a\xfd\x61\x7c\x73\x31\xb8\xaa\x3f\xb4\x64\xd5\x59\xcd\x0f\x47\xb6\xe6\xd9\xea\x6d\x9a\x2f\x65\xd3\x3c\xf8\x72\x8d\x9a\x53\x9a\x80\x0e\xda\xd9\xa0\xe9\x6d\x08\xf6\x4b\x94\x61\x29\x8d\x64\x64\x46\x70\x34\x62\x97\x5c\x68\x06\x36\xe5\x9a\x47\x68\xe9\x49\x89\x3c\x52\x94\xcd\xfc\x47\x27\x68\x94\x7f\xfb\xed\x9f\xa2\x0b\xca\x1e\xe1\x2f\xb2\x8f\x8b\xd3\x5b\x7c\x7b\x8b\xef\xef\xcb\xe2\xab\x45\x9f\xe3\xd0\xd0\xbb\xdb\x90\x21\x2d\x5c\xb0\x2c\x57\x20\x4a\xf0\x5c\xe9\x3f\x75\x97\x40\x1e\x4b\x02\x87\xba\x19\x14\x3f\x11\xe5\x5f\xd4\xa2\xcd\x7b\xb0\x23\xfe\xcc\xc5\xe3\x34\xe1\xcf\x7e\xe0\x9f\x88\xd2\x63\xbf\xb5\xbd\xf4\xa1\x44\x7d\x28\xd1\xdb\x86\x12\xed\x95\x31\xef\xe5\x99\x5f\xd9\xf2\x67\x38\x60\x8b\x27\xab\xd5\x51\xd5\xe2\x87\x0a\xdc\x4c\xaf\xc2\x35\xcb\xce\x9c\x15\x9c\xb3\xf4\xf2\x7b\xe1\x9e\xa5\x41\xbf\x3e\xe7\xfc\x5d\xf8\x5b\x7a\x77\xca\x86\x0b\xf5\x2e\x19\x6c\xc7\xbb\xe3\xd5\x9c\x21\x2f\xcf\xf0\x6b\xb1\x0d\xeb\x04\x33\xac\x11\xbd\xd0\x39\x5c\x61\x45\x7c\x42\x63\x40\x42\x53\x04\x42\x3d\xe4\xa0\x31\xc6\x60\xbb\xa0\x82\x4d\xef\xa6\xee\x61\x02\x9f\x88\x2a\xbd\xfc\x5e\xee\xa6\xd2\xa0\x5f\xff\x6e\xfa\x9d\x46\x07\xf4\xe1\x00\x2f\xb8\x74\x5f\xfa\x8d\xb6\xbf\x0e\xff\xdf\x81\x87\xbf\x77\xe9\xaf\xb5\x46\x5f\x96\x0f\xff\x4b\x75\xda\xbf\x4f\x2f\x7d\xef\x96\xef\xdd\xf2\x6f\xe1\x3f\x79\x7f\x6e\xf9\x97\x55\x4f\x8b\xe3\x35\x76\xb4\x60\xf5\xb5\xe0\x50\xfe\xb3\x83\x93\x06\xfe\x72\x2a\xdf\xba\x41\xe3\xad\x3a\xdc\x59\x31\xbe\x21\x1c\xa1\x5f\x2d\x21\xad\x50\xe7\x6a\xdf\xbd\x07\x75\xae\x3e\xe8\x97\xd7\xe1\xde\x8c\xf9\xbe\xd0\xe5\xf9\x4e\xd8\xc0\xfa\xb7\xe5\x17\x2c\x93\xf7\xb2\xf8\xcb\x67\xe3\xef\xcd\x84\xde\x8f\xec\xfd\x06\x17\x6f\xc7\x5b\x77\xe7\x39\x59\x0d\xd7\x6c\x70\x3b\xad\xca\xb0\xaa\x7e\x4d\x89\xfc\xee\x5d\xde\xb7\xaf\x91\x64\xd5\x5f\xb8\xfd\x85\x6b\x9b\xea\x2f\xdc\x2f\xf8\xc2\xdd\x3b\xf8\x9b\xbd\x89\x00\xed\x83\xc8\x7b\x60\x8c\x3e\x86\x7c\x87\x8b\xd3\xc7\x90\xf7\x31\xe4\xbf\xb3\x18\xf2\x6d\xb4\xa7\x4d\xb1\x28\xdf\x42\x8f\xea\xd5\xa8\x5e\x8d\x0a\x7f\xef\xd5\xa8\x5e\x8d\xea\xd5\xa8\x2f\x1c\x45\xb4\xd7\xa1\xba\x2f\x44\xaf\x43\x75\x5e\xaa\x5e\x87\x5a\xb2\x38\xbd\x0e\xd5\xeb\x50\xbf\x2f\x1d\x8a\x3c\x11\xa6\x24\x24\xa3\x85\x1a\xc5\x87\x8c\xcb\x76\x4d\x28\xe4\x0e\x0d\x5a\x10\xb4\x59\x4e\x0a\x83\xc0\xa5\x5f\xd1\x1c\x4b\xc4\xa3\x28\x17\x95\x33\x50\xd5\x83\x4e\x05\xc1\x8a\x40\x0b\xfa\xc3\xf7\xa0\xff\xd4\xa7\xfb\x5a\x31\xf8\x13\x1e\xd7\xa8\xdd\x1c\x84\xa6\x27\xcb\xe5\x91\x9d\x4d\xfd\xef\x39\xe9\xa6\xfe\xbd\x20\x51\x2b\x2c\x1f\x77\x4c\xd4\xa5\x5c\x8b\x8d\x88\x1a\x5a\x78\x2f\x44\x5d\x9f\xee\xef\x86\xa8\x9b\xa6\xbe\x0f\x44\xfd\x6c\xf3\xf8\x77\x4c\xd8\x35\x78\x80\x8d\x88\xdb\xb7\xf2\x5e\x08\xbc\x79\xda\xbf\x1b\x22\x6f\x9b\xfe\xdb\x12\xba\x4f\x91\xec\x4c\xe2\xf7\x82\xce\x66\x5a\xcd\x00\x0d\x4f\x93\xe2\xea\x1a\x41\x45\x52\xe0\x4a\xb2\xf6\xaf\xbe\x07\x92\xf6\x83\x35\x63\xff\xdd\xd0\x72\x6d\xde\x7b\x42\xc4\xc7\x82\x44\xfc\x09\xea\x85\x75\x23\xe6\x5b\x02\x14\x0c\xfc\x3a\x13\xe4\x89\xf2\x5c\x26\x8b\x43\x91\x33\xe4\x98\x3f\xf2\xcd\x1b\x6b\xf5\x33\x4d\x12\xc4\x99\xd6\xbf\x14\x16\xca\x3d\xd6\xfa\xb7\xe0\x29\x9c\x8a\x04\x4b\x85\x1e\x19\x7f\x66\x68\x8a\x69\x92\x0b\x82\x32\x4e\x99\x3a\x1a\xb1\x73\x86\x6e\xcd\x18\x21\x6f\xe0\x00\xe5\x52\x9f\xa5\x08\x33\xc6\x15\x8a\xe6\x98\xcd\x08\xc2\x6c\x61\x13\x70\x0b\xca\x40\x5c\xa0\x3c\x8b\xb1\x56\x7c\xe7\xa4\x1a\xa5\xe7\xc7\x08\xe6\x3b\x2a\x11\x95\x88\x7c\x56\x82\xa4\x24\x59\xe8\x3e\x34\xed\x2b\x8e\xec\xfa\x98\xa1\xda\x74\x3e\x22\x04\x17\x12\x32\x0e\x26\x8b\xdf\x30\x53\x94\x11\x04\x8a\x92\x34\xa6\xb9\x43\x74\xc1\x25\x98\x6d\x7e\xfc\x8b\x44\x51\x92\x4b\x45\xc4\x01\x9a\xe4\x33\xa9\x35\xc5\x2c\xc1\x6a\xca\x45\xaa\x47\x48\x99\x54\x78\x42\x13\xaa\x16\x07\x28\xc5\xd1\xdc\xb4\x05\x6b\x20\x0f\x46\x2c\xe6\xcf\x4c\x2a\x41\xb0\xef\xdd\x3d\x44\x5f\x87\xcf\x0c\x01\xc8\x6f\x0e\x20\xed\x90\xa6\x5a\xdd\x0d\x86\x5f\xec\xb8\xd9\x13\xdd\x08\x89\xd1\x84\x44\x38\x97\xd6\xc3\xa0\xc4\x02\x91\xcf\x73\x9c\x4b\xd8\x3b\x3d\x3d\x9b\xb3\x11\xf1\x34\x4b\x88\x22\x88\x4e\x91\x12\x94\xc4\x08\xcf\x30\xd5\x4b\x77\x47\x96\x80\xa0\x7b\xa2\xb7\x1b\x68\xa9\xfe\x57\x50\xbf\x53\x2e\x08\x8a\x89\xc2\x34\x59\xea\x75\xb2\xdf\xf6\x5c\xee\x3d\x71\xb9\xf2\x86\xef\x05\x9b\x33\x20\xfe\x3b\xb8\xb4\x99\x35\xdd\x47\x38\xd9\xf2\xfe\xbe\xb5\x83\xea\x69\xfb\x7d\xd1\xb6\xd9\xb5\xfd\x21\xee\x57\x8b\xc1\xee\x5e\xd1\xa2\xa8\x66\xf1\xae\x68\xfa\x35\xc2\x02\x7a\x87\x73\xef\x70\x6e\x5d\x99\xf7\xe9\x70\xde\x1b\x8f\x51\xef\x73\x7e\x21\x9f\x33\x95\xbd\xd3\xb9\x77\x3a\x77\x5d\xa0\xde\xe9\xdc\x3b\x9d\xdf\xaf\xd3\xf9\x25\x71\x9f\x77\x8a\xee\xfc\xae\x44\xeb\x5e\xac\xee\xc5\xea\x1e\xc2\xd9\x4f\x6d\x57\x2c\xcc\x7d\xfd\x21\x26\x09\x51\xa4\xdd\x9e\x45\x44\xaa\xb5\x05\x73\x3d\x53\xa6\xe5\xb8\x99\x20\x52\x6e\xcb\x90\x7c\xc3\xef\x93\x2d\xf9\xe1\xf7\x50\xf3\x3d\x9f\xea\xf9\xd4\x26\x53\xdb\x1f\xd3\x6c\x70\x98\x5f\xcb\x36\xeb\xf9\x6f\x96\xb7\x4b\x7f\x0f\xc6\x0d\x59\xf8\x45\x0d\x85\x6b\xa9\x5d\x71\x7f\xb8\x2d\x9d\x6f\xc9\x8f\x4d\x5f\xef\x93\x19\x9b\xb1\xf7\x9c\xb8\xe7\xc4\x3d\x27\x7e\xdf\x9c\xd8\x9d\xe4\x37\x75\x91\x19\x3f\xdd\x38\x4b\x30\x1b\xd3\x58\x1e\xff\xa3\xd0\xe5\x5f\xca\x43\xa6\x0f\x54\x6c\x52\x4c\x7d\x4a\xa7\xf8\x55\x7f\x92\x14\x06\x73\x8f\x99\xb9\xc2\x89\x66\x6c\xec\x37\x09\x66\xe7\xf1\xbb\xf0\xa3\x35\xce\xfe\x35\x7c\x6a\xdb\xf0\x71\xac\xc0\xd3\x81\x29\x33\x26\xbc\x22\xaf\xb6\x64\xa0\xdc\x8f\x13\xbe\x0d\x57\x0f\x26\x16\x30\x76\xc7\xaf\x83\x45\xd9\xbf\x69\xf7\x7e\x9d\x3e\x97\xb0\xf7\x5c\x74\x9c\x70\xef\xb9\xd8\x5f\xcf\xc5\x5b\xb9\x23\x5f\xf9\x78\xbe\x96\x58\xd7\x3d\x08\xdf\x44\xab\x41\x50\x6b\x9e\x25\x1c\xc7\xcb\x5c\x31\x85\xe0\x15\x82\xa3\xac\x8c\xc4\x2f\x3e\x7b\x0f\xc2\x5a\x31\xda\xdf\x59\x24\x5f\x7d\xe2\xfb\xa2\xa5\xbc\x62\x28\x5f\x33\x89\xaf\xa1\x92\xbc\x0f\xfc\xd4\x62\xbc\x7d\x68\x5f\x6f\x51\x7a\x7b\x8b\x52\x1f\xda\xd7\xab\x80\x7b\xa6\x02\xf6\xa1\x7d\x7d\x68\x5f\xaf\x20\x2f\x9f\x76\xaf\x20\x7f\x11\xa1\x7d\x9d\x44\xed\x17\xc4\xde\xdc\x5e\xe8\xee\x65\x6e\xf7\x5e\x2f\x73\xf7\x32\xf7\x17\x2a\x73\xef\xc7\x0a\xf7\x02\x77\x2f\x70\xf7\x02\x77\x2f\x70\xf7\x02\xf7\xce\x97\xb1\x17\xb8\x5f\xb3\x40\x67\xb3\xd4\xbd\x22\xc9\xe6\xbd\xfa\x72\x7a\x71\xbb\x17\xb7\xf7\x5b\xdc\xde\x9b\x09\xbd\x9f\x32\x8f\xdd\xe6\xd3\x17\x29\xef\x8b\x94\xf7\x45\xca\x5f\xbc\x48\xb9\xfb\xba\x43\xc6\x87\x3d\x5c\x0a\xab\x5c\x1a\xc0\x47\x41\x66\x54\x2a\x60\xff\x5d\xe4\x95\xd5\x89\x1e\xef\x55\x4e\xe9\x53\x3d\xfc\xd3\x5e\x6a\xe9\xa5\x96\xdf\xa9\xd4\xb2\x47\xb1\x60\x7b\x91\xb1\x92\x62\x15\xcd\xf1\x24\x21\x63\x6f\xf4\x91\x5d\xf5\xe0\x0b\x2a\x95\x44\x51\x2e\x15\x4f\xdb\x2f\x97\x4b\xd7\xc3\xc0\x77\x70\xca\xd9\x94\xce\x72\x73\xb7\x18\x70\xce\xe0\x44\x17\x92\xe0\x22\x23\xab\x3c\x55\x0d\xad\xbf\x8b\x6b\xa9\x79\xe8\xaf\x75\x3b\xad\x23\xb8\x17\x46\x3e\x2b\x75\x6b\x59\x6b\x7c\x3b\xbc\xbb\x7e\xb8\x3d\x1d\x9e\xa0\x41\x96\x25\xd4\xd8\xdd\x0d\x29\xd0\xdf\xf4\xa4\x90\xc2\xf2\xb1\xd8\x4b\x61\xc8\xdc\x60\xd8\x82\xa1\x5f\xcb\xc6\xe8\x10\x9d\x5e\x3c\xdc\xdd\x0f\x6f\x5b\x1a\xb4\x84\x02\x79\xab\x24\xcd\x12\xac\x48\x8c\x1e\xf3\x09\x11\x8c\x68\x69\xc7\x22\xdd\x16\xe6\x7f\xd3\xe8\xf0\xbf\x86\xa7\x0f\xf7\xe7\xd7\x57\xe3\xbf\x3e\x0c\x1f\x86\x27\xc8\x51\x9c\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x9c\x6a\x0d\x44\xff\x50\x64\xca\xfe\x3d\x27\x39\x41\x58\x4a\x3a\x63\x29\x01\x44\xe0\x52\x8b\x6e\xc0\x17\x83\xef\x87\x17\xe5\x96\xe7\x24\x84\xdf\x45\x09\x9e\x90\xc4\xfa\x23\xc0\xc4\xae\x09\x3d\x80\x2a\x36\x8e\x8a\xdc\xac\xea\x5f\x1f\x06\x17\xe7\xf7\xbf\x8c\xaf\x3f\x8e\xef\x86\xb7\x3f\x9d\x9f\x0e\xc7\x56\xaa\x3c\x1d\xe8\x7e\x4b\x3d\x59\xe1\x13\xfd\x3d\xc7\x89\xd6\x4e\xf8\xd4\xe1\xf1\xa2\xe7\x39\x61\x28\x67\x40\x71\x46\xe5\xd1\x7a\x90\xef\x54\x9f\x32\x33\xa3\x9b\x8b\x87\x4f\xe7\x57\xe3\xeb\x9f\x86\xb7\xb7\xe7\x67\xc3\x13\x74\x47\x12\x50\x0a\xdc\xa2\xc3\x2e\x66\x49\x3e\xa3\x0c\xd1\x34\x4b\x88\x5e\x0d\x6c\xb3\x89\xe7\xf8\x89\x72\x61\x8f\xee\x8c\x3e\x11\x66\xd6\x11\xce\x2c\xb4\xef\x84\xef\x71\xb0\x74\xd7\x57\x1f\xcf\x3f\x9d\xa0\x41\x1c\xfb\x39\x48\x68\xa3\x44\x39\x0e\xd6\xf9\xb0\x3c\x6c\xcd\x1c\xa0\x7b\x43\x44\xfc\x89\x08\x41\x63\x52\xa1\xa3\xc1\xdd\xdd\xf9\xa7\xab\xcb\xe1\xd5\x3d\xac\x98\x12\x3c\x91\x68\xce\x9f\xc1\x94\x0d\x33\x04\x0b\xf7\x13\xa6\x09\x74\xe6\x36\x8b\x33\xf4\x3c\xa7\xe0\xfe\x00\x60\x66\xdf\xb3\xd1\xcf\x44\xce\xde\xdc\x3a\x5b\x3a\x78\x75\xb5\xa5\x7a\x92\xea\x6f\x54\x8e\xc5\xb2\x17\x4a\x54\x5e\x7f\x71\x15\xb5\xd6\xbf\xa8\x90\x5b\xbb\xb2\x56\xa3\x97\xf6\x99\x16\x7b\xdd\x59\x57\x2b\xaf\xe1\xeb\x5d\xb3\x44\x09\x1a\xc9\x97\x85\x7a\x12\x39\x53\x34\x25\xc8\x76\x66\x0f\xe7\x0e\xe1\x9f\x2e\x4d\xc3\xef\xe1\x82\xad\x95\x72\xf8\x44\x94\x1d\x7e\xaf\x02\xf6\x2a\xe0\x7e\xa8\x80\xef\x2d\xdb\x3f\x26\x59\xbd\xc3\xca\xc4\xe0\x1d\xe3\xf5\xaa\x05\x69\x18\x7b\xa2\xb5\xa8\x26\xe4\x89\x24\x20\xe5\x29\x81\xb5\xd2\x68\x65\x97\x89\x20\xf8\x51\x0b\x7c\x31\x7f\x0e\x25\x97\x06\xe4\x7e\xb4\x9b\x5b\xb8\x4b\x10\xc7\x9f\xbe\x7b\xbd\xcb\x42\x2f\x77\xfc\x1a\x25\xbc\x6f\x21\x48\x66\x29\x46\x60\x90\x60\xff\xab\xb5\x04\xaf\xb8\x2d\x82\x2f\xde\xc3\x45\x11\x0e\x77\x8f\xb4\xae\xdb\x50\x09\x76\x2c\x34\x25\x0a\xc7\x58\x61\x7d\x68\x66\x44\x1d\xa1\x6b\x06\xcf\xee\xb1\x7c\x3c\x40\xee\xca\xd3\x6c\xa5\xb0\x32\xbc\x42\x6a\xfd\x3b\x31\xe0\xaf\xcf\xc7\xfb\xeb\xbb\xbf\xbe\x9b\x57\xa6\x0f\xf3\x6c\x59\xe1\x5d\x5d\x8c\x6b\xf9\xbc\x76\x77\x7f\x99\x16\xdf\xef\x15\xf6\xba\x4e\xae\x9d\x5e\x68\xa6\x72\x56\x7f\x5b\x99\xff\xeb\x6f\xab\xfe\xb6\xea\x6f\xab\x3d\x58\xe1\x37\x77\x18\x36\x70\xf7\x37\xf5\x18\xae\xd2\x4e\x37\x86\xbc\x2b\xb4\xd1\x75\x40\xef\x7e\xed\x8a\x6d\x57\x7c\x43\xdf\x87\x8f\x30\x98\xe4\x6b\xa4\xb5\xed\xf4\x32\x37\xf9\x22\xbd\x7e\xfa\x82\x37\x7e\x8f\x40\xb8\x53\x04\xc2\xfd\x98\xeb\x8b\xa4\xc0\xbd\x8d\xc5\xf4\xed\xd3\xde\x7a\xa8\xc1\x3e\xb1\xab\x4f\xec\x82\xdf\x7b\xa8\xc1\xdd\x51\xeb\xcb\x4a\xd7\x3c\x26\xe3\x4a\x94\x80\xff\xe7\xb8\xea\xf9\x29\x3d\x09\xdd\x40\xa5\x07\x45\xa6\x1b\xb4\x4e\xe3\x5d\x16\x91\xba\xe2\x31\xe9\x1c\x49\x50\x7a\x79\xcf\x65\x70\x37\x4f\x23\x8b\x97\x06\xfe\xc2\x92\x78\xcb\x96\x7f\x89\x86\x9d\x06\x02\xee\xad\x3c\x2b\x17\xea\x4b\x8d\x2f\x28\x38\xd4\x3b\xf2\x54\x74\x63\xe3\x2e\xa6\x71\xdc\xc2\xcc\x9b\x9f\x7b\x96\xde\xfc\xf8\x65\x30\x83\xba\x73\x74\x30\xab\x84\x6f\xbf\x0f\xbb\x4a\x38\xe2\xd7\xb0\xac\x2c\xdd\xfb\x2f\x8e\xab\x2f\xa3\xe4\x9e\xb7\x77\x5c\xae\x2f\x95\xc3\xf7\x10\x3f\xcb\x6c\x1d\x3d\x86\x4e\x6f\x6a\xd9\x9f\x09\xf7\xa6\x96\x77\x6d\x6a\x31\x2e\xda\x71\x86\x05\x61\xaa\x41\xa4\xae\x5e\x27\xf0\x7a\x88\xb9\xe0\xa4\x0e\x68\x00\x69\x89\x16\xd9\x0b\xd9\x5f\x55\x5f\x96\xed\xc5\x0a\x06\x41\x26\xe4\xf1\x3f\x8a\xbf\xbd\xb0\x5e\xaa\x00\xb1\x24\x3a\xc9\x60\xfd\x4b\x7d\x47\xe7\x36\x50\x69\xfb\x5c\x49\xac\x4a\xa2\x20\x04\x51\xaf\x8c\x67\xba\x31\x6f\xbf\xaf\x14\xc9\xda\xa0\x5f\x37\xb6\xa9\xbe\xf1\xdd\x0e\x90\xdb\x19\x6a\xd2\xfd\x82\x9c\x32\x2d\x8d\xf2\x69\x71\x31\x48\xf4\x4c\x93\x04\x10\x45\x20\xe3\xb1\xed\x06\xf8\xdd\x45\x3c\xb4\xee\xfc\x9b\xc6\x3d\x34\x71\x87\x26\x96\xd0\xc5\x9e\xba\xab\x9c\x69\x47\x6c\x90\xce\x0a\xda\xd0\x0a\x03\xec\x97\xc1\x09\x3e\x11\xf5\x5a\x6c\x60\xd3\xb3\xbf\xf4\xdc\x0b\x32\x25\x82\xb0\x88\xec\xa1\xb7\x7d\x9d\x30\x90\x9f\xcd\x24\x6d\x0c\x88\x87\x12\x08\xa7\xaa\xb8\xd5\xd3\x4a\xa2\x6e\x9f\x49\xde\x67\x92\xf7\x99\xe4\xd5\xa3\xde\x67\x92\xf7\x99\xe4\x8d\x39\x10\x31\x49\x88\x22\xad\x52\xc5\x19\x3c\x7e\x2b\xa9\xc2\xf4\xfe\x65\x08\x16\x66\x2e\xbd\x6c\xf1\xbb\xd1\x2c\xdc\x86\xef\x85\x66\x61\xce\xda\x2a\xf3\x43\xe9\xc7\x86\x10\xeb\x57\x37\x49\x6c\xc2\x34\x4a\x76\x89\x33\x78\xfd\x5d\xb2\x8e\xea\xd0\x7b\x1b\x05\x0a\xb6\xee\xe5\x38\x49\xed\x08\x74\x9b\xb8\xf5\x18\xbe\xdf\x79\xef\x0b\x07\x6d\xa3\xfb\x7d\xe5\xa3\x1b\x27\xa5\xec\x8b\xc5\xe6\x0b\xe2\x91\xbd\xf5\xe6\x8d\x73\x25\x6a\xcc\xf0\xdd\x4e\xb7\x37\x56\xf5\xc6\xaa\xde\x58\xd5\x1b\xab\x7a\x63\x15\xea\x8d\x55\x6b\x1b\xab\xbe\x20\x99\xaa\x37\x5c\xf5\x62\xd5\xee\xa6\xbb\xaf\x5a\xe6\x3e\x59\xeb\x3a\xa3\xa4\x17\x39\x54\x2b\x23\xef\xed\xb4\x7f\x5d\x11\x72\x7f\xe3\x46\xf0\x7e\xf8\x95\x7c\x69\x96\xb4\x4d\x60\xb1\xdb\xd1\x2f\x36\xae\xb8\x2f\x1d\xda\xb8\x56\x7d\xd8\xf3\x92\xc5\xe9\xc3\x9e\xfb\xb0\xe7\xbd\x0b\x7b\xde\xb9\xb2\x92\x71\xb9\x0c\x90\xc8\x94\xce\x5a\x9a\xff\xec\xee\x6c\x48\x34\x02\x52\x30\x28\xc7\x31\xc9\x12\xbe\x00\x4b\xca\x92\xeb\xdc\x75\x71\x53\x93\xa8\xf7\xfd\x46\x77\x23\x7f\x2d\x9d\x63\x5f\x64\xd2\x62\xde\x7b\x21\x85\x1e\xff\xa3\x92\xce\xdf\x09\x2f\x93\x21\xf2\x99\x4a\xb8\x95\x56\x13\xf6\x88\x35\x3f\x09\x4a\x17\xda\x7b\x70\x92\xab\x20\x77\x4f\x6a\xc1\x2a\x23\x42\x2d\x82\x37\x49\x9a\xa9\xc5\x7f\x8e\x18\x55\xde\xc3\x46\x67\x8c\x0b\xc3\xd5\xf4\xc7\x73\xcc\xe2\x84\x08\x7d\xa9\xba\x76\x22\xcc\x18\x57\x20\x6e\xc0\x0c\x62\xf4\x44\xb1\x11\x4e\x06\x37\xe7\x9d\xfd\xcc\xef\xe8\x74\xbd\x76\xb1\xba\x15\x77\xdd\xa7\x84\x4f\xa0\x82\x65\x5e\xd6\xe9\x75\x03\xbd\x67\xb4\xb4\x73\x6f\xc5\x10\x14\x96\x8f\x55\xe0\x90\x72\x16\xfa\x78\x29\x94\xc8\x8a\x77\x4b\x18\xf3\xcb\x5f\xad\xc0\x8d\x94\x9f\x59\x00\x12\x78\x0c\x43\xae\x8e\xc3\xfd\x18\x76\xe8\x7e\x2b\x5a\x76\xbf\xb8\xd2\xdd\xf0\xa3\x20\x4a\x2c\xc6\x58\x29\xcd\x64\x76\x89\x71\x72\x8f\xe5\x63\x67\x8c\x93\xd2\xcb\x7b\xce\x72\x4a\x18\x27\xe5\x81\xbf\x38\xcb\xe9\x48\x9d\x2b\x38\xd3\xfb\xcb\x8f\xef\x7a\xd6\xd6\x98\xf8\xef\x25\x57\xbe\x1b\xef\x59\x65\xa6\x7d\x8f\x79\xf3\xcb\x98\xe9\xde\x8c\xb0\xc2\xcf\xbf\xc4\x93\x5b\xbe\x9d\xfa\x23\xba\x6c\x8d\xbe\xb8\x42\xb8\x15\xa1\x63\xc5\xdc\xde\x49\x41\xdc\xaa\xdc\xb4\xeb\x51\xbd\x8c\x99\x3b\xd8\x8d\x75\x62\x80\xce\xcb\x68\xe5\xfe\x0c\xb9\xa8\xa0\xa2\xf4\xec\x1c\x12\xad\xa9\x0c\x13\xe2\x23\x2e\x8c\xe4\x15\xdb\x33\x6b\xcc\x76\x06\xcc\xf7\x04\x0d\x50\x6c\x6b\xf3\x0b\x92\x09\x22\x09\x53\x46\xd5\x36\xf5\xae\x5c\x79\x7f\xca\xac\x85\xe8\x0c\x2b\x7c\x8a\x15\x4e\xf8\xec\x08\x0d\x7c\x61\x7f\x2a\x11\x4e\x24\x47\xd8\x11\x0e\x89\x5d\x13\x98\xc5\x8e\x3d\x60\x14\xf1\x34\xa3\x89\x47\x6a\xf7\x56\x7c\xca\x62\xfa\x44\xe3\x1c\x27\x1e\x19\x7b\xc4\x86\x4f\x84\xa9\x1c\x54\x38\x9c\x24\xc8\x76\xeb\x5e\x08\xf4\x73\x37\x4a\x49\x53\x9a\x60\x81\x14\xb7\xa3\xbd\xb6\x6d\xa1\xfb\x39\xf1\x63\x75\x28\xe0\x28\xc5\x8f\x44\x22\xaa\x50\xc6\xa5\xa4\x93\xa4\x38\xc6\x0f\xe7\x08\xc6\x7d\x7a\x71\x0e\xa6\xd1\x48\x21\x6e\xf8\xa0\xeb\xdc\xfa\x09\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\xdf\xda\xca\xf9\xd6\x18\xd1\xed\x16\xd3\x70\x64\x6f\xa7\x74\x76\xd6\x38\xbb\xaa\x9b\xdd\x74\xcd\x76\x45\xf3\x05\xbc\xb4\xdd\xb5\xc1\x0b\x2a\xcb\xea\xe0\xbb\x70\xd9\x96\x46\xfc\x1a\xf8\x68\xbf\x53\x45\xb0\xd7\x02\x5f\x64\xdd\xbe\x54\x15\x70\xcf\xf5\xbf\x1e\xd9\xad\x47\xb1\xef\x03\x30\x76\xb8\x38\x7d\x00\x46\x1f\x80\xf1\xc5\x06\x60\xb4\x6b\x13\x34\xde\x3a\x5d\x6f\xcd\x0a\x52\xde\x28\x20\x7e\x05\x51\x0a\xcb\xc7\xae\x35\xa5\xb4\xa8\x7c\x1e\xbf\x0b\xa9\xbe\x71\xc2\xaf\x21\xdd\xf7\x75\x8a\x76\x5a\xa7\x68\xef\xa6\xdd\x0b\x7e\xbd\xe0\xd7\xcb\x36\x1d\x27\xdc\xcb\x36\xfb\x2b\xdb\xbc\x95\xc2\xf2\x25\x41\xe8\x6a\xe1\xa9\x94\x19\xb3\x34\xc0\xd6\xc0\xd1\x80\x7b\x20\xcf\x12\x8e\xe3\x55\x41\x38\xbf\xa2\x42\xae\x59\x22\x9a\x99\x76\xf5\x07\x7b\x2e\x99\xd5\xe2\x6f\xcc\xc8\x7f\x0f\x31\xb5\xad\x53\x7f\xd3\xb0\x5a\xa0\x5f\x08\x26\x2b\x05\xa5\xbd\x94\x16\x52\xa5\xe9\x4e\x0a\x87\xfc\x6e\xcf\xa9\xda\x6f\xe9\x6b\xa8\x17\x5f\xb0\x83\xa0\x77\x02\xfc\x3e\x0b\x9f\xef\x8d\xd4\xda\xab\x76\x7d\x56\x65\x6f\xd4\xef\x15\xdf\x5e\xf1\xdd\xf9\x32\xee\x93\xe2\xfb\x86\x12\xb5\x49\x13\x79\x91\x32\x86\x9b\xc9\xd6\xbd\x68\xdd\x8b\xd6\xbd\x68\xfd\xc5\x8a\xd6\xfb\xb1\xc2\xbd\x5c\xdd\xcb\xd5\xbd\x5c\xdd\xcb\xd5\xbd\x5c\xbd\xf3\x65\xec\xe5\xea\x8a\x5c\x0d\x7f\xb9\x34\xe9\x75\x85\xec\xce\xc2\x75\x87\x9c\xe8\xf7\x22\x59\xf7\x52\x75\x2f\x55\xef\xb7\x54\xbd\x37\x13\xfa\xf2\x12\x21\xfb\x54\xc2\x3e\x95\xb0\x4f\x25\x7c\x8b\x54\x42\xc7\x4b\x96\x49\x28\x75\xc1\xe2\xa7\x1a\x07\xda\x5b\xd9\xa2\x18\xed\xa6\xe1\x1d\xbb\x5a\x6a\x07\x34\xbf\x49\xa5\xa9\xd2\x6f\xae\xa1\x3d\xaa\x3f\x75\xe0\xa4\x05\xcd\x28\xdc\xf8\x56\x23\x84\xfd\x6c\xdf\x7c\x5f\x60\xe0\xf5\x51\xf7\xf5\xa7\x50\xb0\x6b\x7d\xfd\xa9\x17\x9c\xb7\x3b\x5c\x2b\x66\xee\x68\xd4\xd8\x78\xdf\xe9\xb4\xdf\x1c\x5c\xae\xfd\xa4\xbf\x69\xb8\x5c\xe3\x4d\x52\x4b\xde\x39\xfe\x47\xe3\x45\xf1\x06\x65\xb7\xd6\xbe\x1d\x3e\x11\xf5\xa5\x5c\x0d\x7d\xd9\xad\xbe\x3e\xc4\x8e\xa6\xbb\x11\xeb\x7f\xb7\xb3\xed\x8b\x8c\xf5\x45\xc6\xfa\x22\x63\x7d\x91\xb1\xbe\xc8\x18\xfa\x9d\x17\x19\x5b\x5b\x7c\x34\xe3\xf8\x52\x24\xc8\xbe\xc8\x58\x2f\x44\xee\x6e\xba\xbf\x2f\x21\x72\x0f\x2d\x08\x7b\x51\x4d\xcd\x5b\x10\xde\x1c\xf7\xc3\x8d\xa4\x2b\xf6\x87\x5b\xd0\x1e\xff\xc3\xfe\x5f\x8f\xff\xd1\xe3\x7f\xb4\xcc\xba\x0f\x66\xed\xf1\x3f\x50\x1f\xae\xd9\x87\x6b\xee\x73\xb8\x66\x87\x6d\xec\xf1\x3f\x3a\x8a\x73\x2f\x84\x01\xe2\x64\xae\xb5\x70\x40\x7e\xae\x2b\x1a\x7b\x2b\xa5\xb9\xb1\xfe\x7e\x70\x40\x1a\xa7\xbd\x17\x2a\xc9\x2b\xe2\x80\x34\xd1\x75\x67\x05\xe4\x7d\xe0\x81\xb8\xd1\xf6\x89\x8b\x7d\x88\xf5\xfe\x87\x58\xef\x5d\xe2\xe2\xde\x48\xb2\xbd\xba\xd7\xe7\x2e\xf6\xb9\x8b\xbd\x32\xdc\x2b\xc3\x3b\x5f\xc6\x7d\x52\x86\xdf\x58\xc2\x7e\x41\x5c\x90\xed\x64\xed\x5e\xd4\x36\xef\xf5\xa2\x76\x2f\x6a\x7f\xa1\xa2\xf6\x7e\xac\x70\x2f\x67\xf7\x72\x76\x2f\x67\xf7\x72\x76\x2f\x67\xef\x7c\x19\x7b\x39\xfb\xd5\x70\x42\x9a\x84\xed\x8e\xf9\x36\xef\x49\xd2\xee\xa5\xec\x5e\xca\xde\x6f\x29\x7b\x6f\x26\xd4\x63\x86\xf4\x98\x21\x3d\x66\x48\x8f\x19\xb2\x91\x7c\xf3\x2f\xf6\x58\x7e\x08\x6e\x62\x7f\x65\x7f\xf8\x3e\xe1\x93\xfb\x45\x46\xf4\x7f\xcf\x68\x4a\x98\x04\x69\x94\xaa\x45\x28\xcf\xb4\xac\x7c\x7d\xcd\x3f\xdc\x9d\x5f\x7d\xba\x08\xb3\x69\x3e\x5c\x3e\x5c\xdc\x9f\xdf\x0c\x6e\xfd\xba\xf8\x59\x85\x6b\x61\xbf\x2b\x89\x64\x96\xe4\x6f\x89\xd6\x3d\xe1\xd4\xdc\x29\xac\x72\xb9\xd9\xc8\x6e\x87\x77\xc3\xdb\x9f\x20\x1b\x68\x7c\x76\x7e\x37\xf8\xfe\xa2\x44\x10\xa5\xe7\x83\xd3\xbf\x3e\x9c\xdf\xb6\x3f\x1f\xfe\xd7\xf9\xdd\xfd\x5d\xdb\xd3\xdb\xe1\xc5\x70\x70\xd7\xfe\xf5\xc7\xc1\xf9\xc5\xc3\xed\x70\xe9\x7a\x2c\x1d\xed\x72\x25\x44\xc2\x22\x41\x9c\x3f\x8a\x2c\xd7\x10\xc5\x1a\x22\x2f\x3e\x3a\x76\xd8\xd4\xd7\x09\x7a\xb0\x3a\x3d\xb5\x8d\x1b\x06\x1b\x34\x64\x94\x91\x98\x4a\x3c\x49\x48\x5c\x6b\xc9\xad\x61\x5b\x4b\xb8\x34\xa8\x67\xad\x3d\x7b\x91\x53\xf3\xbc\xc8\xf0\x02\x04\x39\x8a\x8a\xb0\xb8\xa1\x0f\xb3\x0f\xad\x3d\x30\xcd\xbb\xe8\x13\x29\xf5\x14\xe5\x42\x10\xa6\x92\x05\x22\x9f\xa9\x54\xb2\xd6\xa8\xdb\xbe\xb6\x66\xed\x9d\xea\x1b\x9c\x63\x89\x26\x84\xb0\xf2\xf8\x05\x49\x08\x96\x0d\x63\xb6\xbb\xdf\x6d\x59\xfc\x5e\x59\x6b\x8c\xb9\x8c\xa6\x98\x26\xb9\x20\x95\xd3\xc2\xd3\x0c\x0b\x2a\x39\x1b\x7e\xd6\x77\x99\x3e\xc8\xd7\xf0\x39\x17\x9b\x9d\x98\xe1\x5f\x43\x0a\xbe\x2a\xff\xf3\xd3\x7d\xf9\x5f\xa5\x33\x7f\x71\x5f\xfe\xd7\x72\x5a\x0f\x1a\xae\x52\xf6\x21\xfa\x74\x7f\x82\x3e\x41\x88\x93\x40\xf7\x73\x6c\x28\xf6\xe2\xfe\x04\x5d\x10\x29\xe1\x97\xe2\x63\x45\x55\x02\x73\xfb\x9e\x32\x2c\x16\xc8\x4d\xdf\x24\xba\xe2\x68\x8e\x88\x5f\x9a\xea\xe2\xb1\xbf\xe5\x0c\x54\xf7\x62\xf5\x2e\xf8\x8c\x46\x38\xd9\x6e\x11\x07\x57\x25\x3e\x70\x7d\xbb\x74\x29\xc2\xb7\xeb\x6b\x31\xb8\x3a\x83\x24\x52\x37\xd4\x86\x99\x5f\x11\xa9\x89\x24\xe2\x2c\xb6\x5e\x1a\x7d\xfb\x2f\x02\xa1\xfe\x6f\x1c\x12\x71\x73\x49\xd9\x4c\xb7\x88\x8e\xd1\xf5\xed\x88\x5d\x8b\xd8\x18\x42\x89\x96\x86\x0d\xcd\x51\x89\x18\x57\x88\xa6\x19\x17\x0a\x33\xa5\x15\x01\x10\x03\xec\x8a\x18\x0e\x70\xca\xd3\x34\x57\x58\x1f\xb4\xda\xa2\x32\x63\x0e\xb9\x23\xea\x3c\x06\xd7\x4a\xc3\x1a\x1a\x39\xa1\x98\x4b\x26\x74\xfb\x5a\x46\x29\xeb\xd0\x34\xae\xa9\xb2\xae\x09\x2c\x04\x2e\x4b\x13\x1f\xa8\x22\x69\xf5\xfd\x8e\x41\x9e\xff\x6c\x34\x10\x9c\x9a\xa4\x0a\x22\x06\x22\x9a\x53\x45\x22\xa5\x8f\xe0\x46\x34\xf1\x70\xf5\xe3\xd5\xf5\xcf\xa1\x04\xf1\x61\x70\x79\xf6\xe7\x7f\x2f\xfd\x70\x7b\x59\xfb\x61\xfc\xd3\x9f\x6b\xbf\xfc\xff\x96\xd2\x53\xb5\xa7\x9a\x9e\x1f\xcc\xe5\x10\x44\x6a\xb0\x09\xbb\xa9\x22\x9a\xe2\x19\x41\x32\xcf\x34\x05\xc8\xa3\xf2\xfe\x6a\x91\xf2\x82\xe3\x98\xb2\x99\xc9\x00\xbd\xa0\x8a\x08\x9c\x5c\xe2\xec\xa3\xb3\x5f\x6f\xb0\x3a\xff\xf7\xae\x94\xaf\xfb\xe1\x97\xc1\x65\x98\xf1\xfb\xe1\xe6\xf6\xfa\xfe\x7a\xe9\xac\x4b\x2d\xd4\x8f\x91\x7e\x7c\x02\xff\x8b\x8e\x91\x6e\xdd\x4b\xbe\x29\x51\x58\x6b\x04\xe8\x6b\x93\x34\xe7\x13\x69\x28\x4b\xe0\xd4\x64\x82\xa6\x14\xae\x14\x63\xc1\xfb\xc6\x08\xd7\x5e\x7b\xf0\xe7\xc6\x7c\x00\xda\xb2\xbb\x94\x59\x8c\x45\x8c\xfe\x26\xab\xe9\xe3\x60\x38\x36\x3f\x90\x18\x1d\xa2\xb9\x52\x99\x3c\x39\x3e\x7e\x7e\x7e\x3e\xd2\x6f\x1f\x71\x31\x3b\xd6\x7f\x1c\x12\x76\x34\x57\x69\x62\xd2\xe5\xf5\x2a\x9c\xa0\x1b\xc1\xf5\x15\x02\x0a\x3a\x11\x14\x27\xf4\x37\x12\xa3\x89\xe1\x7f\x7c\x8a\x7e\x8d\xb8\x20\x47\xc5\xc6\x58\xa3\x92\xbd\x47\xac\xe1\xe9\x58\xbf\xd4\xc0\x4c\xaa\xfb\x89\x62\x12\xd1\xd8\x8a\x19\x84\x45\x1c\x2c\x8f\xc6\x57\xa1\xdb\x73\x99\x86\x5a\xa3\xc9\x72\x55\x2c\x67\xa0\xac\xe0\x98\x04\xd9\xee\x8a\x97\x09\x4e\x2b\x3e\xe7\x46\x6d\xcd\xb5\x8a\xae\xef\x56\x0c\xb7\xaa\x7b\x35\xd3\x13\x8e\x78\x82\x26\xf9\x74\x4a\x44\xe8\x90\x3e\xd0\xda\x0c\x95\x48\x90\x88\xa7\x29\x48\x0c\xfa\xab\x5c\x1a\xaa\x86\x15\xb3\xa3\x3d\x1a\x31\xd8\x7f\xad\xe6\x00\x05\xc4\x1c\x58\x1d\x23\x24\x46\x98\x2d\x4c\x37\x93\x7c\x1a\xb6\x6f\x60\x28\x70\x8c\xa8\x1a\xb1\x41\x92\x20\x41\x52\xae\x48\x90\x43\x09\xce\xb3\xf2\x82\x03\x8b\x14\x24\x4b\x70\x44\x62\x43\x0f\x09\x8f\x70\x82\xa6\x34\x21\x72\x21\x15\x49\xc3\x06\xbe\x06\x5b\x8d\x5e\x33\x2a\x51\xcc\x9f\x59\xc2\xb1\x9d\x47\xf5\xb3\x6f\xca\xa7\x71\xe8\x20\x02\x86\x42\x70\x01\xff\xf3\x23\x65\xf1\xce\x38\xd4\xc3\xdd\xf0\x36\xfc\xf7\xdd\x2f\x77\xf7\xc3\xcb\xf5\xb8\x8f\xa7\x2c\x18\x1e\xe8\xf0\x27\xe8\xce\x2c\x02\x17\x5a\x22\x12\x2d\x93\xba\xb4\xa4\x54\xfc\xc0\xe3\x0d\xb9\xef\xe5\xe0\xea\x61\x50\xe2\x28\x77\xa7\x3f\x0c\xcf\x1e\x2a\xfa\x80\x9d\x5f\x49\x86\x37\xea\x5f\xf8\xdb\xe9\x0f\xe7\x17\x67\xe3\x06\x85\xf1\xc3\xed\xf0\xf4\xfa\xa7\xe1\x6d\xa1\xdb\x35\x2e\x51\x65\x30\x55\x66\x75\x6f\x98\xd2\x9c\xc7\x68\xb2\x68\x06\x84\xd0\x92\x73\x02\xbe\xd8\x02\x12\xc5\xb4\x7a\x02\xbc\xc9\x61\x73\x14\x5f\xa4\x3c\x26\x07\xf6\x1d\x40\xd2\x30\xc6\x15\x23\x31\x37\x37\xac\x7b\xc7\x2c\x30\x54\x18\x90\x0b\xbf\x70\x27\x68\x80\xa4\x7e\x31\xd7\x87\x5a\xd0\xd9\x0c\x0c\x87\x95\xa1\x9a\xd6\xec\xa7\xb0\xbc\xf0\x9d\xd9\xff\x4c\x70\x38\xe7\xba\x5b\x6b\x71\xf6\x56\x09\xf3\x21\xa0\xae\x94\x5b\x14\x18\x0c\x0e\x0d\x43\x73\x9b\xa5\x17\xa1\x75\xbd\xcc\x79\x34\xf6\x22\x7d\xb8\x80\x6d\x49\x63\xef\xcc\x04\x79\xa2\x3c\x0f\x3e\xb5\xc0\x1e\xa5\x1d\x6f\x6c\xbe\x58\x00\x58\x36\x63\x14\xa9\x34\xe3\xc9\xa3\xb1\x05\xcd\xc2\x9e\xa0\x85\xa9\xe0\x69\x43\x1b\xe5\x63\x72\x7e\x7d\xa7\x04\x56\x64\xb6\x38\xb3\x2c\x63\xf3\xe3\x71\x76\xfd\xf3\xd5\xc5\xf5\xe0\x6c\x3c\x1c\x7c\x2a\x9f\x78\xff\xe4\xee\xfe\x76\x38\xb8\x2c\x3f\x1a\x5f\x5d\xdf\x8f\xdd\x1b\x4b\x49\xbe\xa5\x83\xfa\x3d\x5d\x7e\xf1\x04\x69\x96\x0b\xac\xd1\x01\xde\x05\xfc\x71\x42\xa6\x5c\x18\x3e\x9f\xba\xd0\x05\x2b\xc2\xb8\xb5\xb5\xba\x58\x65\x16\x27\x60\x19\x6b\x6a\xd2\x58\xbd\x95\x20\x38\x85\x7b\x02\x33\x34\x64\xf1\xe1\xf5\xf4\xf0\xce\xfc\x98\x62\xf1\x48\x84\xff\xf4\x59\x50\xa5\x08\x2b\xa9\x74\xd8\x0d\xd9\x2b\x89\x45\x07\x47\xe8\x56\xf3\x7d\xfd\xbe\xbf\xd4\x34\xb1\xc7\x44\x61\x9a\x48\x3b\xd8\xd2\xba\x9e\xa0\x0b\x2c\x66\x85\x1d\xee\x6b\x3e\x9d\x9a\xc6\xbe\x31\xc3\xd0\x77\x58\x69\x16\x0d\xbc\x57\x93\x86\xbb\x17\xa1\x3f\xfb\xb2\x97\x87\xeb\x54\xf5\x90\x6d\x47\x53\x0f\x37\xb0\xe2\x46\x63\x2f\xe9\x86\xf6\x49\x03\xad\xc1\xc4\xcd\xe3\xe5\x97\x4c\x73\xdb\x75\x72\x2a\xbf\xd8\x40\x4e\x26\x97\x4a\xef\xfc\x54\x6b\x9b\x0d\xb4\x44\x3e\x53\x6b\x30\x08\xc7\x5d\x21\xa1\xa2\x19\x30\xaf\xe2\x2c\x23\x58\xc8\xa6\xdd\x2e\x8b\x81\x2d\x7b\x6f\x7a\x0a\xfb\xb0\x9b\xec\xfa\x39\x40\x9c\x81\xc1\xc1\x0b\x11\x15\x8a\xec\x40\x03\xa6\xad\x1a\x05\xdc\x00\xda\xd2\xb5\x45\x36\xba\xa4\x52\x2b\x8d\xe6\xc7\xef\x2d\xe4\xd2\x66\x04\xf1\x71\x70\x7e\x51\x11\x2e\xc6\x67\xc3\x8f\x83\x87\x8b\xe5\x66\xc2\xd2\x77\xd5\x2d\x46\x87\x48\x3f\x2f\xfb\xcd\xe9\xd4\xdc\x19\x0e\x38\xca\xa8\xb4\x84\x81\xd1\xca\x42\xd5\x18\x7b\x75\x4c\xb2\x84\x2f\x52\xc2\xc0\xc4\x53\xba\x09\xf5\x7a\x4e\x31\xb5\x57\x4b\x30\x58\xb0\xe2\x58\xb3\x1b\x5c\x63\x87\x0e\xad\x8a\xc4\xfe\xe6\x2d\x83\x55\x55\x58\xf7\x8d\xf1\x9e\xd9\xff\xdc\x29\xac\x36\x3c\x63\x83\xd3\xfb\xf3\x9f\x86\x65\xfd\xf0\xf4\x87\xf3\x9f\x9a\xa4\x9a\xf1\xa7\xe1\xd5\xf0\x76\x70\xbf\x42\x38\xa9\x34\xd9\x24\x9c\x48\x3d\xe0\xaa\xf7\x94\x4a\x1f\x11\x14\x19\xc8\x2b\x44\x95\x44\x4f\x54\xd2\x09\x05\x80\x30\xeb\x89\x7c\x38\x07\xce\xfa\x84\x13\x1a\x53\xb5\x70\xe2\x8b\xe9\xb7\xbc\x8f\x9a\x93\xda\xf6\x8d\xd9\x21\xf4\x4f\x82\x95\xcf\x6c\x8e\x9b\xf4\x09\x02\xdd\xf6\x09\x94\xb6\xe0\x33\xa6\x05\x69\x36\x23\xc2\x0c\x07\xbc\x2f\xe1\x58\x82\xe7\x7a\x54\xa1\xb0\x52\xac\x9a\x17\x5a\x67\x84\x11\x01\x20\x70\xbe\x13\x23\x48\x09\xc2\xbe\xd2\x32\x57\x96\xd0\x88\xaa\x64\x81\x22\xb0\x61\x81\x39\x33\xc5\x0c\xcf\xac\x70\x00\x6a\x4e\x85\x24\xfe\x6a\x50\xd4\xae\xa7\xd6\xb4\x7f\x4f\xc9\x86\xc7\xec\xe1\xea\x6c\xf8\xf1\xfc\xaa\x4c\x02\x3f\x9c\x7f\x2a\x89\xb0\x97\xc3\xb3\xf3\x87\xd2\x6d\xae\x25\xd9\xe5\x72\x7d\xb5\xd9\x86\xa3\xe8\x5f\x3a\x41\x67\xe6\xd3\x13\xbd\xb8\x0d\x10\x71\x5e\xf9\xad\xac\xc3\xad\x0b\xc9\x73\x7f\x0c\x99\x12\x8d\x7e\x89\xae\x26\x24\xeb\x83\x2c\xd9\x90\x9a\x43\x15\x6a\x7d\x5f\x55\x9d\xca\xd5\x29\xbb\x17\x21\xe8\xf2\xa8\xb0\x2c\x85\x31\x0c\x60\x34\x68\x33\x62\x35\xb8\xb5\x0a\x86\xfd\x13\xb8\xa8\xd3\x5c\x2a\xe3\x4a\x04\xe2\x44\x8f\x7f\x91\x7a\x41\xc1\xd5\x78\x84\xee\x08\x19\x31\x67\x3d\x98\x51\x35\xcf\x27\x47\x11\x4f\x8f\x0b\x7c\xc2\x63\x9c\xd1\x14\x6b\x49\x9a\x88\xc5\xf1\x24\xe1\x93\xe3\x14\x4b\x45\xc4\x71\xf6\x38\x83\x08\x18\xe7\x4e\x3d\xf6\xcd\xce\xf8\xbf\x5e\xfc\xe9\xdb\xc3\x8b\xbf\x7c\xfb\xa1\x6e\x21\x6b\xdb\xff\x21\x8b\x70\x26\xf3\xc4\x46\xcc\x89\x70\x6d\xdc\x91\xcf\xc9\xaa\xfd\xbe\x2a\x6f\xd7\x76\xfa\xeb\xe9\xcd\x43\xc9\x62\x5d\xfe\xe7\xe5\xf0\xf2\xfa\xf6\x97\x12\xa7\xbc\xbf\xbe\x1d\x7c\x2a\x31\xd4\xe1\xcd\x0f\xc3\xcb\xe1\xed\xe0\x62\xec\x1e\x6e\x63\x7b\xfb\x91\xf1\x67\x56\x5e\x1a\xe9\x38\x60\xad\xa7\x13\xf4\x91\x0b\xf4\xa3\xdf\xc9\xc3\x09\x96\x70\xc5\xb8\x3b\x4b\x1e\xa0\x8c\xc7\xc0\x78\x11\xc9\xe6\x24\x25\x02\x27\xd6\x66\x20\x15\x17\x78\x66\x6e\x7a\x19\x09\xac\xa2\x39\x92\x19\x8e\xc8\x01\x8a\x80\x1a\x66\x07\xb0\x29\xa0\x6a\xf1\x59\xd5\xce\x77\x9b\x33\x45\x53\xe2\x54\x70\xfb\xcf\x7b\xb3\x19\x1b\x6c\xce\xf5\xfd\x0f\x65\x61\xef\xe3\xc5\x2f\xf7\xc3\xf1\xdd\xd9\x8f\x4b\xd7\xd3\x7c\x56\x1a\xd9\x1d\x04\x20\x9d\xf2\x24\x4f\x59\xf8\xf7\xe6\x63\x3b\xbf\xba\x1f\x7e\xaa\x8e\xee\x7a\x70\x5f\xa6\x8c\xdb\x72\x80\xdb\x87\xef\xaf\xaf\x2f\x86\x25\x97\xf0\x87\xb3\xc1\xfd\xf0\xfe\xfc\xb2\x44\x3f\x67\x0f\xb7\x06\x8d\x70\xd9\x34\xdd\x08\x1a\x26\xaa\xa7\x15\x4e\x73\xd7\xac\xb0\x13\x27\x1a\xd8\x80\x72\x73\x96\x0f\x03\xb8\x1d\x13\x0e\x06\x56\x9d\x43\x6f\x52\x8d\xcc\x48\x1b\xd9\xa1\x2a\x6f\x13\x6a\x67\xc7\x4b\x37\x7a\x19\x57\xbe\xf7\x43\x30\x50\xa0\x46\xd9\xc6\x49\xc2\x9f\x4d\x28\x6f\x4a\xf5\xad\x6c\x81\xd1\xf4\x2b\xb2\xf0\x10\x1e\x35\x70\xbc\xf2\xb6\x90\x48\x10\x75\xc9\x73\xa6\x36\x27\xb9\xc1\x55\x89\xef\x0c\xaf\x7e\x1a\xff\x34\x28\x53\xe0\xf9\xc5\x72\x56\x13\x36\xd1\x70\x15\x0f\xae\x7e\xf1\x97\x30\x04\x7c\x1f\x78\x0d\xd5\xc8\xae\x51\x42\xb5\xd8\x1b\x61\xad\xbd\x26\x20\xd1\x20\x42\xc1\xe4\x90\xea\xc9\x41\x80\x69\x66\xfc\x49\x86\x3f\x99\x41\x9e\xb8\x3f\x2a\xed\x49\x58\x17\xb0\xa6\xba\x78\x7a\x68\xc7\x6a\xd5\x0c\x11\xf6\x44\x05\x07\x3c\x5b\xf4\x84\x05\xd5\xd2\xb8\x69\x59\xcf\xf5\x04\xfe\x77\xbd\x36\xc1\x30\x5a\x61\x5c\x77\x5c\xa8\x33\x1f\xc8\xbb\x99\x35\xa4\x29\xa0\xb5\x1e\xca\xda\x6c\xe8\xa8\x7f\xdb\xb0\x39\x5b\x06\xfc\x96\x27\xfc\xf7\xe4\x8c\xe2\x44\x33\x80\xdd\xc9\x8b\x83\xab\xbb\xf3\xb2\xfc\x58\x56\x33\x02\xbe\xbc\xb1\xbc\x08\x86\x4a\x33\x72\xa7\x4c\xdc\xfd\xf5\xc2\x68\x17\x00\x7a\x6c\xce\x6d\xa0\x58\x80\x00\xe4\x50\x50\x32\x2c\x64\xe5\x0b\x89\x00\x08\xad\x08\xb8\xd2\x77\x16\x84\x33\x3d\x71\x1a\x8f\x18\xf9\x9c\x11\x26\x21\x38\xc0\xdc\x67\x85\xaf\x5d\x1e\xa1\xf3\x29\xb0\x04\xfd\x3a\x43\x39\xb3\x0e\x30\x7d\xe1\x9a\x41\x1e\x68\x51\xd6\x0e\xc1\x6b\x88\x60\x78\x61\xc4\x05\x4b\x15\x83\x1f\xb1\x9f\xbd\x13\x0d\x1e\x4d\xb9\x66\x40\x7a\x17\x6d\x7b\x27\x08\x33\x49\x0f\x90\x56\x58\xaa\x7b\x0a\xa9\x03\x5a\xa1\xb4\x21\x5c\x9a\xd3\xd8\x3f\x5f\xff\x1a\xa8\xc5\x09\x87\x97\x41\xf3\x5d\x50\xb9\x0a\x5a\x44\xe3\xc4\x78\x4c\xc6\xdd\xef\x84\x88\x0b\x62\xfd\x2c\x6b\x5f\x03\xab\x18\xfb\x3d\x96\x8f\x35\xdf\xc3\x39\x93\x0a\xb3\x88\x9c\x26\x58\x6e\x18\x84\xe4\x6c\x1c\x07\x65\x89\xe3\xf6\xf6\xe1\xe6\xfe\xfc\xfb\x15\x5c\xbe\xfa\x71\x3d\x0c\x28\x4a\x72\xe7\x9e\x9b\x08\x8e\x63\xa4\xd9\xe7\x8c\x1b\x57\xa0\x15\xfc\x0b\xe8\x6f\x93\xd7\xe3\x03\x2a\x4b\xb0\xe3\x45\x3a\x82\xb5\x73\x84\xae\x04\x6a\x17\x02\x45\x7a\x25\x50\x60\xf2\x70\x5b\x0d\x9e\x45\x53\x90\xc4\x5a\xb7\xb2\x04\xab\x29\x17\xa9\xe1\xf2\xa5\x49\x9b\xc6\x97\x37\x4a\x99\x22\x42\xe4\x99\xa2\x0e\xcb\xbd\x2a\xa5\x42\x85\x77\x3e\xbb\x24\x52\xe2\x19\xd9\xc6\x01\xdd\xa4\x3c\xdc\xfd\x14\xfe\x13\x1c\xcc\x5d\x64\xff\xd2\x08\x5d\xe4\xbb\xa3\xa7\x6b\xf6\xd1\x04\xf2\xdc\xf0\x84\x46\x1b\x06\xdc\x7d\x1c\x9c\x5f\x8c\xcf\x2f\xb5\x12\x3f\xb8\x1f\x5e\x94\x44\x09\x78\x36\xf8\x78\x3f\xbc\xb5\x20\xd6\x83\xef\x2f\x86\xe3\xab\xeb\xb3\xe1\xdd\xf8\xf4\xfa\xf2\xe6\x62\xb8\x22\x32\xa7\xb5\xf1\xba\x75\xb5\xfa\xea\x49\xed\x17\xd8\x61\xcd\xcb\x42\x7b\x19\x64\x8d\x61\x9a\x80\x13\x9c\x1b\x67\x38\x46\x8c\xc7\x04\x7e\x96\xce\x3a\xe3\x91\xa3\xd1\xb9\xfa\x2a\x49\x10\xce\x15\x4f\x31\x78\x6d\x92\xc5\x88\xe1\x89\x66\xad\x38\x49\x82\xf0\x2e\x91\x33\xa6\x59\xac\x6e\xcc\x40\xb4\x47\x09\xd1\xec\x3c\x0b\x92\xfd\xac\xdf\x60\x4a\x19\x44\xda\xa6\x58\x3c\x1a\x37\x53\xd1\x65\x71\x28\x24\xc2\x72\xc4\xf4\xb8\x88\x35\x0c\x75\x59\xe1\x93\x4e\x6f\xb5\xae\x4e\x8a\x1f\x89\x5e\x95\x34\x8f\xe6\x28\x13\x7c\x26\x88\x94\xd6\xb6\x1c\x61\x66\x02\x10\xec\xeb\xfa\x1a\x1a\x31\xc6\xf5\x52\x38\x13\x76\x4c\x32\xc2\x62\xc2\x22\x6a\xd2\xfa\xc0\x77\xef\x4d\x9b\x33\x81\xb3\x39\x92\x1c\x9c\xde\xb0\xec\x60\xbf\x32\x1f\xb9\x9b\xcc\xcc\xd8\x3c\x0e\x2d\xd0\x22\xd7\x7c\xe2\x1a\xe4\x44\xb3\xca\xf0\xb1\xbb\x0c\x9d\xdb\xc5\xd8\x01\xd3\x2c\x21\xca\x80\xf5\xc3\x92\xc3\x66\xe8\xb5\x2e\xed\x87\xde\xa6\xa6\x4d\xd0\x17\xb6\x1b\x33\x96\x76\x44\x47\x0d\x96\x6d\x7b\xa4\xd0\x0f\x98\xc5\x89\x6e\xc5\xf9\x30\xca\x67\x11\x52\x51\x06\x9a\x6a\xdc\x69\xdc\xe6\x16\x8d\x70\x2e\xb7\xb9\x46\x2b\xb9\x98\xc6\x2a\x78\x58\x04\x85\x00\x79\xdb\x44\x4c\x58\xdd\x4c\xb3\x48\x9c\x70\xbb\x4a\xe6\xf5\xdc\xd4\x7f\x42\x30\x9a\x96\x6b\x36\x13\x94\x45\x34\xc3\xc9\x46\xba\x5f\x25\x18\xdf\xc6\xb8\x7f\x4d\xa7\x9a\x7c\xbe\xa9\xb9\x6d\x15\x11\x29\x24\x28\xdb\x61\xfa\x2d\x5c\xc3\x92\x64\xb3\x1a\x88\x2c\xa2\x49\xb0\xe0\xb9\xf1\xc7\xc1\xba\x90\xb8\xe1\xa8\x1e\x35\x6d\xb7\x3e\x19\xb8\x1c\x00\xbd\xc1\x66\x9b\xc8\x9f\xb6\xf5\xab\xb4\x62\x7b\x37\xc1\x78\x38\xb9\x69\x6e\xb3\x69\x07\x82\x87\xff\x5c\x46\x3b\x97\x38\xd3\x34\x63\x61\xfb\x71\x31\x47\xab\x24\xd9\xaa\x60\x2e\x7e\x26\xf0\x9d\xfb\xbc\x90\xee\xbb\x51\x2c\xa1\x0d\x80\xaa\x77\x52\x8a\x21\x08\x72\xcc\x2d\x8d\x4f\x73\x2d\xcb\x22\x0c\x51\x08\xe8\x6b\x72\x34\x3b\x42\xae\x08\xc3\x01\x1a\xdc\xdc\x0c\xaf\xce\x0e\x10\x51\xd1\x37\x2e\x66\xd1\x06\x2c\x8d\x98\xe2\x56\x5a\x59\xb8\x02\x1a\x29\x11\x33\x52\x9a\xb3\x8b\x6e\x82\x50\xe5\x19\x95\xca\x86\xcf\x6a\xbe\x12\x94\x3a\xa1\x69\x55\xcc\x36\x14\x92\xab\xf9\x36\xa4\x81\xa5\xcc\x53\xad\xcb\x8e\x29\x4e\xc7\x82\x27\xdb\x30\x85\x33\x98\x0a\xa8\xcb\x3e\x3d\x9f\xe2\x14\xe9\x66\x6d\x28\x88\x77\x39\x7a\x91\x4e\x0b\x46\x9a\x2f\xeb\x7b\x33\xb8\xb7\x9c\xf7\xc1\xc6\xa3\x51\x17\x02\x01\xe9\xfb\x2d\xac\xa2\x30\x1b\x8f\xad\xa5\x7e\x8c\xa3\x48\xab\xdc\x3b\x9e\x54\x50\x3f\xc7\xb9\x04\x6c\x47\x2f\x36\xcd\x55\x74\xee\x86\x99\x69\x0e\x06\xc1\xc0\xfa\xca\x95\x3c\xa2\x45\xfb\x0d\xfd\x4e\x16\xb5\x5e\x5d\x85\x9b\x07\xe9\x4d\x2a\xe6\x12\x96\x04\x76\x52\x9a\x0a\x39\x6a\x4e\x16\x68\x8e\x9f\x48\xa9\x4b\x97\x10\xa3\x1b\x5e\xf0\x5c\x34\x31\xba\x11\x3b\x23\x99\x20\x5a\xd2\xaf\x3a\x50\x3c\x4d\xdf\x96\x29\xb1\xa7\xeb\x9e\xae\xdf\x3d\x5d\x9f\x9a\x42\x49\x03\x5f\x18\x6b\x2b\x01\xce\x34\x36\xce\x38\x4f\xc6\x1d\x6c\x22\xdd\x57\xbc\xe4\x09\xab\x94\x8d\x02\x48\x00\x9e\x83\x7c\x54\xba\x36\xb9\xbe\xeb\x82\x14\x5b\x3b\xbc\x25\xcb\xe0\x5c\x66\x41\xbd\x9c\x6d\xce\x7b\x53\x2b\xcb\x5a\x42\x2f\x2e\xe6\x9c\x1a\xf9\xc6\xbb\xcb\xc2\xfa\xa7\xa5\xc3\xe4\x44\x11\xca\x6a\xd5\xd8\x0c\x3d\xeb\x05\x36\x72\xc7\xdf\x73\xae\xb0\xfc\xe6\x68\xc4\xb4\x10\xf5\x48\x16\xc6\xdc\xaa\xc5\x94\x3f\x68\x59\xfc\x50\x12\x26\x21\xdc\xfb\x0f\xc6\x3d\xa7\x49\xdc\x99\xab\x8d\x6a\x6a\x8a\xc0\x41\xd0\xb5\xef\x05\x42\x74\x6d\xa3\x56\x4a\x2a\x02\xa0\x41\xce\x37\x73\xb1\xcf\xcc\xf0\x67\x44\x41\x8a\xb5\xa2\x0a\x74\xa6\xd8\x54\x99\xab\x0d\x7d\xa5\xe9\xca\x50\x85\xe0\xe0\x27\x89\xf3\xed\x18\xbf\xac\xb7\xb1\x92\x33\x7a\x6d\xe1\xce\xc6\xbc\x1f\x3b\xbb\x51\x24\x78\xad\x74\x1b\x96\xc8\xec\xf4\xc4\xb0\x03\xe7\xbf\x26\xec\xe8\x99\x3e\xd2\x8c\xc4\x14\x43\x04\xbc\xfe\xd7\xb1\x9e\xd7\xbf\x9e\xde\x5e\x5f\x8d\x8b\x4c\x9e\xff\x1c\xb1\x41\x22\xb9\xcf\x52\x40\x8c\x33\x1f\x6e\x9f\x09\xe2\x44\x42\x3b\x17\xb0\xba\x16\x66\xc4\x11\x6b\x1b\x41\xcc\x23\x79\x84\x9f\xe5\x11\x4e\xf1\x6f\x9c\x81\x2b\x7d\x00\x7f\x9e\x26\x3c\x8f\x7f\xc6\x2a\x9a\x1f\xc3\xb9\x56\xc7\xe4\x89\x30\x65\xdc\x54\x7a\xb9\x62\x48\xde\x95\x10\xad\xff\xaf\x7a\xcc\x45\x52\x91\xd4\x9a\x6c\x44\x32\x85\xfe\x1f\x41\x26\x9c\xab\xe6\x4b\x8a\x4f\xa7\x92\xac\x75\x21\x15\x4a\xda\xdd\x35\xfa\xcb\x9f\xbf\xfd\xa3\x26\xa1\x4d\xd6\xf8\xfc\xee\x7a\xac\xbf\xff\xd7\x33\xfb\xbd\x5c\x83\xdd\x5d\x67\x05\x6b\x73\xc4\x63\x02\xe7\x73\x06\xb7\x9f\x00\xe7\x05\xb0\x37\x20\x87\x62\x1f\x9b\xb8\xdb\x59\xa9\xf5\xed\x54\xb6\x8d\x16\x13\x54\xec\x60\x8e\xe8\x10\x31\x8e\x52\x13\x6b\x8a\x19\xfa\xf7\x1f\xbf\x6f\xde\xc0\x5c\xd0\x8d\x3a\xa4\x16\xae\x21\xe8\x52\xd2\xdf\x88\x44\x9a\x6a\x34\x15\xf3\x54\x77\x2d\x88\x9c\xf3\x24\x46\xcf\x04\xd4\x24\x1b\x07\xea\xb5\x72\x41\x46\x2c\x6c\x02\x42\x0e\x11\x4e\x14\x9f\x11\xb8\xab\x9d\xa2\xa6\x88\xd0\xa2\x8a\xc9\xd2\x50\x5c\x90\x03\x03\xf5\x75\xf7\x27\x17\x5b\x0d\xd3\x84\x47\x2e\xa9\xc5\x9a\xe4\xe2\x49\xf3\xcc\xa7\x55\xd3\x2b\x6a\xb7\xe1\x57\x37\xd9\x9a\x6d\x9b\x97\xc6\x26\xa1\x58\x1b\x56\x75\x67\x9a\x07\x43\x23\xce\xc6\x09\x65\x8f\x1b\x6d\xc6\xb5\x13\xe5\x74\x0b\x76\xcd\x74\x8b\xde\xce\x6d\x2c\x20\x6b\x9c\x8f\x8f\x79\x92\x98\xd4\x96\x70\x7b\x40\xee\x32\xeb\x06\xc2\x40\x66\x72\x40\x49\x6c\xfd\x5e\x56\x13\x16\x84\x41\xc0\xdb\x88\x4d\x16\xd6\x67\x2b\x0f\x90\xcc\xa3\xb9\xcb\xcc\x8b\x38\x93\x5a\x8c\xe6\x02\x45\x3c\x4d\x4d\x71\x53\x46\x90\xe2\x3c\x91\x36\xda\x9d\x1d\x2a\x1c\xa9\x11\x2b\xfa\x5b\x71\xf2\x4c\x05\xa4\xed\x52\xf7\xba\xbb\x74\x8a\x4a\x4b\x4b\x05\x6e\x1a\x87\x98\x0d\x60\x04\x33\x9e\xa8\x00\xfd\x81\xd7\xcf\x92\xd9\xb0\x16\xcd\x40\xce\xb9\x50\xe3\xb8\x91\xe7\xac\x24\x9a\x2a\x23\x64\xe4\x30\x81\xa0\x61\xfe\xa4\x85\x7f\xf2\xec\x8d\xaf\xcb\x86\xa0\xa9\x7a\xd9\x08\xba\x1d\xa3\xa5\x23\x5b\x97\x04\x5b\xd6\xca\x20\x78\x44\xe5\x98\xf0\x55\x63\xbc\x83\xaf\x4e\xf5\x47\x4b\x17\xaf\x7a\xee\x9c\x10\xc4\xe3\x02\x6c\xce\xdc\xeb\x36\x23\x64\xd9\x9a\x5a\xe8\x84\x97\xcb\x1c\x5d\x36\x95\x87\xb2\x25\x57\x8f\x05\x4c\xf6\x92\x80\xac\x89\xc5\x84\x2a\x81\x45\x09\x29\xc4\xeb\x83\x92\x60\x01\xf1\x59\x23\x66\x70\xe3\x8c\xa6\x10\xa3\x98\x4a\x48\x10\x81\xbb\x34\x70\x86\xa1\x6e\x4a\x60\xe5\x68\x17\x79\x8e\x26\xfe\x1c\x02\xcb\x0a\xd2\x70\xcc\x4e\x77\xe4\xf1\xb1\xb4\x7e\xc6\xa3\xbc\x10\xe4\x22\x90\x70\x2d\xa6\x0e\xa2\x4c\xd2\xd9\x5c\x21\xca\xac\xdd\x11\x27\x33\x2e\xa8\x9a\xa7\xf2\x00\x4d\x72\xa9\xb5\x50\x13\xac\x66\xe2\x51\x88\x8a\x3a\x71\xa1\x6d\x93\x88\xe3\x4a\x83\x75\x15\x65\x03\xd2\xe8\x76\x28\x87\x95\xbb\x62\x05\xe1\x0c\x3c\xce\x60\xb5\x0d\x0a\x75\x1b\x0d\x3c\x25\x32\x71\x80\xdc\x21\x3b\x41\x15\x90\xb6\x73\x00\xa8\x90\x3b\xf3\x52\xbc\x46\x21\x2e\x64\x92\x41\x05\x71\xb1\xdb\x20\x79\x95\x91\x29\x0d\x7a\x93\x77\x3a\xa5\x99\x6a\x0c\xdc\xaa\xbb\x8a\x6e\x03\xcc\x9f\x6e\x8b\x0d\xc9\x58\x40\xcd\x80\xd4\x36\x62\x77\x84\xb4\x03\xb9\xd5\xf6\xde\x94\xc6\x85\x29\xd8\x44\x8f\xe5\x24\xbf\x8d\x13\xfb\x6c\x78\x77\x7a\x7b\x7e\x63\x20\x27\xae\x6f\x2f\x07\xf7\xe3\x06\xbf\x76\xc3\x5b\x97\x83\xdb\x1f\xcf\x56\xbf\xf6\xc3\x7d\x39\x2b\xbb\xe1\x95\xdb\xbb\xe5\xc9\x1c\x1d\x86\xd8\x90\x14\xd6\xd8\xcf\x09\xca\x16\x6a\xce\x99\x0f\x51\x88\x4b\xbc\xe9\x10\x99\x8c\x60\x05\x21\x44\x42\xaa\x06\xc7\xe1\x3d\xc4\xe5\xac\x96\x30\xcb\x9b\x65\x60\xd8\x76\x2a\x1a\xad\x71\x22\x3f\x25\x7c\x02\x7e\xeb\xbc\x54\xe2\x76\x49\x04\xfa\x96\xf1\x3e\x67\x54\x66\x09\x5e\xd4\x7a\x58\x75\xe5\x5c\xe1\x94\x40\xc4\x71\x81\x1f\xe7\x92\x45\xf4\xce\x40\x02\x93\xbf\xd7\xe9\x14\x32\x99\x14\xc5\x8a\xa0\x09\x51\xcf\x90\x37\xe7\x7e\xf5\xb6\x54\x17\x30\x22\x8f\x46\x0c\xcc\x39\x23\xbd\xc8\x71\x0e\xd1\x7e\xa3\x0f\x07\x68\xf4\x21\x26\x4f\x24\xe1\x99\xde\x79\xfd\x43\xcb\x25\x33\x4c\x31\x4d\xae\xb8\xf2\x96\xb9\x6d\xf6\x53\x90\x88\x66\x20\x99\x8f\x89\x6e\xf7\xf5\x04\x8f\x12\x25\x3b\x76\x06\x63\x40\x38\x8e\xb5\x92\x0d\xac\xcc\x0d\xaf\x08\x01\x62\xc1\xd4\x4b\xb5\x32\xd7\x11\x29\xbc\xf9\xdb\xf4\x18\xb6\x59\x36\x7b\x36\xee\x80\x77\x0c\xbf\x92\x92\xe1\x42\x71\x7c\xc7\x1d\xb5\x8e\x87\x36\x1d\xa3\xd5\x03\x5d\x3d\x80\x7a\x2d\xd6\x10\x98\xfd\x00\xef\xf4\x77\x2b\x05\x4d\x7f\xdb\x46\x61\x49\x76\x10\x19\x6d\x6e\x73\x35\x9d\x9a\xac\x1c\x71\x94\x70\x59\x86\x3a\xe9\x3c\xe8\x53\xfb\xe9\xb2\x71\x0f\x43\x67\xb1\xbe\xd6\xd7\xf2\x47\x37\x2c\x7c\x05\xcb\xcf\xb0\x09\x65\x1d\x1c\xf6\xed\x03\x44\x21\x58\x0e\xe4\xe9\xa4\x48\xfc\x66\x31\x2a\xac\xd8\x23\x56\x84\x1c\x48\xf4\x4c\x12\x88\x52\x8a\x78\x9a\x81\x85\xd6\x0e\xd7\xb6\x44\x62\x13\xf0\x79\x80\x78\xae\x74\x63\x26\xa5\xc2\xd9\xe0\x6c\xbe\x46\x61\xb5\x36\xae\x13\x1b\xbb\xec\x71\x81\x0d\xad\x1b\x56\x48\x19\xfa\x44\x14\xb4\x02\xb8\xeb\xe1\x04\x41\xcc\xab\x46\xc0\x35\xaf\xfd\x16\x27\xca\xce\x64\x8d\x9d\x2f\x70\x2f\xbe\x4f\xf8\x64\xb9\x8e\x07\x8d\xa3\x87\xdb\x73\x67\x50\x2a\xc2\x5f\x02\xf0\xd9\x92\x43\x68\x78\x73\x3b\x3c\x1d\xdc\x0f\xcf\x8e\xd0\x83\x24\x7a\x79\xfc\x74\x21\x3d\xd6\x4b\x94\x66\xe4\x16\x48\x83\x49\x45\x70\x9b\x1e\x4b\x84\x28\x25\xb1\xae\x60\x1c\x65\x94\x8d\xe5\x84\x0d\x18\x17\xd4\xda\x59\x00\x17\xa6\x3a\x4f\x1b\x58\xb5\xea\x04\x42\x98\xcb\xf8\xfd\x04\x19\x99\xf1\xa6\xf5\xc0\xaa\x55\xe4\x53\x0e\xc8\x7a\xe9\xc9\xc0\xd1\x52\x73\x42\x05\xea\x34\x2d\x43\x54\xe3\xee\x73\x0a\x22\x94\x2f\x71\xb6\x3c\x7b\x10\x3f\x97\x88\xd6\x48\x32\x81\xeb\xf5\xa5\xcf\x81\x63\x6b\x63\xc3\x0a\xb7\x9f\x60\xe1\x8f\x30\xbc\xd5\xf3\x4d\x13\xb0\x2f\x9d\x8d\x23\x9c\x58\x65\x10\x36\x0c\x51\x22\x38\x3b\xf0\x0b\x65\xa8\x74\x25\x1e\xa0\x29\xfd\x6c\x1b\x2d\xc2\x93\xdd\xab\x81\xbf\xba\x25\x1c\x6e\x8e\xeb\x67\x6a\x0d\xb1\xe1\x06\xbe\x5f\x1a\x9e\xc5\xa5\xd2\x52\x97\x96\x5c\x05\x89\xb8\xd0\x37\x05\x74\x5b\x18\x91\x57\x89\x0c\x0a\x0b\xbd\x28\x75\xa3\xfa\xb2\xd3\x5f\x94\x90\x88\xb1\x22\x87\x8a\xae\xcc\x5f\xb5\x29\x0e\x90\x0c\x81\x55\x80\xe6\x54\xdc\x3c\x13\x32\xc3\xcc\x45\xd6\xb6\x0c\xd7\x5d\x79\x5b\xb0\x2a\x2d\xc1\x62\xc8\xee\x01\xf9\x0a\x32\x37\x4a\xe3\x90\x19\xac\xe7\xd2\x71\xd8\xe0\x85\x7d\x58\xb6\x67\xec\x63\x29\x5a\x06\x9b\x67\xf1\x3e\x0d\x36\xc1\x52\x21\x3b\xa6\x36\x4d\x32\x90\xf0\x5f\xd6\x86\x56\x52\xcd\xba\x9a\xcf\x34\x09\x95\x95\x10\x02\x86\x6d\xe9\x60\x2f\x0c\xc8\x47\x4a\xc4\xcc\x09\xc2\xa6\x92\xae\x3f\xdb\xb6\xa4\xae\xbb\x25\x42\x66\x02\x31\xd6\xf5\xa6\x8f\xd0\x80\xd5\xe0\x8e\x5c\x58\x4d\x69\xbd\xcc\x9d\x84\x93\x67\xbc\x90\x28\x13\x06\x19\xc4\x04\x5e\xbb\xc9\x43\xbc\x63\xf9\x23\xef\xc9\x56\x2e\xf2\x1d\x81\x2a\xbd\x3a\xe6\xc9\xc9\xbd\xe3\x17\xf0\xc4\x54\x82\x82\xbd\x40\x5e\x34\x57\xa8\x9a\x1d\x58\x9d\x22\xe3\x68\x8e\xd9\x8c\x8c\x9d\x8d\x6c\x13\x6d\x49\xb7\x73\x0a\xcd\x9c\xd9\x56\x9a\x2f\xa7\x1b\xa3\x30\xd9\xf2\x1d\xe6\x55\x6f\xff\xd1\x87\x40\x2a\x3c\x23\xc8\x8c\xa8\x93\x55\xb1\x14\xf0\x63\xb1\x62\x41\x4f\xb0\xad\x0e\xcb\x41\xd0\x6d\xc2\x3b\x44\xae\x5c\xe0\x09\x49\xde\xc6\xf1\x0d\x5d\x5b\xdb\x2a\x38\x5b\x4c\x30\x37\x41\xcf\x60\x8e\xad\xb0\x0c\x6b\x7c\x15\x79\x53\x68\xf7\xb2\x79\x96\x8a\x57\x6f\x31\x51\x57\xea\x61\x93\xa9\xb6\x15\x80\x08\xaf\xbd\xa0\x50\x42\x93\x7d\x24\xbc\xfe\xaa\x26\xc1\xcd\x06\x12\xd4\x6b\x68\x19\xc7\xd6\x05\x1b\x56\x4e\x65\xe3\x1c\xf1\x8e\x45\xcc\xce\xa7\x88\x71\x46\x10\x95\xc5\xcb\xaa\x9c\xcd\xe2\x11\x56\xb4\x88\x6f\x8c\x2f\xbe\xc8\x92\xaf\x9d\xf3\xd2\x96\x96\x22\xf7\xdd\xdb\x06\x5c\x7a\x2e\x23\x5a\x51\xc5\x62\x01\x08\x8d\x86\x0f\x97\x65\xba\x95\xe3\xdc\xb9\xc0\x7d\xef\x00\x38\x83\x40\x4b\xc5\x11\x88\x91\x95\xc1\x21\x03\x63\x69\x5f\xb2\x1f\x59\x94\x91\x11\xf3\x96\x0d\x20\x44\x2a\x51\x8a\x33\x70\xc9\x30\xae\x8a\xaf\x0c\x6a\x8e\xf2\x5b\x78\xe0\x04\x71\x69\x4a\x20\xb5\xac\xc0\x2a\xd3\x8e\xbb\x7e\x8b\x75\x2d\xa3\x13\x3a\x64\xd5\x19\x7d\x22\xcc\xd1\xf4\x81\x3b\x13\x7a\x50\xae\xd3\x64\x71\x88\x21\x4a\x94\xc4\xa1\xe1\x7a\x39\x47\x32\x06\x99\x7d\xb0\x47\x76\x5f\xb2\xfb\xc6\x28\x08\x83\x71\x55\x02\x27\x77\x71\xbd\x21\x95\x5a\xd8\x55\x93\xc8\x8b\x25\xfa\x03\xe3\xea\x0f\x01\x30\xad\x33\x5e\xc0\xa7\xce\x04\x75\x50\xab\xb8\x01\x87\xd6\x12\x0e\xc2\x01\x40\xd2\xca\x95\xdf\xd6\xb5\x5b\xc4\x2d\xbf\xa8\x34\x3a\xac\x27\x31\xb5\x95\x2c\xea\x1d\xae\xa8\x7a\x2d\x54\x0d\x9e\xa6\x2a\x5a\x71\xd2\x4b\x86\x4e\xb9\xca\xc3\xea\xf7\xa2\x93\x67\xb5\x96\xd0\xbd\x0d\xb5\xa5\x9d\x03\x5f\x56\x60\xd8\x36\xdb\x25\x36\x49\xd3\x6b\x93\xcb\x45\x39\xf2\xc8\x56\x31\x68\x01\x69\x3d\x1a\xb1\x8f\x5c\xd8\x2b\x58\x5a\x98\xf8\x09\x8e\x1e\x0f\x09\x8b\x11\xce\xd5\xdc\x80\xa5\x5a\xbf\xc2\xc2\x52\x83\x96\x34\x80\x6c\x3c\x12\x02\x95\x11\x16\xb1\x2b\x58\xf0\xc4\xdd\x28\x46\x2c\x68\x04\x80\xe8\xa1\x4e\x0f\x54\x1a\x6d\x53\x35\x89\xd4\xfa\x55\xdb\x5a\x34\xd5\xd0\xac\x55\xd0\x5c\x7e\xce\x4a\x35\x41\x01\x42\x1f\xe2\x53\xf8\xb4\xbe\x3a\xe7\xce\xda\xe8\xf4\x3b\x4d\xcf\x75\x2f\xc4\x81\xd5\x28\x8c\x49\xca\xce\x40\x4b\x3a\xdf\x3a\x5e\x5b\x02\x7d\x9d\xe6\x02\xa2\x2d\x9b\xda\xfc\x3a\x9a\xd3\xa4\xf0\x5d\x7c\x73\xe0\x87\xa9\x9b\x4c\xc8\x13\x49\x0c\xe4\x78\x24\x20\xb0\xda\x58\x0d\xbf\x45\xff\xc7\xd4\x95\x44\x7f\x1c\xb1\x4f\xc0\x86\x93\x64\x01\x80\x88\xbe\x65\xac\x2a\xcd\x3c\x36\x0e\x40\xd9\x4c\x0e\x54\x1e\x88\xd9\xeb\x39\x7e\x22\x23\xe6\x9a\xf9\x3f\xe8\x11\xfd\x1b\xfa\x63\x9b\x7a\xe7\xe2\xa3\x5f\xd8\xce\xf1\x31\x88\x3e\x0e\x6e\x39\xcb\x28\x2d\xbf\x71\x66\x90\x92\x11\xb2\x01\x18\xc1\xe3\x1a\x53\xf6\xc4\xa3\x5a\x10\x7e\x78\x6a\xb1\x20\x4c\x8d\x19\x8f\xc9\x98\x34\xb8\x34\x97\x30\x09\x2d\x04\x5c\xf1\x98\xac\x74\x48\x7a\x66\xfa\x33\x98\x6e\x64\x3e\xf1\xdb\x01\xf9\xd9\x3e\x19\xd7\x5b\x1f\xca\x94\xd6\x3c\x72\x0f\x1e\xba\xc9\xb8\x37\x75\xa6\xba\x28\xbf\x03\xb8\x10\xec\x00\x9a\x1d\x7a\x09\x56\x2e\x85\xb5\x7a\x1c\xab\x8e\x00\xfd\xb2\x9e\xb9\xbd\xac\x02\x58\x54\x28\x5d\x21\xe8\x8c\x6a\xf9\xbd\xbb\xc3\x16\x38\xe1\x26\xde\x0c\x83\x11\xd9\xc9\x9d\x51\x2c\x85\xc3\xc9\x38\xf4\xf4\x57\x38\x21\x27\x3c\xaf\x0a\xf0\x76\x01\xa8\x0c\x93\x6b\xad\xac\xbe\xd0\x7c\x78\x66\x12\xb8\xc8\x9c\x9a\x94\xe9\xc1\xe9\x05\xd2\xa7\x83\xa7\x06\x57\x08\x16\x2d\x57\x73\x2e\xe8\x6f\xad\x09\x26\xed\x32\x7a\xe1\x69\x2d\xf2\x71\xcc\x38\xcb\xd2\x3a\x10\xab\x11\x29\x54\x49\x2b\x69\xd2\x99\xd0\x24\x07\x08\x4d\xcd\x66\xa7\x79\x62\x70\xf7\x23\x2e\x62\x53\xf8\x5a\x96\xb2\x7f\x20\x8a\xd2\x89\xf7\x58\xf9\x06\xa9\x45\x1a\xb4\xc8\xfe\xc6\x82\xb3\x54\x00\xfd\x6b\x4e\xf2\x1d\x25\x50\xbd\x69\xc8\xe9\x3d\x9e\xc9\x22\x86\xd4\xac\x8d\xe6\xcd\xc5\xfa\xfe\x5d\xcf\x54\x06\x29\x87\xce\xb2\xe8\x11\x7c\x8c\x4a\x6e\xea\x3a\xae\x65\xd1\xb9\x35\xc8\xe5\x3b\x30\xe9\xbc\x46\x3c\x47\x5d\x46\x6a\x60\x3f\x96\xfc\x9e\x7c\x02\x5e\x95\x45\xbc\x90\x9d\xc4\x41\xc0\x57\xa4\x8f\x17\x34\x99\x6c\xc0\xe4\xea\x42\xf5\xd2\xa0\xd6\xc2\x80\xe2\xd9\x5a\x43\x2e\xac\xe2\x10\x35\xff\x2c\x28\x00\x7c\x2d\x8a\x97\x7d\x09\x53\x77\x5d\x84\x3c\x46\x4b\x29\x46\xac\x85\xb8\x0e\xb7\x84\x8b\x66\x1e\xbf\x86\x01\xc2\x36\x54\xee\xba\xee\xb7\x6f\x3b\x11\x86\x25\xed\xeb\x91\xa8\xa3\x7b\xac\x3c\x0c\xbe\x90\xc3\xdb\x18\x10\xbd\x68\xf3\x7a\x27\xc3\x93\xe3\x38\xc2\xd1\xbc\x75\x52\x13\xce\x13\x82\x59\x9b\xf4\xda\xf8\xb8\x7a\x44\x0c\x36\x25\xb0\xee\x24\x01\x80\x56\xb7\x04\xb6\xa8\x5f\x21\xbe\xb3\x18\x80\xb5\x0d\x0f\x37\x48\x1c\x6e\xa0\x8a\x30\x67\xf9\xa1\x6c\x96\x90\xea\x5a\x59\x04\xf4\x03\xdb\x49\x12\xe5\x49\x50\xd5\x2f\x23\x42\x8f\x5a\x2f\xf1\x13\x61\x5a\x67\xb0\xe3\x70\xce\x8c\x67\x97\xcf\xea\x6b\xf9\x1c\xf8\xae\x9d\x3f\x0d\x92\xc6\xe2\x11\x83\x83\xcb\xcb\x87\x55\xd3\xaa\xd4\x6a\x46\x68\x97\xda\xf8\x74\x06\x42\xc4\xda\xc7\xf3\xae\x6c\x26\x5e\xfb\x4c\x9a\xbe\xc7\x10\x63\xb0\xb5\x6b\x2d\x70\xbf\x14\x99\xf6\x66\x63\x1d\x9a\xd2\x2b\x19\x91\x21\x6a\xa3\x0c\xf2\x12\x04\x6d\xb4\xa1\xf9\xbc\xe8\x5d\x52\x54\x2f\x70\xb7\x41\xc7\xa1\x2c\x75\x55\x77\x74\x3c\x83\x75\x72\xd9\xb9\xbd\xb0\x11\xb7\x65\x97\xad\x4f\xcf\x28\xc2\x1c\x6d\x7d\x4e\x25\x30\x24\x97\x43\x4a\xf0\xcf\x46\xc3\xa6\xd2\x58\xc0\x5c\x95\x82\x34\x53\x0b\x5b\xd4\x0a\xee\xc5\x30\x25\xd3\x00\x76\x35\xb9\x87\xab\x77\x64\x5c\x72\x10\x37\x75\x06\x1d\x59\xb3\x42\x63\x93\x6e\xa1\x43\x00\x88\x4a\xc2\x7d\x5b\x34\x88\xa9\x0f\x3a\xc6\x49\xab\x2d\x6b\x07\x4c\x13\xb2\x24\x8b\x24\x7b\x8b\xdd\xa9\x44\x4e\x34\xef\xc2\x49\x52\x99\x17\x86\x6c\x56\xe5\x6b\x84\x4d\x8a\x42\xa6\xdd\x9d\xd5\x09\x9e\x90\xb5\xdc\xd3\x17\xe6\x83\xa5\x54\x04\xaf\x40\xaa\x69\x96\x25\x8b\x6e\xa8\x4d\x61\xe8\x5d\x23\xc6\xd5\xaa\x81\x85\xc8\x58\x4b\xef\xa6\x32\xba\xd4\x66\x43\x94\x24\xca\x05\x55\x8b\xb1\x35\xfa\x75\x67\x5a\x77\xf6\xcb\x53\xfb\x61\x17\x8d\xfa\x04\xb9\xfe\x9c\x91\x11\xee\x29\x41\x4d\x01\x14\x3b\x85\x2e\xdb\xad\xb5\xe4\x46\xec\x9b\x65\x0b\xeb\xc0\x77\xba\x0d\x55\x77\xb1\xe9\xf0\x6c\x61\x85\x31\x9f\x3a\x58\x9b\xee\x0b\x5b\xad\x38\xb1\x86\xb5\xd4\xa1\xe7\x66\x82\x72\x61\x0b\x3b\x74\x09\x6a\x4b\xf1\xe7\x71\x86\x05\x4e\x12\x92\x50\x99\x6e\x6e\xdb\xfd\xd3\x77\x4b\x47\x7b\x6a\x0a\x90\x48\x5b\xce\xe7\x33\x4d\xf3\x14\xb1\x3c\x9d\x58\x29\x17\xcb\xc7\x10\xbb\xd0\x65\x5a\x1b\x08\x1e\x37\xc0\x52\xbe\xb7\x08\xd0\x28\x47\x2c\xc0\x25\xb6\xa6\x0a\x1c\xcd\x29\x79\x02\xd4\x44\xc1\x88\x94\x47\xe8\x8a\x2b\x72\x82\x2e\x71\x76\x0f\x82\x9a\xa9\x08\x38\x33\xd6\x71\x2c\x91\x96\x5a\x73\x46\xd5\xc1\x88\x59\x30\x63\xb7\x2a\xc7\x11\x67\x06\xd0\x32\x82\x85\xf5\x4d\x80\xb9\xd7\x21\x3b\x2a\x97\x97\x46\x65\xcb\x62\x0b\xfc\x3c\x0e\xa2\x57\xc7\x26\x3b\x60\x0d\x3a\xbe\xc5\xcf\x26\x5e\x1b\x2a\xe0\x9b\xaf\x97\x48\xee\x36\x20\xca\x16\x80\x31\x38\xae\x2e\x70\x84\x5b\x30\x01\x5f\xba\xca\x44\xa7\x7e\x4d\x8f\xc8\x11\xfa\x3e\xe1\x13\x79\x80\xa4\xc7\x3c\x76\x05\xfa\xe5\x81\x71\x50\xc1\xbf\x4d\x26\xcf\x37\x6e\xf5\x0b\xbe\x0f\x55\xdb\xa6\xf4\xb3\xc1\x30\x90\x7f\x3a\x39\x3e\x4e\x17\x87\x93\x3c\x7a\x24\x4a\xff\x05\x32\x45\xe3\x0a\x39\x00\x20\xdc\x04\x27\xb4\x6a\x75\xea\x50\x44\x9d\x28\xd2\x82\xd8\x49\x02\xb0\xd7\xfa\x4a\xf7\x75\x31\x1d\x72\x0d\x67\xcd\x45\xff\xec\x94\x45\xde\x76\xbc\x4a\x78\xb9\xaf\xa3\xad\x98\xba\x9f\x21\x4c\xef\x34\xc1\xb3\x8a\xca\xb2\x86\x92\x72\x9d\x52\x4b\x45\x7a\xee\x10\x6f\xa1\x4f\x59\x39\xca\xec\x2b\xe7\x8e\x04\xb7\xa2\x75\xb7\x1c\x8d\xd8\x40\xa2\x67\x62\xca\x79\x42\x4a\x19\x78\x27\x72\x2a\xe7\x3e\xa1\x0c\xec\xa5\xd0\xa8\x41\x33\x35\x49\xef\x56\x71\x74\x9a\x95\xf3\xdf\x58\x0d\x14\x27\x92\x1c\xe8\x86\x01\xd1\xca\x05\x12\xa2\x67\x81\xb3\x8c\x88\x11\xb3\xc8\x94\x80\xbf\xcc\xb9\x0d\x12\x69\x8b\x26\xef\x35\xca\xfd\xd2\x28\x07\x95\xd0\x72\xa8\x70\x9b\x82\xd2\x23\x8b\x42\x7e\xce\x3e\xe5\x55\xce\xd2\xd5\x0c\x60\xbc\xf0\x71\xcc\x89\x0c\x0c\xcf\xc8\xdb\x8f\x12\x3a\x25\xfa\xc6\x1c\x31\xbd\xf4\xa1\x91\xdc\x60\xfa\x3a\x88\x5f\xdd\x69\x24\xb8\x94\x36\x5a\xdc\xb4\xb3\x3c\xe7\x67\x8b\xf2\x61\x06\x98\xd8\x14\xee\xaf\x16\x12\x0b\x9e\xb9\x92\x62\xf6\x61\x73\x3d\xf7\xb6\xa6\x56\x16\x10\x2b\xd6\x62\x8d\x12\x62\xc7\xa7\x17\xe7\xbe\x6e\x4e\xa5\xeb\x7a\x0d\xb1\x10\xcc\xb9\xbd\x8a\x58\x7d\xc6\x41\x3d\xb1\x4a\x13\x4b\x2a\x8a\xad\xde\xac\x72\x8c\xea\x36\x48\x5d\x95\xad\x5f\x75\x67\x55\x68\x66\x55\x28\xf5\x8e\xb6\xa9\x85\x15\x46\x20\xe4\xbc\xb4\x57\x18\x84\x05\xfd\x96\x54\x38\xcd\xc2\x34\x41\x07\x55\x68\xa7\x69\x8e\x5a\x1b\xe3\x7e\x55\x08\xe5\x08\x9b\x08\x8c\xea\xe0\x6a\x5b\xb1\x9e\x97\xe6\xde\x22\x33\xef\x22\xf4\xf6\xf5\xf2\x6e\x93\x45\x11\x69\x26\xad\xbc\xe1\xaa\xfe\xb6\xd8\xaa\x27\xc4\xa3\x50\xb7\x6e\xe8\xb6\x89\x75\x1e\xad\x46\x10\x2c\x6d\x08\x01\xe4\x9f\x55\x72\x53\xd6\x30\x69\xfa\x31\x9b\x0c\xd6\x43\x8f\xfb\x1e\x5c\x35\xb6\x94\x51\xe4\x0e\x22\x15\x82\x3c\x11\x01\xb4\x63\xe3\x54\x58\xf9\xa8\xe2\x44\x10\x1c\x2f\x82\x15\xf1\x4e\x72\xd3\x33\x98\x74\x24\x4d\xb5\xd2\x09\xe2\x34\xe3\x87\x3c\x73\x72\x76\xe9\x2d\x00\xed\xa7\x53\x7d\x63\x05\x2e\x76\xfd\x05\x3b\x24\x9f\xa9\x54\x5a\x2f\x69\x88\x2f\x74\x8d\xc0\x2d\x0d\xa5\x7c\xe6\xc4\xde\x70\xa3\x0f\x83\xef\xaf\x6f\xef\x87\x67\xa3\x0f\x45\x44\xb9\x4b\x99\xf2\x20\x34\x0e\x53\x9c\xb3\x11\xf3\x41\xa0\x1e\x73\x15\xf6\x12\xe1\x38\x2e\x10\xaf\xad\xe2\x63\xe4\x8c\xa5\x1c\x39\x38\x15\x2b\xc3\x3f\x97\x34\xf3\x00\x79\x33\xfb\x7a\xb2\x96\xb8\x7b\x4a\x27\xc7\x64\xff\x2c\x49\xd3\xd8\xd1\x65\x13\xc2\x45\x2a\xa3\x1f\x12\xe5\xf0\xcc\x18\x79\x76\xf2\x3d\xdc\xce\xc7\xd8\x5c\xc2\xeb\x71\x3b\xb7\x21\x1b\x6c\xea\x47\xfa\x99\xc4\xb7\x2d\x52\xd5\x4e\xb2\x30\x3a\x45\xaf\x35\xee\x42\xce\xe8\x3a\x5a\xaa\x9f\xca\x83\xfe\xae\x3b\x5b\xba\x2e\x50\xa0\x0a\x44\x47\x80\x73\x54\x08\xa3\x88\x08\x85\x29\x43\x53\x38\xd8\x2c\x5a\x20\xc0\xe2\x20\xe0\x77\xfd\x0e\xa5\x94\x41\xb6\xfb\xb2\xa5\x7d\x28\xcf\x63\x9d\x52\xfe\xe7\x57\x0f\xf7\x25\x51\xf5\x87\xeb\x87\x72\x1d\xe9\xc1\x2f\x4b\x65\xd5\x4a\x0b\xcb\x02\x5c\x82\x29\x16\x99\x73\x16\xd8\xd2\xaf\x4c\xd3\x44\x3f\x11\xf5\x93\xe6\xcb\x9c\xed\x22\xac\xdc\xca\x59\xe0\x70\x22\xe3\x27\xd3\xf0\x1a\x64\x60\x87\xb2\x24\x77\xc0\x49\x72\xd0\x03\xb2\x3d\x84\x89\xec\x47\xa6\x62\xf2\x40\x37\x07\x2a\xa3\x0b\xd0\xd2\xfa\x12\x67\x7a\xb9\x0c\xbc\xa0\xc3\x24\x0c\x9a\xe3\x53\xf3\x71\x47\x84\xa6\x20\x4c\x58\xb7\x55\x2c\x25\x1a\xdc\x9c\x37\xac\xf5\x45\xd5\x26\xff\x65\x95\x77\x48\xbc\x7b\x60\xd7\x95\x1d\x82\x7c\xaf\xbd\x28\xea\x60\x67\xba\x5d\x3d\x07\xe3\x45\xbd\x29\xbb\x66\xf7\x01\xbd\xb2\x49\x9e\x2d\xe5\x71\xae\x00\xaa\x5c\x2f\xb5\xa9\x58\x86\x35\x51\x64\xc2\x01\xd9\xb8\xfa\x10\x39\xa5\x1e\xb4\x79\x10\x22\xa9\x70\x53\x40\xd2\x3a\x6b\x77\x86\x2e\x53\xcc\xa6\x0b\xbc\xcc\x4f\x86\xa2\x3d\xfa\x00\xe0\x29\xb8\x02\x65\x2e\xd8\xd2\x26\x03\x87\xd3\x0d\xa9\x6d\x3d\x44\x9a\x62\x7c\xce\x9e\x68\xb1\x59\x71\x86\xad\x52\x0c\x12\xbe\x43\x0e\x6f\x2a\x34\x75\x34\x62\x41\x04\x80\x34\x32\xb9\x3e\x23\x0e\xac\x1f\x2a\x40\x32\x00\x7a\x85\xac\x07\x7f\x33\x97\x76\xa0\x9a\x73\xac\xe6\x65\xb8\xfd\x5a\x3f\xf6\x74\xca\x39\x76\x99\x5d\x4e\xbd\xb7\x81\x55\xa1\xf1\x03\xda\x0b\x00\xb6\x6d\xc7\x60\xdf\x03\x8d\x1a\x07\xe5\x9b\x82\x6c\xe0\x98\x13\xc9\xbe\x52\x3e\x77\x8e\x26\xb6\x44\x00\xae\xda\x5b\xb5\xc8\x81\xa9\x6d\x79\xf9\x01\xdf\x01\xdc\xcd\xba\x52\x6d\x70\xac\x56\xda\x50\x9c\xd3\x0c\x28\x21\x0c\xee\x80\x4e\xdb\xb0\x69\x3e\x67\x24\xda\x04\x93\xe3\x06\x0b\x9c\x12\x45\xc4\xb2\xf8\x8e\x72\x71\x55\x88\x5d\x70\x3b\x68\xfb\x35\xbb\x68\x90\xe7\xab\x25\x0a\xbc\xea\x75\xb1\x0a\x63\xc3\xcf\x62\x2d\x38\x21\x3d\x8d\x9f\x2c\xd4\xfe\x9a\xb3\xb0\xfd\x14\xd3\xb0\xe1\x2b\x01\xa4\xca\xb6\x73\x7a\x1d\x6c\x89\xfb\x1a\x4a\x43\x29\xfe\x62\x4f\x40\x25\x56\x8f\xb2\x0d\x4d\x62\x15\x2f\xdd\x09\xef\x76\x21\xe3\x2e\x27\xb1\x72\xa8\x4a\xc1\xe8\x40\x25\x20\xef\x1b\x60\x85\x66\x44\x08\x10\x5a\x9a\x42\xce\x02\x3f\x8a\xc5\x0b\x2b\xac\x8d\x56\xb2\xaa\x16\x5b\xa9\x2c\xd7\x0a\x1e\xb7\xab\x6c\xf9\x5e\xa2\xd9\xb5\x44\xb3\x86\x6d\xcf\x50\x27\x11\x15\xe0\x0e\x5b\x04\xd5\x66\x5c\x97\x27\x08\xc9\x1c\xf6\x8a\xb4\x95\x14\xe1\xea\xa7\xcc\xff\xab\xcc\xc1\x1d\x51\x87\xa4\xda\x94\xa5\x76\x14\xf8\x47\xc0\x3d\x92\x84\xd2\x80\x0d\x54\x80\xd1\x9a\xb8\x32\x63\x82\x3e\xbf\x32\xde\x15\xc8\x16\x5d\xf0\x1c\x3d\x53\xa9\x75\xe1\x11\x83\xc0\x2b\x6f\xaa\x56\x1c\x99\x17\x0f\xe0\x2d\xc8\x2b\x97\xf9\x24\xa5\x0a\xe1\x60\x86\x25\x7b\xd9\x81\x3d\xcf\xfa\x03\x98\x71\x63\xe2\x72\x13\xe6\xc9\x8a\x43\xb3\x81\xf1\xa7\x68\x64\xdb\xdc\xe4\x20\x48\xf4\x65\xb3\x93\x03\x8d\x27\xd4\x30\x1b\xcf\x5c\x9f\x9e\x8c\x9a\xad\x0d\x16\x85\x11\xa0\x32\xa9\x54\x95\xbb\xc5\x62\x2f\xae\x48\x4d\x2e\x36\xa2\x53\x6e\x72\xf1\xfa\x2e\x92\x93\xdb\xca\xf6\x2c\x4b\x56\x73\x9f\xb4\x18\x67\x5d\x12\xa4\xe2\x2e\x12\x39\x94\x94\x6e\x5a\x25\xa5\x7d\x83\x89\x2a\x22\xac\x37\x8f\xd7\x5d\x47\x1d\x2c\x12\x5e\x42\x2a\x0a\xf2\xd7\xca\x20\x1b\xa4\xca\xf9\x19\x57\x90\xa4\x10\x41\x49\xe3\x5a\xe2\xdc\x88\x35\x4b\x20\xcb\x79\xe2\xb6\x31\xef\x3b\x85\x93\x0a\xce\x9f\x9b\x85\xb5\x68\xfd\xec\xa3\x86\x8c\xb2\x6c\x8b\x13\x57\x45\xcc\xc2\xff\xd4\xa2\x80\x80\xe0\xb1\x49\x06\x67\xc3\xa9\xec\x18\x91\xbe\xf2\x5c\xd8\x4b\x77\x87\xaa\x5d\x8d\x3b\x77\x0e\xe0\xf7\x32\xb2\xe5\xc6\x2e\x02\xd5\xa9\xf1\x15\x37\xe2\x26\x45\x17\x01\xa5\x71\x67\xd8\x92\xd5\x74\x6f\xdd\xf8\x01\xb8\x1e\xed\xd0\xb1\x09\xc3\xf0\x88\xc7\x95\x2d\x29\x4d\xd8\x16\xb3\x7e\x81\x49\xaf\x5b\x28\x33\x70\x85\x09\x1b\x3e\x49\x43\xbb\x01\x54\xc8\xb4\x51\x67\x15\x3e\xec\x45\xbb\x9c\xc5\x44\x30\x82\xd5\xfc\xf5\x82\xd6\x4f\xb7\x35\x4e\xbf\x5a\x00\xfb\xe9\x4e\xaa\x24\x57\x82\xc2\xd7\x8c\x07\x5f\x23\xb8\xba\xa8\x99\x59\x53\x1c\x9b\xaa\xd3\x17\x98\x1e\xeb\x50\xe9\x56\x71\xed\xcd\xca\xdc\xcb\x44\xf8\x37\x58\x7d\x6a\xb1\xfd\xfa\xb0\x87\x95\x46\x57\x2c\xc9\x17\x11\x4a\xff\xf2\xd1\xdd\xcb\x6a\x9a\xe6\x41\xc0\x37\x14\x96\x55\x98\x32\xcb\xbd\x96\xc5\x78\x6b\x89\x32\xc5\x4d\x61\xdd\x7b\x9f\x30\xf0\xc5\xe7\x0b\xf4\xd1\xe3\x7d\xf4\x78\x1f\x3d\xbe\x56\xf4\xf8\x32\x33\xa3\xf7\x7c\x41\x8d\xb7\x52\x65\x0e\xb3\x8e\x2b\xb4\xb5\xcd\xa3\xba\x9d\xa5\x2e\x0c\x89\xb1\xbf\xd8\x1f\x1a\xa3\x62\x6a\x9f\x55\x67\x1b\x5a\x0d\xd9\xa2\x6a\x7c\xc7\x22\x4e\x2c\x7c\x96\x8d\x59\x2d\x5b\x79\x96\x19\x24\x47\xec\x07\xfe\x4c\x9e\x88\x38\x40\x58\xa1\x94\x6b\x25\x3d\x88\x42\x01\x82\x2b\x21\x31\x9b\x68\x03\x8c\xae\x70\x4a\x62\x53\x67\x2b\x88\x6c\xb3\x66\x51\xeb\xd0\x6c\x42\x89\x04\xc0\x43\xb3\x0d\x2e\x3a\x61\xc4\x4c\xb4\x99\x89\x70\x82\x3b\x99\xba\x89\x01\x5d\xff\xc1\xbb\x5b\xff\x70\x84\xee\xf5\x3d\x40\x65\x79\xbc\x01\x68\x54\xdb\xd8\x46\x6c\x26\x78\x9e\x79\x4b\x15\x9f\x98\x82\x8b\x06\x70\xba\xee\x6e\x85\xc1\x38\x5f\x6b\x84\x63\xad\xf1\x2e\x27\x9c\x37\x09\x44\xdc\x08\x79\x25\x24\x20\xcd\x25\x7c\x74\x95\x8d\x76\x36\x5e\xd2\x00\x6f\x62\x19\x7e\xf4\x0b\xb9\x70\xcf\x88\x04\xdb\x8b\xb7\x6d\x97\xd2\x5f\xcb\x29\xd6\x8d\xe3\x5c\x66\x79\xf4\xde\x01\x67\x41\x6f\xce\xde\x2e\x3a\xb7\x91\x55\x26\xb7\xce\xf2\xe3\x17\xb3\x49\x76\x0e\xa0\x6c\xe3\x17\x37\xb9\xc8\x38\x48\x3c\xc9\xc2\x65\x9b\x5b\x80\xaa\x8c\x67\xb9\x89\x1e\xa3\x61\x30\x51\x23\x65\x53\xa9\x2e\xb1\x8a\xe6\x9a\xbf\x17\x40\x4d\x3b\x8a\xaa\x2b\xb8\xf2\xcb\xda\x29\x1b\x66\x70\x1a\xf6\xde\x62\xb8\xef\x60\xb7\x36\xf7\xab\x8b\xb0\x76\x37\x76\xaa\xfb\x2b\xd5\x92\x0f\xac\x8f\xee\x13\xfb\x44\x4f\x74\x15\x15\xad\x1a\x7f\x37\xda\x2a\x17\x0a\xda\x79\xbc\xde\x16\xc8\x17\x67\x16\x67\xa8\x78\xd1\xd6\x05\x6c\x71\xb2\x6f\x58\xe8\xdb\x7a\x4f\xa0\x72\x7c\x61\xd7\x4c\x71\xa6\x85\x75\xc5\xf5\x2d\x29\x66\x46\x5e\x34\xf5\x27\x11\x46\xb9\xa0\xee\xec\x57\x52\x59\xdb\xa9\x03\xec\x80\xc7\x61\x21\x98\x08\x07\x35\xb2\x8c\x5b\x1d\x47\x2a\xc7\x3e\xfc\x0f\x68\xc2\x95\xde\x35\x69\xbb\xce\x7d\x2d\x9c\x18\xd5\xb0\xa7\x2b\x09\x7b\x8b\x5d\xc6\x4d\xb0\x6c\x9d\x4e\x1a\x65\xb3\x00\xd3\xad\xd9\x16\xdb\x05\xb2\xbd\xf1\xcb\x6e\xb0\xf3\x8d\x9f\x3a\xd9\x67\x93\x6f\x97\x60\xce\xb4\x7e\xbe\x4a\x80\x2d\x85\x3a\xdb\x70\x53\x2b\x3d\x85\x68\x7b\xd6\x4e\x06\xa0\x99\x14\xdc\xe1\xd8\x4a\x53\xff\xe9\xff\x32\x25\x7e\xcc\xd2\xfc\x27\xe2\x62\xc4\xcc\xef\x07\x1e\x5e\x5f\xbf\x50\xe0\x56\xe2\x94\x14\xc8\x7e\xa2\x8c\x01\x06\x48\x08\x16\xc3\xc9\x60\x94\x7a\x74\x71\x3d\x86\xc7\x7c\x42\x04\x23\x7a\x68\x2e\x67\xda\x33\xb3\x14\x33\x3c\x03\x44\xd4\x03\x88\x3f\x03\x71\xb5\x10\xf9\x0d\x49\x9b\x32\x6d\xc0\xad\x34\xb3\xb4\x29\x97\x45\xb5\x49\xe8\xd3\x88\xb2\x16\x90\xb1\x08\x62\x68\xa6\xfe\x5b\xdb\xff\x66\x12\xfb\xfd\xe0\xee\xc7\xf1\xed\xf0\xee\xfa\xe1\xf6\xb4\x24\xb6\x9f\x5e\x3c\xdc\xdd\x0f\x6f\x1b\x9f\x15\xe9\x8a\x7f\x7d\x18\x3e\xb4\x3c\x72\x0d\x5c\x0c\xbe\x1f\x96\x4a\xb7\xfe\xf5\x61\x70\x71\x7e\xff\xcb\xf8\xfa\xe3\xf8\x6e\x78\xfb\xd3\xf9\xe9\x70\x7c\x77\x33\x3c\x3d\xff\x78\x7e\x3a\xd0\x5f\x86\xef\xde\x5c\x3c\x7c\x3a\xbf\x1a\xbb\xe0\xde\xf0\xd1\xcf\xd7\xb7\x3f\x7e\xbc\xb8\xfe\x79\x1c\x74\x79\x7d\xf5\xf1\xfc\x53\xd3\x2c\x06\x77\x77\xe7\x9f\xae\x2e\x87\x57\xcb\x4b\xc4\x36\xaf\x46\x6b\xf5\xc9\xe0\x22\x0b\x8c\x33\x81\x98\x34\x59\x58\xd2\xa6\xbf\x81\x8b\xe0\xc6\xd0\xe3\xe1\x81\xfb\xcb\x14\x74\x3d\xd4\x2c\xd0\x79\x9f\x0a\xee\x31\x62\xde\x3d\xe8\x2f\x55\x28\xe8\x6d\xb3\x4f\x4b\xa3\x3d\x41\x03\x38\x2b\xa0\x30\x94\x3a\x05\xcc\x09\x3f\x52\xe7\x50\x46\xa6\x58\x7f\x4a\xc1\xb7\x8c\x0e\x51\x75\xc3\xcb\x0d\xda\x39\xc1\x10\xac\x77\x2c\x5e\x76\x1a\x64\x35\xb1\x15\x28\xe5\x04\x39\x0e\x4d\x8c\xda\x6e\x20\x33\x17\x0c\xa7\x34\x32\x3f\x54\x50\x23\x51\x81\x90\x50\x6d\xb1\x44\x60\xe5\x96\xe7\x04\xfd\xf8\x97\x62\x50\xe0\x29\xb0\x06\x82\xbc\x56\x08\xcc\x3e\x10\xb9\x59\xd5\x55\xe4\x59\xea\xc9\x1d\x73\x6b\xc2\x85\x73\x6b\xeb\xc5\x82\x5b\x27\x67\x01\x4a\x52\xc9\xc7\xa3\x8f\xb7\x99\x51\x85\xc6\x4f\xd0\x1d\x20\x34\xc8\x42\x75\xd7\xbb\x98\x25\xf9\x8c\x32\x44\xd3\x2c\x21\x45\xa5\xe1\x09\x99\xe3\x27\xca\x1d\xea\xbe\x29\x4e\x00\xeb\x68\x45\x2b\x74\x88\x5a\x0f\xca\x09\x1a\xc4\xb1\x2c\x33\xb8\x12\xe5\x38\x96\x79\x58\x1e\x76\x08\x6c\xc4\x62\xcf\x36\x2b\x74\x54\x1c\x39\x58\xb1\xdd\x63\x50\xd4\xd9\x61\xf9\xee\xdd\x0a\x4f\x55\x3e\x8e\x1d\x29\x8f\x37\x12\x06\xee\xb1\x7c\x74\xac\x79\x95\x40\xe0\xd0\x40\xb6\xeb\xd1\xc2\x82\x74\xed\xd4\xaf\xec\x18\x0e\xda\x66\x7d\xb6\x82\xd9\xae\xe8\xd2\xcd\x38\xa9\x54\x1c\xea\xdc\x5f\xa9\x62\x51\x63\x67\x3b\xf5\xaa\x34\x4b\x63\x70\x24\xc7\x9e\xfe\xd7\x98\xc7\x0d\x7c\x7a\xed\xbf\x5c\x2a\xb2\x8d\x83\x75\x5b\xd7\xd7\x52\xcb\xd3\xb4\xfe\x96\xa5\x74\xb8\x23\x54\x9a\xee\xc2\x20\xe0\xc5\xd3\x08\xdc\x6a\x98\x32\x5b\x45\x84\x78\xbf\x8f\xab\x9b\xab\xcf\xb1\xaf\x6c\x85\x27\xfc\xa9\xa4\x5c\xa6\x44\x4a\xdc\x82\x59\x11\x98\xc4\xb6\x61\x0c\xfe\x84\xda\x0f\x3b\xd2\x93\x3b\x93\xf7\xfa\xab\x65\x46\x9f\xdb\x50\x33\x76\x13\xd5\x02\x6b\xec\xe2\x59\xd1\xb5\xc9\x6a\xd3\xfc\xe5\xa0\x08\x59\xe1\x22\x88\xe4\x69\x73\xb3\x74\x34\xab\x55\x17\xac\xb1\x38\x4c\xe8\x2a\x5b\x3f\xd2\x25\x68\x7d\x63\x20\x5f\xeb\xbf\xc0\xe5\xf5\x59\x83\xea\x4a\x7e\xc5\xb0\x70\xae\xa9\x11\x0f\x36\xb7\xd0\x96\x7a\x80\xb0\x49\x26\x2c\xa4\x29\x99\x47\x73\xe3\xcd\xd1\x57\xc6\xc1\x88\x3d\x07\x1b\x52\x0a\xb7\x1d\x84\x2d\x01\x08\xe2\x67\x7d\xdc\xe8\x53\x29\x88\x19\x44\x46\x0a\x11\xb5\x01\x21\x18\xc7\x5b\x51\xf5\x66\x05\x81\x07\xfb\xb5\x05\xa9\x6f\x50\xe2\xac\xa1\x0a\x7f\x53\xa1\x33\x3f\xb7\xa0\xbe\xd8\x16\x9a\x72\xd7\x21\x04\x25\xce\x9a\x46\xb0\x83\x0a\x67\xaf\x8a\x4a\xec\x93\x22\x4d\x0e\x6d\x3a\xb1\x30\x05\x7a\xba\x6e\xb5\xff\xcd\xcd\xe8\xdf\x8c\xdf\x21\x6f\xc1\xb5\x08\x5a\xf3\xc0\xc4\xe8\x50\xcb\xac\x2e\xdf\xda\x06\x3c\x48\x74\x68\xc0\xce\xbe\x82\x78\xc6\xc1\xcd\xf9\x57\x07\xe8\xab\x30\xa7\xeb\xab\x8d\x0e\xa0\x1d\xb7\xad\x72\x06\xda\x54\x29\xb0\xbf\x7c\xec\x60\xaf\x2a\x27\xd1\xee\x99\x3d\x88\xa8\xed\x1c\xea\x2f\x4b\xdf\x80\x13\x18\xaa\x76\x19\x3f\xa9\x0f\x2b\xb6\x2e\x20\x23\xe3\x52\xd9\xb0\x76\xf1\x88\x4d\x16\x55\x27\xcf\x81\xf7\xf2\x74\x3e\xa5\x5b\x57\xa2\xd2\xed\xd5\x93\x80\x77\x1c\xee\xba\xfc\x3e\x58\x91\x56\x3c\x30\x91\xcd\x7c\x1a\x70\xb1\xb6\x68\x80\x3e\x4e\xbc\x69\x56\x25\x7b\x99\x5b\xcc\xc6\x4d\x59\x25\xff\xbc\x37\x72\xeb\x10\x5c\x3d\x68\x5a\x11\x1b\x57\xdf\x22\x5c\xf7\x54\xf6\xb2\x54\xb6\x8b\xbc\x82\xf2\xe0\xd6\xbf\x40\x4f\x8d\x1c\x17\x34\xe3\x0c\xae\x5a\x99\xf0\x0c\xbe\x54\xae\x6c\x75\x9d\xcf\x35\x7d\xbe\xc1\x9a\xac\x76\xfa\xde\x99\xc0\x01\xe3\x76\xad\x8f\xb5\x3a\xd4\x81\xb2\xb5\x53\x38\x35\x39\x84\x8a\xa6\xe4\x00\x71\x96\x2c\x82\x60\x07\x7b\x5e\x81\xdc\x4c\x2c\xd0\x9c\x50\xe1\x3a\xb1\x30\x73\x6b\x25\x9d\xaf\x29\x8d\xb7\xd1\xc8\x16\x91\x26\x57\x83\xcb\xe1\xd9\x78\x78\x75\x7f\x7e\xff\x4b\x03\x84\x60\xf9\xb1\x43\x11\x0c\x5e\xb8\xfb\xe5\xee\x7e\x78\x39\xfe\x34\xbc\x1a\xde\x0e\xee\x57\x20\x0c\x2e\xeb\xac\x0d\xbd\x2e\x97\x4d\xea\xdb\x3a\x08\x76\xce\xcc\xdb\xd0\x7b\x1d\x67\x30\xe8\x84\x92\x16\xac\x41\x93\x60\xcf\x62\x22\x50\x4c\x9e\x48\xc2\xb3\xc2\xac\xda\xb8\x60\x01\x08\x61\x43\xfb\xcb\x80\x08\xa1\xcd\xea\x1a\x9f\x20\x53\xa2\x2a\xa8\xd2\xe9\x1b\x04\x91\x0f\x0b\xc2\xbe\x52\x88\x7c\xce\x12\x1a\x51\x15\x24\xe0\x71\x61\xdd\x2b\xc6\x7d\x08\x51\xa0\x2b\x88\x6b\x67\xd1\x28\x3b\xd7\xf9\x43\x4f\x7a\x5d\xdb\xf7\x27\xca\x83\x62\xad\xac\x7b\xb2\x03\xc5\xbe\xc5\x69\x5c\xc3\xec\xda\x60\x74\x2f\x61\x1e\xa8\x67\xc2\xd8\x24\xba\x16\x3c\xaf\xe6\x41\xae\xbe\x0d\x97\xc5\xc9\x94\xce\xf5\xf2\x40\x99\x6e\x94\xfa\xc6\xe1\x2e\xa5\x7a\x80\x3b\xc0\xb7\xb0\x31\xe2\x6b\x06\x2c\xd4\xca\x5c\x30\x13\xdb\x89\x91\x20\x29\x57\x5a\x01\x33\x11\x01\x07\x5a\xa8\xa2\x38\xa1\xbf\x01\x12\x94\x20\x47\x41\x04\x05\x24\xda\xc5\x61\xc4\xa5\x45\x69\x38\x1a\xb1\xb3\xe1\xcd\xed\xf0\x54\x33\xa4\x23\xf4\x20\x01\xe4\xa9\x34\xf5\x33\x4b\xde\x46\x1c\x0b\x23\x19\x28\x93\x8a\xe0\xb6\x60\x30\x22\x04\x17\xdd\xf9\x83\xef\x6f\x08\xdf\x35\x93\x37\x3c\x2b\xd9\xa6\x9c\x01\xe0\xaa\xb5\x98\x6b\x10\x9b\xbf\xf3\xd4\xa7\x5b\xfc\x5c\x5a\x91\x10\xe4\x02\x24\x91\xf2\xaa\xbf\xe0\x6a\x03\x86\x63\xf7\xf9\x95\xfa\xbc\x81\x6f\x97\xcd\xf3\x1e\x42\xec\xa4\x2a\x00\x21\x0d\x66\xa4\x2f\xd6\x51\x99\x67\xab\xa8\x28\xde\x02\x10\xa3\x42\xfa\x13\x32\xc3\x0c\x89\x9c\xb1\x0a\x42\x68\x68\x69\xab\x07\xcd\xac\x7b\x54\xf5\x9a\xe1\x94\xe7\x0c\x94\x06\x08\x63\x6d\x18\x8c\xcc\x08\x53\x2b\x06\xf3\x56\x70\x27\x95\xa1\xee\x2f\xe2\x49\xc3\x40\xdb\x40\x4f\x9a\xfc\x49\x50\x31\x76\xbd\x6b\xd9\x05\xe5\x95\x9c\x4a\xfa\x50\xf9\xfb\xb9\x59\xcb\xc6\xf2\x71\xeb\xee\xee\xb1\x7c\x5c\xdd\x55\x4c\xa2\xc7\x75\x2f\x9b\x6a\x06\x64\x62\x0b\xee\xd6\x8c\x7d\x0b\xfd\xd4\x56\x94\x80\x3a\xcb\xd1\x23\xfa\xe1\xfe\xf2\x02\x4d\xa9\x96\x7b\xf5\xb5\x72\x85\xb5\x8c\xfd\x20\x12\x5f\xc4\xde\xc8\x20\xb9\x48\xfc\xdd\x0b\x1b\xef\x44\xa9\x40\x4a\xd0\x37\x1a\x9e\x11\x67\xec\x15\x16\xd3\xae\x52\x51\x42\x60\x16\xf3\xd4\xcc\xe3\x58\xe6\xd3\x29\xfd\x7c\xa4\xb0\xf8\xa6\x65\x3d\x4c\x54\xc5\xf8\x6f\x7c\x32\xd6\x23\xda\xf2\x22\x6e\x6a\x0e\xd9\x3a\xb0\x7e\xd9\xec\xcc\xce\xcc\xbb\xff\x97\x4f\x20\xa7\x3c\x13\x1c\x70\xf6\xc0\x3b\x67\x23\x15\xec\x2b\x8e\x92\x8e\x90\x4b\x54\x2a\x41\x89\x44\x5c\x08\x62\x53\xd1\x4d\x49\xc4\x0c\x0b\x45\xc1\x5a\xeb\xa0\x48\x4a\x00\xe9\xc5\x16\x85\x95\x8a\xe7\xb8\x00\x23\x9e\x10\x02\x0e\x9e\x8c\x26\xeb\x29\xbd\xa7\x25\xdf\x64\xe5\x04\xda\xc8\x53\x8b\x4e\x09\x06\x99\x95\x22\xd6\xf0\x89\x30\xb5\x13\xfd\x04\x9a\x68\x48\x8e\xef\xe6\x65\x30\x95\x09\xcf\xcf\x8a\xcb\xcd\x57\xc8\x0f\xa2\x9a\x94\xc0\x70\xcf\xdb\x84\x24\xeb\x52\x6f\x73\xf4\x3f\x75\xf6\x1d\xc3\xab\xf5\x75\x59\x11\x1a\x6f\x57\xbb\xa8\x50\x5c\x84\xb5\x3a\x74\xf7\x0d\xe1\x72\x24\x31\x56\x8c\x00\xa6\xc1\x2a\xa7\xd5\x3d\x37\x7d\x6a\xda\xaa\x74\xb9\x72\xcb\x37\xc0\x86\x29\x35\xf3\x89\x40\xea\xe4\x2e\x02\xd1\xd7\x49\x91\x87\x81\x3c\x88\x04\x42\xa8\x97\x5a\xb1\x4c\x75\x64\xcd\xf9\xbc\x64\x87\x3b\xc8\xe8\x66\x30\x5a\x68\x24\x99\x20\x50\xaf\xff\x04\xdd\x24\x44\x4b\x5e\xb9\x96\xbe\xf2\x24\x71\x38\x5a\xcb\xa5\xc3\xb5\xb0\xdf\x5e\x7c\x5e\x81\xee\xb1\x64\x62\x0e\x47\x6e\xf9\xcc\x82\x35\xd8\x3d\xb0\x41\xb0\xbe\x60\x42\x06\x43\x62\x59\x8b\x04\x0e\xbf\x30\x71\xb3\x60\x4a\xc2\xa5\x8b\x8c\xfe\xa6\xd9\xaf\x20\x72\xce\x5b\x93\x09\xc3\xd9\xbe\xcc\x1c\xdc\x52\xbe\xe0\x24\xdc\x7d\xd8\x16\x57\xdd\x41\xae\xa9\xdc\x81\x25\x11\x67\xd9\x14\x7d\x01\x00\x1f\xfd\x61\x51\x4d\xed\xdd\x6a\x87\x06\xb7\x64\x61\x6a\x0b\x11\xc6\x0a\xd7\x45\xa1\xcc\x2c\x8c\xef\xd5\x7f\x5e\x18\x90\x8b\x94\x00\xaa\x64\x51\x2c\x0b\xe9\xbb\x76\x3d\x2e\x6b\x13\x47\x8a\x26\xf4\x80\x9b\x59\x9b\xc5\xfe\x07\x91\xd7\x86\x05\xc9\x12\x36\x9a\xdd\x62\x33\xe5\x46\x75\xac\x9d\x81\x6e\xeb\x02\x03\x89\xb6\x10\x3b\x5e\xca\x13\x56\xa2\x96\xd2\x04\x7a\xb4\xad\xf5\xd1\xb6\x6c\x21\x08\x4f\x7b\x80\x8d\xa7\x04\x24\xc3\x17\xce\xae\xea\x25\x6f\x0d\xd4\xab\xb2\x94\x4a\xbb\xd3\x29\x25\xa9\xf4\x85\x3e\xf7\x67\x5b\x7a\xcb\xf4\x64\x16\x63\x48\xf2\xdc\x26\x62\xa6\x34\x7f\x63\xe9\x87\x36\x49\x8c\x4c\x46\xbf\xc1\x02\xb6\x6b\xe7\xbd\x1c\x19\x16\x84\xa9\x11\xbb\xd5\xa3\x30\x5f\x14\x51\x13\x45\xa1\x7f\x52\x94\xc5\x9c\x22\x6c\xbf\x82\x45\x6f\x0b\x5a\x93\x63\xf3\x12\xa8\x91\x2f\x98\x78\xfe\xbd\x79\xc7\xe0\x00\x58\x1c\x1c\x3d\x55\x3a\x2d\x54\x6e\x2d\xec\x45\x73\x0a\x69\xf8\x31\x91\xf6\xf2\xa0\xca\xe2\x2c\x78\x51\x39\x27\x0e\x91\x18\x3e\xf3\xfc\xab\x89\xb9\x3a\xa5\x9e\x39\x63\x9a\x1c\xb1\xa0\x8f\x25\x00\x96\x46\xb1\xde\x50\xec\x87\x7d\xa6\xb1\x77\x52\xc1\x3f\xcd\x0e\x71\x41\x67\x94\x05\x35\x6e\xec\xf4\x52\x9c\x81\x29\xd6\x9c\x41\x3e\xf5\xf7\xcf\xbd\xcd\x08\x38\x82\x11\xff\xf7\x7f\xfd\xcf\x11\x6d\xf3\x54\xc8\xb1\x5d\x81\x7d\xd8\xc9\xf5\xb6\x25\xdc\xf9\x00\x59\xa3\x05\xb1\x21\xd0\x3f\x65\x29\xcb\xa1\xf8\xd5\x5e\x6e\x9a\x68\xb8\x9a\x1b\xd7\x6c\x99\xdc\xc1\x8f\x21\xf2\xe5\xb7\x6c\xc0\xe2\x0a\xe7\x7d\xe1\xa1\x0d\x02\x64\x5d\xdd\x04\x13\xd8\xa8\xdb\xaf\x5c\x28\x15\x06\x15\x00\xdc\x6d\x13\x48\x38\xc7\xf2\xe5\xa2\x45\x1a\x8b\xd1\x18\x03\x6f\x78\x47\xae\x8a\x1b\x31\x83\x34\x09\x88\x7a\x57\x72\x49\x84\x39\xd0\x1e\x09\xc9\x12\x4f\x08\xdf\x07\x61\x83\x2b\xdc\x5f\x24\xc5\x74\xad\x10\x77\xfd\x7e\x33\xb8\x60\xc9\xfe\x8d\x67\x44\x8c\xe3\xbc\x14\xcf\xbc\xaa\xed\x1b\xfd\xd1\x59\xae\x16\xab\xdb\x97\x09\x8e\x1e\xd7\x01\x74\xd4\xef\xb7\x34\xbb\x5a\x30\x0c\xa2\x4e\xca\xc2\x61\x0b\x5c\x22\xa9\xc0\x25\xda\x30\xc8\x92\xd6\x0e\x17\x0d\x83\x82\xe3\x81\x70\x6f\x6f\x22\x03\xea\x0c\x23\x47\x93\xbc\xb0\x72\x78\x98\xfc\xf8\x68\xc4\x3e\x9a\x3a\x13\xa0\x78\x98\x01\x44\x90\x83\x42\x3e\x67\x5c\x92\x52\x52\x54\x03\xf4\xbd\x4d\x6a\xb4\xc3\x68\x96\x49\x2b\x05\xdf\xb7\x12\x49\xdf\x1c\xf8\xb2\xbe\xe1\xf5\x29\x37\x53\xe0\x56\x52\x4f\x44\x33\xaa\x69\x67\xdc\x78\xd2\xd6\x9f\x7a\xd7\xca\x29\x45\x98\x11\x40\x20\xa9\x64\x71\x80\xfc\xf4\x2a\x04\x91\x90\x27\x02\x16\x5e\x18\x63\x58\xe0\xa0\x6c\x6a\x6a\x61\x27\xab\x0e\x50\x91\x91\x08\x6c\x01\xc5\xd5\x11\x94\xf3\xb6\x9a\x68\xb1\x9c\x91\xb2\x75\xf2\x54\x53\xac\xc4\x1a\x52\xe8\x20\x2c\xf4\xb0\x20\x0a\x91\xcf\x8a\xd8\x3a\x85\xf7\x2e\xbd\xad\x1e\x11\x8f\x9a\x33\x74\xda\x45\xa4\xdd\x53\x45\x6d\x22\x36\xa9\xd9\xe5\xef\xc5\xee\xde\xb7\xf9\x6c\x73\xcc\x62\x9b\xa4\x69\x65\x69\x2d\x53\xc0\xec\x8c\x1d\xc8\x87\xaf\xdb\x54\xc3\x00\x21\xdb\xb4\x69\xa0\xbc\xe1\x22\x73\x7a\x91\x96\xcc\xc1\xe3\xcf\x85\x16\x50\x73\xa6\x68\xa2\x89\xc3\x8e\x41\x6b\xcd\x39\xf3\x18\x75\x10\x6c\xdd\x06\x83\x46\xa5\xa4\x6c\x36\xb6\x2b\xe9\xf2\x0d\xbb\x5d\x0c\x65\x9a\xba\x34\x4d\x99\x1f\xbf\x77\x0d\x2d\xb7\xf3\x1a\xb2\x06\x88\x2a\x97\xe9\x08\x82\x35\xe3\x6e\x32\x16\x5b\xcc\x25\x48\x8e\x69\x6c\x96\x82\x9a\x72\xb8\x30\xd1\x75\x8c\x14\x20\xd6\xd5\xa1\x05\x8a\x2b\x44\xda\xec\x45\x93\x93\x04\xc1\xe3\xaa\x25\x3d\x53\xb6\xa6\x65\x9e\x33\x2f\xa2\xd9\x7a\x47\x3e\xf9\xbc\x92\xe1\x89\x5d\x77\x36\x42\x1e\x27\xc9\x04\x47\x8f\x5e\xd9\xf0\x2a\x37\x17\x0e\x2f\x5e\x0b\xa8\x50\x10\xcb\x10\x97\x1e\x68\x04\xd2\x4d\xe8\xc0\x32\xe0\x32\x76\xd8\x45\xe7\x66\xd5\x2c\x3a\x96\x41\x13\x32\xa3\x37\xe1\xf6\x31\xc9\x12\xbe\x48\x5b\xee\xb3\x6a\x56\xdb\x36\xc1\x23\x6d\x49\x75\x3b\xbd\xca\x2a\x4c\x6f\xed\xcb\xac\x96\x22\xb3\x03\xa8\xa3\x35\xb8\xe4\xa7\x84\x4f\xc0\xca\x67\xb5\x6c\x97\xf6\x11\x64\x1f\x54\xcf\xf3\xba\xc9\x28\xd5\x13\x49\x65\x96\xe0\xc5\xb2\x1e\x4c\x1a\xc4\xcb\xee\x9b\x49\x9b\x5f\x6d\x04\xeb\x1e\x40\xdc\xf8\xf9\x4b\x80\xd7\x5e\x38\x49\xc0\xbc\x6b\xf8\x57\xc5\x98\x64\xf2\xcf\x8e\x8c\xdf\x54\xf1\x11\x53\x78\xe6\x36\xd7\x0a\x97\xfc\x99\x11\x21\xe7\x34\x2b\x15\xca\xdb\x3a\x62\xd9\x52\xb4\xfd\x8f\x89\xcf\x5d\x83\x77\xf2\xec\xd0\x80\x66\x68\xfa\x90\x19\x8e\x0a\xe3\x5f\x94\x60\x29\xe9\x74\x11\x60\x5d\xf8\xe0\x4f\xc8\x28\x2a\x6b\xcb\x41\x6d\xaa\x26\x46\x63\xc6\xb7\x9b\x64\xef\xed\x13\xdd\x1e\xca\xc7\x8f\xc6\x21\xa8\x98\xbe\x4f\xea\xc0\x26\xee\xa6\xb6\x00\x27\xad\x20\xa4\x26\xab\x7d\xb3\xe4\xec\xa5\x78\x34\xed\x66\x84\x42\x98\xb4\xc3\xb6\x8a\x8c\xc7\xa0\x08\xf1\x59\x54\x29\xbb\x0f\x36\x5f\x2b\x4e\xce\xfc\xa9\x89\xd3\xe3\x57\x40\x9a\x7f\xf1\xf1\x01\x92\x5b\xe1\x3e\x75\xa1\x8b\x33\x92\x90\x9d\x04\x01\x6f\x40\x24\x55\x0f\x7b\x40\x1e\x4b\x49\xa3\xc0\x97\x5f\x6d\x5c\xd8\x20\x36\xb9\x05\x3d\xa6\x79\xe8\x3f\x9b\x81\xda\xf0\xe4\xa6\x5d\x04\xfb\x17\xac\x72\x57\xdd\xa5\x09\x86\xce\xb4\x60\x49\xae\xe8\xa6\x44\x57\x45\xa7\x5e\x5e\xd9\x47\x52\x7b\xe3\x28\xde\xda\xb8\x3e\x91\x2e\x11\x07\x2b\x0f\xc0\x46\x1c\xa8\xce\xa7\xbb\xd1\x85\xf5\x13\x2a\x8e\x66\x44\x99\x9a\xe4\xbe\xf0\xfa\x7b\xa2\x89\x9d\xe5\x20\xec\x68\xf5\x9b\x0f\xf9\x7a\xa7\xf6\x8e\x28\xe9\xae\x84\x1a\xb2\x9f\xdd\x9c\x3d\xdc\x82\xfd\x38\x96\x46\x70\xfd\xe2\xe5\x96\xad\xf3\xf6\xed\xc8\x6c\xf6\xfa\xef\x48\xa0\x32\x73\x8c\xed\x17\x3e\x53\xbd\x84\xd1\x84\x4b\xb8\x76\x66\x8d\xde\x9e\xeb\x55\x49\xfb\x4b\x17\xbd\xd6\xa7\xf1\xea\xa8\x0a\xea\xee\xe5\xc1\xf5\xe4\x41\x87\xfb\xb8\x87\x97\x7f\xdb\x31\xd8\xcf\xfb\x67\x0f\x84\xc3\xda\x95\xb8\x3b\x11\xf1\x1d\x91\xc9\x5e\x48\x8a\xb5\xad\x78\x2d\x79\xf1\xd0\x01\xef\x14\x30\x36\xfb\xbb\x45\xfb\x71\x92\x6f\xad\x1b\xe8\xe5\x2e\xd8\xd5\xf4\xb2\x13\xfa\x00\x0c\x4a\x0c\xa9\xba\xb9\x2d\x6a\x01\x87\x37\x08\x19\xab\xf9\x1e\x56\x04\xe3\xd9\xe1\x75\x0a\xc3\xab\x2d\xe7\x4b\x6c\xaf\xcd\xcb\xea\xbc\xb9\x2f\x49\x6a\xeb\x8e\x65\x17\x3a\xca\x0b\x7b\x71\x2c\x35\x06\x1f\xf4\x31\xb1\xdd\x6e\xd1\x06\xb4\x17\xb7\x65\xbb\x3c\x64\x4d\x15\xbf\xb6\xcf\x2c\x77\x69\x67\xe3\x4c\x90\x29\xfd\xbc\x91\x28\x7e\x03\x9f\x5a\xf5\x52\x2f\x73\xa5\x86\x18\xb8\x67\xa0\xe6\x58\x10\xb7\x67\x57\xda\xd6\x19\x1a\xb1\x22\x59\xcf\x66\xea\x3d\x92\x05\xe2\xa2\xf4\xd3\xa6\xb8\x84\xbb\xaf\x77\x66\xf6\x75\xae\x54\x26\x4f\x8e\x8f\x67\x54\xcd\xf3\xc9\x51\xc4\x53\x13\x6e\xce\xc5\xcc\xfc\x71\x4c\xa5\xcc\x89\x3c\xfe\xee\x8f\x7f\x2c\xb6\x78\x82\xa3\xc7\x99\x41\x7a\xa9\xfb\x9d\xca\x5b\x4e\xb0\xdc\x2e\xb2\xc7\x65\x55\xbd\x70\x76\x6d\xd0\x8d\xcb\x67\x2c\xca\xe8\x07\xd1\xa3\xa6\x62\x98\x54\xb8\xa8\x9f\x00\xa9\x72\x7a\x9a\x68\x8e\xb3\x8c\xb0\x76\xb3\x83\xc9\x7d\xdc\x82\xf5\xb8\xec\x49\x3b\x42\xf2\x39\x4b\x30\x2b\x23\x02\x40\x31\x20\x41\x22\xc2\x94\xcd\x56\x2f\x6a\x08\x03\x35\x1a\x54\x1a\xc3\xff\xd7\xcb\xdb\x80\x39\x52\x59\x54\xd3\x72\xc3\xb1\x95\x2d\x5d\xbd\x43\x1c\x2c\x5d\xb5\x9a\x68\xb1\x76\xc4\xad\xda\xb2\xbc\xb9\xbb\x7a\x4d\xe9\xf5\xab\xac\x08\xce\xc6\xe4\xb3\x66\x72\x72\x53\x0c\xa9\x07\x49\x24\x1a\xfc\x7c\x87\xe4\x82\x29\xfc\xf9\x04\x5d\x52\x06\x02\xec\x0f\x3c\x17\x12\x9d\xe1\xc5\x21\x9f\x1e\xa6\x9c\xa9\x39\xba\x84\xff\xb5\x3f\x3d\x13\xf2\x88\x7e\x21\x58\x58\xfe\x60\xab\x91\xf9\xc2\xd6\x9a\x84\x44\xce\x24\x22\x4f\xfa\x84\xfe\xf1\x3f\x50\x6a\x5a\x3e\x41\xdf\x1e\xff\xf1\x3f\xd0\x1f\xe0\xff\xff\xff\xe8\x0f\x2d\x9a\xfe\x7a\x28\x54\x50\xb3\xf6\xb6\xec\xce\x3d\xa8\xac\xd4\x06\x65\xbc\x4f\x05\x2f\x76\xaa\xb1\xe5\x47\x1a\x3d\xf2\xe9\x74\xac\x09\xc3\xe4\x96\x8d\xb1\xa8\x21\x18\x6f\x08\xe9\x49\x6d\xd1\x61\x41\x0d\xd2\xbd\x2b\x6b\x62\x3b\x35\x20\x04\x8e\x5d\xcb\xbc\x28\xba\x0a\x41\x44\xa5\x42\xb6\x54\xc2\x57\x24\xd6\x5c\x75\x9d\xd3\xe1\xac\x7b\x2e\x1f\xd9\x59\x70\x42\xd0\x8e\xb0\x90\xb6\x0f\xfc\x0b\xa3\x58\x4d\xa0\x8f\x5d\xc8\xc6\xe3\x50\x0b\xaf\xfd\x62\x62\x26\x61\x6a\x6f\x15\x2f\x29\x6b\x9d\xaf\x0e\x95\xbc\xe3\x62\x2b\x7d\xeb\x91\xd4\x62\xb6\x3b\x96\xf0\x71\xe5\x5b\xc3\x92\xee\x90\xb4\xcc\x85\x87\xd6\x35\x76\x11\x5b\xe8\x6f\xb5\x15\x93\x0a\x13\x5c\xd6\xed\xd0\xeb\xa9\x9f\xf9\x4f\x56\x0d\x13\x22\xcd\xdc\xdb\x45\x09\x33\x18\xad\x16\x91\x34\x4b\x6c\x18\x71\x03\xfe\xde\xaa\x0d\xbd\xf3\x90\x0b\xd0\x38\x84\x3d\x42\xca\x07\x73\x92\xad\xcd\x69\x6f\xde\xcf\x5c\x44\xe4\x94\x6f\x17\xf6\x9a\x50\x56\x8b\x97\xef\x5e\x1d\xc7\xaf\xde\x85\xad\x83\xe4\x20\x6a\x79\x5c\x28\x0b\xc6\x2d\x60\x0b\x23\x04\xd8\x98\xe5\xd9\x00\xc6\xda\x2e\xe0\x17\x6b\x70\xfd\x5b\x70\x6d\x63\x38\x2e\x18\x9e\xab\xf6\x50\x29\xf2\x20\xb0\xe6\x85\x1b\x22\x56\x9a\xb2\x3d\x07\x48\x60\x88\x83\x54\x73\xcc\x8c\x49\x61\x8a\x23\xca\x66\x07\x01\x58\x21\x00\x07\x84\x1c\xb8\x89\x2e\xee\xb1\x7c\xdc\x6d\x6c\xdf\xd6\x65\x0c\x69\x5c\x94\xd2\xb2\xf0\x22\xc6\x97\x40\x6b\x48\x6d\x0a\xcb\xc7\x36\x7c\x9d\x1a\xb8\xd7\x92\xd1\xf9\xa5\x70\x90\x60\xcb\xc6\xe7\x12\x91\x49\xa8\xc2\x00\x72\xbf\x2b\x60\x6b\xa1\xfe\x5c\x2e\x19\xf6\x58\x1c\x55\x8c\xcb\x25\xe3\x97\x73\x2e\xd4\x78\x43\x74\xd0\x6a\x32\x35\x23\x87\x09\xc0\x7a\xf0\x27\x22\x9e\x28\x79\x2e\x83\x6c\xae\x43\x8b\xc6\x4e\x15\x04\xb2\x01\x0a\x63\x9a\x71\xc8\x5a\x99\xa2\x14\xb3\x85\xe1\x4d\xfa\x3c\x63\xf9\x28\x7d\x39\x4f\x24\x53\x9c\x24\x07\x48\x90\x5c\x9a\x72\xb2\x92\x24\xd3\x43\x57\x10\x21\x46\x09\x9f\xd1\x08\x27\x68\x92\xf0\xe8\x51\x8e\x98\xbe\x9b\xd9\xcc\xf0\x85\x4c\xf0\x88\x48\x19\x08\x33\x45\x9e\xb4\xcd\x5e\x83\x5a\x9e\x8a\x88\x94\x32\x2a\x15\x8d\x9c\x94\x52\x40\x13\x98\xca\xcd\x11\x06\x2b\x2c\xe4\x02\xc2\x70\xb5\x70\x45\x0c\x44\x63\xce\x6c\xe9\x1c\xb8\x21\x2d\xf2\x9a\x8b\xcb\x6e\x3b\x40\x3b\x00\x92\x73\x14\x32\x56\xe5\x03\xb9\xe2\x48\x9d\xda\xcf\xe0\x18\x2f\x23\x81\xdb\xf2\x89\xf2\x04\xe9\x4f\x5a\x09\xdc\x06\xc2\xb8\x7d\xd4\x79\x49\x58\xf0\xc1\xd8\x7b\x86\x6b\x05\x43\x6e\x41\xb3\x5a\x45\xd3\x7a\x15\x41\xca\x80\x6a\x4d\x55\x47\x35\x65\x51\x92\xc7\xbe\x5e\x9f\xbe\x75\x9f\x34\x91\xb8\xe5\xd1\x6b\xaf\xef\xe6\x03\x84\x25\x7a\x26\x49\xa2\xff\x6b\x82\xce\x0f\x3d\x7c\xbe\x66\xc9\xa6\xc4\x01\x74\xe2\xb8\x74\x1b\x45\xed\x1d\x46\xe1\x0d\x56\x73\x93\x4d\x9e\x72\x65\x4a\x25\x1a\x8c\x42\x67\x52\x32\xa0\x76\x93\x84\x4f\xe0\xa4\x03\x7c\xa1\xcb\x46\x0d\x32\xd9\xf2\x28\x22\x24\x26\x31\xfa\x3a\x38\xb8\x1e\xe9\xe0\x9b\x66\x30\xbd\xd2\x8a\xec\x01\x74\x61\xd5\x96\xd5\x0a\x60\x58\xae\xf6\x75\x84\x6e\x2a\xf0\x1c\x61\xb5\x6c\x5c\x05\x6b\x3a\xa8\x6d\xe1\xdb\xc0\x1d\x56\x26\xf1\x72\x3b\xb4\x26\xdc\x61\xa9\xcf\x1d\xc0\x1d\x56\xe6\xd9\x12\x2e\xcf\x67\x2f\x9a\xe6\xab\x27\x75\xc1\xbb\xe7\x5e\x19\x98\x28\x73\x77\x96\x48\xd0\x1d\xc8\x45\x13\x21\xee\x17\x94\x63\xa5\x26\xde\xdb\x42\x39\x56\x06\xb3\xcf\x50\x8e\x95\xa1\xee\x2f\x94\x63\xc3\x40\x3b\x40\x39\x1a\x7f\xfa\x58\x13\x75\x37\xa6\x00\xb9\x24\x93\x7c\x7a\x07\xd9\xd5\x4b\xc7\x78\x6a\x7c\xf5\xe6\x1a\x73\x77\xb4\x45\x36\x86\xd1\xda\xb4\xc3\xb6\x08\xa4\x8a\xdd\x7f\x5d\xda\xf3\x0e\x2f\x2a\x8d\x86\xb6\x9e\xa5\xfb\x20\x34\x30\x83\xe9\x2f\xc2\x99\x4d\xe3\x6e\x2b\x38\xb2\x3f\x09\xab\xeb\xa1\x64\x02\x02\x5d\x89\xd5\x77\xc2\x8f\xba\xac\x60\xf6\xcf\xf9\xb3\xad\x9b\x03\xe4\x67\x88\xb1\x95\xf4\xa0\xd3\xb1\x55\xd6\xda\x56\x8c\x32\x45\x66\x55\x5d\xb6\x38\x2c\x94\xa9\x3f\x7d\xb7\x92\x03\x19\x80\x3d\xa7\x16\x06\xc8\xf9\xde\xaf\x60\x9f\x91\xd8\x16\xee\x97\x5a\x6d\xd1\xd3\x31\x37\xaa\x44\x29\xa6\x4e\x81\xca\xa5\xf1\xe2\x50\x39\x62\x25\x44\xca\x23\xf4\x11\xca\x81\xe2\x34\xd3\x7a\x97\x9f\x1f\xd5\x14\x34\xca\xbf\xfd\xf6\x4f\x04\x7d\x8b\x52\x82\x59\x49\x77\x05\x75\x49\x5f\x79\x80\xe0\xa6\xe6\x64\xc4\x1a\xb7\x02\x0d\x3f\x9b\x0a\x43\x2e\xb4\xee\x9c\x4d\xb9\xd3\x85\xa1\xcc\x1d\x8e\xe6\x48\xe6\x13\x53\xa7\x35\xb0\x5d\x38\x01\xfa\x82\xcf\xc0\x27\x0c\x37\xb1\x1b\xf4\xb2\xd3\xf7\xb2\xee\x76\xeb\xd9\xeb\x7a\x0b\x0f\xe0\xfe\x38\x94\xa4\x84\x16\xd4\xe0\x9f\x32\x1c\x2f\x3c\xf0\xd2\xc0\x82\x1e\x18\x73\xbd\xd6\xcb\xb0\x35\xa2\x6b\x19\x1a\x22\x67\xc1\x21\x95\x27\x58\xd8\x23\x3f\x62\x5a\xc1\x10\xe4\x89\xf2\x5c\x26\x0b\x14\x73\x46\x0e\x80\x12\xf2\x68\x6e\x7c\x98\x5a\x57\xc1\xb6\x5c\xc1\x13\x95\xb9\x56\x64\xa1\x2d\x57\x1d\x41\x2a\x6c\x50\x8e\xe6\x14\xfa\xd1\x6a\x37\x81\xaf\xc2\x84\x34\xd4\x4d\x7b\x0a\x41\x43\x2b\xbc\xbe\x23\x68\x68\x89\xaa\x7a\xd0\xd0\x66\xc6\xb7\xb7\xa0\xa1\x95\x3d\xef\x06\x1a\xda\xb4\xe5\x1b\x80\x86\x96\x9a\xf9\x62\x40\x43\x2b\x2b\xfa\xc5\x80\x86\x56\xe6\xd5\x83\x86\x7e\x21\xa0\xa1\xab\xf9\x48\x23\x2c\x66\xf3\xe1\x5d\x0f\x16\xb3\x51\xb5\x6d\x67\x11\xdb\x62\x10\x81\x20\xfd\xca\xb0\x98\xa5\x09\xf4\x21\x80\xeb\x87\x00\x36\x12\x9f\xed\x5b\x0f\xcf\xc5\x05\x56\x2f\xb2\x8e\xc0\x98\xa5\xfd\xe9\x14\x2c\x08\x22\xef\x0e\x28\xf1\x65\xa5\x60\xf0\x2a\x74\x97\x81\xc3\x55\x94\x16\x4e\x57\x4b\x46\x0e\xd0\xcc\x28\xad\xa1\x8b\xba\xa7\xdc\x0d\x82\x57\x2b\xcb\xeb\xfd\x10\x86\x16\x3b\x90\x6a\x67\x0a\x6d\x28\xb3\xbf\x05\xbd\xba\xfc\xbe\x35\x5d\xb2\x6e\x10\x77\x19\x89\x5a\x6c\xb2\x34\xa5\xbb\x6a\x76\xd5\x45\xe6\xe1\x9a\x40\x91\xad\xa5\x2e\xea\xeb\xc9\x0c\xc7\xc8\xc6\x95\x8c\x4d\xc0\x92\x30\x5f\xce\xa8\x54\xa2\x35\xfc\xa6\x36\xc2\x6d\x5c\x8b\x59\xde\x39\x66\x23\x58\xd5\xd9\x66\x9f\xa5\x24\xe5\x62\x55\xec\x4f\xe3\x97\xb6\x40\xc8\x26\x9f\x92\x6c\x4e\x52\x2d\x04\x8d\xd7\x6d\xa4\xeb\x7e\xfb\xbc\x56\x9b\x5e\x65\x62\xf1\x4a\x44\x10\x38\x0e\xf5\xbb\xb1\x01\x4d\xec\xbc\xdd\xdb\x6e\xb3\x85\x75\x5c\xd3\x81\xe2\x60\x6d\x97\x1b\xaa\xec\x4b\x25\xf7\x30\xd0\x77\x63\x0c\x84\x0f\x41\x59\x1d\xe5\xb0\x24\xbe\x61\x19\x34\x52\xf1\x95\x2d\x9f\xbb\x86\xeb\xbb\xec\xcd\xd6\x9c\x30\xac\x9d\xba\x7e\x40\x44\x0b\xb0\x67\x7d\x79\x20\x92\x45\x12\x71\x18\x4a\xd4\xa5\xc1\xd4\xd7\xab\x44\x25\x4e\x13\xdb\x82\x48\x72\xd1\x1a\x08\xd9\xc5\x00\x1c\xa9\x1c\x27\xa0\xe6\x85\x35\xff\xaa\x9b\x3a\x59\x34\x64\xe6\x75\xf3\x30\x50\xa6\xfe\xfc\xef\x6b\xed\xa6\x56\x49\xec\xba\x41\x9d\x22\x1c\x45\x44\x1a\x9b\xb4\x0d\x94\xc5\x13\xfe\x04\x25\x8a\xb6\xd9\x55\x7d\x94\xf5\xbc\x35\x83\xf7\x68\xb9\x71\x41\xea\x46\x5c\x98\x0b\x9e\xcf\xe6\xce\xf6\xa2\xcf\x8c\x9e\x5a\xd3\x5e\xfe\x54\xb3\x2d\xaf\xbd\x97\xdf\xe7\x34\xd9\xcc\xb2\x75\x57\x2a\xde\xf4\xe9\xfc\x1e\xc9\xb9\x3f\xad\x13\x68\xb6\x71\x63\xeb\x83\xee\xde\xa7\xfd\xd6\xfb\x37\xa0\x9b\x03\x87\x10\x39\xe5\x49\x02\x16\x7a\x49\xd2\xa7\xb0\xe6\x7a\xd8\x3d\x4c\xf8\x9e\xae\x07\xee\xe6\x07\x00\x5f\x17\xb1\xfb\x9d\xe4\xaf\x1b\x23\x1a\x4a\xe4\x46\x5f\x75\xf2\x9b\xd0\x2e\xce\x08\x6b\xb2\x4d\xfd\x5c\xaf\x9b\xf1\xce\x02\xec\x5c\xb4\xd5\xce\x82\xec\xdc\x92\xbc\x72\xa0\xdd\x8a\x79\xec\x6b\xb0\x5d\x85\xd9\xf9\xd8\xb7\xe2\x9a\x71\x81\x36\x46\xf1\x19\xe8\x25\x1e\xb1\x41\x29\xe4\xdf\xd5\x17\x9e\x2c\x8a\x98\x61\xa3\x43\x84\xcc\x0c\x2a\x1e\x58\xc3\x0a\xb8\x9f\xf4\x5f\xa0\xe9\x18\x7c\x55\x13\x82\xe7\xc2\xec\x20\xe0\x99\xc4\x87\x38\x5a\x44\x09\x8d\x02\x9d\x79\x26\x70\x36\x6f\xe2\x78\x6e\xe7\x7b\x60\x98\xb7\x02\x86\x69\x2b\xe3\xb3\x4e\x88\xb3\xa3\x2b\x86\x53\xd2\x03\xd6\x34\x01\xd6\x1c\x78\x48\x06\x56\x14\x24\x7a\xc3\x4c\xff\xfa\xb9\xeb\x51\x6b\xde\x00\xb5\x66\x93\xc3\x57\x40\xd2\x94\x8e\x5d\x8f\xa4\xf3\xa1\x13\x92\x8e\xbf\x04\xf7\x0a\x1c\xa5\xfd\x3c\xbe\x31\xe8\x46\x7d\x60\x6f\x89\x9c\xd3\x20\x2e\xac\x23\x37\x2d\x83\xce\x59\x46\x17\x9d\xd6\xe5\x6d\x81\x6c\xd6\x5b\x99\xb5\x30\x6a\x1a\xef\xae\x3d\x41\xac\x69\xdf\x86\x3d\x39\x37\xbb\xcc\x02\x59\xaf\xe2\x62\x98\x09\xb2\x8e\x82\xb5\x5e\x52\x88\xa7\x87\xf7\x95\x18\x52\x94\xbb\xda\x2c\x39\x64\xe0\x7c\xd0\x44\xa0\x39\x4f\x62\x87\x93\xe0\x57\xcb\x77\xe0\x23\xe7\xfd\x02\xb9\xcd\x80\x12\xd1\xa0\x6d\x15\x35\xab\x96\xa5\x80\xf8\x4d\x84\xe1\xee\x80\xd1\xec\xc2\x8a\xe0\x39\xc9\x26\xf6\x83\x95\xb2\x88\x2c\x9b\xbf\x97\x8c\xb1\xb4\x42\x60\x35\x6f\x1e\xe6\x4a\xbb\xef\x8a\xc1\x2d\x13\x3d\x02\xe3\xa0\x68\x2a\xba\x68\xe8\x0c\x9e\x3e\x51\x67\x88\xc0\x61\x8f\x4b\xbd\x74\x6e\x76\x9d\x3c\x75\x55\x62\xd9\x20\x88\xaa\x56\x5c\x6c\x7b\xfc\x9a\x14\x7f\x1e\x67\x58\xe0\x24\x21\x09\x95\xe9\x8b\x05\xd1\x9e\x96\xdd\xb5\xfa\xac\x0a\x6e\x4c\x44\x2c\x4f\x27\x86\x14\xdd\x40\x6c\x49\x43\xc5\x91\xc8\x59\x88\xbe\xf5\x5c\xab\xd1\x9e\xc3\xbd\x00\x56\xa5\x68\x0e\xf5\x33\xa7\x98\x0a\x46\x64\x6b\xb5\x42\x12\xe5\x82\xaa\xc5\xd8\x16\x7f\xec\x7e\xe0\xee\xec\x97\xa7\xf6\xc3\xe5\x1e\x6e\x97\x78\xee\xfa\xf3\xc5\x26\x33\x22\xa0\x92\x8d\xab\xc9\x12\x14\xb8\xb4\xc0\x02\xc4\x97\xc3\x81\xb0\xe1\xda\xb5\xdd\x16\x70\x8b\x9f\xc7\x41\x06\xd2\x38\xaa\x12\xc7\xaa\xc3\xda\x04\x8d\xb4\x6c\x92\x2f\x0c\x0e\xd4\xe2\x45\x7e\x81\x42\x18\x36\xcd\xc0\x34\xad\x07\x1c\xb8\x82\xc1\x5e\x59\x6c\x4c\x90\x1f\x6e\x95\xaa\x96\x71\x5a\x38\x9a\xa6\xe0\xa3\x25\x83\x1d\x04\x5f\x75\x18\x71\xd0\xc9\x8e\x86\xad\x0f\xba\x10\x79\xa6\xe8\xa4\x8e\xbe\xa2\x76\x57\x18\x73\x90\x40\x5a\xb2\x73\x33\x94\xba\x35\xd5\x32\x4b\x9c\xd8\xce\x4e\xcb\xff\x16\xea\xca\x81\xd8\x18\x10\xa0\x30\xef\xed\x3a\xa5\x4a\xb9\x00\x7b\x63\x80\xd6\xd4\x59\xb6\xcd\x7e\xe5\xc2\x3d\x30\xd4\xdc\x34\x26\xa2\xa3\x11\x1b\x48\xf4\x4c\x10\x23\x16\xe5\xa0\xa1\x9a\xa6\xb7\x6a\x43\x79\xa2\x09\xd1\x3d\xf9\xd8\x14\x2d\x3c\x50\x25\x7d\x85\x2c\xd3\xc7\x14\x27\x92\x1c\xe8\x86\xa1\xb0\xa6\xe2\x10\x34\x89\xd1\xb3\xc0\x59\x46\xc4\x88\xd9\xec\x07\x70\xb8\x70\x9e\x98\xf6\xdb\x42\x43\xed\x1a\x90\x71\x84\xa3\xf9\x2b\xed\x11\x86\xe4\x95\x68\x4e\x62\x97\x5f\x5b\xde\x1e\x37\x6f\x63\xb0\x5e\x63\xb3\xce\xa7\xae\xc2\xd3\x81\xed\x24\x89\x34\x47\xf1\x05\x7f\x33\x22\xf4\xa8\x35\x0d\x3f\x11\x86\xe8\xd4\x8d\xc3\xc6\xee\xa0\x67\xf0\x4c\x69\xd2\x7f\xc2\x34\x31\x09\xeb\xae\x6b\x27\x04\x1a\xf3\xfb\x88\x19\x77\x37\x8b\x4a\x19\x9d\x94\x51\x39\xd7\x9c\x3a\x07\x9f\x24\xa8\x19\x6b\x49\x9e\x71\x2c\xcb\x46\x46\xa3\xbe\xd1\xdf\x4a\xe6\x8d\xc3\x52\xb6\x5a\x14\x20\xcc\x40\xb0\xa4\x2b\x32\xb5\x4c\xce\xec\x43\xef\xeb\xa1\xf7\xcd\x6b\xb3\x8f\xe1\xf7\xfe\xb0\xac\x1b\x82\xdf\xb6\xfd\xbb\x90\x20\x77\x18\x8a\xff\xc6\x31\xeb\x2f\x13\xae\xfe\xb6\xf9\x05\x2f\x91\x5a\xd0\x07\xe0\xbf\xbf\x00\xfc\xf6\x63\xbb\x56\x10\xfe\x0a\x90\xa1\xa6\x5e\x2e\x89\x12\x34\x92\xbb\xe0\x0f\x32\xc3\x1d\xa3\xc7\x40\xdb\xca\x56\x48\x27\xfa\x05\xef\xec\x83\x78\x2c\x5f\xf2\x6d\x22\x08\x7e\x8c\xf9\x73\xcd\x26\x26\x43\x94\x87\x4b\xad\xaf\xeb\xc3\x44\x25\x29\x45\x8c\x50\x89\x18\x91\xd6\xa8\x88\x47\x6c\x4e\x89\xc0\x22\x9a\x43\xf6\x5d\xb1\x31\x26\x8b\xd3\x00\xed\x98\x98\x81\xd0\xab\xb3\xc6\xa6\x77\x58\xf7\xaa\x25\xc7\x43\x95\xd9\x3d\xd7\x23\x49\xcd\x27\x5e\xa6\xb6\x52\x46\x68\xfa\xea\xb4\xfd\xdb\x06\xbc\xfb\xc5\x7e\xd1\xa0\x77\x1f\xb4\x13\x7c\xd1\x31\xf0\xbd\xa0\x86\x3e\xf8\xfd\x85\x82\xdf\x1b\x96\x78\xbd\x00\xf8\x8d\x4c\x6b\xaf\x1f\x9b\xeb\x7a\x7e\x8d\xf8\xdc\x55\xc1\x51\xf9\x64\xfc\xe2\x47\xaf\x71\xce\x5d\x4f\xe0\xcf\x9e\x28\x8c\x44\x2c\x34\x9d\x4d\x48\x1c\x03\xa7\x55\xdc\x16\x0d\x2e\x68\xc7\xa9\xe1\xfa\xee\xc5\x52\x13\x3b\x4e\x38\x9b\x49\x1a\x1b\x10\x90\x0c\x43\xf1\xce\xd0\x48\x00\xc9\xef\xb0\xbf\x49\x42\x84\xb3\xfe\x0b\xf4\xb5\xa4\x5a\xed\x0b\x3c\x02\x02\xc5\x9c\x48\xf6\x95\x32\x4a\x39\x66\x0b\xf4\xc8\xf8\x73\x42\xe2\x19\xec\x50\x75\x30\x87\x88\x92\x03\x44\x95\xff\x4c\x40\xb6\x3c\xcf\xd5\x48\x8f\x1d\x62\xba\x8c\x06\x40\xec\xb7\x41\x79\x6c\xdf\xcc\x37\x47\x08\x9d\x33\x34\xc5\x91\x3a\x40\x32\x9f\x14\xed\xc7\xdc\xd4\x3b\xd6\x5a\x6e\x30\xf1\xa2\x91\x3e\x36\xbb\xa1\xf3\xe6\xb3\xe1\xb8\x83\x26\xd7\x41\x42\xf1\x56\x31\x6c\x4f\x78\x1b\xb4\xc9\xcb\x5c\xda\x60\x07\xc4\x99\x3f\xfa\x16\xf6\xc7\xc3\x05\x43\x91\x5a\x03\xbd\xcb\x78\xdc\x6a\x53\xac\x4c\x65\xdd\xb1\x14\x01\x87\x56\x50\xb2\x0e\x21\x68\xd7\x2c\xb7\x96\x9a\xa4\x12\x04\xa7\xd6\x08\xaf\xaf\x1a\x10\x6b\x4c\xb8\xa1\x1e\x3d\x15\x46\xc2\x5c\x67\x8b\x2f\x28\x7b\xd4\xbb\x5b\x00\x24\x43\xa9\x71\xe8\xb9\x69\xd3\x32\x7d\xe3\x91\x53\xce\x8c\x23\x6e\x2b\xb9\x93\xce\x18\x4e\xd6\xb4\x71\xd4\x56\xae\xee\x3b\x73\x72\x96\x15\x17\xb4\x14\x61\x8c\x6a\xc8\xf4\xb8\x96\x0d\xa9\x32\xdf\x50\xde\xc3\x28\x26\x19\x61\x31\x61\xd1\x02\x48\x84\x01\xa2\x8b\x60\x38\x41\x18\xbe\xc3\xc9\x11\x3a\x33\x79\x2c\x5e\xc2\xb3\xd7\x3a\x5c\xe8\x29\x66\x74\xaa\xf5\x04\x30\x76\xda\x51\x8e\x98\x19\xa6\xf3\x35\x04\xf5\xdb\xfd\x8a\x35\xec\xcc\xf7\x94\xe1\x52\xe2\xd0\x06\xe7\x29\xc9\xd7\x8a\x0d\x0f\xac\x96\x8b\x36\xd4\x70\x85\x57\x01\x79\xaf\xb1\x19\x48\x42\xe5\x7b\xa4\xbb\x43\x70\x65\x7a\x4c\x79\x0c\x0e\x8d\x39\x49\xb2\xa0\x7a\x74\x86\x85\xf2\x78\x22\x06\xfa\x55\xdf\x32\x69\xce\x0c\x36\x8c\x31\x34\x3d\x5b\x78\x4d\xeb\xcb\x2a\x1a\x3f\x1a\xb1\x73\xf5\x95\xd4\x9c\x8f\xb3\x59\xb2\x40\x38\x7e\xa2\xb2\x80\x11\x8f\x38\x93\x79\x4a\x84\xed\x82\x4a\x13\xab\x65\x21\x78\xb1\x23\x4d\x3d\x36\xad\xf2\x3d\xe1\x84\xc6\x0e\xea\x5e\xff\x38\x21\x53\x50\x75\xb0\x90\xce\x20\xda\xe0\xd1\xb6\x9b\x1b\xeb\xb5\x7a\x33\x6e\xf9\x53\xc8\x10\x51\x5a\xf0\x4e\x6c\x4d\x20\xc7\x55\xce\x69\x57\x7d\x09\xd7\x9c\xd4\x26\x85\x96\x0b\x38\x76\x15\xce\x56\x81\x17\x39\x00\xbd\xdc\x44\x30\xe9\x7e\x9c\x2c\x6d\x06\xb7\x16\x07\xa8\x4c\xd0\x8e\xda\xd8\xd9\x43\xae\x49\x28\x08\x17\x52\x61\x45\x23\x2b\xb6\x73\x61\x2f\x0e\x7b\xb1\xb4\x6f\xed\xd9\x96\x40\xcc\x32\xc2\x49\x7d\x87\x97\xa8\xf1\xe6\xfd\xe5\xbc\xd5\x1e\x37\xd3\xf6\xd2\x9c\xa5\x88\x27\xc9\x3a\x20\xe1\x95\x99\x9f\x16\x9f\x2f\x1f\x51\xd1\x8f\xde\x00\xb7\x17\x70\x6a\x8c\xeb\x19\x27\x56\x42\x95\xca\xee\x52\xf8\x92\xb9\xdd\x16\xd6\xb5\x3d\x62\x7c\x6a\x6a\x04\xb7\x39\xa5\x33\xc1\x53\xba\x0e\xa8\xa2\xf1\xd3\xde\x3a\x73\xc3\x0a\xe1\xcd\x19\x25\xf4\x29\xb2\xe4\x65\x7b\x84\x74\x03\xcc\x8c\xbc\xba\xe4\x0c\xa5\x38\xdb\x68\xc1\x57\x19\xdb\x06\x28\x35\x96\x4e\xbb\x7a\x00\xb3\x44\x00\x91\x1d\x16\xf9\x19\x2f\x8a\xcc\xae\x36\xb8\x3c\xb6\x16\x39\x3c\xe8\xd7\xcf\xd9\x94\xaf\x71\x38\x8b\x4c\x2c\x7b\xfa\xb0\xa3\xd9\xe0\xfc\x79\xe3\x8f\xd9\x7d\xb3\xa6\x5d\xce\xe3\x69\x13\x51\xaf\x7d\x32\xdd\x0a\xbe\xa4\xea\x17\x32\x91\x50\xeb\x5b\xe7\x6e\x2d\x1f\xad\xa0\x45\x04\xc3\x59\xbe\x54\x97\x25\x3a\xdc\xf9\x1a\x55\xda\x41\xc6\xc2\xe0\x62\xc1\x6e\x9a\x5b\x7d\x85\x35\xb3\x87\xa4\xd3\x62\x6d\x99\x7a\xba\x1e\xec\x9f\xeb\xd1\x83\xfd\x35\x9f\xd0\x95\x98\xc6\xeb\xe8\x8a\x53\x2d\x09\x19\xf5\xa1\x08\x2c\xb1\x11\xf6\x53\x9a\x10\x79\x84\xce\x1b\xf4\x46\x17\xdf\xee\xfd\xc1\x26\xd2\xcf\x49\x4f\xb9\xa0\x41\xe9\x2d\x27\x23\x21\x0a\x78\xe4\xa1\xed\x4c\x10\x3d\xe6\xc8\xb8\x6e\xb9\xc1\xf8\x83\xe0\x3a\x41\x35\xcf\x32\xc2\xaa\x02\x29\x5a\xf3\x02\x6a\xd1\x05\x8c\x0c\xef\x3f\xe0\x26\xe4\x01\xdb\xea\x82\xc5\xa8\x5a\xb6\x74\x17\x45\x14\xba\xa7\x0f\xb8\x5e\xef\xf5\x17\xf5\xbd\x69\x1c\xe1\x7d\xb9\xf5\xb5\x47\xe7\xa5\xfc\xf5\xfd\xd0\x1f\xe1\x53\x67\x15\xc5\x68\x2a\x08\xf8\x4d\x52\x9f\x12\x6c\xb0\xf4\x38\x87\xfb\xee\xee\xec\xc7\xe3\x87\x73\x44\x54\x84\x12\xfa\x48\x46\x2c\x92\x4f\x07\x5a\x3c\xfe\x7b\x4e\x94\xfe\xb9\xc5\xd0\x42\x53\xc2\x24\x70\x02\xaa\x6a\xd0\x09\xcd\x0b\xe9\x16\x46\xff\xf7\xac\xfc\xfd\x12\x92\xaf\x65\x3f\x01\xed\x3a\x78\x7b\x20\x53\x40\xf0\x36\x4b\x2b\x1b\x28\xc6\xa8\x78\xc3\xa6\x7a\x53\x1b\x44\x3b\xb3\xbf\xe5\x6c\x4d\xa1\xeb\xb4\xf8\x28\x18\x45\x8b\x4c\x97\x66\x18\x20\x2e\xd7\x0b\xa3\x36\xdf\x34\xb6\xbe\x8a\x89\x14\x59\x65\x4e\x65\x2f\x4a\x73\x21\x25\x08\x01\x16\xe2\xe9\xc9\xde\xf5\x36\x91\xd8\x4f\x2c\xf8\xe8\x68\xc4\x2e\x9d\x21\xbf\xf8\x55\xba\x26\x4c\x68\xbe\x47\xfe\x2c\xb7\x02\xcd\xc6\x54\xfa\x1f\x00\xbf\x5d\xe6\x89\x32\x35\x63\xa6\x54\x6b\xe9\x6e\xa0\xe6\x49\x13\x97\x10\x98\x45\xf3\xab\x2d\x4b\xc7\xd0\xe9\x98\x24\xeb\x48\xa2\xe7\xd3\x61\x22\x35\x7d\x47\x8f\x2d\xa7\x73\x93\xaa\x48\xc5\x64\x6c\xad\x37\x53\xe6\xc1\xe8\x38\xc6\x7a\x9c\x98\x9a\x2d\x04\x81\xe9\xb7\x1a\xfc\x6e\xf2\x5b\xf5\x2e\x5a\x49\xdd\x58\x7e\x4d\xd4\xa9\x8f\x28\x83\x5e\x10\x56\x23\x26\x72\x06\xd8\xd2\xde\x11\x84\x51\x01\x13\x1a\x39\xb3\x8c\x35\x92\xcd\x34\x9b\x30\x28\x9c\xe6\x65\xad\x9f\xf1\x5c\x42\x00\x6b\x4a\x94\xbe\xa0\xbe\x86\x4a\x6b\xc6\x13\x7b\x80\x32\x41\x53\xaa\xe8\x13\x91\xdf\x34\x6c\xdd\x29\x56\x38\xe1\xb3\x81\x50\x74\x8a\x23\x75\x8f\xb7\xd2\xc0\xb1\x6d\x66\xd3\xa8\x1e\x37\x0c\x74\x7e\xa6\x17\x7f\x46\x18\x11\x30\x51\xad\x93\x37\x1f\x61\x78\xb2\x11\xe7\x06\xef\x69\x64\x0a\x3b\x48\x6f\xb1\xc0\xb9\xe2\xa9\xd6\x6f\x71\x92\x2c\xa0\x60\x83\x7e\x32\xc7\x72\xee\x36\xda\x44\xa1\x75\xb9\x9b\xec\xe2\x9e\xe2\x68\x4e\xee\xa0\xee\x60\xd3\xe2\x56\x46\xf9\x81\xb0\x3c\xfd\x70\x82\xfe\xbb\x98\xe3\xe9\xe0\xf4\x87\xe1\xf8\xec\xfc\x6e\xf0\xfd\xc5\xf0\x2c\x98\x8f\x7d\x72\x79\x7e\x77\x57\xff\xf5\x87\xf3\xfb\xfa\x8f\x37\xd7\x37\x0f\x17\x83\xfb\xa6\x56\x2e\xae\xaf\x7f\x7c\xb8\x19\x7f\x1c\x9c\x5f\x3c\xdc\x0e\x1b\x3e\x7d\xb8\x6f\x7f\x78\xf7\xe3\xf9\xcd\xcd\xf0\xcc\xad\xca\xff\x04\xa7\x0b\xa2\xd3\x20\x72\xb4\x79\x1a\xd5\x03\x78\x88\xca\x2f\x9e\xa0\x87\x2a\xe2\xb1\x0d\xf1\x32\x69\xb8\xcf\x58\x6a\x1e\x06\x91\x7c\x23\x86\xdc\xe7\x7a\x51\xda\x3e\x35\x5e\xd0\x68\x4e\x50\xc2\xf9\x63\x9e\x59\xd6\x66\xdc\xee\x8c\x1b\xc3\x0f\x91\x41\x6b\x3f\x9c\xdf\x9f\xd4\x91\x97\x7d\x63\x01\xe0\x87\x3b\x03\x30\x2e\xec\xd8\x29\xd8\x52\x1c\x22\x6f\x61\x2a\x0d\x7a\xf0\x3b\xb3\xac\x1f\xd3\x1a\x66\xaa\xd2\x4d\x1c\xdb\xb2\x7a\x6e\x62\x41\xc3\xe5\x7d\x5d\xb6\x9a\x7e\x39\x4c\xa9\x09\x34\x21\x11\xce\x8d\xaf\x58\xdf\x53\x42\x70\x11\x0e\xb8\xa0\x87\xdd\x35\x6a\xe9\xa8\xb1\xc1\xca\x9e\xe9\x89\xcb\x47\x9a\x65\x24\xfe\x50\x97\x5f\xca\xf5\xd7\x6c\xd5\x4f\x3e\x45\xc1\x99\xd4\x7a\x3d\xe8\xfc\x0e\x27\x7d\x6e\xeb\x59\x50\x69\xfc\x61\x85\x87\x10\x70\x28\xf5\x9d\xe0\xf1\xac\x29\x78\xaf\xb1\x42\xcf\x04\x32\xc2\x72\x5b\x28\xc2\xe8\xde\xfa\x6c\x43\x77\xc6\x93\xe1\xca\xbe\x94\x32\xc5\x5a\x99\xf1\x2e\x04\x6e\xfd\xbd\x24\x4d\x8c\x78\x8b\xb4\x9e\x33\xd3\x28\x70\x67\x17\x4a\x00\x23\x6e\xf1\x19\xb9\xdb\xa0\xc1\x42\xbe\x44\xbe\xaa\xdf\x48\x2b\x2e\x0b\xcd\xb6\xbb\x8c\xc7\xa5\x32\x97\xf0\x39\xbb\x0f\xac\x84\xe1\xb8\x72\xad\xee\x79\x8c\x17\x9a\x38\x20\x84\x4b\xe6\x59\xc6\x85\x42\x2d\x6d\x18\xef\x88\x19\x1f\xdc\x39\x76\x1e\x9e\xc7\x41\x23\x5a\xc2\x90\x0d\x10\xda\xdd\xb2\x3b\xed\xba\x16\x8c\x23\x8c\x3b\x02\x45\xd0\x97\x39\x48\x4b\x2a\x75\x89\x42\x9b\x84\xdf\x6d\x02\x37\x33\x7d\xc1\x77\xad\xba\xd3\xd4\xfb\xb5\x6b\xa1\x71\xcb\x13\x32\x55\xe3\x46\xaf\xcf\x12\x03\xa7\x6e\x91\xb5\x25\xc4\xd3\xd9\x7c\x07\x2d\x76\xd7\x12\xbe\xb3\xfe\x52\xad\x1a\x04\x16\x02\xc1\xb9\x32\xf2\x69\xa1\xc3\x20\xb7\x9a\x60\x5e\xb0\x9d\xda\x50\x76\x2f\x04\x6a\x99\xff\x91\xf1\x67\xe6\x2d\xfb\xf2\x68\xc4\x86\x18\xea\x12\x7a\x45\xc4\x45\xb8\x83\x16\xb0\x52\xfe\x2f\xd5\x18\x7b\xd5\x20\x98\x76\x80\xba\x82\xee\x6d\x45\xda\x64\x81\x8a\x3a\x72\xa5\xef\xba\x9c\x1e\x63\xf5\x76\x22\xa0\x99\xb0\x2d\x94\xaa\x48\x66\x2d\xf3\x66\x9e\x85\x03\x15\xdc\xee\xba\xab\x23\xf4\xb3\xb3\xfc\x40\x3c\x51\x51\x82\xd1\x16\xd0\x4e\xf0\xc2\x61\x5a\x35\x2d\xec\x2e\x60\xa2\x76\x1d\x61\xb4\x7c\x81\x3d\x1e\x45\xc3\x2a\x97\x14\x70\xc6\x8c\x45\x76\x8d\x68\xda\x53\xff\xd1\x1d\x59\x1e\x6e\xff\x11\xaa\x6e\x59\x87\x35\x08\x1d\x2c\x59\xfc\x2f\xb3\x59\x26\x91\xc6\xd5\xd3\xb0\x55\x90\xac\x07\x55\x9f\x1f\xf0\x00\x9a\x3c\x1b\x34\xa5\x49\x02\x72\xc0\x11\x1a\x40\x35\x40\xc8\x43\xd1\x57\xa1\x8b\x5a\xa3\x33\xc6\x57\x85\xee\xb7\x10\x53\x14\x10\xd3\x5d\x3b\x31\x49\xa0\xa6\x22\x0d\x71\x37\x14\xb5\x83\x94\x74\xcd\x5b\x70\x1d\xd0\xb3\x7b\x22\xfa\x1a\xca\xfb\x5b\x04\x9d\xd5\x86\x1b\x7c\xf8\xcf\xe6\xa1\x7f\xca\xb1\xc0\x4c\x41\x28\x95\x15\xdd\x05\x09\x22\xba\xc9\x67\x08\x56\x64\xc6\x10\x0c\x3f\x85\x9b\xeb\x5c\xfe\x33\x0a\x79\x47\xf1\x01\xa2\x47\xe4\xe8\xc0\xd6\x48\x97\xf9\xa4\x78\x73\xae\x25\x87\x11\xab\x85\x88\x1c\xa1\x41\x22\xb9\xfd\x82\xb0\x28\x81\xea\x9b\x41\xd4\x97\xa7\x7c\xeb\x56\x9a\x2c\x40\x41\x81\xad\x2c\x9a\xe7\xf6\x41\xf0\x21\xd4\x16\x01\x9f\x78\x02\x27\xbd\xf8\xbd\xa9\x64\x71\x29\x4e\xe2\x05\xd1\xa8\x6b\xd7\xd0\x8b\x6d\x92\xa9\x10\xb4\x6c\x83\xe0\x0d\xd8\x98\x22\x74\x27\x48\x20\x47\x5f\x63\x85\x12\x82\xa5\x42\x7f\xfc\x66\xad\xd8\x10\x37\xc1\x82\xbb\xda\xe3\x5b\xc4\xdf\xbb\x08\xce\xb6\xba\xeb\x50\xc1\x0d\x61\xc4\xc8\x73\x18\xb0\xc3\x21\xc6\xca\xd5\x81\x21\x41\xca\x90\x29\x49\x69\x12\x0b\x21\x08\xd6\xa8\x4c\x2d\x7c\xc4\xa1\x35\x5a\xf7\xa9\x1d\x56\x03\x65\x59\xe5\x89\x1a\xf5\x0c\x10\x45\x8a\x58\xca\x39\x56\x23\x66\x39\xab\x0b\x1b\x09\xa2\xe7\x07\x49\x52\x8e\x5f\xc4\x10\xa2\xcb\xf4\x84\xa1\x1c\xeb\x91\x5f\xa0\x2b\x50\xbf\x7c\x10\x59\xb9\xd6\xbd\x3f\x2c\x5a\x53\x1b\x31\x0f\xd7\x10\xb6\xdd\x28\xed\x34\xd9\x97\x5f\x51\x08\x6e\xe8\xfe\xc2\xd4\xc5\xed\x20\x0c\x93\xa6\x21\xaf\x38\x58\x75\x9b\xfe\x12\xd9\x78\xd7\x1d\x74\x17\x95\x9b\xed\xe3\x70\xcd\x3e\xf3\x06\x73\x7b\xcb\xe6\x06\xb2\xc5\x36\x0a\xb8\x8f\x66\x7c\x2d\x8f\x6f\x69\xe8\xe7\x31\xe4\x52\xac\xe6\x82\x45\x6e\x82\x63\x1d\x60\xe8\xa6\x71\x10\x2a\x1d\x44\x66\x42\x28\xbd\x63\x7c\xf6\xcd\x16\xcf\x6b\xf6\xbe\xa7\x7f\x50\xcc\xdf\x4d\xc5\x07\xc1\xd5\x27\xde\x2e\xec\x0d\xe2\xbf\xe1\x08\x02\x28\xa1\x27\x17\xba\x59\xc7\x93\x70\x28\x9c\x18\x8c\xf9\x8d\xe2\xa1\x2d\x71\x7d\x84\x86\x70\xd1\xb8\x8a\xd7\x78\xea\x1c\x12\xc1\xcb\x23\xa6\x35\x13\x97\x7e\x1e\xb4\x5f\x26\xf1\xa6\x13\x60\xb0\x6c\xb6\xf2\xe5\xa4\xab\x21\xd6\xdb\xb4\x09\x07\xa5\x03\x6d\x00\x2a\x33\x1a\xce\x4e\x50\xcc\xa3\x47\x22\x8e\x05\x89\xa9\x3c\x01\xdf\xba\x6a\x75\xea\xa5\x5a\xdb\xde\x5a\xd2\x68\x0b\x14\x58\x91\x6b\x70\x6a\xfa\xb7\x41\xf4\xae\x8e\xe0\x01\xa2\x53\x50\x27\x5c\xa8\xab\x49\xb2\x71\xd9\xfa\x84\x29\xb1\xc8\x38\x65\xca\x9b\xb2\x2a\x0b\xe1\x34\x0d\x2d\xb4\xb5\x05\x69\x8b\x5d\xc4\xe0\x6c\x38\xed\xfb\x39\x91\xc4\x05\x1c\x98\x49\x29\x6e\x73\xd4\x0c\xbb\xc8\xb0\x9a\x4b\xc8\x08\x2a\xaf\x81\x55\xba\xe0\x53\xbd\x42\x38\x83\x78\x05\x63\xa5\x28\x3e\xf2\x79\x2b\x52\xd1\x24\x19\x31\x46\x48\x2c\x11\x24\xef\x7c\xd5\x98\x78\xa8\x3f\x3d\x40\x38\x8e\xd1\xff\xfe\xfa\xe3\xc5\x2f\xf7\xc3\xf1\xf9\x15\x18\xad\xcf\x2f\x86\xdf\x1c\xf8\x1f\xaf\x1f\xee\xfd\xaf\xc6\xc2\xf2\x44\x04\x4a\xf1\x23\xa8\x78\x4c\x1a\xf9\x0f\xb2\x3b\xc2\x91\xba\x94\x4c\xfd\x44\x12\x17\xe9\x6a\xc5\x14\x8f\x00\x65\xf7\xb0\xb5\x50\xa1\xb1\xf9\xad\xa1\xfc\xde\xfa\x4f\x96\xd3\xa0\x23\x1e\xdf\x85\x13\x03\x53\xc2\x20\x1a\xbb\xc8\xd1\xb3\xba\x6f\x41\x70\x84\xcd\x28\x6b\x8b\xc7\x23\xec\xe9\x25\x85\xf8\x1f\xc9\xe2\x27\xad\x5e\xdf\x60\x2a\x3a\xd3\xde\x90\x3d\x51\xc1\x19\x4c\xcd\x9b\xb5\xfc\x89\xd1\x7a\x3a\x96\xd5\x43\x25\x8d\x2c\x0c\x31\x1a\x59\x6b\xcc\x67\x13\x8e\xcd\x9b\x4f\xd7\xa2\x63\x90\xcf\x4a\xb8\xe4\x5f\x0f\xc2\xe2\x90\x28\xfc\x45\x53\xd0\xe0\x88\xdd\x5f\x9f\x5d\x9f\x20\x92\xe0\x09\x17\x90\x0d\x66\x42\x82\x5c\x13\x76\xc1\x22\x9e\x06\x0d\x95\x12\xbf\x0f\x50\x56\x24\x7e\x87\x46\xb4\x23\xd3\xc6\xaa\xfa\xdd\x5c\xd4\xd3\xa6\x77\xab\x02\xda\xc9\xde\x70\xd1\xe5\xfa\xd7\xaf\xc1\xd2\xf1\x4c\x2b\x72\x15\xce\x6b\xef\xe6\x29\xc1\xa6\x74\xae\x71\x0b\x59\x5b\xbe\x0d\x60\x4d\x92\x52\x39\x28\x7d\x70\xe4\x91\x75\xc1\x17\x6f\x72\x86\x7e\xfc\x8b\x44\x93\x5c\x8d\x58\xb9\x0d\xce\xd0\xe0\xe7\x3b\xf4\x3d\x56\xd1\xfc\x9b\x11\xbb\xd6\x6a\xe6\x8f\x7f\x69\x41\xa8\x58\x1b\x5c\x49\xaf\xc9\x19\x56\xf8\x82\xe3\x98\xb2\x59\x13\xb2\x52\x01\x7f\x3f\xbc\x1f\x9c\xa0\x6b\xab\xc3\xfb\xa4\xf2\x22\xd3\x2a\x68\x08\x18\x32\x4c\xc4\x71\x11\x60\xe5\xac\x8c\x3e\x63\x34\x33\xb8\xb0\x46\xec\xde\x40\x4a\x69\xae\x4a\x15\xca\xb8\x2d\xc1\xa0\xb5\x32\x03\xb6\x65\x4c\xd9\xd6\x92\xa8\x57\x07\xc8\xd8\x6f\x86\x95\xc7\x40\x9e\xa9\x33\xfb\x11\x03\x05\xdd\x67\x7a\x26\x3c\xc2\x09\xc4\xe4\x1d\x06\x36\x3d\xad\xb6\xf3\x1c\xd2\xee\x4c\xad\xd3\x45\x39\x74\xd6\x67\x82\x7a\xa1\x2c\xdc\x28\x30\x00\xc0\x3e\x5a\x6f\x6c\xca\x35\xc7\x31\x50\x32\x60\x7c\x4b\xcc\xea\xe8\x0f\x3d\xb4\x8c\x59\x16\xfd\xd4\xf1\x23\x28\x29\x6e\x53\xbc\x23\x30\xdf\xb3\x05\x84\x6f\x03\x66\x3a\x87\xd0\x8f\x82\x3b\x5b\xa2\xac\xed\xa2\xbf\x13\x83\xcf\x46\xcc\x44\x0a\x96\xf6\x25\x04\x45\x08\x7a\xe7\x0c\x02\x19\x8b\xeb\xd2\x0b\x18\x99\x0d\x6c\xb4\xb2\x7e\x26\xc8\x61\x4c\x14\x11\x29\xd8\x7b\xc2\x35\xd5\x37\xec\x11\xba\x0d\xd5\xeb\x98\x47\x79\xea\x80\x21\x21\x3d\xb1\xa8\x26\x5b\x92\x78\xcc\xc5\xbe\x8a\xe2\x21\xf9\x5d\x11\xc8\xca\xeb\xac\x1f\x1b\x82\x19\x84\x9f\xd6\x25\xf5\x76\xc1\x17\x78\xc7\x76\x51\x6b\xa6\xa1\x71\x56\x6e\xa9\xd4\xda\x6a\x5c\xbb\x15\x75\x4e\xae\x0a\xf0\x3a\x2e\x40\xd8\x22\x9f\x33\x0e\x46\x6e\x93\x53\xc5\xe3\xaf\x24\x3a\xbf\xd1\x12\x90\xd6\x78\xfd\x19\xcc\xa5\x32\xc1\x65\x90\xae\x63\xbe\x36\xe9\x02\x07\xe8\x5b\x53\xeb\x39\x42\x9f\xdd\x1f\x7f\xfe\x8f\xff\xf8\xd3\x9f\xd7\x49\x27\x71\x0a\x39\xb4\x5b\xac\x91\xaf\x86\x51\x16\x89\xc2\x1d\xa8\x73\xaa\x2d\x76\xc1\x1e\xc0\xb6\xe5\xdf\x04\xa4\x2a\x88\x1d\xc2\x33\x7b\xc2\x65\x78\x32\x51\xe9\x68\x16\x91\x04\x92\xa8\x83\x32\x87\xf0\xc2\xae\x95\xe8\xff\xd7\x12\x0c\x98\xb1\x3e\x2a\x9b\xc5\x38\xd1\xc4\x8b\xd7\xba\x11\xf4\xb5\xb5\xff\x29\x70\x20\x7e\xe3\x2e\x38\x9e\xc4\x44\xd8\x3a\xf1\xce\x64\xe7\x0d\x89\xc0\x1c\xc8\xe7\x2c\xe1\xb1\x43\x77\x93\x24\xc3\x20\x40\x68\x66\x70\x34\x62\x43\x57\x36\xdc\xa0\x93\x98\x8f\x8c\xe7\x65\x8a\x23\x03\x6a\x26\xd1\xd7\x9f\x4f\xf4\x6f\x07\x68\x71\x02\x41\xa4\x07\xe8\xb7\x13\x0b\x42\x80\x85\x1a\xeb\x9f\xbe\x71\xb2\xb6\x6d\x02\x06\x4d\x25\xfa\xea\xf8\x09\x0b\x53\xf2\xf2\xd8\x8c\xe8\x2b\xcb\x59\x7d\x59\x9f\x50\x36\x4f\x38\x7f\xb4\x01\xb6\xb5\x0f\x8f\x1d\x9e\x0d\x90\xb7\xf7\x9b\x98\xad\xf7\xf9\x8e\x0a\x1d\xda\xa2\xe7\x47\xd9\x04\x1d\xfd\x4d\x72\x86\x8e\x16\x38\x4d\xec\xaf\xee\xa9\x8d\xff\xc5\x12\xb9\xb2\xf7\x45\xd9\x6d\x63\x29\xfd\x3e\xe1\x13\x98\xd5\xa5\x9b\xa9\x89\xa0\x85\x81\x16\xb7\x4f\x71\x61\xd9\x89\x58\x49\xca\xc0\x32\xa4\x5c\x99\x57\x80\xc7\x35\xcd\xea\xb3\x1f\xd2\x7f\x19\xbf\x30\x2c\x8a\x4b\xe2\x33\xc6\x61\x1f\xbd\xa6\x1b\xfd\x8c\xbe\xb6\x2c\xe8\x1b\x7d\xc7\xd8\x70\x65\xb3\x0c\x4d\x1d\x2c\x7c\x07\xbf\x04\x1d\x50\x86\x4c\x5a\xe6\x92\x2f\x7f\x3b\x3e\x3a\x3a\xf2\x5f\x5f\xe9\xa9\xfc\xbf\x88\x2a\x49\x92\xa9\x69\xc9\xdd\x60\x8b\x11\xbb\x74\xb8\xd1\xce\x78\x5d\x20\x65\x41\xb9\xfa\x88\x27\xe8\xb0\x30\xe8\xc6\x3c\x92\xe8\x5f\xb5\x58\x1b\x2c\x25\xfc\xa8\xf5\xb8\x16\x14\x3b\x03\x54\xf9\x4a\x87\xca\x1a\xc4\xab\xc7\x2a\x04\xc7\xf1\x8a\x2d\x96\x21\x08\x39\xd0\x82\xa6\x9c\x63\x0b\xa0\x23\x84\x7e\x99\x7c\x56\xf0\xa8\x05\x9f\xa8\x31\x94\xbd\xf9\xa6\xac\xb1\xdb\x02\xa6\xc8\x90\x75\xcb\x02\x58\x18\x11\xcb\x19\xcc\x3c\x0f\x42\xf7\x89\xbe\x5c\x58\x88\x64\x2c\xf3\x34\xc5\x62\x71\x5c\x9c\xb6\x3a\x71\x16\x00\x36\xc0\x63\x12\xb7\x00\xe0\xc2\x4d\xec\xd1\xb2\x51\x0c\x56\xbc\x74\x37\x9a\x3f\xbb\x11\x94\x62\x82\x80\x3c\x53\x88\x8c\xb0\x88\xc7\x96\xae\x8b\xec\xd3\xb2\xc4\xe2\xdf\xa9\xcb\x2a\x2e\x22\x46\x16\xc6\x38\xa6\x4c\x66\xb4\x7d\xc3\x7d\xdc\xc2\xbe\xf9\x18\x8a\xfa\x91\xd9\x1a\xee\xd1\xf3\xeb\x3b\xf7\x4d\xf7\x4b\x17\xd6\xa1\x2c\xb2\xe3\x24\x84\x1d\x62\x33\x24\xf0\x73\x71\xfd\x42\x6c\x87\xb1\xce\xe4\x3e\x37\xd7\xfc\xfb\x94\xdf\xd0\x44\xdf\x5a\x40\xe3\x47\x23\x56\xfa\xf9\x00\x91\x84\xa6\x94\xf9\xd8\x3a\xc3\xdc\xf9\xd4\x48\xcf\x8f\x54\xe9\x2d\x93\xf1\xa3\xe6\x60\x0e\x2e\x23\x50\xa9\x06\x6c\xe1\x48\xc7\x3b\xa6\xac\x05\x22\x97\x7a\x5c\x85\x8e\xae\x85\x59\xdd\xc4\xa1\x15\x48\x69\x40\x78\x70\x7e\x47\x4c\xb7\xe6\xce\x52\x11\x2e\x1c\xb4\x17\x34\x77\xe8\xf0\x7c\x03\x0e\x00\x7d\x94\x62\x7e\xbd\xfc\xdb\x20\xa0\x0c\x59\x9e\x6e\x9b\x6c\x62\xc3\x87\xdf\xca\x4c\x77\x23\x88\xbb\xa9\x6c\xe2\x12\x61\x79\xea\x0e\xd4\x1a\x14\x37\xb4\xe2\x4f\x4c\xa2\x04\x1b\x00\x00\xdd\x10\x44\x3e\x1e\x18\x07\x69\x16\xf4\x65\xae\x17\xd3\x8d\x29\x11\x90\x10\xf6\xb5\xf9\xf7\x37\xc8\xde\x0d\xdf\x1e\xd8\xfb\x5c\x48\x07\x60\x6a\xf7\x1c\x4a\x4c\x91\xd8\xd8\xd0\x01\xec\x71\x86\x45\x6c\xac\xe5\xa1\x56\x61\x32\x78\xb5\xfc\xb5\xe0\x39\x7a\xa6\x72\x3e\x62\xf7\xdc\x19\x1c\x11\xe3\x1e\x2e\xf3\x00\x94\xd1\x5a\x7f\x58\x02\x13\x80\x51\x37\x51\x80\x66\xc2\x5b\xe5\x1a\x41\x14\xec\x98\xf1\x98\x6c\x87\x0b\x71\x5f\xf8\x2a\x9c\xff\x5a\x10\x93\x0f\x06\x37\x45\x5b\x3a\x2d\x91\x72\x4d\xdb\x7c\x75\xe3\xe1\x1e\xb2\xed\x40\x45\xc3\x67\xb6\x29\xe4\x8a\xbf\xd5\xa0\x15\xa7\x71\x06\xd9\xc0\xa5\xb5\xf7\x20\x94\xdb\x6e\x42\x54\x4e\x55\x59\xb9\x02\xfe\xea\x33\x73\x8f\x60\xd9\x7d\x80\x31\x46\x33\xc1\xf3\xcc\xa7\xcc\xbb\x74\x3f\xb3\x0d\x56\xa6\x39\x67\x53\x7e\x62\x75\xaa\x0b\xca\x1e\x0d\xc5\xbf\xd4\x1e\x19\x9c\x51\x12\x97\xd0\x71\x5c\x91\x39\x98\xc3\x21\xa2\x2c\x4a\x72\xb8\xf8\xa4\xc2\xd1\xa3\xc1\x4a\x6d\x33\xfa\xea\x6f\xc6\xab\x93\x29\x5b\x24\xa6\x3c\x49\x6c\xb7\xc5\x05\x5a\x54\xe1\x7c\xa2\x18\x61\xf4\x70\x7b\xde\xdc\xf7\x23\xad\x3b\x73\x9a\x6f\xcf\x32\x81\xc0\xff\xfc\x48\xd7\x8a\xbb\xac\xa0\x0d\x91\x12\xa9\x7b\xe3\x52\x1b\x96\x9d\x26\xd2\x4f\x58\x91\x6d\x33\xa1\x0c\xb4\xca\x1a\x91\x7a\x35\xcc\x9a\xa5\xd6\xe3\x2d\x01\x5f\x0a\xb0\x16\x08\x0d\x6a\x47\x9e\x09\x83\xb5\xe0\xe1\x1a\xd8\x0d\xf0\x7e\xb7\xf9\x54\xde\x5d\x31\x9d\xe5\xc3\x4c\x08\x59\x03\x6d\xe0\x4e\xbf\xde\x71\x90\xa5\x57\x97\x8d\xf1\x19\x1b\xf0\xe8\x3a\x96\x62\x9c\x97\xea\x43\x77\x22\x68\x47\x8e\x46\xbc\x96\x3e\x47\xc4\x8f\xc4\x85\xe1\x78\x59\xcc\xf5\x3b\x03\xdf\x16\x2f\x61\x53\x7b\x0b\x6d\x03\xe1\x07\x62\xeb\x96\x61\x13\x5a\xfc\x1a\xa7\x0d\x2c\xba\x79\x27\x8a\x8e\xcf\xec\xc7\x97\xfa\xdb\x66\x56\x74\x09\x59\x7c\x1e\x38\x25\xc5\x4c\x9f\x6c\xd7\x6b\x8b\x11\xd2\x48\x84\x1b\x0d\xe9\x21\xdb\x68\x40\xa6\xc7\x8e\x65\x9b\x6c\x57\xae\x95\x67\x63\x87\xc7\x89\xb1\x33\xa9\x39\x98\x20\x8a\x72\x07\x9a\xa3\x95\x4d\x11\xa6\x34\x42\x82\xc5\xcc\x28\x48\x92\x28\xf9\x4d\xc3\x0e\x17\x39\x0f\x5b\xec\xf0\x06\x25\xe5\x42\xbf\x27\x88\xdf\xcb\x4e\x9a\x1f\x65\x19\xb3\xcd\xdf\xca\xbe\x38\xa3\x15\x9a\xa8\x0c\x91\xb5\x22\x2e\x0c\xc0\x69\xac\xcf\x4a\x3b\x66\xca\x96\xa5\x45\xaf\x70\xea\x11\x01\x5c\x81\x43\x9b\xdf\x65\x06\x37\x21\x00\x37\xd8\x3e\x86\xad\x6b\x88\x86\x43\xb0\x35\xbd\xda\x46\x30\x62\x03\xf7\x8a\xcf\x2a\x06\xdd\x4e\x18\x01\x1c\xe2\x43\x4d\x34\x34\xe8\x57\xb8\x58\x75\x3b\xb9\x96\x49\xac\x9b\xbc\x59\x2d\x83\xaa\xf5\x3b\x7f\x1b\xd9\x82\x07\x1e\x1a\x6d\x69\xb1\x89\xa7\xf5\x0b\x55\x37\x03\xb3\x44\xd5\x42\xc2\x4d\x1d\xaf\xd6\xa5\x1c\x62\x84\x6d\x28\xac\x5d\x6c\x62\x48\x93\x45\x41\xa6\x7a\xc5\x8d\x4e\x5e\xe9\xac\x7e\x5a\xd5\x56\xdc\x98\xe2\x74\x2c\x78\x7b\x35\x8e\x0e\xcb\xe4\x9a\x28\xd9\x77\xe6\x06\x35\x7c\x81\xfe\x9e\xe3\xc4\x5c\x6e\xcc\x92\xa3\x1b\x36\x88\xca\xdf\xfd\x19\x0d\xe0\xf6\x41\x97\xc0\x17\xc1\xc1\x0f\xad\x29\x8e\x68\x9a\x11\x21\x39\xc3\xad\x65\x69\x1e\xff\x22\xc7\x16\xf2\x7f\x8c\xa3\x88\xe7\x75\x78\xff\x35\x66\xd2\xd0\x5a\x38\x29\x8c\x1e\xf3\x09\x11\x8c\x98\xd2\x3b\xf0\x1e\x72\xef\x75\x1a\x2e\xc7\xb9\x9a\x7f\x37\x8e\x12\xda\xb9\x0e\x01\x64\x17\x0d\xf4\x67\xa7\xe6\xab\x65\x13\x28\xb5\x5f\x1a\x3a\x43\xe6\x19\x32\xcf\x8e\xd0\xf7\x38\x7a\x24\x2c\x46\x59\x92\xcf\xa8\x05\x13\x80\x1b\x0a\xd8\x65\x60\x9e\x2d\x4f\xcc\xc8\x16\xa6\x7d\x7d\x0d\x8d\x58\x8a\x1f\x0d\x36\xa0\x15\x22\x23\x9c\x24\x6b\x99\x19\x3c\x3d\xd4\x50\x55\x5c\xe6\xbb\x2f\x73\x64\xce\x87\x32\xe7\x03\x0c\xaa\x80\x20\x99\x33\x84\x01\x98\xe5\x2b\x89\xf2\xcc\x49\x40\x60\xe9\x4b\xc0\xef\x6a\x26\x09\xf5\xab\xa9\xd6\x83\xe6\x64\xc4\x20\x96\xd5\xb5\xb8\xf0\x5c\x25\x74\xf5\xfb\x90\x93\xa6\xc3\x37\x35\xb0\x04\xdb\x79\x11\x6b\x00\x94\x2b\x28\xa1\x63\x9c\xae\x9a\x13\x06\x06\x88\xee\x2d\x83\x46\xd3\x7d\xd3\x4a\x31\xb9\x56\xd0\xf4\x16\x53\xbf\x84\x39\xa3\xb6\xf2\x85\x35\x92\x07\xe1\x72\xce\x93\x54\x7c\x4f\x25\x92\x58\x51\x39\xa5\x8d\x86\x99\x10\x0c\x62\x9b\x55\xc7\xeb\x21\x50\x34\xa0\x4f\x54\xd6\xc2\xc7\xfd\x1f\xa1\x8f\x60\x67\x0a\x64\x6f\xee\xb1\x1c\xda\x58\x82\x9a\x93\x56\x50\xc3\x5d\x04\xcc\xb8\x19\x04\xef\x2f\x35\x1f\xfa\x1c\x8f\x23\x34\x28\xec\xfb\x06\xcd\xc2\x58\xee\x57\xcc\x88\x24\x92\x6c\x42\x7c\x9d\x4c\x61\xe0\x03\x07\x02\x42\x20\xab\x48\xfd\x7b\x01\x7d\xeb\x87\xf9\x0c\x69\x94\xf8\x91\xb0\x65\xf6\x8e\xee\x23\x34\x06\xa9\xa5\x4a\xb7\xb7\x74\x71\x63\xec\xda\x64\x80\xdd\x8f\x5d\x01\x20\x42\xa7\xc7\x7a\xc9\xb5\xa0\x1f\x3d\xda\xe4\x0d\x63\xef\xb4\x10\x24\xcf\x73\x2e\xc3\x73\xe6\xf6\xcf\xe8\x8a\x22\x27\x2e\x49\x03\x92\x5f\xfc\x02\x9b\xa8\x17\xc6\x43\x84\x12\x18\xb5\x3f\xa4\xc6\x96\xeb\xf7\x1b\x39\x16\x0a\xcb\x00\x7e\x22\xd7\x54\xfd\x34\xff\xf8\x17\x79\x0d\x27\x76\x17\xb9\xf0\xcd\x75\xdb\xb6\x8f\x43\xdf\xd0\x02\xef\x23\xac\x8a\xa2\x6f\x38\xf6\xe8\x0d\x19\x8f\x51\x41\x5e\xeb\x57\x78\x7b\xfb\x69\x55\x2a\xc3\x75\x9a\xdb\x2a\xca\xbe\x0c\xdc\xf4\x68\x92\x53\x53\x64\xb5\x24\x72\xd9\x7c\x49\xd0\x7e\xed\xf5\x4f\xa5\xbf\x4f\x9a\x69\xec\x86\xc7\xdb\x10\xd6\xfa\x80\x75\x75\xba\xee\x10\xc5\x2b\x9b\x8a\xc2\x2e\x59\x89\x8c\xb7\xc7\x5f\xc6\xe3\xee\x65\x54\xc1\xe1\x3e\xc9\xa7\x77\x00\x8b\xde\x86\x09\x11\x94\x41\x71\x49\x5e\x7a\x9f\x75\x37\x3e\xe5\xa0\x6d\x53\xac\xff\xb6\xb8\xfe\x31\xfa\xbf\x77\xd7\x57\x87\x29\x16\x72\x8e\x21\xe7\xd6\xb5\x75\xe0\x2a\xcd\x18\x05\xd4\xf9\x95\x28\x1b\xb1\xff\x8f\xbd\x77\x6b\x72\x1b\x39\xd2\x86\xef\xfd\x2b\x2a\x62\x2f\x24\x7d\x1f\x9b\xed\xb1\x63\xdf\xb0\x15\xb1\x17\x3d\xad\x96\x87\xb6\xa6\x25\xf7\x61\xc6\xfb\x2e\x37\xa8\x22\x50\x24\xe1\x06\xab\x20\x14\xd0\x2d\x7a\xed\xff\xfe\x46\x65\x66\x1d\x70\x24\x40\xb2\x25\xd9\x3b\x17\xbb\x1e\x35\x81\x42\x1d\xb3\xb2\xb2\x9e\x7c\x9e\x33\xb6\x56\x13\xbc\xc5\x7c\xcd\x36\x45\x91\xe9\xd7\xe7\xe7\xeb\xa4\xd8\x94\xcb\x69\xa4\xb6\xe7\xbe\x6b\xce\x79\x96\x9c\x2f\x53\xb5\x3c\xcf\x05\xe0\x58\xcf\xbe\x9b\xfe\xe6\x3b\x18\x99\xf3\xc7\xef\xce\xe1\xee\x6a\xba\x56\xff\xf6\xee\x37\xbf\xff\xed\xff\x31\x05\x67\xbb\x62\xa3\xe4\x6b\xba\x22\xed\x2d\xfb\x0c\xfd\xde\x73\x7c\xa5\xf6\x95\xdf\x4f\x7f\x1d\x56\x83\x1e\xdd\xaa\x58\xa4\xfa\xfc\xf1\xbb\x85\x1d\x98\x69\xb6\xfb\x05\xf9\xf9\xd5\x90\x9f\x0f\x49\xf1\x0b\xf2\xf3\xab\x22\x3f\x87\x7b\x38\xce\xc6\xd4\x44\xb3\xcd\xdf\x9d\x8d\xb4\xc1\xed\x7d\x76\xa8\x65\x73\x08\x71\xf9\x47\x6c\x11\x0f\xa2\x81\xfc\x18\x11\x72\x70\x47\x87\x8e\x20\xd6\x58\x3a\xfb\x4e\x67\x7e\x54\x1a\x32\xe0\x2c\x92\x08\xa8\x92\x31\xe8\x96\xf1\xa4\x0d\xcf\x49\x78\xa2\x63\xfa\xef\x39\x49\xbf\x4f\xcd\xf6\x4d\xcd\x3d\x90\xe9\x3b\xc5\xb7\x2d\xfa\x49\x3d\x59\x86\xef\x53\xf0\x62\x0f\x14\xa0\x73\x74\xbf\x38\x79\xa0\x2e\xb6\x5e\x1d\xd5\xd8\x70\x7d\x18\x8c\xee\x02\x49\xf5\xdc\x4d\x98\x93\xcd\xa5\x0f\xda\x8d\xc3\xf2\x14\x80\xba\x29\xd1\x21\x65\x65\x9e\x29\x2d\xf4\x94\xbd\xad\x49\x34\x79\x68\xe0\xcd\xdb\x4b\xf6\xdd\xef\x7e\xff\xdb\xb9\x7c\xd9\xb2\x6f\x83\xbd\x57\xf9\x9a\x90\x8a\xb0\x5b\x6f\xb9\x2e\x44\x7e\x9e\xaf\xa2\x73\xb4\x72\xe7\xe6\xfd\x33\xfa\xe8\x99\x5a\x9d\x39\xd2\xdf\x33\xe2\x3f\x9d\x6e\xe3\x71\x29\xfc\x95\xa9\x87\x7b\x0d\x6d\x34\x1a\x36\x25\x24\xfb\x51\x2b\x47\xef\x8e\x99\x24\xa8\x04\xa1\x56\x2d\xff\x01\x62\xd6\xaf\x1c\xc5\x18\xd7\xf6\x1b\x9e\xf3\xa7\x7b\x69\x9e\x86\xff\xdb\x4e\x91\xe7\x0c\x54\x58\x5b\x12\x1e\x47\xc6\x74\x7c\xfb\x62\xf3\xdb\x3d\x32\x1e\x90\x1a\x32\xf2\x27\x2b\x29\xd4\x0a\x70\x72\xe0\x09\x5b\x1c\x00\x44\x43\xcd\x4e\xeb\xd9\x0d\x72\x91\xe1\x06\x13\xaa\x27\xb7\x74\xf7\x91\x1c\xe2\xfb\xfa\xf9\x39\x38\xc4\x8f\xed\x77\x32\x28\x5f\xa9\xc3\x8f\x05\xeb\xe1\x52\x1a\x83\x5b\x30\xcf\xef\xbd\xa3\x74\x76\x00\x2e\x25\x43\xc1\x62\x64\xf3\x02\x27\x4d\x9c\x15\xea\x0c\x68\x61\x80\x6c\x04\x59\xfd\xbb\x80\x0b\x70\xb7\x3b\x66\x9b\x34\xcf\x0f\xa8\x27\x3a\xe6\x9f\x83\x8a\x92\x4f\xa2\x91\x24\x93\x40\x4f\x89\x94\x22\xa7\x5b\xab\xbd\x3b\xea\xc8\x9b\xdf\x70\x28\xfb\x31\x4f\x81\x20\x67\xc0\xb8\xee\x10\xef\x3c\x30\x02\x53\x06\xde\xe7\x46\x6d\x95\x71\x67\x54\xa9\x83\x1f\xf1\xf4\x02\x9b\x70\xa7\xef\xb5\xe5\x19\xd2\xc0\x7d\xbd\xd6\x98\xa5\x65\x7e\xc2\xa0\x5e\xf8\xd0\x28\x11\x8b\x65\x95\xb6\x7f\x4f\xfd\x1d\xdf\x7a\xff\xbc\x01\x5c\xc1\x16\x2e\x51\x40\xe3\x8e\x58\x94\x93\xbf\x99\x73\x8d\x99\x52\xee\xa4\xe0\x76\x6e\x84\xc1\x20\xdb\x61\x48\xa8\x6a\xbd\xf9\xce\x7c\xe4\x72\x3b\x72\x0c\x1c\x8c\x77\xc8\x00\x70\x89\xc0\x56\x8b\x68\x3d\x6b\x85\xb4\x76\xad\x4b\xab\x28\x17\x2f\x2c\x23\xe7\xb8\xaa\xde\xba\x02\x88\x7c\xb3\x59\x6f\x4f\x68\x04\xf8\x67\xec\x63\x34\x08\xd6\xb7\xe8\x80\xb5\xc8\xf1\x8b\x11\x24\x4c\xc6\xf4\x1d\x7c\x04\x27\x67\xa3\x07\x83\xb5\xd0\xd5\x81\xe3\x42\x6c\x7d\x11\xab\x36\xc0\x3c\x72\xc0\xf9\xfc\x18\x53\xcb\xc6\xe1\xd1\xbd\xf8\xe8\xe5\x33\x77\x99\x98\xb0\x65\x09\xbf\x5f\xbf\xbf\x0b\xf1\x10\x09\xb6\xf6\x2c\xda\x88\xe8\x01\x02\x26\xb8\xe5\xe1\x62\xb0\xd2\xa9\xcb\xdd\x5c\x7a\x71\xad\x42\xd9\xcb\xfd\x9d\xe3\x1b\x77\x9c\xfb\x2a\x67\x71\xa2\xb3\x94\xef\xe0\x1a\x55\x22\x12\xde\x5f\xc1\xba\x14\x12\x63\x0a\xf6\xc5\x8b\x87\x8f\xb4\x19\x95\x0b\xff\xde\xd8\xbe\xe4\xf9\x32\x29\x72\x9e\xef\x98\xef\xcc\xa6\x3d\x60\x5a\x6c\xb9\x2c\x92\x68\x2e\xb7\x82\xcb\x10\xf7\x46\xd7\xc8\xa6\x93\x63\x25\x88\x91\x77\xb5\x12\x51\xe1\x29\xfd\xc0\x79\x77\x3d\xb5\x6f\x0d\x8e\x6b\xbb\x5b\x79\xbd\x4d\xff\x21\x91\x98\x40\x9e\x6c\x01\x55\x49\x73\x88\xb6\xc6\x03\x2f\x6f\x40\x8c\x8d\xb6\x5c\x7b\x18\x84\x7f\xd9\x39\xc5\x96\xa2\x78\x12\x90\xb1\x4e\x29\x76\x6d\x3e\xfe\xd1\x84\xfc\xc7\xc9\x16\xb6\x0b\x3e\x06\x58\x2b\x5c\x60\x21\x5c\xcb\x51\xeb\xc8\x1a\x47\xce\x0b\x4a\xfa\x83\x68\xcf\x0b\x8a\x5b\xbd\x80\x6d\xda\x9c\x1e\xf3\x47\x11\xcf\x65\x95\xb8\x88\x7c\x46\xbf\xe0\x98\x97\x9a\x3a\x8d\xb5\xb1\x7d\x3c\x28\x96\x7f\x05\x64\x0d\x9e\xa6\xd1\xa5\xb5\xf5\x48\x5f\xb5\x4b\xe5\x3f\x83\xaa\xd2\xe0\x4b\x1e\xaf\x46\x45\x52\x32\xa4\x3c\x57\xc1\x53\xb8\x49\xe9\x68\x59\x90\xb3\xcd\x41\x4c\x29\x2e\xd9\x88\x74\xb6\x95\x31\x97\x36\x5f\x79\x55\xa6\xc8\xc3\xd9\x25\xc6\x45\x2c\x4d\x36\xb7\xe2\xeb\xe5\xd8\xb8\xb8\x1a\x0b\xd4\xbb\x1c\xec\x21\x80\xfb\xa2\xad\xb3\xb3\x5e\x48\x8d\x4a\x9a\x56\xb8\x07\x02\xcf\x6b\x51\xc0\x6e\x1e\x97\x29\xa6\xdf\x42\xc4\x1c\x18\x9f\x78\x9a\xb2\xa4\xd0\x73\xe9\x08\xaa\x90\x6e\x1c\x2c\xac\x0d\xa9\xc7\x74\xe4\x82\x4f\x40\xb1\x24\x3a\x0c\x7e\x58\x12\x25\x45\x03\x24\xbd\x0b\xc5\x2e\xb2\x4c\x70\xcc\x16\xc3\x61\x9b\xcb\xf0\xcc\x55\x1f\x04\x4a\xad\x02\x71\xd5\x53\x64\x39\xf5\x60\xde\x41\x91\x76\xf4\x90\x4c\xd9\x05\xb6\x2e\x72\x1a\xfe\x8c\x6a\x4b\x19\xea\x84\x65\x34\xa7\x9a\x42\xdb\x18\xb9\x3f\xb7\x66\x3c\x2f\x92\xa8\x4c\x79\x9e\x02\xeb\xfb\xaa\x4c\x59\xb2\x0a\x24\x39\x61\x0c\x90\x9e\xc8\x0c\x57\xa4\x60\xaf\xb6\x51\x72\xcd\xb7\x22\xc8\x8c\xa6\xf0\x4e\x1a\x60\x28\x90\x73\x19\x2f\xe7\x4d\x59\xaf\xa6\xec\x4d\x5d\x1a\x17\xd6\x44\x40\x6b\x98\x68\x34\x7f\xae\xbe\x41\x52\x1f\x4a\xec\x26\x2b\x73\xa4\x7c\x11\xac\xba\x2e\x91\x79\xae\x1f\x46\x02\x34\x2c\x39\x7e\x3f\x2e\xb7\x35\xa9\xf7\x0e\x84\xc8\x2b\xb0\x0d\xb7\x20\x3a\x2a\x68\x77\x85\x91\x95\x0c\x29\x21\x0f\xa8\xe8\xcf\x81\xd2\x77\xbd\xb2\xdb\x1e\x05\x50\x18\xc7\x91\x55\x0d\xf4\x74\xc6\x57\x34\x98\x39\x21\x1c\x67\x48\xcf\xae\x79\x31\x16\x9b\xe3\xd2\x5d\xc6\x57\xb4\x15\x07\xd5\x59\xcd\xfd\x91\xa6\x9f\x2b\x02\x3c\xcc\xd4\xca\x9c\xf2\x05\xe2\xcc\xd4\x2a\x30\xc1\xb4\xdf\x90\x52\x0f\x90\x9f\x3b\x9b\xb0\x14\x2c\x4d\xe4\x83\xa5\x3a\x30\x13\x74\xc2\xb8\x2f\x1d\x6c\x04\x76\x32\xae\xb9\x0e\xcf\xab\x4d\x2a\xe0\x08\x67\x6c\x58\xc2\x60\xfb\x09\xd9\xd6\x64\x94\x1a\x84\x6d\x70\x5b\x3b\x86\x0f\x4b\x2f\xb2\xd9\x9d\x79\x2c\x9c\x19\xb7\xc1\x00\x63\x19\xc8\xb9\x77\xf6\xef\x87\x4d\x15\xb3\x37\x42\x58\xe7\xfe\xfa\xcd\xd5\xdb\xd9\x75\x55\x0d\xe7\xcf\xf7\x57\xf7\xd5\xbf\xdc\xdc\x5f\x5f\xcf\xae\xff\x10\xfe\xe9\xf6\xfe\xf2\xf2\xea\xea\x4d\xf5\xb9\xb7\x17\xb3\x77\xb5\xe7\xcc\x9f\xaa\x0f\x5d\x7c\xff\xfe\xa6\xa6\xbf\x63\xc5\x73\x82\x3f\xdd\xcd\x7e\xbc\x7a\xb3\x78\x7f\x5f\x91\xf0\x79\xf3\x9f\xd7\x17\x3f\xce\x2e\x17\x2d\xf5\xb9\xb9\xba\x7c\xff\xd3\xd5\xcd\x1e\x05\x1e\xdf\xde\xd6\x2e\x3d\x05\xd8\xea\x60\x3d\xa6\x0b\xb6\xca\x13\x21\xe3\x74\x87\x58\x70\x7b\x0e\xac\x41\x4f\xc3\x9d\x2a\xd9\x0a\x55\x1e\x03\xe9\xbe\xdb\x08\xa6\x1e\x45\x0e\xac\x0c\x58\x1a\xa5\x70\x72\xfd\xd0\xc9\xd9\x57\xe4\xcd\x18\x7a\x6f\xe6\x4a\x91\xef\x5c\x6e\x54\x5f\x75\x3c\xa3\x0f\x7d\x84\x65\x22\xef\xab\x0b\xf8\x11\x79\x99\x15\xc9\xb2\x1b\xa4\x3f\x90\xe9\x66\xfc\x49\x15\xf9\xe7\xda\xc9\x3a\xae\xdb\x0d\x63\x05\xab\x7e\x0c\x4c\x17\x4a\x38\x54\x66\xcc\xbd\x6d\xa1\x8d\x59\xb9\x4c\x93\x88\x25\x71\x3d\xfa\x80\x29\x55\x18\x60\xad\xd3\x54\x66\x22\x07\xc7\xce\xf8\xcb\x59\x2e\xce\x78\x59\x6c\xac\x02\xba\xcb\xac\x43\xda\x48\x11\xe5\xa2\x08\xd4\xfa\x49\x5f\x2a\xf8\x12\x54\x86\x32\x8a\x63\x20\x2f\x99\x06\x94\xe1\x1d\x11\x75\x7c\x13\x4b\x1f\x11\x52\xc4\xe7\x7b\xbb\x86\x6a\x9c\xe8\xba\xb8\x30\xb8\xb0\xf8\xa3\x55\xa9\x32\xed\x36\x96\xda\xa9\x34\xe1\x20\xdb\x5c\x82\xf6\x66\xec\x9b\x63\xe1\x44\xa9\x42\xff\xa9\x74\xfa\xe9\x32\x17\xb0\x89\xd0\xc5\xb9\x3d\xed\x03\xd0\x83\x72\x0f\x20\xe5\xc0\x1c\x6c\x96\x62\xc3\xd3\x15\xc6\xf0\xcc\xd0\xf8\x75\xd5\x9c\xa2\x77\xea\x41\xc8\x1b\x1c\xb0\xaf\x62\x0e\x25\x9e\x13\x7c\x8e\xb9\x8b\x9f\xf8\x80\x9f\xa9\xa3\x9d\x55\x36\xf7\x0a\x45\xfa\xd1\xab\x0e\x7e\xc6\x04\x08\xcf\x20\x6b\xd3\xb6\x56\xab\xe4\xb3\x29\x70\x2e\x45\x2b\x87\x26\xa0\x6b\x2c\xdb\x8f\xb3\xcb\x80\x24\x42\xca\x94\x07\x21\x41\xdf\x0a\xe5\x6f\xf7\xce\xd9\x71\xd1\xe6\xe6\x58\xf4\x84\xbf\x21\x42\x96\x54\x64\xbf\xc2\x3b\x11\xdb\x4f\x90\x64\xf9\x20\xa6\xec\x0d\x11\x41\x98\xbf\x5c\xbe\x9b\x5d\x5d\xdf\x2d\x2e\x6f\xae\xde\x5c\x5d\xdf\xcd\x2e\xde\xdd\x0e\x5d\x7e\xa7\xc8\xd3\xa9\xad\xbe\x7a\xaa\x94\xb3\x10\xe7\xb4\xf2\x7c\xba\xa8\x6b\x94\x5f\x76\x30\x24\xfb\x6b\x9f\xc4\xd9\x22\x4e\x74\x64\xb6\xbf\xdd\x42\xc8\x18\xc8\x87\x0f\x9a\xaa\xed\x45\xd5\x5b\xe1\x9e\x60\xee\x09\x6b\x41\x70\xb7\x7b\xb4\x33\xda\xfd\x0e\x18\x35\x08\xda\xe5\xc2\x2c\xfe\x78\x2e\x83\xdd\x66\xba\x5f\x71\xc2\x14\x77\x5c\xdb\xaa\x45\xd4\xdb\x84\xf5\x4d\xb4\x2e\xb9\xb1\x8f\xf6\x31\x00\xe8\x75\xf4\x0a\x31\xc2\x85\x0c\xc8\x49\xa0\xde\xc9\xcc\x49\x7e\xcb\x65\xcc\x0b\x95\xef\x3a\x9a\x38\xcc\x78\x86\xcb\xa6\x6a\x42\xc3\x2d\x5b\x0a\x11\xdb\x51\xc0\x47\xb9\xac\x4f\x25\xe4\x49\xbe\x7b\xff\xa7\xab\xeb\xdb\xc5\xd5\xf5\x4f\x8b\x0f\x37\x57\x6f\x67\x7f\x71\xb8\xc1\x8c\xeb\x36\xb5\xbe\x2c\x17\xc6\xba\x58\xda\x89\x56\xfb\x82\x12\x7a\xb6\x1c\x92\x4d\x4a\x56\x73\x69\x2d\x4b\xee\x8b\xdf\xe4\xaa\x5c\x6f\xda\x0b\xaa\xd7\xf2\xc3\xc5\xdd\x0f\x07\x55\x13\x48\x81\x50\x67\x0b\x57\x5b\x13\x3f\x99\xac\xc8\xee\x21\xe8\xb2\x56\x3d\xa0\xb6\x82\x47\xdb\x62\xf2\x1d\x16\xed\xa0\xd3\x4b\xd3\x68\xf5\x3a\xff\x2d\x8f\x77\x4d\xa0\xbb\xc0\x6e\x56\xb6\x11\xc0\xf3\xa2\x5c\x63\xa3\xb4\xd7\x2d\x7f\xab\xec\x60\xbf\x39\x4b\xc5\x7a\x2d\x62\x9c\x5e\xf5\x82\x29\x62\x45\x26\x30\xf2\xfb\x7a\x5b\x2f\x92\xa0\xda\x11\x1b\xb3\x43\x47\x0d\x37\xe0\x1f\xdc\x2b\xed\xb6\xe2\xd2\x8a\x36\x47\x4a\xea\x82\xcb\x8e\x6b\xd7\xc7\x26\x9e\x71\x90\x29\x7a\x9f\x33\x97\x2a\x44\x01\x12\x1b\x60\xf7\xeb\xe0\x90\x0b\x27\x12\x8e\x93\x14\xf1\x08\x04\xe5\x02\x95\xe9\x96\x41\x80\x48\xe3\x8d\xb5\x88\xcf\x1f\xdc\xe8\x3d\x3a\x11\x13\x12\x04\x46\x51\xb9\x87\xa0\xda\x18\x0d\x02\x39\xac\x4e\x18\xed\xa8\x01\xa9\x7d\xf9\x27\xea\x7a\x3c\xb5\x56\x03\xb3\xdc\x72\x8d\xb9\x01\x72\xce\xdb\xf8\xf8\x56\xc5\x0f\xf7\x25\x67\xb9\x8a\xcb\xc8\xb2\xb1\x40\xb1\x1e\x0f\x42\x01\x2d\xbb\xc1\xc6\xec\xcc\x0c\x33\x1d\x52\x44\x7c\x06\x48\xef\xb9\xec\xba\x7c\xb1\x36\xa0\x23\xcc\xf5\xc1\xee\x5a\xc7\x8c\x7d\x4b\xef\x77\x2f\x41\xdb\xd9\xc3\x32\x2e\x99\x7d\x1c\x9c\xbd\x0e\x38\x0d\x8d\xcb\x92\xe3\xcd\x6a\x75\x3b\xee\x22\x5f\x70\x56\x75\x1c\xea\x67\x18\x68\xa2\x9a\x4a\x81\x5b\xe4\x86\x6b\xf4\x5c\x8b\x68\x53\xad\x38\xb4\xa6\x4a\x58\x56\xaf\xae\xf3\x04\x8f\x8b\x10\x0c\xba\x5f\x99\xe0\x99\x3a\xd1\x54\xfb\x50\x7c\xca\x29\xe9\x8d\x9b\xf8\xa1\x73\xe4\x0e\x2f\x68\xf7\xc0\x60\xa5\xbc\x94\xd1\x86\x65\x29\xc7\x2c\xe3\x0d\xd7\x38\xa5\x2d\xc8\x80\x2f\x93\x34\x29\x80\x20\x05\xef\xbe\x6a\x3d\x6c\x4e\x34\x3c\x7f\xb0\x9c\xa4\xdc\xb3\xe1\xf4\x4d\xfa\x23\xc1\x9c\x5e\xb0\xfd\x4b\xc2\x39\xfd\x92\x0d\xde\xe8\xbd\x39\xf3\xd3\x92\xa0\x9c\x7e\x38\x8c\xc5\x83\x69\xe9\xdb\x32\x6e\x64\xa9\xc4\x0f\xf5\xd7\x2b\xfd\xdd\xb2\x51\x8f\x87\x32\x10\xd9\xf6\x08\x33\x5f\xa7\xe2\x6e\x5d\x59\xab\x54\xf1\x0e\x39\x58\x5b\x36\x32\x6b\x77\x95\x1d\xab\x72\xd9\xc5\xe5\x8a\xb5\xea\x2f\xbd\x2f\xee\x6f\xd7\xed\xa9\xe2\x82\xa1\x01\xe4\x85\x28\x92\x71\xa1\x8d\xa0\xd1\xbc\x10\x67\xf0\x7a\x7b\xe1\x94\x7a\x36\xb8\xcd\x8d\x89\xe6\xf5\x1d\x1c\x63\x2c\x80\xcc\x9a\xb3\xeb\xcf\x25\x37\xa6\xe1\xfd\xea\x16\x19\x3b\x8e\x99\x64\x45\xd2\x9c\x61\xed\x2b\xb1\xfe\xd5\xbb\xea\xa5\x4a\x38\x07\x06\x67\x6b\xb6\xb5\xe6\xd6\xbc\x3d\x7c\x41\x56\x35\xd3\xb3\x3c\x51\xc0\xab\x41\x4a\xed\x3d\xa4\x77\xad\xdf\x3d\xa2\x27\x3f\x95\xa2\x14\x66\xee\x2f\xcb\x78\xdd\x8c\x6d\x8e\xf0\xce\x7c\x93\x36\xea\x89\x6d\xcb\x68\xc3\x6c\xe1\x2c\x16\x29\xdf\x55\x9a\x06\xfe\x52\xa1\x52\xa0\x91\x3d\x90\xd3\x32\x2a\x75\xa1\xb6\x00\xc2\xf4\xe5\xe6\xa5\x84\x09\xcf\x78\x51\xe4\xc9\xb2\x2c\x5a\x01\x5b\x15\x8e\xab\x03\x2f\xb4\x6e\x3f\x5c\x5d\xce\xde\xce\x6a\xb7\x49\x17\xb7\x7f\x0a\xff\xfd\xf3\xfb\x9b\x3f\xbd\x7d\xf7\xfe\xe7\xf0\x6f\xef\x2e\xee\xaf\x2f\x7f\x58\x7c\x78\x77\x71\x5d\xb9\x73\xba\xb8\xbb\xb8\xbd\xba\xdb\x73\xad\xd4\xfc\x6a\xf7\x40\xf0\x80\x82\xcb\xc2\x42\x2d\x17\xb1\x3d\x5d\xd2\x57\x5f\xb3\x0b\x4b\x48\x56\xa1\xcc\xb3\x57\x83\x70\xf3\x8e\xca\xbc\x74\x83\xf8\x86\x17\x9c\x94\xce\xa7\xec\x82\x59\xc5\x7a\x00\x43\x6b\xe3\x2c\x10\x5b\x93\x19\x1d\x2c\xc2\x78\x0c\x91\x3f\xb9\x79\xb1\x35\xb5\x22\x9e\xb4\x54\x84\xb4\xdc\x36\xf3\x67\x2e\xaf\x1e\x85\x2c\x4a\xe0\x0c\xe6\x69\xca\xac\xc0\x3a\x3d\x10\x64\x35\xdb\x5a\xea\x64\x9b\xa4\x3c\xf7\xba\x58\xef\xa9\x2c\x70\xd8\x6d\x5d\x1d\x89\x4d\x33\x65\xd6\x1e\x1e\xee\x67\x0c\xea\x7d\xf9\x6e\x06\x2e\x50\x54\x58\xd1\x07\xfb\xf1\xb9\x44\x1e\x2e\xfa\xe2\x96\x03\x40\xbf\x50\x14\x4f\xc3\xcf\xd3\xc3\xdd\x13\x51\x1f\xb3\x88\x6d\xe4\xf9\xb9\x40\x40\xae\x92\xf6\x3f\xae\x64\x91\xef\x06\xfb\x35\x77\x90\x91\xaa\xc1\x37\x25\xbc\x4f\x55\x2b\x0b\xc3\x1d\xcc\x96\x7e\x0d\xce\x8e\x05\xa3\x51\x34\xde\x05\xdd\x05\x30\x13\x77\xf8\xdf\xa9\xd9\x84\xbe\xd5\x7e\x08\x49\x43\xa0\x17\x96\xaa\x94\xb1\x26\x64\xd2\x36\x91\xe7\x5b\xfe\xf9\x95\x6d\x29\x26\xe1\x3b\xc6\x7a\x20\x58\x12\xa9\x39\x89\xec\x8c\x91\xeb\xef\xae\xb9\xec\xe9\xaf\xfd\xde\xa2\xb5\xac\x70\xec\xf1\x67\x54\xc4\x58\x3d\x8a\x5d\xdb\xf8\x35\x54\x47\x10\xc7\x45\x0b\x1e\x0a\xc9\x72\x61\x1e\x74\x00\xae\x14\x71\x79\xee\xdf\x00\xd4\xae\x28\xa3\xb5\xdb\xee\xf0\x96\xf7\xa8\x65\xd3\x7a\xbf\xfc\x0c\xb2\x31\xf4\x25\x33\x66\x78\xdb\x6c\x03\x9d\x04\x4c\xa7\x6b\x34\x33\x58\x7f\x55\x4b\xb6\x82\x2c\x0d\x52\x3e\xce\x05\x04\xb6\x61\x28\x2c\xcf\x31\xd0\xf0\x34\xae\xb0\xed\x14\x48\x85\x86\x70\xaf\x34\xc7\x2d\xf1\xa9\xa4\x1b\xbb\xef\x7e\x3d\x6e\x9f\x2d\xf2\x1d\xb3\x9c\xfa\x61\x96\x08\x25\x49\xd1\x9e\x0b\xf5\x2a\x65\xd2\xc6\xcd\x75\x53\x4a\xb3\x15\x9f\x02\xec\x30\xfc\x36\xab\xf6\x51\xfa\xe7\xde\x44\x0a\x1b\x88\xcd\xf1\xf9\x67\x23\x33\xfc\xa9\xc6\x61\x48\x9f\x03\xd8\x2e\x95\x1e\x6e\x68\x4b\x1e\x3d\x3c\xf1\x3c\xc6\x58\x21\xa0\x0f\xa6\xec\x07\xf5\x24\x1e\x45\x3e\x61\x91\xc8\x0b\x4e\xf4\x46\x1a\xae\x5f\x61\x41\x51\x39\x73\x09\x28\x76\xe4\x8a\x92\x20\x1a\x5d\x24\xeb\x8d\x39\x4f\x06\x97\xe7\x2a\x37\xe6\xa8\x40\xee\xb8\x4c\x44\x44\x28\xd3\xd1\x01\xab\x94\x3f\x36\xf9\x9a\x0e\xc9\x84\x67\x33\x97\x8a\x67\x6f\xa7\x2c\x77\x7c\x1f\xdc\x81\x3a\x8c\x8c\x26\x52\x80\x4c\xd8\x5a\xa5\x5c\xae\xa7\xd3\x29\x13\x45\x34\x7d\x35\x6a\xa2\x53\x81\xe1\x7d\x97\x83\xa0\xa6\x4a\x69\x91\xee\x1c\x09\x8a\x4b\x12\x30\xdd\x0c\x39\x22\x3a\xc1\x90\x47\xcb\xf4\xbf\xad\x67\xd4\x7f\xd9\xd0\x79\xfb\x49\x75\x74\x0a\x5a\x47\x39\x20\x45\x33\xa2\x24\x7c\xbe\xfd\xe4\x75\x50\x4a\x65\x07\xcf\xa9\x92\x63\xf3\x04\x7f\x52\x5d\xc2\xca\x07\x71\x93\xb5\x96\x44\x44\x0e\x07\xe5\x56\x75\x45\x2c\x6a\xe9\x6e\x47\x64\xba\xf5\x24\xad\x8d\xcc\x57\x6b\x59\x77\x2d\xcb\xa2\x36\xdc\xa3\x97\xc5\x7e\x76\xfc\xd6\x06\x8d\xcc\x07\xf4\x89\xbb\x63\x5c\x27\x4c\x29\x4a\x77\x70\xe2\x72\xd9\x81\x10\x59\x8e\x83\xc8\x78\x25\xf0\x0f\x79\x2a\xfe\xe6\xc0\x11\xec\x04\x17\x05\xba\x50\x39\x5f\x0b\xb6\x15\x71\x52\x6e\x5b\x8d\x8d\xab\xee\x31\x68\x2f\x95\x96\xdb\x6e\xaa\xb3\x63\x1d\x68\x5f\x49\xfc\xaf\x4b\xf8\xdc\x60\x07\xda\x4b\x88\x5b\x91\x12\xaa\x2f\x86\xc1\xa9\xaf\xcd\x4e\x99\x27\x1a\x48\xf9\x0e\x49\x0b\x73\xc5\x60\xd1\x70\x5b\xb7\xcb\x30\xfc\x5a\x19\xdd\x33\x7b\xbb\x43\xaf\x68\x1c\x55\xb8\xe2\xeb\xde\x14\xea\x18\xb2\xd1\x63\x04\x12\x18\x07\xdd\x6b\x82\xdb\x18\x90\x51\x13\xc8\x05\x0a\xa4\x9b\xf8\x42\xb1\x95\x4d\x34\x7a\x10\x01\x75\x53\x0c\x34\xd5\x4f\xc8\x03\xf2\xa7\xdf\x69\x7b\x67\x4f\xb0\x0a\xef\xb1\x14\xfe\x23\x78\x37\xf0\xf8\x9d\x45\xd3\x60\x0b\xb1\x08\x20\x58\x8a\xb9\x2c\x5a\x0b\xf0\x60\x33\x28\x0b\x5f\xf9\x89\x97\x69\xfb\xe3\x54\x3e\x3c\x8a\x92\x37\x17\x3f\xdf\x32\xec\x6a\x22\x34\xce\xfb\x2a\x1a\x14\xb2\x1f\xcf\x03\xdd\xb5\x38\xc0\x13\xac\x8c\x03\x76\xba\x65\xb4\x36\xdd\x2e\x8a\x68\xe3\x3d\x8f\xaa\x76\x2d\xe9\x99\x51\x3b\xb7\x9e\xa2\x19\xa1\x92\x21\xe6\x2c\x59\x4b\x15\xaa\x0b\x28\x29\xe0\x92\xc6\x18\x20\x15\x16\xcb\x92\x62\x3f\xb0\x67\x24\xab\xd2\xbe\xa9\x56\x28\x04\x6c\x50\x3b\x2b\x77\x6d\x70\xa4\x48\x90\x8b\xc5\xa2\x22\xf1\x4c\x44\xf2\x58\x75\x62\xe1\x6a\x76\xfb\x5c\x56\x3f\xd5\xe8\x24\x8b\xbc\x49\x72\x81\x7c\xa0\xda\x78\x6f\x45\xf2\x68\x16\x6a\x73\x5a\xbb\x09\x0a\x16\xa0\x39\xf7\xe6\x12\xab\x1d\x90\x8a\x3e\x88\x9d\x0e\xb5\xb8\x68\x46\xb1\xae\x09\x99\x98\xf6\xd0\x78\xed\x1f\x0a\xe8\xb8\x45\xa0\x2d\x3e\x6c\x2f\xc3\x8f\xfe\x68\x5e\xee\x81\xf4\x35\x0a\x37\x73\xd0\x67\x72\xf9\x98\x22\x99\x09\xdf\xcf\x34\x86\x1e\xb5\xd3\xa2\x3b\xef\xc3\xb3\x70\xf0\x35\xe7\xdb\xb9\x24\xde\xe1\x60\x93\x33\x06\xa7\x39\x6c\x94\x5e\x8a\x6c\xa7\xbb\x0a\x35\x06\x50\xc3\x59\x9a\xbc\x76\xb9\x7f\x2b\xe5\x38\x97\x24\x98\x0f\x8a\xf7\x14\xc3\x6b\xfd\xe0\x81\x50\x30\x1a\xdc\x4e\xf8\x97\x3f\xc2\x50\xc7\x11\x3b\x1a\x8a\xba\xe1\xe9\x27\x12\xa6\xfb\x2e\x64\x2b\xf2\xca\xe2\xae\x6e\xaf\x2e\x6f\xae\xee\xbe\x18\x3c\xcc\x62\xb3\x46\xe3\xc3\x6c\x3d\xdf\x5c\xbd\xbd\xb8\x7f\x77\xb7\x78\x33\xbb\x79\x0e\x80\x18\xfd\x74\x00\x42\xec\x96\xe8\xcc\x2f\x95\x2c\xc4\xe7\xa3\xf6\xe4\xbc\x94\x0b\x3e\x22\x53\xc1\x49\x06\xf4\xb9\x3b\x58\x68\x93\x8e\xdd\x71\xa5\x13\x37\x1f\xee\x68\x8e\x7d\x7d\xe5\x83\x86\xab\x24\x4d\x21\xcd\xd1\x85\xd7\x29\x29\xc8\x74\x2a\xd8\x1f\x4b\x47\x48\x36\x75\x2e\x97\x15\x3e\x7a\x08\xf9\x6d\xcc\x21\x18\x13\x1c\x33\xd3\x01\x79\x02\xe9\x63\x7d\x8c\xed\xeb\x44\x0a\x5f\x0d\x14\x60\x2d\x25\xeb\xa4\xd9\xa5\x41\x7c\xce\x2c\x56\x72\xbc\x86\xfa\x9a\x76\xc6\x55\xe6\xa7\x75\x3f\xed\x8f\xae\x85\xb8\x88\x13\x89\x8e\x69\x65\x35\xdf\xb6\x4f\xdd\x73\xbf\x04\xa0\xdf\xcd\x48\x72\xb8\x83\x00\x8d\x53\x3f\x90\x34\x10\xa8\x95\xe2\x2f\x27\x1e\x12\x44\xd1\xa8\x55\xad\x9f\x8d\x29\x34\x7d\x9d\xc0\x4d\x05\x27\xe6\x86\x28\x2d\x75\x21\x72\x0a\x9b\x5c\xfc\x7c\x3b\x97\x28\x84\x4f\xbb\x10\xe9\x69\xe0\x27\x10\xc3\xa1\x2a\xdf\xb7\x1e\x4a\x68\xc1\x5e\x62\x8c\x7a\x2b\xb8\xd4\xa8\x3f\x9d\xa6\x22\xf7\x33\x03\xeb\x23\x44\x4c\x1a\x64\x40\x55\xe9\xdf\x27\x09\x62\x05\xab\xd6\xd4\x97\x7e\x25\x11\xde\xfa\x7c\xea\xca\xa2\x05\x80\xe8\x73\xce\x9c\x96\x3c\x85\xa1\xb3\x88\xb0\xb5\xad\x93\xa8\x9a\x35\x30\x68\x2e\xdd\x61\x71\xbf\x4c\xa5\x13\x4e\xa5\x01\xfb\x7a\xb8\x4b\xb0\x8d\x32\x06\xd4\x49\x61\xf8\x6b\x66\x97\xc5\x9f\x02\xfe\xc9\x74\x63\xeb\xae\x53\x13\x5c\x3b\x62\xd7\x41\x85\xb5\xe3\xe0\x9c\x17\x2d\x74\x21\x5e\xd9\xc7\xde\xed\xf4\x6a\xb9\x3d\x0f\x2d\xd7\x85\xc5\xdb\x49\x55\xd8\x04\x7b\x07\x71\x23\xbc\x9e\x79\xc0\x31\x3b\xf4\xd6\x91\xd8\x12\xac\x97\xb2\x38\x52\x0f\xe9\x2e\xc4\x05\x56\x92\x28\xb1\x16\xa1\xa4\x2a\x21\x88\x3d\xc1\xc1\x98\xc9\x77\xb8\xe2\x5e\x75\xce\x39\xb2\xbc\x83\xc0\x0e\xd7\xef\xaf\xaf\x42\xa8\xc2\xec\xfa\xee\xea\x0f\x57\x37\x95\xf4\xdb\x77\xef\x2f\x2a\x29\xb4\xb7\x77\x37\xb5\xcc\xd9\xef\xdf\xbf\x7f\x77\xd5\xc0\x3c\x5c\xdd\xcd\x7e\xac\x14\xfe\xe6\xfe\xe6\xe2\x6e\xf6\xbe\xf2\xdc\xf7\xb3\xeb\x8b\x9b\xff\x0c\xff\x72\x75\x73\xf3\xfe\xa6\xf6\xbd\xfb\xcb\x7e\xf4\x44\xa5\x19\xed\xe1\x1f\x7f\x39\x1b\xf0\x06\xb6\x2e\xe3\xaa\x22\xe1\x11\xab\x78\x20\x08\x6b\xdf\x74\xb4\xd9\xb5\x71\x48\x27\x8e\x0b\xc3\x54\x75\xd4\xac\x3b\xbd\x84\x62\xa5\xeb\x32\x7e\x9c\xd9\x33\xbb\xda\xe2\x14\xa0\xb8\x5e\x07\xd0\x7d\xa5\x16\xb8\xd5\x05\xa4\x20\x61\xd7\x66\x70\x83\xb5\xe6\x9d\xf2\x26\x32\x7e\xf6\x9a\xda\x6f\xec\xab\xa7\xe7\xa9\xd9\x43\xf7\x71\x2a\xf2\x82\xbe\x4a\x07\x1f\xb3\xb9\xc1\x49\x6c\x1d\x05\xfb\x63\xb0\x71\x43\x33\xcc\xcc\x09\xa6\x63\x97\xd6\x5d\x7b\x8e\x43\x3f\xb5\xd4\xd8\xfa\xd3\x47\x9a\x75\xaf\x31\x2b\x8c\xa8\x37\xf0\xc1\x8c\xa9\xf7\x1d\xd7\x0f\x63\xeb\x4d\x1f\x69\xd6\x1b\xdc\xbe\x83\xea\x0d\x01\xef\xa2\x9d\xf5\x62\x84\x11\x0b\x8b\xa9\x56\xcf\xa5\xe4\xba\x47\x02\x49\xc9\x61\x75\x34\x0b\xe0\x79\x8f\x97\x19\x1f\x7e\x91\x01\xb5\x71\xcb\x95\xd7\x28\x93\x6f\xe1\x57\x68\xe1\x32\x17\xfc\x21\x56\x4f\x34\x1e\x75\x64\x28\x1b\x64\xcd\xab\x1d\x64\x6c\xb8\xdd\x22\x40\x88\xda\x7c\x12\x51\x6a\xbe\x78\x80\xc9\x25\x44\xfa\x8b\x3e\x58\xa0\x85\x58\xe7\x0d\x01\xa6\x16\xe9\x47\x67\x2e\xd1\x9b\x6f\xd3\x53\x34\xa3\x6a\x6a\x44\x99\xfe\xd0\x54\xe7\x43\xe3\xe5\xba\x0e\x06\x96\x72\x19\xca\x1c\xc0\x74\xcb\x1c\xce\x4c\xd0\x21\x89\x84\x60\x72\x6e\x0e\x3c\xb9\x88\x12\x2d\x02\xc5\x9b\xd6\x1d\xfb\xd3\x71\xfc\xf8\x05\x2f\x5a\xc3\xae\x83\xe3\xe1\x3c\x2a\x4a\x9e\xb2\x4f\xa5\xc8\x77\x44\x2f\x86\xb1\x4a\xfc\x4b\xc4\x25\x26\x4d\x14\x62\x9b\x41\x12\x6e\x88\xf6\x9f\xcb\x9f\x01\x28\x81\x43\xf0\x42\xb3\x3f\x00\xe4\xc1\x3e\x4c\x9b\xf0\x96\x17\xb0\x17\xff\x19\xbf\xe1\x7e\x9b\xce\x65\x45\x41\x22\x78\xab\x22\x26\x31\x9d\x4b\x4b\xe1\x1e\xab\x48\x4f\xe1\xc4\x37\x55\xf9\xfa\x9c\xe4\x45\xcd\x64\x57\x0f\x4b\xa5\x1e\xce\x85\x3c\x87\x98\x54\x71\xce\xcb\x42\x9d\x03\x5c\x0a\xc7\x5f\x9f\x5b\x15\x42\x2b\xe3\xa8\xcf\x37\xc9\xa3\x80\xff\x37\xdd\x14\xdb\xf4\xdf\x74\xb6\xf9\x7c\xb6\x4e\xf3\x33\xf3\xee\x59\xf8\xee\x99\x7d\xf7\xcc\xbe\x7b\x66\x5e\xc3\xff\x97\xed\xf0\x7a\x47\x7c\xe6\x66\x2f\x9b\xcc\x65\x22\xb5\xc8\x0b\xf0\x7e\x9e\xf2\xa4\xf0\x52\x1d\x3b\xf6\xe2\x7f\xfe\x87\x4d\x73\xfe\x84\xe9\x73\x6f\x78\xc1\x3f\x60\x7c\xf1\x1f\xff\x78\x01\x17\xaa\x98\xdf\x92\xf1\xfc\x53\x29\x8a\xb9\xd4\xc2\x2c\x42\xf6\xff\xcd\x25\xdc\xc0\x6e\x77\x8b\x02\xe3\xae\x18\x83\x8c\x35\xfb\x0f\x2c\x73\x86\x54\x7b\xb1\x36\x25\x75\x20\xeb\x13\x9e\xb6\x08\xd7\x76\x84\xe8\x3f\xa5\x6f\xe8\xf9\x11\xcb\xfa\x53\x5a\x5d\xd5\x56\x2c\x42\x7f\x4a\x61\x03\x4d\x15\xb7\x60\x2d\xe6\x26\x2f\x9c\x93\xa9\x72\x6d\x6b\xa4\x01\x0d\x78\xd6\x6b\xfa\xf6\xb5\x72\x8b\x74\xbf\x36\x72\xdf\x30\x23\x70\x57\xe0\xef\x21\xe0\xf6\x3c\x31\x2b\xe4\x16\x23\xa1\xe0\xb9\x61\xcb\xc1\x27\xa5\xab\x73\x57\x1e\x06\x2e\xf4\x6f\x5f\x9f\x9f\x4f\xd8\x5a\xc3\xff\x2c\x3f\xc1\xff\x00\x7a\xe8\x54\x8c\x95\x8d\xce\x74\x40\xb8\xe6\x28\xef\x1f\x89\x53\xa0\xe8\xbe\x04\x49\x72\x6d\x9a\x7e\x5f\xca\x38\x15\x3e\x1b\xb0\x72\x25\x92\x2a\x2b\x9c\x8d\x81\xb1\xba\x1c\x05\x8c\xf1\x52\x44\xdc\x18\xbe\xc6\xb7\x11\x5c\xaa\x56\x85\x90\x18\x0d\xcb\xbd\x5a\x15\xc7\xc8\x15\xb8\xc5\x00\x85\xe4\x05\x41\xce\x05\xfc\x11\x3e\x02\xac\xc3\x93\xfa\x4f\x6c\xa7\x4a\x22\xd0\x05\x5a\xc8\x58\x44\x29\xb0\x94\x5b\xb2\x0f\x96\x8b\xa2\xcc\x25\xe3\x2c\xe3\x32\xe6\x1a\x66\xe0\x2a\x87\xdb\xce\x9c\xf1\x66\x45\x27\x08\xc7\x55\x65\x01\x14\x36\x88\x2c\x08\x7b\x02\x19\x8e\x83\x3a\x4f\x82\x4a\xe0\x9e\x00\x44\xab\x8d\x17\xa7\x73\x69\xf5\x94\x08\x0b\x87\x91\xb2\x48\x65\x3b\x22\x28\xa9\x77\x7a\x62\x23\x67\xd4\xdd\x13\x8f\x37\xa9\x3f\x3b\x61\x49\xf5\x6a\x0d\xc8\x94\x8b\x40\x11\xd6\xaa\xd6\xbe\x14\x32\x52\xb1\xc8\xf5\x2b\xb3\x0c\x13\x77\xee\x40\xff\x21\xd1\x7e\x30\xc0\x4a\x99\xcd\x8d\xa2\x85\xa6\x78\xa7\x3a\x62\x7a\xa7\x42\xbf\xdb\xe6\xe7\xec\x5f\x2a\xdf\x3a\x0a\xa6\xad\xbe\xf4\x9f\x5f\x14\x11\x13\xe2\x3a\xed\x99\xf3\xf0\x10\x04\x2e\xd9\xd0\xe2\x62\xa1\xe8\xe3\x90\x73\x62\xe5\x37\x93\x02\x14\xbe\x72\xa1\x8b\xb9\xa4\x1d\x78\xc2\x56\x82\x1b\x3f\x6f\xc2\x22\xfd\x88\xc6\x18\xb7\xfb\xe2\x49\x79\x0c\x8e\xd5\x6e\x00\x30\x6c\xa5\x70\x1f\x24\xc6\xc7\x00\x51\xc0\xa3\x02\x01\x06\x5d\x27\x74\xe7\xaa\x40\x67\xb5\x1a\xc4\x03\xfa\xc1\x4a\x01\xd4\x65\x77\x42\x25\x0a\xe8\x89\x1d\x5e\x14\xb3\x7a\x3d\xf0\x07\x63\x78\xb0\x75\x08\x03\x09\x8c\x23\x78\xdc\x84\xa5\xc5\x75\xe6\xef\x70\x43\x3e\x66\x88\xcd\x74\x2d\xaa\x9e\x8e\x80\x0a\x1c\x16\xb7\x30\xaf\xee\x0d\x58\x69\x91\x5b\x9d\x02\x6c\x2b\xf2\xc1\x6d\x92\x3c\x3e\xcb\x78\x5e\xec\xec\xf4\x4d\x93\x25\xd0\x9b\xa7\xc9\x83\x60\x17\x79\xae\x9e\x4e\xdd\x0b\x9d\xa6\xa5\xeb\x84\x7d\x0c\x92\x7d\xec\x29\xbf\x95\x0d\xb2\x1e\xee\x38\x8c\x79\xb2\x2b\xf0\xd1\xfa\x9d\x5c\x14\xf9\x6e\x61\x26\xe2\x36\xeb\xb4\x14\x83\x92\x26\x86\x3b\xb9\xe3\x48\x2d\x6b\x21\x8c\x4e\x52\xcb\xca\xa8\x7e\x3b\xa4\x96\x2d\x7c\x95\x4d\x52\xcb\xd9\xf5\xec\x6e\x76\xf1\x6e\xf6\x7f\x6b\x25\xfe\x7c\x31\xbb\x9b\x5d\xff\x61\xf1\xf6\xfd\xcd\xe2\xe6\xea\xf6\xfd\xfd\xcd\xe5\x55\x3f\x4b\x4d\xb3\xf6\xde\x05\x3f\x63\xe1\x77\x5e\xb3\xbb\x00\xa8\x81\xc9\x06\xe4\x7f\x93\xbe\x1f\xcc\x2a\xb3\x98\x13\xb9\x9e\xc0\x42\x7d\xcd\xae\xf2\x7c\xb6\xe5\x6b\xf1\xa1\x4c\x53\x80\x53\x61\x66\xcf\x65\x2e\xe0\xe0\x39\x61\x1f\x54\x3c\x0b\xde\x83\x74\xc4\xd6\x66\xc0\xf7\x79\x1c\xe7\x42\x6b\xfc\xfc\x84\xbe\x1f\x80\x87\x5c\xaa\x23\x81\xe7\xf8\x23\x4f\x52\x73\x7e\x7b\x0d\x1a\xfb\x6a\xb5\xc2\xf4\x99\x89\x4b\x9c\x62\x9f\x4a\x55\x70\x26\x3e\x47\xc0\xcc\xd4\x3e\x4f\xde\xa9\xf5\x57\x80\x2a\x0f\xb8\x9e\xea\x38\xa4\x80\x8e\xd3\xa2\x7d\x3b\x6f\x37\x04\xd4\xca\x1f\xf1\xd5\xb7\xf8\x66\x7b\x80\xb2\x48\x4f\x90\x29\xfe\x4e\xad\xdb\x55\x35\xc0\xbb\x26\x29\x10\xba\x48\x88\x88\x77\x42\xad\x99\x4e\xe4\xc3\x5c\xfe\xbc\x11\x92\xa9\x32\xc7\x3f\xc1\x31\xdf\xb8\x99\x69\xa9\x37\x02\x64\x36\x27\xec\x49\xb0\x2d\xdf\xa1\xdb\x0c\x67\x02\x27\x05\x00\x53\x06\x76\x11\xf3\x76\x9a\x48\x63\x2d\xb2\xc4\xe6\x25\xd4\x87\xfe\x14\x27\x2e\xcb\x4b\xc6\x8f\xa7\x0d\xed\xdb\x4f\x2b\xf8\x3c\x08\x95\x79\xdc\xa4\x05\x08\x91\xe5\x06\xa5\x41\xa5\x1e\xca\xcc\x33\x18\xbe\xb0\x97\x93\xd0\xdd\x8f\x2a\x89\x59\x5c\x66\x69\x12\x39\xbb\xfb\xa4\xf2\x4e\x9a\x56\x4c\xa0\x19\xbe\xeb\xd4\xd3\xc2\xfa\x1a\xd6\x92\x9d\x13\x20\xe9\x7a\x08\x5b\x9f\x99\xb2\x96\x25\x32\x4a\x4b\xd0\x50\x2a\xb5\xc8\xcf\x8a\x3c\x59\xaf\xc1\x01\xb7\xb9\x7e\xdf\x3e\xa7\xad\xe7\xcc\x3b\x3e\xad\x2d\x4c\x3a\x4f\xd5\x3a\x89\x78\x1a\x82\x9b\x3d\x2a\xc2\x91\x66\xda\x65\x4f\x0a\x93\x90\x07\x61\x2b\xd4\x49\x06\x94\xe5\x02\x78\x5b\x17\x60\xca\x17\x64\xee\x8e\xa9\xf7\x8a\x99\x03\x3a\xd6\x2b\xa4\xb4\xb4\xd7\x0b\x76\x87\xf3\xdf\xb6\x32\x43\x28\xac\x0f\x12\xc4\x4c\x3d\x49\x91\x83\x07\x0b\xb0\x0f\xd3\x52\xa9\xc0\x37\x71\xd2\x43\x0e\x9f\x6c\xa5\xb7\x56\x0e\x88\x8d\x99\xb3\xeb\xe4\x51\xc8\x2f\xcf\x41\x1c\x7c\x20\xe2\xd1\x46\x2c\xac\x5f\x7e\x6a\x93\xe5\x36\x80\x91\xc6\xca\x6a\x00\x84\xa6\xd4\x5d\x6f\xc2\xd1\x09\x6b\xdc\xb4\x5d\x78\x91\xd8\x93\x91\x65\x2a\xb1\x88\x45\xf4\xf0\xc5\x4d\xb3\x07\x59\xd9\x8a\x30\xce\xde\x88\xe8\x81\xdd\xdf\xcc\x30\x1b\x38\x29\x98\x31\x05\x7a\xe3\x35\x4d\x3a\xcf\x6e\x05\x5f\x3f\x03\xb9\xd1\x50\x51\x16\xcf\x2c\xee\xa4\xa8\x4c\x85\x08\x10\x05\xf9\x92\xc6\x48\x52\x2e\x0d\x00\xc1\x78\x61\xa5\x3a\x20\x10\xcf\xf4\x16\x94\x39\xca\x22\x90\xb3\x4a\xf9\x52\xa4\xba\xbd\xc1\x99\x8a\x17\xf6\x9e\xe4\x58\x30\x4f\xa3\x2c\x1b\xc7\xa0\x5b\x47\x9b\xc7\xc0\x8d\xc7\x7a\x47\x0f\xb2\x87\xdf\xe9\x80\x5e\x43\x85\x74\xbf\x70\xae\xe7\x5a\xd4\xf4\xdd\x93\x15\xe9\x87\x60\x42\x3f\x28\x65\x1b\x7b\x69\x4a\xfa\xa0\x62\x82\xe9\x39\x3e\x2f\xe3\x05\x09\x8a\x9e\x78\x5c\x45\x58\x05\xa7\x26\xae\x21\x36\xa0\x0b\xc1\x63\xa6\x56\x14\x4d\xcc\xb2\x34\x01\x22\xd7\x18\x39\xa3\x81\x3d\x43\x57\xd1\xf1\x61\x69\xb6\xb2\x01\xc9\xc7\x07\x0b\xc4\xeb\xbd\x6f\xf4\x97\x5c\xa6\x5d\xd5\x20\x77\xdd\xa7\x3a\x56\x29\xcb\xe5\x23\x1d\x7a\x84\xee\x8f\xa6\xad\x53\xb5\x84\x8e\xea\x06\xc5\xf5\x18\x68\x63\x9d\xf2\x24\x1e\xb3\xbd\xdb\x3e\x79\xef\x5e\xed\xab\xe0\x7b\x1b\xe9\x70\x5f\xb2\xc3\xcc\x88\x66\x3b\xbc\xc1\xaf\xa5\xb1\xef\x3b\x6b\xc3\x05\xa1\x76\x37\x84\xce\x1b\xb7\x24\xf3\xb0\x2a\x9c\x39\xee\x38\x56\x57\xdb\x72\xd4\x40\x37\x89\x51\xf6\xf4\xa5\xe7\x52\xe9\x1f\xe4\x23\xd8\x2d\x70\xe5\x3a\x8a\x8b\x31\x4c\xc1\x76\xe8\x10\xe3\x6b\xfa\xd3\x0f\x62\x25\xf9\x62\xd0\x88\xd6\xfb\xdd\xae\xe2\x63\xba\xfc\x39\x56\x54\x59\x28\x1f\xf2\x87\xf6\xcc\x80\x3f\x33\x4c\xeb\x02\xb3\x31\x8b\x3b\xe0\x02\xd6\x07\xb3\x4b\x73\x04\x08\x75\x14\x0c\x36\xcb\x85\xbd\x3c\xda\x89\xc2\x25\xf7\xa7\x56\x39\x09\xee\x46\x5c\xab\xab\xec\x26\x96\xc0\xc0\x31\x52\xc1\x4d\x06\xf9\x7b\x91\xda\x66\x4a\x02\x36\x05\x53\x95\xe6\x92\x0a\xb7\xfa\xb7\xee\x7a\xa5\x92\xef\x36\xa1\xa8\x16\x66\x4f\x08\xad\xd2\x47\xba\x47\x0b\x88\xe7\x41\x39\xcb\x54\xf0\xd2\x1c\x10\xcc\x71\x18\x2e\x78\xc9\xbc\x03\x1c\xbc\x26\x02\x9b\x8b\x75\xa2\x0b\x11\xa6\x08\x86\xef\x9f\x4c\xaf\xaf\x72\x82\xee\xeb\xfa\x4e\xbd\xbe\x7d\xae\xb0\x59\xb5\x23\xea\xb3\xcb\x44\x3c\x73\xef\xf5\x4f\x86\x5a\x16\xb7\x37\x12\x95\x5d\x00\xe7\x00\x1e\x01\x34\xf2\x3d\x69\x47\x19\xef\x06\x89\x98\x78\xb8\x47\xb5\x99\x21\x5a\x97\x3c\xe7\xb2\x10\x42\xcf\x25\xdd\x3e\x22\x6f\x59\x48\xcd\x51\x43\xc3\x39\x07\x37\x52\xba\x40\x1a\x20\x78\x65\xc5\x93\xb4\xcc\x3b\xcf\x9c\x38\x2b\x0f\xe2\x1e\xe8\xeb\xa5\x4b\x28\x96\xb5\x0d\x9a\xcb\x62\x0d\x56\x91\xa3\xce\xa8\xdf\x1d\x56\x93\x3c\x3b\x9a\x60\x4d\xee\xf0\xf1\x76\x01\xc7\x8e\xc4\xd6\xdf\xe9\x45\xa6\x46\x58\xbc\x3f\xfd\x4e\x7f\x50\x1d\x29\xc1\xfa\x53\x23\x30\xd6\x73\x87\xfe\xa9\x8b\x44\x9f\xeb\x07\xb8\x7e\xda\x77\x1e\xdf\x1f\x64\xff\xed\x6f\xf6\x5f\x52\x75\xda\x2e\x98\xb5\x1b\x2e\xe3\xd4\x9c\x53\x79\x51\xdb\x81\x3c\xd8\xd7\xf8\xc5\x85\x35\x8e\xdd\x99\x5d\x90\x28\xb1\x88\x1a\x59\x76\xfb\xfa\xa9\x96\x9e\xd7\x0b\xa8\xab\x7d\xa5\x9a\x34\xd7\x96\xac\xe1\x77\x76\x12\x7a\x74\x0b\xb6\x7b\x0a\xae\x92\xf5\x37\x70\xc8\xfa\xb1\x69\x29\x23\x5a\x8a\xb4\x7f\x39\xe4\xf7\x91\x8b\x11\x92\x6c\x8c\x31\x0b\x79\x7a\xe7\x92\x74\x60\xf1\xe6\x15\xae\xdc\x90\x8b\x4a\xb3\xef\x5c\xe6\xe5\x77\xff\x6e\x99\x88\x76\x6c\x05\x7d\x0d\x74\x5f\x2a\x8a\xca\x1c\xae\x45\x29\x74\xc3\x04\xee\x4d\x63\xe8\xd4\x2f\x70\x47\x76\x60\x16\x74\x9f\xda\xbc\x07\x17\xab\xab\x34\xea\x0e\x42\x34\xa8\x68\xeb\xf6\x42\x92\x5e\xc9\x75\xc1\x74\x21\xb2\x56\xab\x54\x71\xba\xaa\xa2\xcd\x47\xb8\x5d\x5e\x32\x7a\xa0\xaf\x3b\xc2\x46\x5f\x04\xc7\xe9\x3f\xde\xbe\xbf\x66\x19\xdf\x01\x2e\xac\x50\xa4\xb6\x0d\x64\x8c\xf5\xf5\xbb\x6f\x04\xaa\x8d\xaf\x2e\x36\xec\x53\x0b\x30\x6d\x8f\xdd\x72\xa7\xa6\x5f\xb3\x43\x30\x67\x68\x4a\x9a\xa5\x9c\xab\xf4\x2c\x4b\xb9\x0c\xa0\xbf\x7a\xca\x6a\x9f\x0f\xef\x7a\xdd\xad\x0f\xa1\x69\xa0\x02\x10\x4e\xa1\xb9\x90\x97\xad\xe0\xd0\xaa\x0e\xf5\x51\xd7\xbb\x9d\x36\xa2\x17\xf4\xf6\x23\xd2\xe9\xf3\xc8\x2c\x13\x64\x16\xb0\x57\xd6\x0e\xf5\xc0\x35\x00\x12\x47\x0c\x54\xbf\x68\xf6\x5c\x5a\x4d\x54\xf5\xa4\x59\x8c\xdc\x0b\x65\xa2\x37\x10\x9f\xc4\x0b\x01\x00\x07\x91\x7d\x41\xe4\x42\xce\xa5\x36\x03\x0a\x31\x4d\xf1\x28\x28\xb0\x51\xb9\x8c\x9b\xbd\x79\xe7\xee\xf7\x71\x90\x48\x88\xab\xa3\xeb\x03\xc7\xec\x98\x03\x4c\xab\x8a\xf3\x7e\x8e\xfb\x1f\x79\xd6\x97\x35\x76\x74\x89\xfb\x46\xc9\x31\xcf\xd4\xbd\x4e\xd0\x97\x05\x6d\x9e\x4a\xea\x58\xd8\x7b\xf7\xf2\x48\xf3\xd3\x4a\x7a\xbd\x9f\x5f\x7f\xf0\x21\x6c\x58\x26\xe0\x08\xdb\x13\x90\xc0\x39\x6c\x8d\xf3\x97\xcd\x2a\x07\xe5\x13\x60\xaf\xc2\x48\xda\x94\xdd\x0a\xc1\x3e\x42\x4f\x99\x8f\x7d\x24\x65\x2d\x80\x0b\x16\x3c\x69\x15\x3e\x81\xa7\x67\x72\xa5\x8e\x33\x06\xf9\xba\x01\x47\x3b\xaa\x57\xda\xeb\x79\x2c\xe0\x0d\x52\x19\xe5\xf3\xe6\xdf\xb7\xb6\x6b\x0f\xbc\xed\x83\x3f\x93\x53\x56\x9e\xad\xa9\xd9\x9f\x61\x88\x0f\x13\xfe\xaf\x4c\x12\xd3\xca\x09\xb2\x16\x3f\x48\xf5\x24\xd1\x17\xa0\x2f\xb1\x97\x66\xfd\xc1\x06\x86\x01\x54\x74\x0b\x4a\xb4\x86\xaf\x80\x46\xf9\xc2\xfd\x9b\xdd\xe2\x5d\x11\xd6\x19\x74\x42\x34\x38\x3f\xa4\xf0\x01\xd6\xfc\xe5\xc5\x84\x7d\x3f\x61\x97\x13\x36\x9d\x4e\x5f\x4d\x98\xe0\xd1\xc6\xd6\x08\x5f\x41\xe4\x58\xc1\xd7\xa6\x6c\x52\x4e\x58\x05\x1f\x00\xd9\x1b\xb3\x59\x59\xb6\x30\xee\x9f\x0a\x22\x0f\xb6\x09\x98\xc3\x48\x09\x17\x74\xaf\x1e\x6d\x54\xe2\x2b\x05\x10\x4d\x11\xa9\xdc\x82\x3c\x75\xa1\x72\x0b\x58\x7b\xe4\x39\x4f\x24\xa4\x76\xf3\x26\x5c\x97\xbe\x1c\x90\x3b\x8b\xcf\x7c\x0b\xed\x4f\xa4\xe3\xb7\x34\xdd\x74\xe7\xea\x5f\xec\x32\x0a\x48\x3f\xe5\x49\x51\x98\xdd\x59\xcf\xe5\x2d\x7b\xfd\x1f\xec\x22\xcb\x52\xc1\x2e\xd8\xdf\xd9\xf7\x5c\x72\xc9\xd9\xf7\xec\xef\xec\x92\xcb\x82\xa7\xaa\xcc\x04\xbb\x64\x7f\x37\xdd\x66\xca\xbb\x56\x66\x3b\xdc\x4d\x18\x67\xb2\x4c\x71\xd7\x7f\x69\xc1\x60\xaf\x5c\xbb\xb8\x1f\x9d\xa5\x28\x9e\x84\x90\x4c\xab\x2d\x6d\x85\x7f\x71\x77\x12\x3a\x91\xeb\x54\x14\x34\x1f\xaa\xb0\x3d\xfc\xc0\x19\xb4\xf4\xf5\x5c\xba\x58\xde\x5f\x4c\x8d\xff\xc2\xfe\xce\xae\xcb\x34\x35\x55\x32\x86\xc6\x4c\xa4\xd7\xcc\xa6\x51\x08\x39\x7d\x4a\x1e\x92\x4c\xc4\x09\x87\x44\x0a\xf3\xaf\xf3\x3b\x18\xed\x45\xe9\x39\xf3\xc2\x35\xed\xb4\x57\x8e\x31\x3d\xcf\x92\x94\xed\x24\x78\xec\xe0\xf7\x9c\xfc\xaa\xaf\x8e\xf7\x88\x3c\x53\x28\xad\x07\x72\x58\x51\x37\x27\x94\xfa\x39\xc8\x04\xd4\x36\x5b\x5b\x56\xcb\x56\x10\x6e\xea\xc7\x1a\x59\x50\x8e\x3a\xf9\x19\x72\x80\x8c\xcf\x50\x93\xdb\x10\x21\xa9\xa4\xb9\x83\x2f\xe9\xa9\x7e\x06\xdd\x0a\x39\xf1\x91\x9f\xaa\xd2\x59\x95\x2e\x56\xc9\x20\x8d\xb1\x5a\x65\xef\x29\x76\x81\x09\x6a\x66\x99\x26\xe9\xb9\x59\xaa\xe7\xd7\x4a\x9a\x63\xab\x4e\xd6\x48\x4f\x04\x30\x22\x0d\x84\xac\xd6\x29\xb8\xab\xba\xac\xc1\x12\x00\xff\xc0\x54\x09\xa1\x6d\x85\xb1\x02\x66\x08\xd2\xdd\x5c\x9a\x37\x68\x47\x02\x98\x7b\xe2\x58\x6c\xf1\x6b\x56\xcd\x9c\xbe\x45\x06\x39\x28\xbc\x65\x82\xf5\xe5\xd0\x1e\x31\xe1\x28\x65\xeb\x88\xa8\xf8\x75\xc0\xe0\x46\xa5\x59\x7a\x0f\xbc\xf7\x5c\x8a\x54\xc9\xb5\x99\x15\x5d\x46\x40\x6d\x79\x72\x0c\xb0\x24\xac\x02\x16\xd6\x59\x03\xb3\x59\xd2\x23\x34\x24\x66\x9f\x4c\x62\x7f\xbe\xd7\xe5\xd2\xf8\x11\x2e\x22\xeb\x76\x43\x6a\x5c\x57\x42\xf1\x71\xf7\xcb\xf7\x5a\xe4\x40\xb3\x8c\x08\x07\x17\xed\xc7\x8d\xd3\x93\x6d\x60\x8b\x86\x2d\xaa\x5e\x60\x6c\x7b\x28\x84\x6e\x13\x1a\xa9\xd5\x03\xe6\xe3\xd7\xc4\xc8\x3e\xa7\x1c\x7c\xab\xf6\x3b\x3c\x67\x4a\xa3\x3f\x8d\xd5\x77\xb7\xbd\x77\x0a\xf8\xe0\x27\x94\x7b\x59\xa8\x95\xcd\xa4\x1c\xbe\xa7\x37\x04\x77\x86\xa1\x54\x42\x92\xed\x50\x98\xa6\x39\x71\x3a\xf3\xc1\xe5\x82\x6e\x24\x86\x55\xb6\xde\x61\xef\xe5\x5b\x7c\xfd\x83\x4a\x93\xa8\x1f\xf4\x66\xb7\xab\x8d\x7a\x6a\x41\x11\x2d\x05\xa0\x40\x29\xfe\x43\x95\x42\x0f\xbd\x10\x51\xe1\x6f\xdc\x9a\x8d\xfb\x5f\x0d\xb4\xd9\x7f\x06\xc7\x88\xb2\xeb\x36\x10\x7d\x74\x77\x78\xb0\xb7\x02\xc1\x26\xf0\xca\x63\xac\x15\x72\xe9\xe0\x6e\x3b\xe2\x14\x82\xae\xf4\x3c\x18\xe8\xa7\x8d\x4a\xcd\x59\x4c\xc6\x44\x56\x3a\x97\x99\xc8\x23\x05\x00\x15\xcc\x83\x57\x2c\xda\x24\x69\xec\xc5\x5b\x5e\x02\xa2\x17\x70\x77\xaf\x48\xa1\x4e\xb8\x3b\x66\x5b\x7c\xcf\xae\x6b\xa7\x9d\x55\xa9\x3e\x2e\x02\x75\x3a\x88\x5e\xdf\xb4\xff\x99\xa0\x64\xd8\x15\x44\x2f\x54\xbb\x2d\x34\x9d\x5e\xa9\xcf\xa8\x08\x2f\xe8\x48\xaf\xac\x0e\xa6\x3d\x38\x15\xb5\x71\xa5\x69\x56\xef\x4a\x20\x9d\x45\x14\x15\x02\x48\xb4\x80\xea\x6c\x05\x47\x5f\xcc\x53\x40\xd2\xa0\xce\xa5\xbf\x1f\x7d\xa1\x43\xbf\xac\x75\x9c\x91\x53\xd5\x82\x00\x27\xec\x45\xa5\xa1\x2f\x80\x94\x54\x2a\xf8\x1e\xdd\x61\x55\xba\x06\xa6\xeb\x84\x25\xc5\x5c\x26\x1a\x67\x66\x2e\x52\xf1\x68\x6a\x17\x06\x8b\x09\xeb\x62\xcf\xce\xb6\xd9\x80\x23\xe7\x36\xfd\xd8\x89\x9b\xc3\x22\xcc\x43\x72\x4b\x0e\x81\xe9\x58\x68\xe3\x37\x82\x2c\x87\xf8\x6c\x16\x40\x02\x77\x21\x08\xff\x88\x85\xb4\xf5\x03\x54\x08\xea\xa7\xce\xe5\x6c\x05\x39\xa0\x90\x79\x1a\xc7\x78\x0a\xb5\x42\x0d\x8e\x69\x2c\xa1\xe0\xb0\xa2\x33\xb9\x1d\x08\x12\x58\xc4\x95\x24\x1e\x45\xbe\x2b\x20\xa8\x0b\xfd\x2a\x05\x2f\x36\x2c\x29\x26\x40\x11\x67\x2d\xe5\x5c\xf2\x98\xf4\xa9\xa9\x38\xd3\x35\x30\xef\x7b\xc6\x99\x7e\x5f\xaa\xc7\x3e\xc7\xf6\x58\xd4\x17\xae\xea\x2c\xe5\x72\x81\x3b\xc8\x57\xc0\x7d\x05\xda\x97\x5d\x57\x9d\xe5\x72\xe1\x68\x6d\x4e\x52\x4f\x67\xef\x6f\x2a\x8a\xb4\xc6\x8f\xb5\x1f\x9a\xe0\x64\xf0\xb4\xd6\xf6\x78\xe2\xe2\x34\x84\x2e\xc8\x99\xbd\x81\x1d\x6e\x05\x3c\x24\x8c\xd7\x90\x08\x76\xb6\xee\xc3\x84\xd9\x19\xf0\xad\xe2\x93\x86\x8c\x7c\x6d\x0f\xa9\x0f\xfb\x78\x68\x4c\xc3\x43\x3c\x08\x1e\xb3\xa7\x5a\xcf\x0b\x91\xe9\x8c\xa3\x34\xa1\x32\xb6\xb5\xc1\x75\x1f\x26\x4f\x08\x8c\xc3\xb9\x30\x4f\xbb\xb6\x69\x78\x0e\x53\x2d\xd8\xca\x53\xc6\xa8\xc1\x4e\x0d\x8d\x94\xf8\xdc\x6b\xa8\xd7\x94\xcd\x24\xb3\xee\xde\x84\xbd\xc0\x89\xa5\x5f\x50\x08\x92\x04\x72\xe9\xee\x3c\xa6\xd5\x43\xd9\xaa\x75\x28\x06\xe6\x0c\xf8\xe5\x86\x37\x41\xbd\xd4\x86\xcf\xda\x2f\xdf\x27\x90\xb3\x70\x48\x5a\x3a\xde\x22\x2e\xb1\x00\xda\x24\xf1\xd8\xbd\x43\xa7\x5d\xf9\x68\xb6\x6f\xb0\xbd\xef\x62\xdf\xdb\x17\x4d\x17\x65\x25\xed\xa7\xf6\x77\xa6\xf2\xb9\xb4\xa5\x51\x48\x52\xa3\x96\x52\xbd\xa8\x00\x42\x4d\x3e\x7f\x30\x53\x01\xc4\x60\xe5\xb3\x40\x95\xcd\xf3\xaf\xd6\xad\x00\x80\x22\x96\xc2\x4b\x7b\x4f\xd9\x85\xff\x9a\x71\x3c\xcc\x04\xdf\xe2\x36\x5f\xe7\x68\x4c\x53\xd3\x29\x49\x61\x29\x21\x83\xf4\x06\x5d\x02\xb1\xe9\xaa\x34\xc6\x28\x60\x7f\x9d\x4b\xd3\x79\x6c\x95\x00\xee\x97\xfa\x65\x2e\x7f\x54\xda\x66\xd3\x6b\xdf\x1f\x16\x43\x4a\xdd\xf6\xc2\xa9\x88\xd1\x1f\xde\xc0\xa6\x4d\x31\xff\x9a\xac\x3c\xe4\xb5\x10\x25\xc6\x4e\x95\xb9\x6f\x54\xc4\xe5\x5c\xfe\xd5\x74\x0f\x8a\x3a\x3b\x45\x74\xb5\xc2\x25\x6c\x65\xf8\xd9\xcb\x8f\x58\xe8\xcb\x7f\x7f\xf5\xf1\x15\xe2\xd0\x4b\x0d\xc2\x8d\x93\xea\x06\xe2\x88\xc0\xcb\x34\x85\x9b\x68\xdb\x02\x47\x46\xe1\x3f\xc1\xfb\x60\x39\x74\xa8\x5b\xc8\xaa\x8b\x31\x64\xa1\xf7\xcd\x60\x1f\x7c\xbe\x60\x11\x2f\xa2\xcd\x99\xf5\xe5\xc8\x8c\xd9\xdd\x8f\x86\x0f\x15\xdc\x8c\xa7\xd5\xce\x85\x6d\x0e\x9c\xf9\xd6\xb1\xf3\x55\xe6\x8b\x69\x02\x00\x6b\xee\xea\xc2\x30\x8e\x3c\x14\x27\xa7\xd7\x24\xf7\x7e\x9e\x7b\xdc\xca\xb2\xf9\x13\x27\x45\xc9\x25\xdf\x8a\x98\xbd\x80\x8c\xa9\x17\x76\xf0\xe7\x32\x5b\x4e\xd3\xdd\xaa\x20\x8a\x27\xd3\x29\x53\x10\x30\xda\xb3\xcb\x2d\xe2\xe6\x31\x69\x4f\x67\x77\x1e\xb4\xda\x7d\x1d\xd7\x37\xee\x4b\xc3\x1d\x16\x8c\x71\xb9\xde\xb9\xad\x42\x84\xaa\x4c\xea\x5c\x3f\x4c\xd8\x32\xe7\x12\xb4\x27\xe2\xd0\xa9\xf2\xab\x13\x0e\xcf\xc8\x9f\x64\x53\x28\x24\x4f\x77\x80\x1d\x9f\xcc\x25\x92\x4d\x01\x2b\xf1\x2e\x4a\x93\x88\xad\x73\x9e\x6d\x6a\x7e\x90\x78\x14\xb2\xb8\x22\x76\x05\x0b\x52\x3f\xf6\x6a\xd9\xb1\x35\x1c\xc5\xb9\x37\xab\x7a\x3b\xdc\xd3\x50\xf8\x08\x2b\x26\xaa\xd0\x89\xda\x82\x5a\xdd\x04\x9f\x90\x14\x1a\xf0\x71\xb1\x3f\x97\x4b\x95\x5a\x42\xb3\xd9\x1b\xa6\x72\xd0\x12\x28\x14\xfd\x29\x89\xbb\x76\xb1\x44\xc6\xe2\xf3\x51\xac\x02\xfd\x1b\x92\x75\xef\xcc\x67\x02\xca\xfa\x7a\x63\x61\x15\xe5\xc2\x6c\x16\x85\x3d\xc1\x35\x9e\xd2\x75\x84\xdd\x45\x5a\x6c\x00\xf6\x86\x80\x6b\xdf\xa9\x5b\xbe\x63\xd1\x86\xcb\x75\x70\x84\x06\x14\x92\xc8\x54\x8e\x9a\x7b\x8f\x40\xdf\xa5\x72\x9b\xb5\x49\xb9\x88\x84\xfa\x76\x01\x6f\x04\x5b\x2a\x9b\x70\xc8\xd7\xeb\x5c\xac\x21\x91\x7e\x2e\x2b\xd9\xd4\x40\x5d\x66\xe9\xfe\xf1\x3b\x7d\xc9\xa8\xa7\x61\x74\xe8\x3a\xb5\x14\xf9\xce\xa5\xf2\x91\x60\xa5\xeb\xba\x46\xb7\x4e\x58\x22\xa6\x13\xf6\x1b\x0f\x30\x15\x91\x92\x2e\x17\xb0\x23\x11\xac\x16\x9a\xde\x63\x8b\x5a\xa8\x1f\xda\xeb\x0e\xbf\x35\x64\x2f\x5b\x27\x4d\x6f\x32\x65\xc1\x8b\x72\x84\xad\x24\x69\xe3\x4b\xf3\xf2\x2d\xbe\xdb\x8b\xc1\xe6\x99\x31\x6f\x96\x76\xc7\x3c\x6f\x2c\xbc\xf9\xb6\xa7\xe5\x6d\xeb\xeb\xbd\x81\xce\x54\x75\x07\x3a\x4f\xe1\x52\x5a\x6e\x85\xfd\xb1\xce\xb4\x83\x2f\xa0\xa7\x4d\x63\x43\x99\x16\x8c\x4a\x30\x73\x5d\x3f\x6e\xb5\x58\x80\x2c\x57\x71\x19\x89\xd8\xac\x5c\xf0\xdb\x11\xb9\xe1\x68\x0b\x2a\x46\xb2\x6d\x43\xa8\x70\xaf\x80\xc0\xf5\x97\x3a\x1b\x0f\xa2\xbb\x75\xdd\x7f\xdf\x71\x2e\xb6\x9e\x49\x5b\xa7\x87\xeb\x13\xfb\x29\x1f\xb9\x4f\xb9\xcf\x57\x49\x6a\x55\x9e\xac\x13\xc9\x0b\x95\xb3\x97\x2e\x39\xf1\x95\x53\xb6\x81\x5e\x3c\x85\x99\xa8\x74\x11\x9a\x89\xf6\xb3\x17\xe0\x99\x45\xbc\x18\xc7\x9d\x35\x96\xe1\x19\x26\xa9\x79\x4a\x17\x7c\x9b\x85\xb4\x8f\x4e\x37\x98\x7a\x26\xc5\x4e\x60\xb6\x62\x10\xe3\x4b\xb4\xcf\xc1\x9a\x4b\x8a\x8c\xe3\xb8\xa9\x3c\xe4\x2d\xee\xdc\x9b\xb3\xb2\x58\x1c\x48\x65\x82\x2f\x8f\x0b\x90\xd0\x75\xf9\x8f\x3c\xeb\x27\x87\xe0\x74\x34\xc6\x24\x14\x27\xa6\x6c\x3d\x95\xea\xfc\xec\x57\x06\x18\x49\x56\x59\xbf\xe2\xbd\x79\x67\x2f\x34\xfc\xb9\xa5\x72\x10\x80\x81\x40\x96\x3c\x0d\x5e\x05\x1e\x41\x9d\x59\x33\xbb\xb8\x65\x94\xb8\x4c\x55\x19\x33\x32\x6a\x74\x5d\x9c\x4f\x71\x77\x04\xda\xca\xe9\xb4\x8b\xc3\x6b\xa4\x62\xa9\xb3\x3f\xf0\x5e\xfb\x0a\x84\xdf\x3a\x2c\x70\xef\xd2\xa7\x9e\x7d\xb6\xa1\xa7\x9e\x86\xb1\x77\xe6\x78\xd4\xd8\xbb\x68\x2d\x70\x68\x8d\x0b\xe4\xc1\xb9\x29\x89\x53\x58\x6f\x61\xa0\xbb\x85\xe5\xb3\x72\x81\xa8\x1f\x8e\xfe\x9c\xcd\xb4\xed\xff\x54\xc6\x73\x21\x8b\x05\x7c\x71\xdc\xc7\xe0\x23\x1f\xe0\xf5\x8a\xc3\x34\x28\x60\xf9\x5f\x77\x0a\xe3\xd0\x96\x30\xe3\xbf\xd9\x2d\xc5\x5e\xb4\x55\xb5\x37\xbb\xe3\xcb\x04\xb0\x31\xc1\x9d\x9d\x1b\xb8\x8e\xe1\xa2\x06\x1d\xd0\x7b\x41\x83\x2a\xa6\x7d\x50\x83\x7c\xed\xe1\x4a\x15\x4a\xa1\x30\x14\x65\x78\x1a\x53\x6b\xff\x16\x90\x68\x5f\x57\xfe\x0d\x84\x87\x66\xfc\x52\xf6\x37\x91\x2b\x9f\xb6\x80\x41\x95\xb0\xe0\x5e\x7f\xfd\x70\xfd\x4f\xf4\xc7\x51\x79\x32\x94\x5e\x83\xbf\x10\x27\x09\x9e\x7c\x97\x3b\x7b\x1c\xe9\xa2\x53\x17\xd1\xa2\x83\x67\x7f\x50\x55\x82\x83\x67\xc8\x9b\x9f\xd4\x36\x33\xbb\x40\xcf\xe1\x5c\x4d\xac\x7f\x5b\x9e\x11\x0e\x8d\x20\xaf\xf5\x4b\x86\x29\x34\xe2\xbf\xfe\xf2\xdf\xd3\x2e\x65\x67\xa8\xfa\x58\x58\x8f\xab\xfc\xdb\x3c\x11\x32\x86\x4b\x43\x1e\x37\x25\x60\x64\x25\x8a\x5c\x31\xcf\x66\x1a\x9e\x24\xbb\xaf\x7d\xab\xd5\x0b\x9c\x44\x5f\xe0\xe6\xd9\x1b\x59\xb7\x7c\x2b\xf7\x52\x5d\xae\x84\x5e\xc4\x3b\xc9\xb7\x4d\x2d\xec\x67\xad\xe3\x2e\x11\x69\x0c\x55\xa4\xaf\xef\xbb\x3d\x89\x45\xf4\x30\xd6\x27\x38\x98\xc0\x5a\x44\x0f\xec\x87\xbb\x1f\xdf\xa1\x5e\x61\xa2\xe7\xf2\x9a\x17\xc9\xa3\xb8\xcf\x53\x17\xb6\x26\x46\x92\x3c\xb5\x6b\xa4\x4a\xa8\x1a\x90\x77\x58\xf6\x55\xeb\x38\x84\x7c\xd7\xdb\xdd\xd9\xb2\x8c\x1e\x44\x71\x9e\x73\x19\xab\x2d\x36\xe3\x5c\x97\xab\x55\xf2\x79\x5a\xf0\xbc\x83\xfc\x1a\xe3\x08\x5f\xd1\xcf\xf5\x92\x26\x85\xf7\x79\xd1\xd5\x7d\x82\xec\x44\x12\xca\xad\x38\xb7\x70\x04\xce\xf9\x56\x00\x7b\x19\xab\x12\xc7\x43\x29\x98\xf0\x07\xfa\x6a\x5a\x13\xd2\x5b\x91\x7a\xeb\xc7\xc0\xb9\xff\x18\xd4\xaa\xaa\x20\x6c\x2b\xe5\x35\xcb\xb6\xfc\x01\xcf\x87\xeb\x5c\x68\x3d\x61\x5a\x41\x8d\xe7\xd2\x62\xa6\x6d\x5e\x0f\xe0\x33\x80\xff\x30\xdd\xb1\x48\x65\x09\x48\xbc\xb9\x76\x6d\xd4\x13\xc4\x93\xc3\xf4\x36\x50\xe5\x2c\x65\x91\xa4\x8c\xaf\x0a\x0a\x36\x03\xd9\xb3\x15\x77\xd1\xd3\xb9\x84\x2b\xc3\x08\x9a\x0f\x57\xf9\xee\x9a\xc0\x35\x42\xb3\x15\x8f\x92\x34\x29\x88\x82\x06\x92\x61\xb8\x69\xaf\xd9\x0f\x4c\x5f\xe6\x7c\xc7\x53\x7f\xb0\xe2\x69\xe9\x33\xfa\xce\xb4\xa8\x53\x9c\xfd\x2a\xfc\xdf\xca\x39\xb7\x6f\xd7\x3d\xe2\xc0\x7b\xcc\xe6\xd3\x3c\xd2\x3a\xc5\x51\xbf\x8f\x27\xb1\xc5\x89\x56\x5c\x5d\xcf\x3c\xeb\xb6\x1f\x88\x9d\x77\x1c\xaa\xa7\x56\x27\xa6\xf9\x85\x11\xbd\xd7\xee\x84\x7d\xa1\x70\x41\x17\x07\xee\x90\xea\xdb\x68\xf7\x07\xa5\xd2\x63\x23\xde\x3c\xb5\x06\x75\x01\xd2\x89\xc7\x1c\xd7\x70\x02\xb8\xc0\xd1\xec\x8d\xbb\x7b\x75\xa4\xb2\x55\xc1\x15\x82\x05\x51\x15\xc0\x50\x40\x25\x7a\x10\xc3\x3a\x6b\xb9\x7c\x1f\x89\x7c\x86\x32\x10\xb5\x63\x5d\xe7\x66\x08\x3e\xc8\x65\xe7\xbe\x8e\x40\xbc\x57\xab\xe1\xa8\x60\x18\x0a\x1d\xd6\x3e\xe5\x02\x63\x21\x41\xa7\xeb\xc7\xe0\xdb\xb6\x3f\x51\x5e\xd9\xec\x4f\xe4\x25\xcf\x65\xe0\x11\x23\xab\x8e\x85\x96\xbb\x5e\x6b\x8b\x97\x55\xa6\xe1\xd1\xf1\xb2\x63\x58\x98\x7b\x2f\x54\xde\x84\x7a\x4a\x80\x09\x88\xd4\x76\x99\x48\x9b\xaa\x4c\x41\x64\x70\xe5\x2f\x2c\xc9\x9d\x0b\xf8\x5b\x97\x1c\x59\xf6\x6b\x7d\xef\xdc\x88\x90\x2f\x30\x34\x59\xfb\x8e\xbb\xe1\xf9\xe9\xb4\x84\xd1\x1d\x28\xd5\x7a\x0b\x12\xcd\x78\xfa\xc4\x77\x1a\x34\x47\x85\xb1\x8a\x2b\x0c\x9c\x56\xeb\x3f\x09\xb6\x77\x4b\xa0\x48\x02\xde\x25\x49\x11\x53\x5b\x12\xe4\x6f\x10\xa9\x55\x57\xf5\xbc\x38\x2f\x74\x7b\xe7\x7c\x9d\xbb\x90\xbc\xf7\x2e\x04\x2f\x23\xff\x39\xae\x3f\x7a\x82\xac\x47\xc6\x7a\x83\x6d\x12\x3d\x32\x82\x8b\x40\x02\x0f\x98\x63\xf3\xed\x09\xdb\xf2\x44\xd2\x32\x40\x05\xab\x58\x2c\xcb\xf5\xba\x33\x04\xf9\xed\xdf\x65\x54\xd7\xc9\xbf\x7c\xac\xb9\x97\xd9\xe9\x14\xd1\xd8\x99\xfd\x12\x86\x87\xcd\xb9\xea\xcb\x04\x60\xbf\x62\xb4\xbb\xf5\xca\xa9\x31\x89\x4e\x13\xed\x9e\x0d\x89\x76\x5b\x8c\x0f\xa4\x5a\xd1\x71\xd5\xe2\x30\x7e\x09\x83\x7f\x99\x30\xf8\xa0\x49\x81\xf4\x1e\x8b\xa4\xea\xa0\xf7\xd4\xf0\x40\x96\x30\x47\x27\x09\xb5\x22\x35\x70\x2d\x64\xac\xd9\x92\x47\xcf\x40\x1b\x06\xbb\xe3\xf1\xf1\xb6\x3d\xe0\x92\x5b\xb5\x15\x0c\x3e\xa5\x51\xfb\x80\x51\x36\xdb\x04\x50\x8b\xa6\x81\x1e\x91\x41\x78\x0f\xd8\x4e\x11\x19\x12\x7b\xa7\xfa\xa5\x14\x4f\xcc\xec\x56\x93\x10\xc6\x15\x0c\x0f\x88\xe2\xbc\x32\xde\x61\x05\xf3\xed\x52\xf7\x73\xb1\xe6\x79\x0c\x99\x06\xb4\x24\x53\x1e\x3d\x98\xff\x86\xfa\xd1\x17\x09\x6a\x66\xf9\xb9\x11\xfe\xe8\x4b\x4b\x64\x94\x03\x29\x13\xa1\xda\x7c\xfd\xf0\x75\xcd\x78\x94\x2b\x8d\x41\x19\xa7\x25\x09\x99\xae\xe0\xc0\x3e\x26\x71\xc9\x53\xfc\x62\x67\x24\x9b\xeb\xa3\xf8\xc6\x2f\x02\xd9\x17\xf1\x39\x4b\xb9\xac\xae\x49\x6c\x2e\x70\xd5\x24\x3d\x33\xdf\x51\xae\x1d\x53\x95\xd1\xd4\x91\xb3\x40\x71\xd5\x2f\x2b\xf4\x8e\x73\xc1\xe3\x5d\x48\x4c\x95\x48\xd2\xdd\xe7\xf1\x36\x91\x66\xe8\xad\xaa\x97\xb3\xaf\x96\xe0\x17\x01\x97\x20\x7e\x91\xa6\xb5\xa5\xaf\x99\x14\xc6\xa5\xe2\x79\x92\xee\xc0\x8b\xce\x72\x71\x16\x7c\x27\x58\xdf\x94\xef\x01\x54\xc5\x44\xa2\x50\x6a\xb1\x2a\x53\xf4\xb5\xe1\x34\xea\x1a\x40\xeb\xf0\x7e\x36\x31\xdb\x6c\x41\x94\xf3\xc1\x87\x51\xc8\xe9\x14\xd8\xf9\xe6\x39\x70\xd0\xfd\x8d\x27\x4c\xcb\x01\xda\xbb\x51\x4f\x36\xc1\xe7\x89\x7b\x04\x67\xd7\x5e\x72\xb2\x98\x7d\xbf\xd7\x65\xcf\x3b\x76\x55\x62\xa7\xc7\x95\x8b\x1a\xfa\x4d\xc4\x6e\x25\x26\x12\x9a\x43\x1a\x88\x3e\x0e\x5a\x6a\xcc\x13\x32\x63\x08\xd6\xda\x1e\xeb\xab\x61\x50\xe6\x5a\x97\x68\x25\xd9\xbc\xfc\xf5\xaf\x7f\x2b\xd8\xaf\x21\x71\x8a\xbc\x6f\xbc\x6d\x01\xca\x34\x2c\x1d\x0c\x94\xfb\x80\x40\x3e\xb5\xc6\x88\xb0\x36\xc0\xa3\xcd\x52\x06\xc8\x20\x8f\x36\x4c\x97\x4b\xc4\xc3\x71\x0a\xd8\x73\xe9\x18\x49\xdf\x29\x80\xb6\xe1\x3e\x66\x6b\xff\xbf\x24\x3c\x8d\xac\xe0\x73\x99\x29\x24\xcd\x05\x20\xe1\x52\xb0\x2d\xcf\x1f\x40\xe4\x8d\x94\xbc\x19\x2f\xd8\xcb\x44\x4c\xab\xc1\xea\x57\x95\xfa\xd0\xf5\x00\x92\x61\xb2\xbc\x94\xd2\xaa\x56\x30\xe3\x86\xf9\xc8\xf1\x64\x2e\x97\x65\x78\xd2\xaa\x84\x9e\xfd\xd4\x82\xf0\x33\x18\x59\x05\x0c\x09\x54\x29\xae\x03\x85\x71\x36\x20\x06\x3d\x97\xcf\x14\x84\xee\x0a\x6f\x7d\x20\x8f\xc3\x86\xae\x02\x94\x36\x34\x37\x14\x56\x84\xe1\xc0\x69\x0f\x5b\xfa\x07\x50\x57\x9c\xb0\x1f\x92\x47\x31\x61\xb7\x19\xcf\x1f\x26\xec\x0d\x5e\x26\xfd\x51\x2d\xf7\x46\xac\x4e\x11\xb5\x75\x07\xab\x63\x19\xef\x31\xfe\x39\x09\x98\x99\x83\x0b\xcc\x66\x7c\xd1\xe2\xdb\x0a\xe0\xb5\x8f\x1e\x84\xec\x34\x96\x16\x95\xdc\x49\xdf\x7d\xaa\x73\x77\x37\xa8\xba\xf3\x14\x5e\xdf\xb7\xbd\x87\x45\x39\xab\x6d\x38\x3f\xe3\xd9\xa0\xf6\x34\x8f\x1e\xce\xc0\x57\x55\xb9\xcb\xab\xd6\x74\xb9\x86\xb3\x02\xd1\xcf\xe8\xa3\xd5\x32\x91\x87\xba\xe2\xf6\xc3\x8b\x4c\xa9\xb4\xd5\x23\x3f\x69\x07\x36\xe2\xf3\x43\x3b\x6f\x86\x19\x5c\x3a\xf4\x53\x6d\x2f\xfa\x58\xaf\x8f\x0c\x63\x18\x18\xa8\x58\x60\x36\xc5\x25\x5c\x91\xfa\xee\x08\x25\xfd\x8c\xad\x41\xcc\x39\xba\xa6\x56\x01\x96\xdb\x33\x43\xc4\x5d\xd0\x3b\xc4\x3a\x37\xa2\xd0\xba\xf9\x9d\x8e\x83\x02\x94\xbb\x48\xda\x78\x57\xc6\x2e\x2e\x94\x4e\x6f\x5c\x2d\x61\xcd\xed\x96\x6e\xb3\x7e\xf6\xb1\xce\xda\x14\xe7\x45\x94\x72\x3d\x10\x47\xdc\x6a\x77\x66\x54\xd0\x25\x94\x33\xdc\x66\xfe\x00\xb7\x00\xdb\x81\x2e\xd4\x5c\x5e\x38\xd6\x55\xef\x7c\xbb\x03\x03\x9a\x59\x3c\x2a\x35\x86\x06\x53\x89\x3c\x45\xef\x84\xe9\x32\xda\x40\xb2\x54\xd5\x4e\x85\x76\xab\xb9\x62\x27\x73\x69\xdc\x57\x54\xfe\xe2\x00\x77\x79\x02\x91\x98\xe4\x6f\xc2\xf9\xc7\x84\xc9\x0f\x5d\xe2\x25\x37\x43\xa3\x64\xeb\xf1\xc1\xe6\xad\xe1\x4e\xe7\x37\xf7\x32\x33\x9e\xc3\x74\xee\xdd\x9e\x04\xf5\xfc\xed\x76\x4b\xe7\x11\x1d\x36\x2c\x3c\x3e\xd5\x2c\x6d\x9a\xac\x44\xb4\x8b\x1a\x34\x54\x15\x90\xd9\xe9\x6e\x41\x0e\xbb\x04\xe8\xa3\x2b\x6a\x8f\x9d\xfc\xdc\xa0\xd7\x60\x5d\xc8\x9c\x7f\x4e\xbc\x70\x07\x63\xce\xbf\x7a\x1c\x77\x0f\x88\xe6\x17\x68\xed\xbf\x64\x4c\xb1\x9f\x2c\xe7\x57\xe1\xff\x5a\xfb\x65\xd1\xab\x10\xc3\x20\xaf\xb9\x15\x33\xfb\x6d\xd1\x03\x24\x71\xfd\x90\xd7\x64\x09\x18\xb6\x14\x88\x84\x21\x76\x04\x11\x23\x52\x82\xe8\x55\xdb\x5f\x97\xa9\xd2\x65\xde\xbf\xf8\x6f\xaa\xb5\xb6\x5f\x6f\x21\xcc\x85\xc9\xb6\x5d\x0a\xe0\xfe\x18\x0a\x8e\xc3\xc7\x16\x7f\x55\xcb\x05\x20\x41\x8f\x5b\xe1\x6d\xc5\x59\x09\x2e\x87\x27\xa0\xaa\xfa\x13\xd7\x6d\x26\x80\xb7\xcd\x87\x36\xfc\xf9\xa5\x36\xc3\x5c\x60\x79\x2e\x2d\x8d\x3d\xe6\x9d\xe7\xb9\x00\xbe\xed\x5c\x80\xb2\x1c\xcb\x78\xee\xe0\x58\xf6\x84\x1d\x44\xd0\x3c\x64\x2f\xcc\x15\x85\x94\x6f\x8a\xdb\x2d\x85\x90\xae\xb7\xc7\x1c\x4d\xcd\x69\xb3\xde\xfb\x84\xc5\x7d\x12\x2c\xc2\x34\xaf\x0e\x15\xcc\xc6\x7b\x41\x4c\x11\xfc\x96\xb5\x08\x7d\xa8\x9a\x6b\x51\x59\x9a\x95\xfb\xfd\x6f\x2a\x1f\xa9\xf5\x04\x5b\xa3\xb8\xab\x84\x9f\x07\x21\x22\x4e\x71\xdb\xf8\x81\x17\x1b\x0c\x8c\x6e\x55\x21\xd0\x66\x22\xd7\x16\xce\x17\xbc\xb3\x5b\xa6\x6a\x09\x92\x6e\xe6\x97\xae\xe3\x73\x44\x4b\x7b\x50\xd7\x35\x07\x6c\x88\x65\x30\xd6\x04\xf2\xd5\x73\xa1\x81\xb6\xa8\x79\xc7\x3f\x34\x7b\x62\x5c\xf0\xb6\x59\x5d\x63\xf4\xdf\x34\x82\xb7\x4d\x9d\x0b\xb3\xac\x01\x4a\x7f\x75\x40\x7e\xdf\x55\x98\xf3\x6d\x9c\x03\xa2\xfc\x26\x10\x0d\xb2\xfe\xd6\xda\x6b\x95\xc3\xe7\xf2\x02\x7f\x09\x36\x01\xee\xf5\x9c\x1c\x5a\x9d\x44\x62\xdd\xfa\xc3\x24\x70\x76\x11\xe2\xa3\xe9\x54\x34\xf1\xe7\x55\x08\x2e\x4d\x20\xe7\x5a\x16\x49\x6e\x4e\x23\x1a\x9c\x2d\x5d\x2e\xcf\x3c\xbd\x8f\xca\xc1\x3d\x03\xf6\xa7\x8c\x43\x68\x0c\x58\xbf\xce\x5a\xb6\x61\xbc\xd7\xf1\xba\x2c\x96\x06\x93\xa7\x64\xfc\xe1\x54\x8d\xfc\x12\xae\xed\xae\x1c\x73\x38\x82\xa8\xac\xe5\x36\xc0\xcd\xae\xcf\x5e\x80\x72\x14\xe4\x87\xdf\xe0\x71\xfc\x6b\x6f\xe0\x21\x96\x64\xe8\xd6\x0d\xc7\xef\xb9\xfc\xff\xed\xde\xd0\x9d\xf2\x30\x62\xa6\x9b\x9e\x31\x5b\x54\x67\x2a\x46\xa5\x6e\x36\x24\x19\x38\x81\xdd\x95\x6a\x4c\xf9\xb6\x52\xb9\x0b\x90\x04\x3a\x29\x8a\x92\xf9\xe1\xd7\xc7\x44\x07\xa4\xf9\xf0\xb5\x5b\x21\xd8\xeb\x5c\xac\x5e\x7f\xcc\xc5\x6a\x61\x47\x7a\x0a\x0d\x9a\x9a\x16\x35\xa9\xf3\x07\x4e\x0e\x9d\x29\xd9\x4e\x21\xba\x87\xe2\xb7\xd6\x24\x2c\x27\x68\x53\xb2\x62\x5e\x4e\x13\xa2\x08\x65\x14\x09\x11\xd7\x39\xfd\x1b\x35\xfb\xe2\xdb\x5c\x17\x8e\x76\x00\x50\xb5\x43\x86\xf2\x5f\x7f\x7b\xab\xf4\xd9\x90\xed\xed\xae\x1a\x4f\xb1\xc6\x9e\x4b\xb7\xe1\x75\x27\xa6\x7c\xd9\xdc\x19\x18\x40\x9d\xf1\x27\x49\x6c\x50\xa3\xae\x32\x86\x6d\x6b\xb5\xe8\x52\xb0\xad\x35\x10\xc4\x7e\x95\x49\x7b\x73\x94\x38\xcd\xc6\x49\x20\x77\xce\xd3\x34\x54\x26\xf1\xf1\xdf\xb9\xf4\x51\x42\xe3\xb5\xa6\xa9\xbd\x12\xaa\xf8\x1b\xc4\xfd\x15\x03\x5d\x81\x98\x58\xea\x22\x22\xfd\x24\x34\xc1\x19\x46\xe3\x7c\xcc\x6c\xdf\x6a\x3e\xd5\x21\xf2\x1b\x63\x6d\xd8\x83\xdb\xc1\xcf\x2e\x1e\xc4\x6e\x74\x5d\xdb\x6f\xce\xbd\x94\xef\x06\x16\xb3\xb5\xb2\x11\xcf\x73\x9b\x83\x44\x5f\x65\xe6\xac\xb4\xe2\x51\xe5\xda\xac\xa3\x9e\x1b\x11\x3d\x64\x2a\x91\xa3\x6d\x51\x50\x1f\xe3\x48\x15\x66\x3f\xf3\xa5\xb9\xd3\xe1\xa0\xcd\xb1\xe2\x4f\x62\x43\x34\x80\xd3\x2c\xb0\xde\x53\x1a\x72\xe6\xb4\x8a\xbb\xa7\xdd\xa9\xe3\x17\xc2\xef\x0d\xcf\x10\x8b\xed\xbf\xa4\x40\xab\xd1\xf4\x28\x2b\xb7\x58\xbc\x91\x9b\x3a\xb0\xb3\x39\xab\x10\x81\xb6\x76\x29\x84\x20\x7f\x89\x0c\xfd\x12\x19\xfa\x27\x8f\x0c\x7d\xc9\xb0\x10\x20\x0b\x9f\x33\x26\xd4\x4e\x36\xf0\xcb\xf6\xfa\x6d\x6d\xaf\xc8\x29\x8a\x99\x71\x63\xba\x96\xaa\x7a\xe3\x5f\x3f\xae\x73\x05\x0b\x6a\xa2\x47\xf4\xf3\x17\x74\x0f\x5a\x6c\xd5\x38\xbb\x3b\x78\xbf\xea\x47\x4f\x78\x07\xc4\x1f\x06\x82\x44\xfa\xc6\xf2\x0d\x83\xc0\x45\x38\x75\x8c\xe1\x19\x7c\xfd\xd2\xcd\x55\xf2\x4d\x5d\x22\x0f\x71\x30\x8c\x65\x74\xd7\xca\xd7\xd6\x22\x4a\x81\x06\xbc\xc7\x32\x06\x1c\xd6\xbc\x78\xa1\x5d\xaf\x57\x2d\xa0\x45\xb8\xbf\x4b\x74\xf1\x53\x4d\x21\xf1\x30\x89\xc5\x67\x43\x42\xd9\xaa\x62\x35\x83\x37\x7a\x01\x3c\x37\x55\x88\x8d\x5a\xd9\x39\x07\x9b\x9c\xd5\xc4\x32\xf5\x1e\xb3\x5f\x7d\x74\xfd\xf5\x11\xfd\xe8\xa7\x9c\x67\x99\xc8\x2d\x6e\xa4\x01\xed\x01\x81\x29\xf8\x0a\x28\xc4\x6d\x04\xca\xd4\xd6\xbc\x11\x63\x4a\x6a\x45\xc3\x63\xd0\x75\xd3\xf6\x91\xbb\x2e\xd3\xb4\x73\xe4\xf6\xeb\xd6\x5c\xdf\xbf\x7b\xb7\xf8\xe9\xe2\xdd\xfd\x95\x6d\x7e\xab\x0e\x4c\xf0\x58\x67\x9f\xb8\x9a\x50\x9f\x78\xa5\x39\xf3\x59\x61\xa5\x72\x95\x6f\x35\x1e\x46\xca\x34\xad\x6a\x04\xcd\xe5\x47\x2a\x07\x60\xd9\xa8\x7f\x68\xfa\x8d\xf5\x76\x5c\xf5\xfb\xf0\xd8\x47\x53\xf8\x47\x7c\xf7\x8c\xf9\x46\xbc\x06\x25\x3b\x52\xc8\x6a\xef\x57\xca\xf9\x38\x62\x39\x20\x08\xb8\x6b\x39\x9c\x5a\x05\xed\xb0\xe5\x71\x2f\x81\x7f\x59\xc4\x56\xbc\xec\x24\xab\x03\xfb\xee\x63\xf5\x3e\xc1\xd9\xf2\x18\x83\x6b\x50\xee\x04\xb5\xab\x40\x91\xd7\xcb\x3b\xcd\x25\x9e\x55\x4d\x9d\x0a\xd5\x5d\x27\x36\x23\x34\x55\xca\xe5\xba\xe4\x6b\xa1\x27\xcc\x7e\x7c\x2e\xb7\xc9\x7a\x83\x6c\x12\x65\xe6\x71\xc9\x9c\x49\x20\x1d\xa9\x4d\xa1\x1a\x2e\x39\x91\x73\x49\x6d\x92\x6b\x5f\x3c\x62\x64\xff\x78\xeb\x9a\x43\x60\x74\x2c\x88\xe4\xb7\xe4\x5c\xe2\xe0\x22\xcb\x85\x8d\x58\x81\xff\xce\x8b\xfa\xd4\xe5\x10\x63\x46\x89\x6a\x63\xd3\xd7\x10\x3b\x9b\x4b\x97\x88\x8a\x1e\x3e\xb5\x21\x90\x69\xc0\x2a\xed\xb7\x27\x76\x30\xec\x9a\xa0\xba\xb5\xcf\xfa\xa3\xf7\x00\xb3\xe0\x16\x23\xb4\x76\x9b\x66\x6c\xe0\xa9\x8e\x07\x86\xa3\x8b\x9d\x00\xb2\x8f\xdb\x6b\x63\xdb\x85\xcf\x74\x42\x90\x54\xb9\x4c\x47\x54\x09\x9f\xef\xad\x14\x9a\xe4\xfe\x4a\x0d\x38\x32\xde\xd4\x96\x96\x99\xa6\x7d\x9f\x5d\x2a\xd5\x31\x2e\x27\x0c\xfc\x56\x2a\x45\x2f\xec\xeb\x8c\x32\x2a\x0e\x99\x2f\x03\x52\xf2\xea\x5d\x64\xad\x4f\x5f\x85\xd2\x44\x1f\x54\x1d\xef\x3f\x0d\xae\x91\xf3\x10\x68\xb3\x1b\x65\x61\x69\x9f\xab\x18\xd8\x0e\x33\x49\x71\x3f\x2b\x5a\x9b\xa0\x79\x31\x8b\x07\x15\x65\xcd\xfc\x9f\xb8\x49\x34\xf1\x23\x37\x81\x4a\x46\x65\xae\x8d\xb9\x24\x7b\x47\x56\x5b\xe5\x8c\xcf\xa5\x55\x3f\xb0\xe6\xf8\xc2\x82\xa8\x72\xf7\x57\x4c\x73\xcc\x90\x3d\x1c\x3c\xd6\x82\x29\x29\xac\x35\x9c\x4b\xab\x74\x3c\x61\x7c\xa9\xad\x80\x30\x97\x3b\xa7\xea\x9b\x38\xc9\x36\x2e\x19\xa0\xd3\xf6\xdb\xbc\x9a\x1b\x50\xd9\xe7\x7f\x65\xfe\xef\x1f\xbf\xfa\x7f\x01\x00\x00\xff\xff\x4c\xbc\xab\x57\xc2\x97\x04\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x79\x73\x23\x37\x96\x2f\x0c\xff\x3f\x9f\x02\xb7\xe6\x46\xd8\xee\xd1\xe2\x76\xcf\xf4\xdb\xa1\x89\x1b\xef\x43\x4b\xac\xb2\xae\xb5\xb5\x16\x7b\xfc\x0c\x27\x68\x30\x13\x24\xd1\xca\x04\xb2\x01\xa4\x54\x74\x47\x7f\xf7\x27\x70\xb0\x24\x72\x23\x93\x8b\x24\xaa\x9c\x33\x11\x6d\x15\x33\x13\xeb\xc1\xc1\x59\x7f\xe7\x1f\xff\x82\xd0\x07\xf9\x8c\x67\x33\x22\x3e\x9c\xa0\x0f\xdf\x1d\x7d\xfb\xe1\x40\xff\x46\xd9\x94\x7f\x38\x41\xfa\x39\x42\x1f\x14\x55\x09\xd1\xcf\xa7\xc9\x42\x11\x1a\x27\xc7\x92\x88\x27\x1a\x91\x63\x1c\xa7\x94\x1d\x65\x82\x2b\x0e\x1f\x22\xf4\xe1\x89\x08\x49\x39\xd3\xaf\xdb\x3f\x11\xe3\x0a\x49\xa2\x3e\xfc\x0b\x42\xff\x84\xe6\x65\x34\x27\x29\x91\x1f\x4e\xd0\x7f\x9b\x8f\xe6\x4a\x65\xae\x01\xfd\xb7\xd4\xef\xfe\x0f\xbc\x1b\x71\x26\xf3\xd2\xcb\x38\xcb\x12\x1a\x61\x45\x39\x3b\xfe\x9b\xe4\xac\x78\x37\x13\x3c\xce\xa3\x8e\xef\x62\x35\x97\xc5\x1c\x8f\x71\x46\x8f\x9f\xfe\x78\x8c\x23\x45\x9f\xc8\x38\xc1\x39\x8b\xe6\xe3\x2c\xc1\x4c\x1e\xff\x83\xc6\x7a\x8e\x7f\x23\x91\xfa\x27\xfc\x23\xe6\x29\xa6\xcc\xfc\xcd\x70\x4a\xfe\xe9\xdb\x41\xe8\xc3\x8c\xa8\xe0\x9f\x7a\xb6\x79\x9a\x62\xb1\xd0\x2b\xf2\x91\xa8\x68\x8e\xd4\x9c\x20\xd3\x0f\x72\x4b\xc4\xa7\x08\xa3\x13\x41\xa6\x27\xbf\x0a\x32\x1d\xbb\x85\x3e\x32\x0b\x7c\x01\xa3\xb9\x49\x30\xfb\xf5\xc8\x2e\x13\xb4\xcc\x33\x22\x60\x6e\xe7\xb1\x6e\xfd\x13\x51\x03\x68\xb6\x78\x3f\x7c\x5b\x10\x99\x71\x26\x89\x2c\x0d\x0f\xa1\x0f\xdf\x7d\xfb\x6d\xe5\x27\x84\x3e\xc4\x44\x46\x82\x66\xca\xee\xe5\x00\xc9\x3c\x8a\x88\x94\xd3\x3c\x41\xae\xa5\x70\x30\x66\xaa\x7a\x63\x71\xad\x31\x84\x3e\xfc\x6f\x41\xa6\xba\x9d\x7f\x3d\x8e\xc9\x94\x32\xaa\xdb\x95\x86\x7e\x82\xd1\x96\xbe\xfa\xe7\xbf\x34\xfd\xfd\xcf\x60\x46\x19\x16\x38\x25\x8a\x88\x62\xc7\xcd\xff\x55\xe6\xa2\xf7\x48\x77\x5e\xec\x63\x75\xe0\x95\xd9\x5e\xe1\x94\xe8\x3d\xd1\x3b\x65\xbf\x80\xbf\x05\x91\x3c\x17\x11\x41\x13\x92\x70\x36\x93\x48\xf1\xda\x1a\x50\x68\x41\x93\x57\xf5\x89\x20\x7f\xcf\xa9\x20\x7a\xaf\x94\xc8\x49\xe5\xa9\x5a\x64\x30\x48\xa9\x04\x65\xb3\x70\x29\xfe\x79\xd0\x69\x6a\x86\x2a\xd7\x98\x99\xf9\xa0\x75\x62\x23\x36\x70\xaf\x44\x98\xa1\x09\x41\xfa\x2c\xd2\x98\x08\x12\x23\x2c\x11\x46\x32\x9f\x48\xa2\xd0\x33\x55\x73\xca\xf4\xbf\x33\x12\xd1\x29\x8d\xdc\x9a\xed\xcf\xda\xc0\x9f\xcb\x57\xe6\x41\x12\xa1\x07\xfe\x44\x63\x12\xa3\x27\x9c\xe4\x04\x4d\xb9\x28\x2d\xcf\xd1\x88\xdd\xcf\xf5\x3a\xa4\x13\xca\xe0\xe4\xe9\xb5\x74\x14\xf2\x6f\x6e\xb9\xfe\x0d\xe9\xfe\x50\xce\xe8\xdf\x73\x92\x2c\x10\x8d\x09\x53\x74\x4a\x89\xac\xb6\xf6\x6f\x1c\xfa\xc7\x09\x3a\x44\x7a\x9d\x89\x50\xb0\xde\x9c\x29\xf2\x59\x49\x74\x88\x12\xfa\x48\xd0\x57\x17\x54\x2a\x34\xb8\x39\xff\xea\x00\x7d\x65\xce\x0b\x02\xde\xf4\xd5\x2b\xac\xb0\xff\xfb\x7f\x82\xa3\xa7\xf0\xac\x7a\xe8\x3e\x0c\xf4\x69\xbe\x33\x57\x43\xd1\xc2\xff\xfc\x4b\xd8\x8e\xdd\xaf\xe5\xfc\xb6\x60\xb6\x96\xd3\x76\xe5\xaf\xb0\x4c\x65\xd6\x2a\xf5\x0e\x6d\xcb\x59\x75\xbb\x55\xd6\x2a\xdf\x17\x6f\xd5\x53\x78\x69\xfe\xba\x0d\x73\xc5\x0a\xa8\x1e\x53\x66\x0e\x89\x3f\x33\x42\xea\x73\xe2\xa8\x77\x4f\x58\xca\x36\xbc\x36\x98\x59\xc0\x6e\x1d\x17\x0d\x56\x65\x0f\xe7\x9d\xd0\x94\xae\xda\xdf\x73\x16\x6b\x91\xcb\x32\x3b\x96\xa7\x13\x22\xf4\x32\x38\xb6\x07\xb3\x9d\x68\x36\xa8\x72\xc1\x48\xdc\x61\x9a\x7f\xcf\x89\x58\x2c\x99\xe7\x14\x27\xb2\x6d\xa2\x94\x29\xa2\xe5\xdb\xca\xe3\x29\x17\x29\x56\xf6\x85\x3f\xff\xfb\xba\x0b\xa1\xf8\x23\x59\xb5\xff\xe7\x66\x37\x23\x2c\x81\x0c\xd2\x3c\x51\x34\x4b\x08\xca\xf0\x8c\x48\xbb\x22\x79\xa2\xe4\x01\xbc\xa6\x65\x6a\x22\x0e\xfd\x0d\x04\x3d\xb8\x9b\x37\x97\xf0\x0b\x9a\x7a\x01\x92\x91\xcf\x0a\x5a\x1a\x31\xb8\x7b\x61\x89\xc2\x1b\xe5\x05\x96\x72\x33\x9a\x91\x5c\xa8\xf1\x64\x71\xf4\x48\x6a\xfd\xb6\x52\x0e\x66\x08\x2b\x25\xe8\x24\x57\x44\xcf\x5b\xb7\xe1\xee\x4e\x60\x8f\xe6\x82\xee\xc2\x1a\xde\x6e\xc2\x31\x15\x24\x82\xb9\xad\x73\x60\xfc\x57\x7a\xde\x5a\x7f\x59\x98\xd9\x3f\x92\x05\xc8\x23\x0d\x2b\xe0\xb7\x7c\xc4\x46\x0c\x1d\xa2\xb3\xe1\xdd\xe9\xf0\xea\xec\xfc\xea\xd3\x09\xfa\x7e\x81\x62\x32\xc5\x79\xa2\x0e\xd0\x94\x92\x24\x96\x08\x0b\x02\x4d\x92\x58\xcb\x1c\x7a\x30\x84\xc5\x94\xcd\x10\x17\x31\x11\x2f\xb7\x8c\x95\xa7\x84\xe5\x69\xe5\x5e\x81\xdf\x8b\xd1\x57\xbe\xd0\x22\x86\x7f\x54\x7a\xf2\x3f\xb5\x05\x86\x19\xeb\xbe\x83\xd6\x5e\x4d\xa8\x89\xe6\x34\x89\x05\x61\xc7\x0a\xcb\xc7\x31\xf9\x4c\xa2\xdc\xdc\xc9\xff\x28\xff\x30\xd6\x92\x29\x8f\x49\xf9\x97\xd2\x3f\x0a\x51\x68\xed\x4f\xbd\x96\xba\xf6\x97\xa0\xd3\x76\xfb\x0e\x7e\xa1\x71\xe3\xdb\xf0\xcb\x8a\x39\xb8\x77\x96\x0c\xd6\xbd\xd2\x3a\x2a\xf7\x82\x95\xf8\x1a\xdf\x11\x44\x89\xc5\x18\x2b\x45\xd2\x4c\xad\xa9\xaf\x63\x94\x68\xb9\x72\x99\x1c\x79\xc5\x63\x32\x74\xfd\xfd\x8a\x8c\x38\x4b\x62\x34\x59\x58\xae\x35\x25\x82\xb0\x88\xb4\xb7\x70\x8f\xe5\x63\xd1\xc2\x2a\x61\xb4\xd4\x9f\xfc\xc8\x85\xfe\xfc\x3d\x08\xa4\xa5\x81\xbf\x86\x4c\xba\xe9\x89\xfb\xe2\x2c\x04\x1b\xf2\x8f\xde\x9e\xb0\xfd\x4a\x76\xb5\x3e\x70\x81\xe4\x42\x2a\x92\xae\xb4\x43\xbc\x9f\x85\xb0\x17\xc4\xbe\x0e\xb8\x72\x47\xfd\x0e\x4e\x7d\xf9\xc6\xed\x8f\xf7\x1a\x4b\xb6\x2b\x2b\xe2\xbe\xcf\xd3\xf9\x70\x96\x4f\xf5\xce\x6d\x5f\xe0\xc4\x78\x17\xd3\x2c\xc9\x82\xbb\x1e\xe4\x0b\x99\x1b\x5a\xf7\xca\xad\xf6\x18\x06\xb0\x42\xd1\x2c\xdb\xa1\xfd\xf9\xd3\x9f\x86\x16\x1a\x63\x8e\x53\x73\x2a\x03\x63\x15\x8a\xb8\x30\xb2\x60\x6c\xcf\xbb\xd1\x35\x07\xf7\x83\xbb\xe1\xfd\x09\x1a\xa0\x18\x2b\xac\x0f\xb8\x20\x99\x20\x92\x30\x05\x7a\xbc\xfe\x5e\x2d\x50\xca\x63\x92\x18\x8d\xf3\xa3\x96\x7c\xd1\x19\x56\xf8\x14\x2b\x9c\xf0\xd9\x11\x1a\xc0\x3f\xf5\xc7\x54\x22\x9c\x48\x8e\xb0\x23\x2b\x12\xbb\x26\x30\x8b\x1d\x6b\xc1\x28\xe2\x69\x46\x13\x6f\x83\xf7\xc6\x15\xca\x62\xfa\x44\xe3\x1c\x27\x88\x4f\x34\x57\xd1\x1a\xf2\xf0\x89\x30\x95\xe3\x24\x59\x20\x9c\x24\xc8\x76\xeb\x5e\x40\x72\xce\xf3\x24\xd6\xed\xba\x51\x4a\x9a\xd2\x04\x0b\xad\x82\x9b\xd1\x5e\xdb\xb6\xd0\xfd\x9c\xf8\xb1\xc2\xb8\xf4\x6a\xa6\xf8\x91\x48\x44\x15\xca\xb8\x94\x74\x92\x14\x67\xfe\xe1\x1c\xc1\xb8\x4f\x2f\xce\x41\x9f\x8f\x14\xe2\x86\x87\xba\xce\xad\xfd\xc6\xf5\x98\x62\xc6\x08\x74\xcc\xd5\x9c\x08\xdb\xbd\x7d\xf9\xad\x55\xf3\x87\xab\xbb\x9b\xe1\xe9\xf9\xc7\xf3\xe1\x59\x5d\x37\xbf\x1f\xdc\xfd\x58\xff\xf5\xe7\xeb\xdb\x1f\x3f\x5e\x5c\xff\x5c\x7f\x72\x31\x78\xb8\x3a\xfd\x61\x7c\x73\x31\xb8\xaa\x3f\xb4\x64\xd5\x59\xcd\x0f\x47\xb6\xe6\xd9\xea\x6d\x9a\x2f\x65\xd3\x3c\xf8\x72\x8d\x9a\x53\x9a\x80\x0e\xda\xd9\xa0\xe9\x6d\x08\xf6\x4b\x94\x61\x29\x8d\x64\x64\x46\x70\x34\x62\x97\x5c\x68\x06\x36\xe5\x9a\x47\x68\xe9\x49\x89\x3c\x52\x94\xcd\xfc\x47\x27\x68\x94\x7f\xfb\xed\x9f\xa2\x0b\xca\x1e\xe1\x2f\xb2\x8f\x8b\xd3\x5b\x7c\x7b\x8b\xef\xef\xcb\xe2\xab\x45\x9f\xe3\xd0\xd0\xbb\xdb\x90\x21\x2d\x5c\xb0\x2c\x57\x20\x4a\xf0\x5c\xe9\x3f\x75\x97\x40\x1e\x4b\x02\x87\xba\x19\x14\x3f\x11\xe5\x5f\xd4\xa2\xcd\x7b\xb0\x23\xfe\xcc\xc5\xe3\x34\xe1\xcf\x7e\xe0\x9f\x88\xd2\x63\xbf\xb5\xbd\xf4\xa1\x44\x7d\x28\xd1\xdb\x86\x12\xed\x95\x31\xef\xe5\x99\x5f\xd9\xf2\x67\x38\x60\x8b\x27\xab\xd5\x51\xd5\xe2\x87\x0a\xdc\x4c\xaf\xc2\x35\xcb\xce\x9c\x15\x9c\xb3\xf4\xf2\x7b\xe1\x9e\xa5\x41\xbf\x3e\xe7\xfc\x5d\xf8\x5b\x7a\x77\xca\x86\x0b\xf5\x2e\x19\x6c\xc7\xbb\xe3\xd5\x9c\x21\x2f\xcf\xf0\x6b\xb1\x0d\xeb\x04\x33\xac\x11\xbd\xd0\x39\x5c\x61\x45\x7c\x42\x63\x40\x42\x53\x04\x42\x3d\xe4\xa0\x31\xc6\x60\xbb\xa0\x82\x4d\xef\xa6\xee\x61\x02\x9f\x88\x2a\xbd\xfc\x5e\xee\xa6\xd2\xa0\x5f\xff\x6e\xfa\x9d\x46\x07\xf4\xe1\x00\x2f\xb8\x74\x5f\xfa\x8d\xb6\xbf\x0e\xff\xdf\x81\x87\xbf\x77\xe9\xaf\xb5\x46\x5f\x96\x0f\xff\x4b\x75\xda\xbf\x4f\x2f\x7d\xef\x96\xef\xdd\xf2\x6f\xe1\x3f\x79\x7f\x6e\xf9\x97\x55\x4f\x8b\xe3\x35\x76\xb4\x60\xf5\xb5\xe0\x50\xfe\xb3\x83\x93\x06\xfe\x72\x2a\xdf\xba\x41\xe3\xad\x3a\xdc\x59\x31\xbe\x21\x1c\xa1\x5f\x2d\x21\xad\x50\xe7\x6a\xdf\xbd\x07\x75\xae\x3e\xe8\x97\xd7\xe1\xde\x8c\xf9\xbe\xd0\xe5\xf9\x4e\xd8\xc0\xfa\xb7\xe5\x17\x2c\x93\xf7\xb2\xf8\xcb\x67\xe3\xef\xcd\x84\xde\x8f\xec\xfd\x06\x17\x6f\xc7\x5b\x77\xe7\x39\x59\x0d\xd7\x6c\x70\x3b\xad\xca\xb0\xaa\x7e\x4d\x89\xfc\xee\x5d\xde\xb7\xaf\x91\x64\xd5\x5f\xb8\xfd\x85\x6b\x9b\xea\x2f\xdc\x2f\xf8\xc2\xdd\x3b\xf8\x9b\xbd\x89\x00\xed\x83\xc8\x7b\x60\x8c\x3e\x86\x7c\x87\x8b\xd3\xc7\x90\xf7\x31\xe4\xbf\xb3\x18\xf2\x6d\xb4\xa7\x4d\xb1\x28\xdf\x42\x8f\xea\xd5\xa8\x5e\x8d\x0a\x7f\xef\xd5\xa8\x5e\x8d\xea\xd5\xa8\x2f\x1c\x45\xb4\xd7\xa1\xba\x2f\x44\xaf\x43\x75\x5e\xaa\x5e\x87\x5a\xb2\x38\xbd\x0e\xd5\xeb\x50\xbf\x2f\x1d\x8a\x3c\x11\xa6\x24\x24\xa3\x85\x1a\xc5\x87\x8c\xcb\x76\x4d\x28\xe4\x0e\x0d\x5a\x10\xb4\x59\x4e\x0a\x83\xc0\xa5\x5f\xd1\x1c\x4b\xc4\xa3\x28\x17\x95\x33\x50\xd5\x83\x4e\x05\xc1\x8a\x40\x0b\xfa\xc3\xf7\xa0\xff\xd4\xa7\xfb\x5a\x31\xf8\x13\x1e\xd7\xa8\xdd\x1c\x84\xa6\x27\xcb\xe5\x91\x9d\x4d\xfd\xef\x39\xe9\xa6\xfe\xbd\x20\x51\x2b\x2c\x1f\x77\x4c\xd4\xa5\x5c\x8b\x8d\x88\x1a\x5a\x78\x2f\x44\x5d\x9f\xee\xef\x86\xa8\x9b\xa6\xbe\x0f\x44\xfd\x6c\xf3\xf8\x77\x4c\xd8\x35\x78\x80\x8d\x88\xdb\xb7\xf2\x5e\x08\xbc\x79\xda\xbf\x1b\x22\x6f\x9b\xfe\xdb\x12\xba\x4f\x91\xec\x4c\xe2\xf7\x82\xce\x66\x5a\xcd\x00\x0d\x4f\x93\xe2\xea\x1a\x41\x45\x52\xe0\x4a\xb2\xf6\xaf\xbe\x07\x92\xf6\x83\x35\x63\xff\xdd\xd0\x72\x6d\xde\x7b\x42\xc4\xc7\x82\x44\xfc\x09\xea\x85\x75\x23\xe6\x5b\x02\x14\x0c\xfc\x3a\x13\xe4\x89\xf2\x5c\x26\x8b\x43\x91\x33\xe4\x98\x3f\xf2\xcd\x1b\x6b\xf5\x33\x4d\x12\xc4\x99\xd6\xbf\x14\x16\xca\x3d\xd6\xfa\xb7\xe0\x29\x9c\x8a\x04\x4b\x85\x1e\x19\x7f\x66\x68\x8a\x69\x92\x0b\x82\x32\x4e\x99\x3a\x1a\xb1\x73\x86\x6e\xcd\x18\x21\x6f\xe0\x00\xe5\x52\x9f\xa5\x08\x33\xc6\x15\x8a\xe6\x98\xcd\x08\xc2\x6c\x61\x13\x70\x0b\xca\x40\x5c\xa0\x3c\x8b\xb1\x56\x7c\xe7\xa4\x1a\xa5\xe7\xc7\x08\xe6\x3b\x2a\x11\x95\x88\x7c\x56\x82\xa4\x24\x59\xe8\x3e\x34\xed\x2b\x8e\xec\xfa\x98\xa1\xda\x74\x3e\x22\x04\x17\x12\x32\x0e\x26\x8b\xdf\x30\x53\x94\x11\x04\x8a\x92\x34\xa6\xb9\x43\x74\xc1\x25\x98\x6d\x7e\xfc\x8b\x44\x51\x92\x4b\x45\xc4\x01\x9a\xe4\x33\xa9\x35\xc5\x2c\xc1\x6a\xca\x45\xaa\x47\x48\x99\x54\x78\x42\x13\xaa\x16\x07\x28\xc5\xd1\xdc\xb4\x05\x6b\x20\x0f\x46\x2c\xe6\xcf\x4c\x2a\x41\xb0\xef\xdd\x3d\x44\x5f\x87\xcf\x0c\x01\xc8\x6f\x0e\x20\xed\x90\xa6\x5a\xdd\x0d\x86\x5f\xec\xb8\xd9\x13\xdd\x08\x89\xd1\x84\x44\x38\x97\xd6\xc3\xa0\xc4\x02\x91\xcf\x73\x9c\x4b\xd8\x3b\x3d\x3d\x9b\xb3\x11\xf1\x34\x4b\x88\x22\x88\x4e\x91\x12\x94\xc4\x08\xcf\x30\xd5\x4b\x77\x47\x96\x80\xa0\x7b\xa2\xb7\x1b\x68\xa9\xfe\x57\x50\xbf\x53\x2e\x08\x8a\x89\xc2\x34\x59\xea\x75\xb2\xdf\xf6\x5c\xee\x3d\x71\xb9\xf2\x86\xef\x05\x9b\x33\x20\xfe\x3b\xb8\xb4\x99\x35\xdd\x47\x38\xd9\xf2\xfe\xbe\xb5\x83\xea\x69\xfb\x7d\xd1\xb6\xd9\xb5\xfd\x21\xee\x57\x8b\xc1\xee\x5e\xd1\xa2\xa8\x66\xf1\xae\x68\xfa\x35\xc2\x02\x7a\x87\x73\xef\x70\x6e\x5d\x99\xf7\xe9\x70\xde\x1b\x8f\x51\xef\x73\x7e\x21\x9f\x33\x95\xbd\xd3\xb9\x77\x3a\x77\x5d\xa0\xde\xe9\xdc\x3b\x9d\xdf\xaf\xd3\xf9\x25\x71\x9f\x77\x8a\xee\xfc\xae\x44\xeb\x5e\xac\xee\xc5\xea\x1e\xc2\xd9\x4f\x6d\x57\x2c\xcc\x7d\xfd\x21\x26\x09\x51\xa4\xdd\x9e\x45\x44\xaa\xb5\x05\x73\x3d\x53\xa6\xe5\xb8\x99\x20\x52\x6e\xcb\x90\x7c\xc3\xef\x93\x2d\xf9\xe1\xf7\x50\xf3\x3d\x9f\xea\xf9\xd4\x26\x53\xdb\x1f\xd3\x6c\x70\x98\x5f\xcb\x36\xeb\xf9\x6f\x96\xb7\x4b\x7f\x0f\xc6\x0d\x59\xf8\x45\x0d\x85\x6b\xa9\x5d\x71\x7f\xb8\x2d\x9d\x6f\xc9\x8f\x4d\x5f\xef\x93\x19\x9b\xb1\xf7\x9c\xb8\xe7\xc4\x3d\x27\x7e\xdf\x9c\xd8\x9d\xe4\x37\x75\x91\x19\x3f\xdd\x38\x4b\x30\x1b\xd3\x58\x1e\xff\xa3\xd0\xe5\x5f\xca\x43\xa6\x0f\x54\x6c\x52\x4c\x7d\x4a\xa7\xf8\x55\x7f\x92\x14\x06\x73\x8f\x99\xb9\xc2\x89\x66\x6c\xec\x37\x09\x66\xe7\xf1\xbb\xf0\xa3\x35\xce\xfe\x35\x7c\x6a\xdb\xf0\x71\xac\xc0\xd3\x81\x29\x33\x26\xbc\x22\xaf\xb6\x64\xa0\xdc\x8f\x13\xbe\x0d\x57\x0f\x26\x16\x30\x76\xc7\xaf\x83\x45\xd9\xbf\x69\xf7\x7e\x9d\x3e\x97\xb0\xf7\x5c\x74\x9c\x70\xef\xb9\xd8\x5f\xcf\xc5\x5b\xb9\x23\x5f\xf9\x78\xbe\x96\x58\xd7\x3d\x08\xdf\x44\xab\x41\x50\x6b\x9e\x25\x1c\xc7\xcb\x5c\x31\x85\xe0\x15\x82\xa3\xac\x8c\xc4\x2f\x3e\x7b\x0f\xc2\x5a\x31\xda\xdf\x59\x24\x5f\x7d\xe2\xfb\xa2\xa5\xbc\x62\x28\x5f\x33\x89\xaf\xa1\x92\xbc\x0f\xfc\xd4\x62\xbc\x7d\x68\x5f\x6f\x51\x7a\x7b\x8b\x52\x1f\xda\xd7\xab\x80\x7b\xa6\x02\xf6\xa1\x7d\x7d\x68\x5f\xaf\x20\x2f\x9f\x76\xaf\x20\x7f\x11\xa1\x7d\x9d\x44\xed\x17\xc4\xde\xdc\x5e\xe8\xee\x65\x6e\xf7\x5e\x2f\x73\xf7\x32\xf7\x17\x2a\x73\xef\xc7\x0a\xf7\x02\x77\x2f\x70\xf7\x02\x77\x2f\x70\xf7\x02\xf7\xce\x97\xb1\x17\xb8\x5f\xb3\x40\x67\xb3\xd4\xbd\x22\xc9\xe6\xbd\xfa\x72\x7a\x71\xbb\x17\xb7\xf7\x5b\xdc\xde\x9b\x09\xbd\x9f\x32\x8f\xdd\xe6\xd3\x17\x29\xef\x8b\x94\xf7\x45\xca\x5f\xbc\x48\xb9\xfb\xba\x43\xc6\x87\x3d\x5c\x0a\xab\x5c\x1a\xc0\x47\x41\x66\x54\x2a\x60\xff\x5d\xe4\x95\xd5\x89\x1e\xef\x55\x4e\xe9\x53\x3d\xfc\xd3\x5e\x6a\xe9\xa5\x96\xdf\xa9\xd4\xb2\x47\xb1\x60\x7b\x91\xb1\x92\x62\x15\xcd\xf1\x24\x21\x63\x6f\xf4\x91\x5d\xf5\xe0\x0b\x2a\x95\x44\x51\x2e\x15\x4f\xdb\x2f\x97\x4b\xd7\xc3\xc0\x77\x70\xca\xd9\x94\xce\x72\x73\xb7\x18\x70\xce\xe0\x44\x17\x92\xe0\x22\x23\xab\x3c\x55\x0d\xad\xbf\x8b\x6b\xa9\x79\xe8\xaf\x75\x3b\xad\x23\xb8\x17\x46\x3e\x2b\x75\x6b\x59\x6b\x7c\x3b\xbc\xbb\x7e\xb8\x3d\x1d\x9e\xa0\x41\x96\x25\xd4\xd8\xdd\x0d\x29\xd0\xdf\xf4\xa4\x90\xc2\xf2\xb1\xd8\x4b\x61\xc8\xdc\x60\xd8\x82\xa1\x5f\xcb\xc6\xe8\x10\x9d\x5e\x3c\xdc\xdd\x0f\x6f\x5b\x1a\xb4\x84\x02\x79\xab\x24\xcd\x12\xac\x48\x8c\x1e\xf3\x09\x11\x8c\x68\x69\xc7\x22\xdd\x16\xe6\x7f\xd3\xe8\xf0\xbf\x86\xa7\x0f\xf7\xe7\xd7\x57\xe3\xbf\x3e\x0c\x1f\x86\x27\xc8\x51\x9c\x6e\x56\x8f\x4b\x8f\x22\x5e\x30\x9c\x6a\x0d\x44\xff\x50\x64\xca\xfe\x3d\x27\x39\x41\x58\x4a\x3a\x63\x29\x01\x44\xe0\x52\x8b\x6e\xc0\x17\x83\xef\x87\x17\xe5\x96\xe7\x24\x84\xdf\x45\x09\x9e\x90\xc4\xfa\x23\xc0\xc4\xae\x09\x3d\x80\x2a\x36\x8e\x8a\xdc\xac\xea\x5f\x1f\x06\x17\xe7\xf7\xbf\x8c\xaf\x3f\x8e\xef\x86\xb7\x3f\x9d\x9f\x0e\xc7\x56\xaa\x3c\x1d\xe8\x7e\x4b\x3d\x59\xe1\x13\xfd\x3d\xc7\x89\xd6\x4e\xf8\xd4\xe1\xf1\xa2\xe7\x39\x61\x28\x67\x40\x71\x46\xe5\xd1\x7a\x90\xef\x54\x9f\x32\x33\xa3\x9b\x8b\x87\x4f\xe7\x57\xe3\xeb\x9f\x86\xb7\xb7\xe7\x67\xc3\x13\x74\x47\x12\x50\x0a\xdc\xa2\xc3\x2e\x66\x49\x3e\xa3\x0c\xd1\x34\x4b\x88\x5e\x0d\x6c\xb3\x89\xe7\xf8\x89\x72\x61\x8f\xee\x8c\x3e\x11\x66\xd6\x11\xce\x2c\xb4\xef\x84\xef\x71\xb0\x74\xd7\x57\x1f\xcf\x3f\x9d\xa0\x41\x1c\xfb\x39\x48\x68\xa3\x44\x39\x0e\xd6\xf9\xb0\x3c\x6c\xcd\x1c\xa0\x7b\x43\x44\xfc\x89\x08\x41\x63\x52\xa1\xa3\xc1\xdd\xdd\xf9\xa7\xab\xcb\xe1\xd5\x3d\xac\x98\x12\x3c\x91\x68\xce\x9f\xc1\x94\x0d\x33\x04\x0b\xf7\x13\xa6\x09\x74\xe6\x36\x8b\x33\xf4\x3c\xa7\xe0\xfe\x00\x60\x66\xdf\xb3\xd1\xcf\x44\xce\xde\xdc\x3a\x5b\x3a\x78\x75\xb5\xa5\x7a\x92\xea\x6f\x54\x8e\xc5\xb2\x17\x4a\x54\x5e\x7f\x71\x15\xb5\xd6\xbf\xa8\x90\x5b\xbb\xb2\x56\xa3\x97\xf6\x99\x16\x7b\xdd\x59\x57\x2b\xaf\xe1\xeb\x5d\xb3\x44\x09\x1a\xc9\x97\x85\x7a\x12\x39\x53\x34\x25\xc8\x76\x66\x0f\xe7\x0e\xe1\x9f\x2e\x4d\xc3\xef\xe1\x82\xad\x95\x72\xf8\x44\x94\x1d\x7e\xaf\x02\xf6\x2a\xe0\x7e\xa8\x80\xef\x2d\xdb\x3f\x26\x59\xbd\xc3\xca\xc4\xe0\x1d\xe3\xf5\xaa\x05\x69\x18\x7b\xa2\xb5\xa8\x26\xe4\x89\x24\x20\xe5\x29\x81\xb5\xd2\x68\x65\x97\x89\x20\xf8\x51\x0b\x7c\x31\x7f\x0e\x25\x97\x06\xe4\x7e\xb4\x9b\x5b\xb8\x4b\x10\xc7\x9f\xbe\x7b\xbd\xcb\x42\x2f\x77\xfc\x1a\x25\xbc\x6f\x21\x48\x66\x29\x46\x60\x90\x60\xff\xab\xb5\x04\xaf\xb8\x2d\x82\x2f\xde\xc3\x45\x11\x0e\x77\x8f\xb4\xae\xdb\x50\x09\x76\x2c\x34\x25\x0a\xc7\x58\x61\x7d\x68\x66\x44\x1d\xa1\x6b\x06\xcf\xee\xb1\x7c\x3c\x40\xee\xca\xd3\x6c\xa5\xb0\x32\xbc\x42\x6a\xfd\x3b\x31\xe0\xaf\xcf\xc7\xfb\xeb\xbb\xbf\xbe\x9b\x57\xa6\x0f\xf3\x6c\x59\xe1\x5d\x5d\x8c\x6b\xf9\xbc\x76\x77\x7f\x99\x16\xdf\xef\x15\xf6\xba\x4e\xae\x9d\x5e\x68\xa6\x72\x56\x7f\x5b\x99\xff\xeb\x6f\xab\xfe\xb6\xea\x6f\xab\x3d\x58\xe1\x37\x77\x18\x36\x70\xf7\x37\xf5\x18\xae\xd2\x4e\x37\x86\xbc\x2b\xb4\xd1\x75\x40\xef\x7e\xed\x8a\x6d\x57\x7c\x43\xdf\x87\x8f\x30\x98\xe4\x6b\xa4\xb5\xed\xf4\x32\x37\xf9\x22\xbd\x7e\xfa\x82\x37\x7e\x8f\x40\xb8\x53\x04\xc2\xfd\x98\xeb\x8b\xa4\xc0\xbd\x8d\xc5\xf4\xed\xd3\xde\x7a\xa8\xc1\x3e\xb1\xab\x4f\xec\x82\xdf\x7b\xa8\xc1\xdd\x51\xeb\xcb\x4a\xd7\x3c\x26\xe3\x4a\x94\x80\xff\xe7\xb8\xea\xf9\x29\x3d\x09\xdd\x40\xa5\x07\x45\xa6\x1b\xb4\x4e\xe3\x5d\x16\x91\xba\xe2\x31\xe9\x1c\x49\x50\x7a\x79\xcf\x65\x70\x37\x4f\x23\x8b\x97\x06\xfe\xc2\x92\x78\xcb\x96\x7f\x89\x86\x9d\x06\x02\xee\xad\x3c\x2b\x17\xea\x4b\x8d\x2f\x28\x38\xd4\x3b\xf2\x54\x74\x63\xe3\x2e\xa6\x71\xdc\xc2\xcc\x9b\x9f\x7b\x96\xde\xfc\xf8\x65\x30\x83\xba\x73\x74\x30\xab\x84\x6f\xbf\x0f\xbb\x4a\x38\xe2\xd7\xb0\xac\x2c\xdd\xfb\x2f\x8e\xab\x2f\xa3\xe4\x9e\xb7\x77\x5c\xae\x2f\x95\xc3\xf7\x10\x3f\xcb\x6c\x1d\x3d\x86\x4e\x6f\x6a\xd9\x9f\x09\xf7\xa6\x96\x77\x6d\x6a\x31\x2e\xda\x71\x86\x05\x61\xaa\x41\xa4\xae\x5e\x27\xf0\x7a\x88\xb9\xe0\xa4\x0e\x68\x00\x69\x89\x16\xd9\x0b\xd9\x5f\x55\x5f\x96\xed\xc5\x0a\x06\x41\x26\xe4\xf1\x3f\x8a\xbf\xbd\xb0\x5e\xaa\x00\xb1\x24\x3a\xc9\x60\xfd\x4b\x7d\x47\xe7\x36\x50\x69\xfb\x5c\x49\xac\x4a\xa2\x20\x04\x51\xaf\x8c\x67\xba\x31\x6f\xbf\xaf\x14\xc9\xda\xa0\x5f\x37\xb6\xa9\xbe\xf1\xdd\x0e\x90\xdb\x19\x6a\xd2\xfd\x82\x9c\x32\x2d\x8d\xf2\x69\x71\x31\x48\xf4\x4c\x93\x04\x10\x45\x20\xe3\xb1\xed\x06\xf8\xdd\x45\x3c\xb4\xee\xfc\x9b\xc6\x3d\x34\x71\x87\x26\x96\xd0\xc5\x9e\xba\xab\x9c\x69\x47\x6c\x90\xce\x0a\xda\xd0\x0a\x03\xec\x97\xc1\x09\x3e\x11\xf5\x5a\x6c\x60\xd3\xb3\xbf\xf4\xdc\x0b\x32\x25\x82\xb0\x88\xec\xa1\xb7\x7d\x9d\x30\x90\x9f\xcd\x24\x6d\x0c\x88\x87\x12\x08\xa7\xaa\xb8\xd5\xd3\x4a\xa2\x6e\x9f\x49\xde\x67\x92\xf7\x99\xe4\xd5\xa3\xde\x67\x92\xf7\x99\xe4\x8d\x39\x10\x31\x49\x88\x22\xad\x52\xc5\x19\x3c\x7e\x2b\xa9\xc2\xf4\xfe\x65\x08\x16\x66\x2e\xbd\x6c\xf1\xbb\xd1\x2c\xdc\x86\xef\x85\x66\x61\xce\xda\x2a\xf3\x43\xe9\xc7\x86\x10\xeb\x57\x37\x49\x6c\xc2\x34\x4a\x76\x89\x33\x78\xfd\x5d\xb2\x8e\xea\xd0\x7b\x1b\x05\x0a\xb6\xee\xe5\x38\x49\xed\x08\x74\x9b\xb8\xf5\x18\xbe\xdf\x79\xef\x0b\x07\x6d\xa3\xfb\x7d\xe5\xa3\x1b\x27\xa5\xec\x8b\xc5\xe6\x0b\xe2\x91\xbd\xf5\xe6\x8d\x73\x25\x6a\xcc\xf0\xdd\x4e\xb7\x37\x56\xf5\xc6\xaa\xde\x58\xd5\x1b\xab\x7a\x63\x15\xea\x8d\x55\x6b\x1b\xab\xbe\x20\x99\xaa\x37\x5c\xf5\x62\xd5\xee\xa6\xbb\xaf\x5a\xe6\x3e\x59\xeb\x3a\xa3\xa4\x17\x39\x54\x2b\x23\xef\xed\xb4\x7f\x5d\x11\x72\x7f\xe3\x46\xf0\x7e\xf8\x95\x7c\x69\x96\xb4\x4d\x60\xb1\xdb\xd1\x2f\x36\xae\xb8\x2f\x1d\xda\xb8\x56\x7d\xd8\xf3\x92\xc5\xe9\xc3\x9e\xfb\xb0\xe7\xbd\x0b\x7b\xde\xb9\xb2\x92\x71\xb9\x0c\x90\xc8\x94\xce\x5a\x9a\xff\xec\xee\x6c\x48\x34\x02\x52\x30\x28\xc7\x31\xc9\x12\xbe\x00\x4b\xca\x92\xeb\xdc\x75\x71\x53\x93\xa8\xf7\xfd\x46\x77\x23\x7f\x2d\x9d\x63\x5f\x64\xd2\x62\xde\x7b\x21\x85\x1e\xff\xa3\x92\xce\xdf\x09\x2f\x93\x21\xf2\x99\x4a\xb8\x95\x56\x13\xf6\x88\x35\x3f\x09\x4a\x17\xda\x7b\x70\x92\xab\x20\x77\x4f\x6a\xc1\x2a\x23\x42\x2d\x82\x37\x49\x9a\xa9\xc5\x7f\x8e\x18\x55\xde\xc3\x46\x67\x8c\x0b\xc3\xd5\xf4\xc7\x73\xcc\xe2\x84\x08\x7d\xa9\xba\x76\x22\xcc\x18\x57\x20\x6e\xc0\x0c\x62\xf4\x44\xb1\x11\x4e\x06\x37\xe7\x9d\xfd\xcc\xef\xe8\x74\xbd\x76\xb1\xba\x15\x77\xdd\xa7\x84\x4f\xa0\x82\x65\x5e\xd6\xe9\x75\x03\xbd\x67\xb4\xb4\x73\x6f\xc5\x10\x14\x96\x8f\x55\xe0\x90\x72\x16\xfa\x78\x29\x94\xc8\x8a\x77\x4b\x18\xf3\xcb\x5f\xad\xc0\x8d\x94\x9f\x59\x00\x12\x78\x0c\x43\xae\x8e\xc3\xfd\x18\x76\xe8\x7e\x2b\x5a\x76\xbf\xb8\xd2\xdd\xf0\xa3\x20\x4a\x2c\xc6\x58\x29\xcd\x64\x76\x89\x71\x72\x8f\xe5\x63\x67\x8c\x93\xd2\xcb\x7b\xce\x72\x4a\x18\x27\xe5\x81\xbf\x38\xcb\xe9\x48\x9d\x2b\x38\xd3\xfb\xcb\x8f\xef\x7a\xd6\xd6\x98\xf8\xef\x25\x57\xbe\x1b\xef\x59\x65\xa6\x7d\x8f\x79\xf3\xcb\x98\xe9\xde\x8c\xb0\xc2\xcf\xbf\xc4\x93\x5b\xbe\x9d\xfa\x23\xba\x6c\x8d\xbe\xb8\x42\xb8\x15\xa1\x63\xc5\xdc\xde\x49\x41\xdc\xaa\xdc\xb4\xeb\x51\xbd\x8c\x99\x3b\xd8\x8d\x75\x62\x80\xce\xcb\x68\xe5\xfe\x0c\xb9\xa8\xa0\xa2\xf4\xec\x1c\x12\xad\xa9\x0c\x13\xe2\x23\x2e\x8c\xe4\x15\xdb\x33\x6b\xcc\x76\x06\xcc\xf7\x04\x0d\x50\x6c\x6b\xf3\x0b\x92\x09\x22\x09\x53\x46\xd5\x36\xf5\xae\x5c\x79\x7f\xca\xac\x85\xe8\x0c\x2b\x7c\x8a\x15\x4e\xf8\xec\x08\x0d\x7c\x61\x7f\x2a\x11\x4e\x24\x47\xd8\x11\x0e\x89\x5d\x13\x98\xc5\x8e\x3d\x60\x14\xf1\x34\xa3\x89\x47\x6a\xf7\x56\x7c\xca\x62\xfa\x44\xe3\x1c\x27\x1e\x19\x7b\xc4\x86\x4f\x84\xa9\x1c\x54\x38\x9c\x24\xc8\x76\xeb\x5e\x08\xf4\x73\x37\x4a\x49\x53\x9a\x60\x81\x14\xb7\xa3\xbd\xb6\x6d\xa1\xfb\x39\xf1\x63\x75\x28\xe0\x28\xc5\x8f\x44\x22\xaa\x50\xc6\xa5\xa4\x93\xa4\x38\xc6\x0f\xe7\x08\xc6\x7d\x7a\x71\x0e\xa6\xd1\x48\x21\x6e\xf8\xa0\xeb\xdc\xfa\x09\x5c\x8f\x29\x66\x8c\x40\xc7\x5c\xcd\x89\xb0\xdd\xdb\x97\xdf\xda\xca\xf9\xd6\x18\xd1\xed\x16\xd3\x70\x64\x6f\xa7\x74\x76\xd6\x38\xbb\xaa\x9b\xdd\x74\xcd\x76\x45\xf3\x05\xbc\xb4\xdd\xb5\xc1\x0b\x2a\xcb\xea\xe0\xbb\x70\xd9\x96\x46\xfc\x1a\xf8\x68\xbf\x53\x45\xb0\xd7\x02\x5f\x64\xdd\xbe\x54\x15\x70\xcf\xf5\xbf\x1e\xd9\xad\x47\xb1\xef\x03\x30\x76\xb8\x38\x7d\x00\x46\x1f\x80\xf1\xc5\x06\x60\xb4\x6b\x13\x34\xde\x3a\x5d\x6f\xcd\x0a\x52\xde\x28\x20\x7e\x05\x51\x0a\xcb\xc7\xae\x35\xa5\xb4\xa8\x7c\x1e\xbf\x0b\xa9\xbe\x71\xc2\xaf\x21\xdd\xf7\x75\x8a\x76\x5a\xa7\x68\xef\xa6\xdd\x0b\x7e\xbd\xe0\xd7\xcb\x36\x1d\x27\xdc\xcb\x36\xfb\x2b\xdb\xbc\x95\xc2\xf2\x25\x41\xe8\x6a\xe1\xa9\x94\x19\xb3\x34\xc0\xd6\xc0\xd1\x80\x7b\x20\xcf\x12\x8e\xe3\x55\x41\x38\xbf\xa2\x42\xae\x59\x22\x9a\x99\x76\xf5\x07\x7b\x2e\x99\xd5\xe2\x6f\xcc\xc8\x7f\x0f\x31\xb5\xad\x53\x7f\xd3\xb0\x5a\xa0\x5f\x08\x26\x2b\x05\xa5\xbd\x94\x16\x52\xa5\xe9\x4e\x0a\x87\xfc\x6e\xcf\xa9\xda\x6f\xe9\x6b\xa8\x17\x5f\xb0\x83\xa0\x77\x02\xfc\x3e\x0b\x9f\xef\x8d\xd4\xda\xab\x76\x7d\x56\x65\x6f\xd4\xef\x15\xdf\x5e\xf1\xdd\xf9\x32\xee\x93\xe2\xfb\x86\x12\xb5\x49\x13\x79\x91\x32\x86\x9b\xc9\xd6\xbd\x68\xdd\x8b\xd6\xbd\x68\xfd\xc5\x8a\xd6\xfb\xb1\xc2\xbd\x5c\xdd\xcb\xd5\xbd\x5c\xdd\xcb\xd5\xbd\x5c\xbd\xf3\x65\xec\xe5\xea\x8a\x5c\x0d\x7f\xb9\x34\xe9\x75\x85\xec\xce\xc2\x75\x87\x9c\xe8\xf7\x22\x59\xf7\x52\x75\x2f\x55\xef\xb7\x54\xbd\x37\x13\xfa\xf2\x12\x21\xfb\x54\xc2\x3e\x95\xb0\x4f\x25\x7c\x8b\x54\x42\xc7\x4b\x96\x49\x28\x75\xc1\xe2\xa7\x1a\x07\xda\x5b\xd9\xa2\x18\xed\xa6\xe1\x1d\xbb\x5a\x6a\x07\x34\xbf\x49\xa5\xa9\xd2\x6f\xae\xa1\x3d\xaa\x3f\x75\xe0\xa4\x05\xcd\x28\xdc\xf8\x56\x23\x84\xfd\x6c\xdf\x7c\x5f\x60\xe0\xf5\x51\xf7\xf5\xa7\x50\xb0\x6b\x7d\xfd\xa9\x17\x9c\xb7\x3b\x5c\x2b\x66\xee\x68\xd4\xd8\x78\xdf\xe9\xb4\xdf\x1c\x5c\xae\xfd\xa4\xbf\x69\xb8\x5c\xe3\x4d\x52\x4b\xde\x39\xfe\x47\xe3\x45\xf1\x06\x65\xb7\xd6\xbe\x1d\x3e\x11\xf5\xa5\x5c\x0d\x7d\xd9\xad\xbe\x3e\xc4\x8e\xa6\xbb\x11\xeb\x7f\xb7\xb3\xed\x8b\x8c\xf5\x45\xc6\xfa\x22\x63\x7d\x91\xb1\xbe\xc8\x18\xfa\x9d\x17\x19\x5b\x5b\x7c\x34\xe3\xf8\x52\x24\xc8\xbe\xc8\x58\x2f\x44\xee\x6e\xba\xbf\x2f\x21\x72\x0f\x2d\x08\x7b\x51\x4d\xcd\x5b\x10\xde\x1c\xf7\xc3\x8d\xa4\x2b\xf6\x87\x5b\xd0\x1e\xff\xc3\xfe\x5f\x8f\xff\xd1\xe3\x7f\xb4\xcc\xba\x0f\x66\xed\xf1\x3f\x50\x1f\xae\xd9\x87\x6b\xee\x73\xb8\x66\x87\x6d\xec\xf1\x3f\x3a\x8a\x73\x2f\x84\x01\xe2\x64\xae\xb5\x70\x40\x7e\xae\x2b\x1a\x7b\x2b\xa5\xb9\xb1\xfe\x7e\x70\x40\x1a\xa7\xbd\x17\x2a\xc9\x2b\xe2\x80\x34\xd1\x75\x67\x05\xe4\x7d\xe0\x81\xb8\xd1\xf6\x89\x8b\x7d\x88\xf5\xfe\x87\x58\xef\x5d\xe2\xe2\xde\x48\xb2\xbd\xba\xd7\xe7\x2e\xf6\xb9\x8b\xbd\x32\xdc\x2b\xc3\x3b\x5f\xc6\x7d\x52\x86\xdf\x58\xc2\x7e\x41\x5c\x90\xed\x64\xed\x5e\xd4\x36\xef\xf5\xa2\x76\x2f\x6a\x7f\xa1\xa2\xf6\x7e\xac\x70\x2f\x67\xf7\x72\x76\x2f\x67\xf7\x72\x76\x2f\x67\xef\x7c\x19\x7b\x39\xfb\xd5\x70\x42\x9a\x84\xed\x8e\xf9\x36\xef\x49\xd2\xee\xa5\xec\x5e\xca\xde\x6f\x29\x7b\x6f\x26\xd4\x63\x86\xf4\x98\x21\x3d\x66\x48\x8f\x19\xb2\x91\x7c\xf3\x2f\xf6\x58\x7e\x08\x6e\x62\x7f\x65\x7f\xf8\x3e\xe1\x93\xfb\x45\x46\xf4\x7f\xcf\x68\x4a\x98\x04\x69\x94\xaa\x45\x28\xcf\xb4\xac\x7c\x7d\xcd\x3f\xdc\x9d\x5f\x7d\xba\x08\xb3\x69\x3e\x5c\x3e\x5c\xdc\x9f\xdf\x0c\x6e\xfd\xba\xf8\x59\x85\x6b\x61\xbf\x2b\x89\x64\x96\xe4\x6f\x89\xd6\x3d\xe1\xd4\xdc\x29\xac\x72\xb9\xd9\xc8\x6e\x87\x77\xc3\xdb\x9f\x20\x1b\x68\x7c\x76\x7e\x37\xf8\xfe\xa2\x44\x10\xa5\xe7\x83\xd3\xbf\x3e\x9c\xdf\xb6\x3f\x1f\xfe\xd7\xf9\xdd\xfd\x5d\xdb\xd3\xdb\xe1\xc5\x70\x70\xd7\xfe\xf5\xc7\xc1\xf9\xc5\xc3\xed\x70\xe9\x7a\x2c\x1d\xed\x72\x25\x44\xc2\x22\x41\x9c\x3f\x8a\x2c\xd7\x10\xc5\x1a\x22\x2f\x3e\x3a\x76\xd8\xd4\xd7\x09\x7a\xb0\x3a\x3d\xb5\x8d\x1b\x06\x1b\x34\x64\x94\x91\x98\x4a\x3c\x49\x48\x5c\x6b\xc9\xad\x61\x5b\x4b\xb8\x34\xa8\x67\xad\x3d\x7b\x91\x53\xf3\xbc\xc8\xf0\x02\x04\x39\x8a\x8a\xb0\xb8\xa1\x0f\xb3\x0f\xad\x3d\x30\xcd\xbb\xe8\x13\x29\xf5\x14\xe5\x42\x10\xa6\x92\x05\x22\x9f\xa9\x54\xb2\xd6\xa8\xdb\xbe\xb6\x66\xed\x9d\xea\x1b\x9c\x63\x89\x26\x84\xb0\xf2\xf8\x05\x49\x08\x96\x0d\x63\xb6\xbb\xdf\x6d\x59\xfc\x5e\x59\x6b\x8c\xb9\x8c\xa6\x98\x26\xb9\x20\x95\xd3\xc2\xd3\x0c\x0b\x2a\x39\x1b\x7e\xd6\x77\x99\x3e\xc8\xd7\xf0\x39\x17\x9b\x9d\x98\xe1\x5f\x43\x0a\xbe\x2a\xff\xf3\xd3\x7d\xf9\x5f\xa5\x33\x7f\x71\x5f\xfe\xd7\x72\x5a\x0f\x1a\xae\x52\xf6\x21\xfa\x74\x7f\x82\x3e\x41\x88\x93\x40\xf7\x73\x6c\x28\xf6\xe2\xfe\x04\x5d\x10\x29\xe1\x97\xe2\x63\x45\x55\x02\x73\xfb\x9e\x32\x2c\x16\xc8\x4d\xdf\x24\xba\xe2\x68\x8e\x88\x5f\x9a\xea\xe2\xb1\xbf\xe5\x0c\x54\xf7\x62\xf5\x2e\xf8\x8c\x46\x38\xd9\x6e\x11\x07\x57\x25\x3e\x70\x7d\xbb\x74\x29\xc2\xb7\xeb\x6b\x31\xb8\x3a\x83\x24\x52\x37\xd4\x86\x99\x5f\x11\xa9\x89\x24\xe2\x2c\xb6\x5e\x1a\x7d\xfb\x2f\x02\xa1\xfe\x6f\x1c\x12\x71\x73\x49\xd9\x4c\xb7\x88\x8e\xd1\xf5\xed\x88\x5d\x8b\xd8\x18\x42\x89\x96\x86\x0d\xcd\x51\x89\x18\x57\x88\xa6\x19\x17\x0a\x33\xa5\x15\x01\x10\x03\xec\x8a\x18\x0e\x70\xca\xd3\x34\x57\x58\x1f\xb4\xda\xa2\x32\x63\x0e\xb9\x23\xea\x3c\x06\xd7\x4a\xc3\x1a\x1a\x39\xa1\x98\x4b\x26\x74\xfb\x5a\x46\x29\xeb\xd0\x34\xae\xa9\xb2\xae\x09\x2c\x04\x2e\x4b\x13\x1f\xa8\x22\x69\xf5\xfd\x8e\x41\x9e\xff\x6c\x34\x10\x9c\x9a\xa4\x0a\x22\x06\x22\x9a\x53\x45\x22\xa5\x8f\xe0\x46\x34\xf1\x70\xf5\xe3\xd5\xf5\xcf\xa1\x04\xf1\x61\x70\x79\xf6\xe7\x7f\x2f\xfd\x70\x7b\x59\xfb\x61\xfc\xd3\x9f\x6b\xbf\xfc\xff\x96\xd2\x53\xb5\xa7\x9a\x9e\x1f\xcc\xe5\x10\x44\x6a\xb0\x09\xbb\xa9\x22\x9a\xe2\x19\x41\x32\xcf\x34\x05\xc8\xa3\xf2\xfe\x6a\x91\xf2\x82\xe3\x98\xb2\x99\xc9\x00\xbd\xa0\x8a\x08\x9c\x5c\xe2\xec\xa3\xb3\x5f\x6f\xb0\x3a\xff\xf7\xae\x94\xaf\xfb\xe1\x97\xc1\x65\x98\xf1\xfb\xe1\xe6\xf6\xfa\xfe\x7a\xe9\xac\x4b\x2d\xd4\x8f\x91\x7e\x7c\x02\xff\x8b\x8e\x91\x6e\xdd\x4b\xbe\x29\x51\x58\x6b\x04\xe8\x6b\x93\x34\xe7\x13\x69\x28\x4b\xe0\xd4\x64\x82\xa6\x14\xae\x14\x63\xc1\xfb\xc6\x08\xd7\x5e\x7b\xf0\xe7\xc6\x7c\x00\xda\xb2\xbb\x94\x59\x8c\x45\x8c\xfe\x26\xab\xe9\xe3\x60\x38\x36\x3f\x90\x18\x1d\xa2\xb9\x52\x99\x3c\x39\x3e\x7e\x7e\x7e\x3e\xd2\x6f\x1f\x71\x31\x3b\xd6\x7f\x1c\x12\x76\x34\x57\x69\x62\xd2\xe5\xf5\x2a\x9c\xa0\x1b\xc1\xf5\x15\x02\x0a\x3a\x11\x14\x27\xf4\x37\x12\xa3\x89\xe1\x7f\x7c\x8a\x7e\x8d\xb8\x20\x47\xc5\xc6\x58\xa3\x92\xbd\x47\xac\xe1\xe9\x58\xbf\xd4\xc0\x4c\xaa\xfb\x89\x62\x12\xd1\xd8\x8a\x19\x84\x45\x1c\x2c\x8f\xc6\x57\xa1\xdb\x73\x99\x86\x5a\xa3\xc9\x72\x55\x2c\x67\xa0\xac\xe0\x98\x04\xd9\xee\x8a\x97\x09\x4e\x2b\x3e\xe7\x46\x6d\xcd\xb5\x8a\xae\xef\x56\x0c\xb7\xaa\x7b\x35\xd3\x13\x8e\x78\x82\x26\xf9\x74\x4a\x44\xe8\x90\x3e\xd0\xda\x0c\x95\x48\x90\x88\xa7\x29\x48\x0c\xfa\xab\x5c\x1a\xaa\x86\x15\xb3\xa3\x3d\x1a\x31\xd8\x7f\xad\xe6\x00\x05\xc4\x1c\x58\x1d\x23\x24\x46\x98\x2d\x4c\x37\x93\x7c\x1a\xb6\x6f\x60\x28\x70\x8c\xa8\x1a\xb1\x41\x92\x20\x41\x52\xae\x48\x90\x43\x09\xce\xb3\xf2\x82\x03\x8b\x14\x24\x4b\x70\x44\x62\x43\x0f\x09\x8f\x70\x82\xa6\x34\x21\x72\x21\x15\x49\xc3\x06\xbe\x06\x5b\x8d\x5e\x33\x2a\x51\xcc\x9f\x59\xc2\xb1\x9d\x47\xf5\xb3\x6f\xca\xa7\x71\xe8\x20\x02\x86\x42\x70\x01\xff\xf3\x23\x65\xf1\xce\x38\xd4\xc3\xdd\xf0\x36\xfc\xf7\xdd\x2f\x77\xf7\xc3\xcb\xf5\xb8\x8f\xa7\x2c\x18\x1e\xe8\xf0\x27\xe8\xce\x2c\x02\x17\x5a\x22\x12\x2d\x93\xba\xb4\xa4\x54\xfc\xc0\xe3\x0d\xb9\xef\xe5\xe0\xea\x61\x50\xe2\x28\x77\xa7\x3f\x0c\xcf\x1e\x2a\xfa\x80\x9d\x5f\x49\x86\x37\xea\x5f\xf8\xdb\xe9\x0f\xe7\x17\x67\xe3\x06\x85\xf1\xc3\xed\xf0\xf4\xfa\xa7\xe1\x6d\xa1\xdb\x35\x2e\x51\x65\x30\x55\x66\x75\x6f\x98\xd2\x9c\xc7\x68\xb2\x68\x06\x84\xd0\x92\x73\x02\xbe\xd8\x02\x12\xc5\xb4\x7a\x02\xbc\xc9\x61\x73\x14\x5f\xa4\x3c\x26\x07\xf6\x1d\x40\xd2\x30\xc6\x15\x23\x31\x37\x37\xac\x7b\xc7\x2c\x30\x54\x18\x90\x0b\xbf\x70\x27\x68\x80\xa4\x7e\x31\xd7\x87\x5a\xd0\xd9\x0c\x0c\x87\x95\xa1\x9a\xd6\xec\xa7\xb0\xbc\xf0\x9d\xd9\xff\x4c\x70\x38\xe7\xba\x5b\x6b\x71\xf6\x56\x09\xf3\x21\xa0\xae\x94\x5b\x14\x18\x0c\x0e\x0d\x43\x73\x9b\xa5\x17\xa1\x75\xbd\xcc\x79\x34\xf6\x22\x7d\xb8\x80\x6d\x49\x63\xef\xcc\x04\x79\xa2\x3c\x0f\x3e\xb5\xc0\x1e\xa5\x1d\x6f\x6c\xbe\x58\x00\x58\x36\x63\x14\xa9\x34\xe3\xc9\xa3\xb1\x05\xcd\xc2\x9e\xa0\x85\xa9\xe0\x69\x43\x1b\xe5\x63\x72\x7e\x7d\xa7\x04\x56\x64\xb6\x38\xb3\x2c\x63\xf3\xe3\x71\x76\xfd\xf3\xd5\xc5\xf5\xe0\x6c\x3c\x1c\x7c\x2a\x9f\x78\xff\xe4\xee\xfe\x76\x38\xb8\x2c\x3f\x1a\x5f\x5d\xdf\x8f\xdd\x1b\x4b\x49\xbe\xa5\x83\xfa\x3d\x5d\x7e\xf1\x04\x69\x96\x0b\xac\xd1\x01\xde\x05\xfc\x71\x42\xa6\x5c\x18\x3e\x9f\xba\xd0\x05\x2b\xc2\xb8\xb5\xb5\xba\x58\x65\x16\x27\x60\x19\x6b\x6a\xd2\x58\xbd\x95\x20\x38\x85\x7b\x02\x33\x34\x64\xf1\xe1\xf5\xf4\xf0\xce\xfc\x98\x62\xf1\x48\x84\xff\xf4\x59\x50\xa5\x08\x2b\xa9\x74\xd8\x0d\xd9\x2b\x89\x45\x07\x47\xe8\x56\xf3\x7d\xfd\xbe\xbf\xd4\x34\xb1\xc7\x44\x61\x9a\x48\x3b\xd8\xd2\xba\x9e\xa0\x0b\x2c\x66\x85\x1d\xee\x6b\x3e\x9d\x9a\xc6\xbe\x31\xc3\xd0\x77\x58\x69\x16\x0d\xbc\x57\x93\x86\xbb\x17\xa1\x3f\xfb\xb2\x97\x87\xeb\x54\xf5\x90\x6d\x47\x53\x0f\x37\xb0\xe2\x46\x63\x2f\xe9\x86\xf6\x49\x03\xad\xc1\xc4\xcd\xe3\xe5\x97\x4c\x73\xdb\x75\x72\x2a\xbf\xd8\x40\x4e\x26\x97\x4a\xef\xfc\x54\x6b\x9b\x0d\xb4\x44\x3e\x53\x6b\x30\x08\xc7\x5d\x21\xa1\xa2\x19\x30\xaf\xe2\x2c\x23\x58\xc8\xa6\xdd\x2e\x8b\x81\x2d\x7b\x6f\x7a\x0a\xfb\xb0\x9b\xec\xfa\x39\x40\x9c\x81\xc1\xc1\x0b\x11\x15\x8a\xec\x40\x03\xa6\xad\x1a\x05\xdc\x00\xda\xd2\xb5\x45\x36\xba\xa4\x52\x2b\x8d\xe6\xc7\xef\x2d\xe4\xd2\x66\x04\xf1\x71\x70\x7e\x51\x11\x2e\xc6\x67\xc3\x8f\x83\x87\x8b\xe5\x66\xc2\xd2\x77\xd5\x2d\x46\x87\x48\x3f\x2f\xfb\xcd\xe9\xd4\xdc\x19\x0e\x38\xca\xa8\xb4\x84\x81\xd1\xca\x42\xd5\x18\x7b\x75\x4c\xb2\x84\x2f\x52\xc2\xc0\xc4\x53\xba\x09\xf5\x7a\x4e\x31\xb5\x57\x4b\x30\x58\xb0\xe2\x58\xb3\x1b\x5c\x63\x87\x0e\xad\x8a\xc4\xfe\xe6\x2d\x83\x55\x55\x58\xf7\x8d\xf1\x9e\xd9\xff\xdc\x29\xac\x36\x3c\x63\x83\xd3\xfb\xf3\x9f\x86\x65\xfd\xf0\xf4\x87\xf3\x9f\x9a\xa4\x9a\xf1\xa7\xe1\xd5\xf0\x76\x70\xbf\x42\x38\xa9\x34\xd9\x24\x9c\x48\x3d\xe0\xaa\xf7\x94\x4a\x1f\x11\x14\x19\xc8\x2b\x44\x95\x44\x4f\x54\xd2\x09\x05\x80\x30\xeb\x89\x7c\x38\x07\xce\xfa\x84\x13\x1a\x53\xb5\x70\xe2\x8b\xe9\xb7\xbc\x8f\x9a\x93\xda\xf6\x8d\xd9\x21\xf4\x4f\x82\x95\xcf\x6c\x8e\x9b\xf4\x09\x02\xdd\xf6\x09\x94\xb6\xe0\x33\xa6\x05\x69\x36\x23\xc2\x0c\x07\xbc\x2f\xe1\x58\x82\xe7\x7a\x54\xa1\xb0\x52\xac\x9a\x17\x5a\x67\x84\x11\x01\x20\x70\xbe\x13\x23\x48\x09\xc2\xbe\xd2\x32\x57\x96\xd0\x88\xaa\x64\x81\x22\xb0\x61\x81\x39\x33\xc5\x0c\xcf\xac\x70\x00\x6a\x4e\x85\x24\xfe\x6a\x50\xd4\xae\xa7\xd6\xb4\x7f\x4f\xc9\x86\xc7\xec\xe1\xea\x6c\xf8\xf1\xfc\xaa\x4c\x02\x3f\x9c\x7f\x2a\x89\xb0\x97\xc3\xb3\xf3\x87\xd2\x6d\xae\x25\xd9\xe5\x72\x7d\xb5\xd9\x86\xa3\xe8\x5f\x3a\x41\x67\xe6\xd3\x13\xbd\xb8\x0d\x10\x71\x5e\xf9\xad\xac\xc3\xad\x0b\xc9\x73\x7f\x0c\x99\x12\x8d\x7e\x89\xae\x26\x24\xeb\x83\x2c\xd9\x90\x9a\x43\x15\x6a\x7d\x5f\x55\x9d\xca\xd5\x29\xbb\x17\x21\xe8\xf2\xa8\xb0\x2c\x85\x31\x0c\x60\x34\x68\x33\x62\x35\xb8\xb5\x0a\x86\xfd\x13\xb8\xa8\xd3\x5c\x2a\xe3\x4a\x04\xe2\x44\x8f\x7f\x91\x7a\x41\xc1\xd5\x78\x84\xee\x08\x19\x31\x67\x3d\x98\x51\x35\xcf\x27\x47\x11\x4f\x8f\x0b\x7c\xc2\x63\x9c\xd1\x14\x6b\x49\x9a\x88\xc5\xf1\x24\xe1\x93\xe3\x14\x4b\x45\xc4\x71\xf6\x38\x83\x08\x18\xe7\x4e\x3d\xf6\xcd\xce\xf8\xbf\x5e\xfc\xe9\xdb\xc3\x8b\xbf\x7c\xfb\xa1\x6e\x21\x6b\xdb\xff\x21\x8b\x70\x26\xf3\xc4\x46\xcc\x89\x70\x6d\xdc\x91\xcf\xc9\xaa\xfd\xbe\x2a\x6f\xd7\x76\xfa\xeb\xe9\xcd\x43\xc9\x62\x5d\xfe\xe7\xe5\xf0\xf2\xfa\xf6\x97\x12\xa7\xbc\xbf\xbe\x1d\x7c\x2a\x31\xd4\xe1\xcd\x0f\xc3\xcb\xe1\xed\xe0\x62\xec\x1e\x6e\x63\x7b\xfb\x91\xf1\x67\x56\x5e\x1a\xe9\x38\x60\xad\xa7\x13\xf4\x91\x0b\xf4\xa3\xdf\xc9\xc3\x09\x96\x70\xc5\xb8\x3b\x4b\x1e\xa0\x8c\xc7\xc0\x78\x11\xc9\xe6\x24\x25\x02\x27\xd6\x66\x20\x15\x17\x78\x66\x6e\x7a\x19\x09\xac\xa2\x39\x92\x19\x8e\xc8\x01\x8a\x80\x1a\x66\x07\xb0\x29\xa0\x6a\xf1\x59\xd5\xce\x77\x9b\x33\x45\x53\xe2\x54\x70\xfb\xcf\x7b\xb3\x19\x1b\x6c\xce\xf5\xfd\x0f\x65\x61\xef\xe3\xc5\x2f\xf7\xc3\xf1\xdd\xd9\x8f\x4b\xd7\xd3\x7c\x56\x1a\xd9\x1d\x04\x20\x9d\xf2\x24\x4f\x59\xf8\xf7\xe6\x63\x3b\xbf\xba\x1f\x7e\xaa\x8e\xee\x7a\x70\x5f\xa6\x8c\xdb\x72\x80\xdb\x87\xef\xaf\xaf\x2f\x86\x25\x97\xf0\x87\xb3\xc1\xfd\xf0\xfe\xfc\xb2\x44\x3f\x67\x0f\xb7\x06\x8d\x70\xd9\x34\xdd\x08\x1a\x26\xaa\xa7\x15\x4e\x73\xd7\xac\xb0\x13\x27\x1a\xd8\x80\x72\x73\x96\x0f\x03\xb8\x1d\x13\x0e\x06\x56\x9d\x43\x6f\x52\x8d\xcc\x48\x1b\xd9\xa1\x2a\x6f\x13\x6a\x67\xc7\x4b\x37\x7a\x19\x57\xbe\xf7\x43\x30\x50\xa0\x46\xd9\xc6\x49\xc2\x9f\x4d\x28\x6f\x4a\xf5\xad\x6c\x81\xd1\xf4\x2b\xb2\xf0\x10\x1e\x35\x70\xbc\xf2\xb6\x90\x48\x10\x75\xc9\x73\xa6\x36\x27\xb9\xc1\x55\x89\xef\x0c\xaf\x7e\x1a\xff\x34\x28\x53\xe0\xf9\xc5\x72\x56\x13\x36\xd1\x70\x15\x0f\xae\x7e\xf1\x97\x30\x04\x7c\x1f\x78\x0d\xd5\xc8\xae\x51\x42\xb5\xd8\x1b\x61\xad\xbd\x26\x20\xd1\x20\x42\xc1\xe4\x90\xea\xc9\x41\x80\x69\x66\xfc\x49\x86\x3f\x99\x41\x9e\xb8\x3f\x2a\xed\x49\x58\x17\xb0\xa6\xba\x78\x7a\x68\xc7\x6a\xd5\x0c\x11\xf6\x44\x05\x07\x3c\x5b\xf4\x84\x05\xd5\xd2\xb8\x69\x59\xcf\xf5\x04\xfe\x77\xbd\x36\xc1\x30\x5a\x61\x5c\x77\x5c\xa8\x33\x1f\xc8\xbb\x99\x35\xa4\x29\xa0\xb5\x1e\xca\xda\x6c\xe8\xa8\x7f\xdb\xb0\x39\x5b\x06\xfc\x96\x27\xfc\xf7\xe4\x8c\xe2\x44\x33\x80\xdd\xc9\x8b\x83\xab\xbb\xf3\xb2\xfc\x58\x56\x33\x02\xbe\xbc\xb1\xbc\x08\x86\x4a\x33\x72\xa7\x4c\xdc\xfd\xf5\xc2\x68\x17\x00\x7a\x6c\xce\x6d\xa0\x58\x80\x00\xe4\x50\x50\x32\x2c\x64\xe5\x0b\x89\x00\x08\xad\x08\xb8\xd2\x77\x16\x84\x33\x3d\x71\x1a\x8f\x18\xf9\x9c\x11\x26\x21\x38\xc0\xdc\x67\x85\xaf\x5d\x1e\xa1\xf3\x29\xb0\x04\xfd\x3a\x43\x39\xb3\x0e\x30\x7d\xe1\x9a\x41\x1e\x68\x51\xd6\x0e\xc1\x6b\x88\x60\x78\x61\xc4\x05\x4b\x15\x83\x1f\xb1\x9f\xbd\x13\x0d\x1e\x4d\xb9\x66\x40\x7a\x17\x6d\x7b\x27\x08\x33\x49\x0f\x90\x56\x58\xaa\x7b\x0a\xa9\x03\x5a\xa1\xb4\x21\x5c\x9a\xd3\xd8\x3f\x5f\xff\x1a\xa8\xc5\x09\x87\x97\x41\xf3\x5d\x50\xb9\x0a\x5a\x44\xe3\xc4\x78\x4c\xc6\xdd\xef\x84\x88\x0b\x62\xfd\x2c\x6b\x5f\x03\xab\x18\xfb\x3d\x96\x8f\x35\xdf\xc3\x39\x93\x0a\xb3\x88\x9c\x26\x58\x6e\x18\x84\xe4\x6c\x1c\x07\x65\x89\xe3\xf6\xf6\xe1\xe6\xfe\xfc\xfb\x15\x5c\xbe\xfa\x71\x3d\x0c\x28\x4a\x72\xe7\x9e\x9b\x08\x8e\x63\xa4\xd9\xe7\x8c\x1b\x57\xa0\x15\xfc\x0b\xe8\x6f\x93\xd7\xe3\x03\x2a\x4b\xb0\xe3\x45\x3a\x82\xb5\x73\x84\xae\x04\x6a\x17\x02\x45\x7a\x25\x50\x60\xf2\x70\x5b\x0d\x9e\x45\x53\x90\xc4\x5a\xb7\xb2\x04\xab\x29\x17\xa9\xe1\xf2\xa5\x49\x9b\xc6\x97\x37\x4a\x99\x22\x42\xe4\x99\xa2\x0e\xcb\xbd\x2a\xa5\x42\x85\x77\x3e\xbb\x24\x52\xe2\x19\xd9\xc6\x01\xdd\xa4\x3c\xdc\xfd\x14\xfe\x13\x1c\xcc\x5d\x64\xff\xd2\x08\x5d\xe4\xbb\xa3\xa7\x6b\xf6\xd1\x04\xf2\xdc\xf0\x84\x46\x1b\x06\xdc\x7d\x1c\x9c\x5f\x8c\xcf\x2f\xb5\x12\x3f\xb8\x1f\x5e\x94\x44\x09\x78\x36\xf8\x78\x3f\xbc\xb5\x20\xd6\x83\xef\x2f\x86\xe3\xab\xeb\xb3\xe1\xdd\xf8\xf4\xfa\xf2\xe6\x62\xb8\x22\x32\xa7\xb5\xf1\xba\x75\xb5\xfa\xea\x49\xed\x17\xd8\x61\xcd\xcb\x42\x7b\x19\x64\x8d\x61\x9a\x80\x13\x9c\x1b\x67\x38\x46\x8c\xc7\x04\x7e\x96\xce\x3a\xe3\x91\xa3\xd1\xb9\xfa\x2a\x49\x10\xce\x15\x4f\x31\x78\x6d\x92\xc5\x88\xe1\x89\x66\xad\x38\x49\x82\xf0\x2e\x91\x33\xa6\x59\xac\x6e\xcc\x40\xb4\x47\x09\xd1\xec\x3c\x0b\x92\xfd\xac\xdf\x60\x4a\x19\x44\xda\xa6\x58\x3c\x1a\x37\x53\xd1\x65\x71\x28\x24\xc2\x72\xc4\xf4\xb8\x88\x35\x0c\x75\x59\xe1\x93\x4e\x6f\xb5\xae\x4e\x8a\x1f\x89\x5e\x95\x34\x8f\xe6\x28\x13\x7c\x26\x88\x94\xd6\xb6\x1c\x61\x66\x02\x10\xec\xeb\xfa\x1a\x1a\x31\xc6\xf5\x52\x38\x13\x76\x4c\x32\xc2\x62\xc2\x22\x6a\xd2\xfa\xc0\x77\xef\x4d\x9b\x33\x81\xb3\x39\x92\x1c\x9c\xde\xb0\xec\x60\xbf\x32\x1f\xb9\x9b\xcc\xcc\xd8\x3c\x0e\x2d\xd0\x22\xd7\x7c\xe2\x1a\xe4\x44\xb3\xca\xf0\xb1\xbb\x0c\x9d\xdb\xc5\xd8\x01\xd3\x2c\x21\xca\x80\xf5\xc3\x92\xc3\x66\xe8\xb5\x2e\xed\x87\xde\xa6\xa6\x4d\xd0\x17\xb6\x1b\x33\x96\x76\x44\x47\x0d\x96\x6d\x7b\xa4\xd0\x0f\x98\xc5\x89\x6e\xc5\xf9\x30\xca\x67\x11\x52\x51\x06\x9a\x6a\xdc\x69\xdc\xe6\x16\x8d\x70\x2e\xb7\xb9\x46\x2b\xb9\x98\xc6\x2a\x78\x58\x04\x85\x00\x79\xdb\x44\x4c\x58\xdd\x4c\xb3\x48\x9c\x70\xbb\x4a\xe6\xf5\xdc\xd4\x7f\x42\x30\x9a\x96\x6b\x36\x13\x94\x45\x34\xc3\xc9\x46\xba\x5f\x25\x18\xdf\xc6\xb8\x7f\x4d\xa7\x9a\x7c\xbe\xa9\xb9\x6d\x15\x11\x29\x24\x28\xdb\x61\xfa\x2d\x5c\xc3\x92\x64\xb3\x1a\x88\x2c\xa2\x49\xb0\xe0\xb9\xf1\xc7\xc1\xba\x90\xb8\xe1\xa8\x1e\x35\x6d\xb7\x3e\x19\xb8\x1c\x00\xbd\xc1\x66\x9b\xc8\x9f\xb6\xf5\xab\xb4\x62\x7b\x37\xc1\x78\x38\xb9\x69\x6e\xb3\x69\x07\x82\x87\xff\x5c\x46\x3b\x97\x38\xd3\x34\x63\x61\xfb\x71\x31\x47\xab\x24\xd9\xaa\x60\x2e\x7e\x26\xf0\x9d\xfb\xbc\x90\xee\xbb\x51\x2c\xa1\x0d\x80\xaa\x77\x52\x8a\x21\x08\x72\xcc\x2d\x8d\x4f\x73\x2d\xcb\x22\x0c\x51\x08\xe8\x6b\x72\x34\x3b\x42\xae\x08\xc3\x01\x1a\xdc\xdc\x0c\xaf\xce\x0e\x10\x51\xd1\x37\x2e\x66\xd1\x06\x2c\x8d\x98\xe2\x56\x5a\x59\xb8\x02\x1a\x29\x11\x33\x52\x9a\xb3\x8b\x6e\x82\x50\xe5\x19\x95\xca\x86\xcf\x6a\xbe\x12\x94\x3a\xa1\x69\x55\xcc\x36\x14\x92\xab\xf9\x36\xa4\x81\xa5\xcc\x53\xad\xcb\x8e\x29\x4e\xc7\x82\x27\xdb\x30\x85\x33\x98\x0a\xa8\xcb\x3e\x3d\x9f\xe2\x14\xe9\x66\x6d\x28\x88\x77\x39\x7a\x91\x4e\x0b\x46\x9a\x2f\xeb\x7b\x33\xb8\xb7\x9c\xf7\xc1\xc6\xa3\x51\x17\x02\x01\xe9\xfb\x2d\xac\xa2\x30\x1b\x8f\xad\xa5\x7e\x8c\xa3\x48\xab\xdc\x3b\x9e\x54\x50\x3f\xc7\xb9\x04\x6c\x47\x2f\x36\xcd\x55\x74\xee\x86\x99\x69\x0e\x06\xc1\xc0\xfa\xca\x95\x3c\xa2\x45\xfb\x0d\xfd\x4e\x16\xb5\x5e\x5d\x85\x9b\x07\xe9\x4d\x2a\xe6\x12\x96\x04\x76\x52\x9a\x0a\x39\x6a\x4e\x16\x68\x8e\x9f\x48\xa9\x4b\x97\x10\xa3\x1b\x5e\xf0\x5c\x34\x31\xba\x11\x3b\x23\x99\x20\x5a\xd2\xaf\x3a\x50\x3c\x4d\xdf\x96\x29\xb1\xa7\xeb\x9e\xae\xdf\x3d\x5d\x9f\x9a\x42\x49\x03\x5f\x18\x6b\x2b\x01\xce\x34\x36\xce\x38\x4f\xc6\x1d\x6c\x22\xdd\x57\xbc\xe4\x09\xab\x94\x8d\x02\x48\x00\x9e\x83\x7c\x54\xba\x36\xb9\xbe\xeb\x82\x14\x5b\x3b\xbc\x25\xcb\xe0\x5c\x66\x41\xbd\x9c\x6d\xce\x7b\x53\x2b\xcb\x5a\x42\x2f\x2e\xe6\x9c\x1a\xf9\xc6\xbb\xcb\xc2\xfa\xa7\xa5\xc3\xe4\x44\x11\xca\x6a\xd5\xd8\x0c\x3d\xeb\x05\x36\x72\xc7\xdf\x73\xae\xb0\xfc\xe6\x68\xc4\xb4\x10\xf5\x48\x16\xc6\xdc\xaa\xc5\x94\x3f\x68\x59\xfc\x50\x12\x26\x21\xdc\xfb\x0f\xc6\x3d\xa7\x49\xdc\x99\xab\x8d\x6a\x6a\x8a\xc0\x41\xd0\xb5\xef\x05\x42\x74\x6d\xa3\x56\x4a\x2a\x02\xa0\x41\xce\x37\x73\xb1\xcf\xcc\xf0\x67\x44\x41\x8a\xb5\xa2\x0a\x74\xa6\xd8\x54\x99\xab\x0d\x7d\xa5\xe9\xca\x50\x85\xe0\xe0\x27\x89\xf3\xed\x18\xbf\xac\xb7\xb1\x92\x33\x7a\x6d\xe1\xce\xc6\xbc\x1f\x3b\xbb\x51\x24\x78\xad\x74\x1b\x96\xc8\xec\xf4\xc4\xb0\x03\xe7\xbf\x26\xec\xe8\x99\x3e\xd2\x8c\xc4\x14\x43\x04\xbc\xfe\xd7\xb1\x9e\xd7\xbf\x9e\xde\x5e\x5f\x8d\x8b\x4c\x9e\xff\x1c\xb1\x41\x22\xb9\xcf\x52\x40\x8c\x33\x1f\x6e\x9f\x09\xe2\x44\x42\x3b\x17\xb0\xba\x16\x66\xc4\x11\x6b\x1b\x41\xcc\x23\x79\x84\x9f\xe5\x11\x4e\xf1\x6f\x9c\x81\x2b\x7d\x00\x7f\x9e\x26\x3c\x8f\x7f\xc6\x2a\x9a\x1f\xc3\xb9\x56\xc7\xe4\x89\x30\x65\xdc\x54\x7a\xb9\x62\x48\xde\x95\x10\xad\xff\xaf\x7a\xcc\x45\x52\x91\xd4\x9a\x6c\x44\x32\x85\xfe\x1f\x41\x26\x9c\xab\xe6\x4b\x8a\x4f\xa7\x92\xac\x75\x21\x15\x4a\xda\xdd\x35\xfa\xcb\x9f\xbf\xfd\xa3\x26\xa1\x4d\xd6\xf8\xfc\xee\x7a\xac\xbf\xff\xd7\x33\xfb\xbd\x5c\x83\xdd\x5d\x67\x05\x6b\x73\xc4\x63\x02\xe7\x73\x06\xb7\x9f\x00\xe7\x05\xb0\x37\x20\x87\x62\x1f\x9b\xb8\xdb\x59\xa9\xf5\xed\x54\xb6\x8d\x16\x13\x54\xec\x60\x8e\xe8\x10\x31\x8e\x52\x13\x6b\x8a\x19\xfa\xf7\x1f\xbf\x6f\xde\xc0\x5c\xd0\x8d\x3a\xa4\x16\xae\x21\xe8\x52\xd2\xdf\x88\x44\x9a\x6a\x34\x15\xf3\x54\x77\x2d\x88\x9c\xf3\x24\x46\xcf\x04\xd4\x24\x1b\x07\xea\xb5\x72\x41\x46\x2c\x6c\x02\x42\x0e\x11\x4e\x14\x9f\x11\xb8\xab\x9d\xa2\xa6\x88\xd0\xa2\x8a\xc9\xd2\x50\x5c\x90\x03\x03\xf5\x75\xf7\x27\x17\x5b\x0d\xd3\x84\x47\x2e\xa9\xc5\x9a\xe4\xe2\x49\xf3\xcc\xa7\x55\xd3\x2b\x6a\xb7\xe1\x57\x37\xd9\x9a\x6d\x9b\x97\xc6\x26\xa1\x58\x1b\x56\x75\x67\x9a\x07\x43\x23\xce\xc6\x09\x65\x8f\x1b\x6d\xc6\xb5\x13\xe5\x74\x0b\x76\xcd\x74\x8b\xde\xce\x6d\x2c\x20\x6b\x9c\x8f\x8f\x79\x92\x98\xd4\x96\x70\x7b\x40\xee\x32\xeb\x06\xc2\x40\x66\x72\x40\x49\x6c\xfd\x5e\x56\x13\x16\x84\x41\xc0\xdb\x88\x4d\x16\xd6\x67\x2b\x0f\x90\xcc\xa3\xb9\xcb\xcc\x8b\x38\x93\x5a\x8c\xe6\x02\x45\x3c\x4d\x4d\x71\x53\x46\x90\xe2\x3c\x91\x36\xda\x9d\x1d\x2a\x1c\xa9\x11\x2b\xfa\x5b\x71\xf2\x4c\x05\xa4\xed\x52\xf7\xba\xbb\x74\x8a\x4a\x4b\x4b\x05\x6e\x1a\x87\x98\x0d\x60\x04\x33\x9e\xa8\x00\xfd\x81\xd7\xcf\x92\xd9\xb0\x16\xcd\x40\xce\xb9\x50\xe3\xb8\x91\xe7\xac\x24\x9a\x2a\x23\x64\xe4\x30\x81\xa0\x61\xfe\xa4\x85\x7f\xf2\xec\x8d\xaf\xcb\x86\xa0\xa9\x7a\xd9\x08\xba\x1d\xa3\xa5\x23\x5b\x97\x04\x5b\xd6\xca\x20\x78\x44\xe5\x98\xf0\x55\x63\xbc\x83\xaf\x4e\xf5\x47\x4b\x17\xaf\x7a\xee\x9c\x10\xc4\xe3\x02\x6c\xce\xdc\xeb\x36\x23\x64\xd9\x9a\x5a\xe8\x84\x97\xcb\x1c\x5d\x36\x95\x87\xb2\x25\x57\x8f\x05\x4c\xf6\x92\x80\xac\x89\xc5\x84\x2a\x81\x45\x09\x29\xc4\xeb\x83\x92\x60\x01\xf1\x59\x23\x66\x70\xe3\x8c\xa6\x10\xa3\x98\x4a\x48\x10\x81\xbb\x34\x70\x86\xa1\x6e\x4a\x60\xe5\x68\x17\x79\x8e\x26\xfe\x1c\x02\xcb\x0a\xd2\x70\xcc\x4e\x77\xe4\xf1\xb1\xb4\x7e\xc6\xa3\xbc\x10\xe4\x22\x90\x70\x2d\xa6\x0e\xa2\x4c\xd2\xd9\x5c\x21\xca\xac\xdd\x11\x27\x33\x2e\xa8\x9a\xa7\xf2\x00\x4d\x72\xa9\xb5\x50\x13\xac\x66\xe2\x51\x88\x8a\x3a\x71\xa1\x6d\x93\x88\xe3\x4a\x83\x75\x15\x65\x03\xd2\xe8\x76\x28\x87\x95\xbb\x62\x05\xe1\x0c\x3c\xce\x60\xb5\x0d\x0a\x75\x1b\x0d\x3c\x25\x32\x71\x80\xdc\x21\x3b\x41\x15\x90\xb6\x73\x00\xa8\x90\x3b\xf3\x52\xbc\x46\x21\x2e\x64\x92\x41\x05\x71\xb1\xdb\x20\x79\x95\x91\x29\x0d\x7a\x93\x77\x3a\xa5\x99\x6a\x0c\xdc\xaa\xbb\x8a\x6e\x03\xcc\x9f\x6e\x8b\x0d\xc9\x58\x40\xcd\x80\xd4\x36\x62\x77\x84\xb4\x03\xb9\xd5\xf6\xde\x94\xc6\x85\x29\xd8\x44\x8f\xe5\x24\xbf\x8d\x13\xfb\x6c\x78\x77\x7a\x7b\x7e\x63\x20\x27\xae\x6f\x2f\x07\xf7\xe3\x06\xbf\x76\xc3\x5b\x97\x83\xdb\x1f\xcf\x56\xbf\xf6\xc3\x7d\x39\x2b\xbb\xe1\x95\xdb\xbb\xe5\xc9\x1c\x1d\x86\xd8\x90\x14\xd6\xd8\xcf\x09\xca\x16\x6a\xce\x99\x0f\x51\x88\x4b\xbc\xe9\x10\x99\x8c\x60\x05\x21\x44\x42\xaa\x06\xc7\xe1\x3d\xc4\xe5\xac\x96\x30\xcb\x9b\x65\x60\xd8\x76\x2a\x1a\xad\x71\x22\x3f\x25\x7c\x02\x7e\xeb\xbc\x54\xe2\x76\x49\x04\xfa\x96\xf1\x3e\x67\x54\x66\x09\x5e\xd4\x7a\x58\x75\xe5\x5c\xe1\x94\x40\xc4\x71\x81\x1f\xe7\x92\x45\xf4\xce\x40\x02\x93\xbf\xd7\xe9\x14\x32\x99\x14\xc5\x8a\xa0\x09\x51\xcf\x90\x37\xe7\x7e\xf5\xb6\x54\x17\x30\x22\x8f\x46\x0c\xcc\x39\x23\xbd\xc8\x71\x0e\xd1\x7e\xa3\x0f\x07\x68\xf4\x21\x26\x4f\x24\xe1\x99\xde\x79\xfd\x43\xcb\x25\x33\x4c\x31\x4d\xae\xb8\xf2\x96\xb9\x6d\xf6\x53\x90\x88\x66\x20\x99\x8f\x89\x6e\xf7\xf5\x04\x8f\x12\x25\x3b\x76\x06\x63\x40\x38\x8e\xb5\x92\x0d\xac\xcc\x0d\xaf\x08\x01\x62\xc1\xd4\x4b\xb5\x32\xd7\x11\x29\xbc\xf9\xdb\xf4\x18\xb6\x59\x36\x7b\x36\xee\x80\x77\x0c\xbf\x92\x92\xe1\x42\x71\x7c\xc7\x1d\xb5\x8e\x87\x36\x1d\xa3\xd5\x03\x5d\x3d\x80\x7a\x2d\xd6\x10\x98\xfd\x00\xef\xf4\x77\x2b\x05\x4d\x7f\xdb\x46\x61\x49\x76\x10\x19\x6d\x6e\x73\x35\x9d\x9a\xac\x1c\x71\x94\x70\x59\x86\x3a\xe9\x3c\xe8\x53\xfb\xe9\xb2\x71\x0f\x43\x67\xb1\xbe\xd6\xd7\xf2\x47\x37\x2c\x7c\x05\xcb\xcf\xb0\x09\x65\x1d\x1c\xf6\xed\x03\x44\x21\x58\x0e\xe4\xe9\xa4\x48\xfc\x66\x31\x2a\xac\xd8\x23\x56\x84\x1c\x48\xf4\x4c\x12\x88\x52\x8a\x78\x9a\x81\x85\xd6\x0e\xd7\xb6\x44\x62\x13\xf0\x79\x80\x78\xae\x74\x63\x26\xa5\xc2\xd9\xe0\x6c\xbe\x46\x61\xb5\x36\xae\x13\x1b\xbb\xec\x71\x81\x0d\xad\x1b\x56\x48\x19\xfa\x44\x14\xb4\x02\xb8\xeb\xe1\x04\x41\xcc\xab\x46\xc0\x35\xaf\xfd\x16\x27\xca\xce\x64\x8d\x9d\x2f\x70\x2f\xbe\x4f\xf8\x64\xb9\x8e\x07\x8d\xa3\x87\xdb\x73\x67\x50\x2a\xc2\x5f\x02\xf0\xd9\x92\x43\x68\x78\x73\x3b\x3c\x1d\xdc\x0f\xcf\x8e\xd0\x83\x24\x7a\x79\xfc\x74\x21\x3d\xd6\x4b\x94\x66\xe4\x16\x48\x83\x49\x45\x70\x9b\x1e\x4b\x84\x28\x25\xb1\xae\x60\x1c\x65\x94\x8d\xe5\x84\x0d\x18\x17\xd4\xda\x59\x00\x17\xa6\x3a\x4f\x1b\x58\xb5\xea\x04\x42\x98\xcb\xf8\xfd\x04\x19\x99\xf1\xa6\xf5\xc0\xaa\x55\xe4\x53\x0e\xc8\x7a\xe9\xc9\xc0\xd1\x52\x73\x42\x05\xea\x34\x2d\x43\x54\xe3\xee\x73\x0a\x22\x94\x2f\x71\xb6\x3c\x7b\x10\x3f\x97\x88\xd6\x48\x32\x81\xeb\xf5\xa5\xcf\x81\x63\x6b\x63\xc3\x0a\xb7\x9f\x60\xe1\x8f\x30\xbc\xd5\xf3\x4d\x13\xb0\x2f\x9d\x8d\x23\x9c\x58\x65\x10\x36\x0c\x51\x22\x38\x3b\xf0\x0b\x65\xa8\x74\x25\x1e\xa0\x29\xfd\x6c\x1b\x2d\xc2\x93\xdd\xab\x81\xbf\xba\x25\x1c\x6e\x8e\xeb\x67\x6a\x0d\xb1\xe1\x06\xbe\x5f\x1a\x9e\xc5\xa5\xd2\x52\x97\x96\x5c\x05\x89\xb8\xd0\x37\x05\x74\x5b\x18\x91\x57\x89\x0c\x0a\x0b\xbd\x28\x75\xa3\xfa\xb2\xd3\x5f\x94\x90\x88\xb1\x22\x87\x8a\xae\xcc\x5f\xb5\x29\x0e\x90\x0c\x81\x55\x80\xe6\x54\xdc\x3c\x13\x32\xc3\xcc\x45\xd6\xb6\x0c\xd7\x5d\x79\x5b\xb0\x2a\x2d\xc1\x62\xc8\xee\x01\xf9\x0a\x32\x37\x4a\xe3\x90\x19\xac\xe7\xd2\x71\xd8\xe0\x85\x7d\x58\xb6\x67\xec\x63\x29\x5a\x06\x9b\x67\xf1\x3e\x0d\x36\xc1\x52\x21\x3b\xa6\x36\x4d\x32\x90\xf0\x5f\xd6\x86\x56\x52\xcd\xba\x9a\xcf\x34\x09\x95\x95\x10\x02\x86\x6d\xe9\x60\x2f\x0c\xc8\x47\x4a\xc4\xcc\x09\xc2\xa6\x92\xae\x3f\xdb\xb6\xa4\xae\xbb\x25\x42\x66\x02\x31\xd6\xf5\xa6\x8f\xd0\x80\xd5\xe0\x8e\x5c\x58\x4d\x69\xbd\xcc\x9d\x84\x93\x67\xbc\x90\x28\x13\x06\x19\xc4\x04\x5e\xbb\xc9\x43\xbc\x63\xf9\x23\xef\xc9\x56\x2e\xf2\x1d\x81\x2a\xbd\x3a\xe6\xc9\xc9\xbd\xe3\x17\xf0\xc4\x54\x82\x82\xbd\x40\x5e\x34\x57\xa8\x9a\x1d\x58\x9d\x22\xe3\x68\x8e\xd9\x8c\x8c\x9d\x8d\x6c\x13\x6d\x49\xb7\x73\x0a\xcd\x9c\xd9\x56\x9a\x2f\xa7\x1b\xa3\x30\xd9\xf2\x1d\xe6\x55\x6f\xff\xd1\x87\x40\x2a\x3c\x23\xc8\x8c\xa8\x93\x55\xb1\x14\xf0\x63\xb1\x62\x41\x4f\xb0\xad\x0e\xcb\x41\xd0\x6d\xc2\x3b\x44\xae\x5c\xe0\x09\x49\xde\xc6\xf1\x0d\x5d\x5b\xdb\x2a\x38\x5b\x4c\x30\x37\x41\xcf\x60\x8e\xad\xb0\x0c\x6b\x7c\x15\x79\x53\x68\xf7\xb2\x79\x96\x8a\x57\x6f\x31\x51\x57\xea\x61\x93\xa9\xb6\x15\x80\x08\xaf\xbd\xa0\x50\x42\x93\x7d\x24\xbc\xfe\xaa\x26\xc1\xcd\x06\x12\xd4\x6b\x68\x19\xc7\xd6\x05\x1b\x56\x4e\x65\xe3\x1c\xf1\x8e\x45\xcc\xce\xa7\x88\x71\x46\x10\x95\xc5\xcb\xaa\x9c\xcd\xe2\x11\x56\xb4\x88\x6f\x8c\x2f\xbe\xc8\x92\xaf\x9d\xf3\xd2\x96\x96\x22\xf7\xdd\xdb\x06\x5c\x7a\x2e\x23\x5a\x51\xc5\x62\x01\x08\x8d\x86\x0f\x97\x65\xba\x95\xe3\xdc\xb9\xc0\x7d\xef\x00\x38\x83\x40\x4b\xc5\x11\x88\x91\x95\xc1\x21\x03\x63\x69\x5f\xb2\x1f\x59\x94\x91\x11\xf3\x96\x0d\x20\x44\x2a\x51\x8a\x33\x70\xc9\x30\xae\x8a\xaf\x0c\x6a\x8e\xf2\x5b\x78\xe0\x04\x71\x69\x4a\x20\xb5\xac\xc0\x2a\xd3\x8e\xbb\x7e\x8b\x75\x2d\xa3\x13\x3a\x64\xd5\x19\x7d\x22\xcc\xd1\xf4\x81\x3b\x13\x7a\x50\xae\xd3\x64\x71\x88\x21\x4a\x94\xc4\xa1\xe1\x7a\x39\x47\x32\x06\x99\x7d\xb0\x47\x76\x5f\xb2\xfb\xc6\x28\x08\x83\x71\x55\x02\x27\x77\x71\xbd\x21\x95\x5a\xd8\x55\x93\xc8\x8b\x25\xfa\x03\xe3\xea\x0f\x01\x30\xad\x33\x5e\xc0\xa7\xce\x04\x75\x50\xab\xb8\x01\x87\xd6\x12\x0e\xc2\x01\x40\xd2\xca\x95\xdf\xd6\xb5\x5b\xc4\x2d\xbf\xa8\x34\x3a\xac\x27\x31\xb5\x95\x2c\xea\x1d\xae\xa8\x7a\x2d\x54\x0d\x9e\xa6\x2a\x5a\x71\xd2\x4b\x86\x4e\xb9\xca\xc3\xea\xf7\xa2\x93\x67\xb5\x96\xd0\xbd\x0d\xb5\xa5\x9d\x03\x5f\x56\x60\xd8\x36\xdb\x25\x36\x49\xd3\x6b\x93\xcb\x45\x39\xf2\xc8\x56\x31\x68\x01\x69\x3d\x1a\xb1\x8f\x5c\xd8\x2b\x58\x5a\x98\xf8\x09\x8e\x1e\x0f\x09\x8b\x11\xce\xd5\xdc\x80\xa5\x5a\xbf\xc2\xc2\x52\x83\x96\x34\x80\x6c\x3c\x12\x02\x95\x11\x16\xb1\x2b\x58\xf0\xc4\xdd\x28\x46\x2c\x68\x04\x80\xe8\xa1\x4e\x0f\x54\x1a\x6d\x53\x35\x89\xd4\xfa\x55\xdb\x5a\x34\xd5\xd0\xac\x55\xd0\x5c\x7e\xce\x4a\x35\x41\x01\x42\x1f\xe2\x53\xf8\xb4\xbe\x3a\xe7\xce\xda\xe8\xf4\x3b\x4d\xcf\x75\x2f\xc4\x81\xd5\x28\x8c\x49\xca\xce\x40\x4b\x3a\xdf\x3a\x5e\x5b\x02\x7d\x9d\xe6\x02\xa2\x2d\x9b\xda\xfc\x3a\x9a\xd3\xa4\xf0\x5d\x7c\x73\xe0\x87\xa9\x9b\x4c\xc8\x13\x49\x0c\xe4\x78\x24\x20\xb0\xda\x58\x0d\xbf\x45\xff\xc7\xd4\x95\x44\x7f\x1c\xb1\x4f\xc0\x86\x93\x64\x01\x80\x88\xbe\x65\xac\x2a\xcd\x3c\x36\x0e\x40\xd9\x4c\x0e\x54\x1e\x88\xd9\xeb\x39\x7e\x22\x23\xe6\x9a\xf9\x3f\xe8\x11\xfd\x1b\xfa\x63\x9b\x7a\xe7\xe2\xa3\x5f\xd8\xce\xf1\x31\x88\x3e\x0e\x6e\x39\xcb\x28\x2d\xbf\x71\x66\x90\x92\x11\xb2\x01\x18\xc1\xe3\x1a\x53\xf6\xc4\xa3\x5a\x10\x7e\x78\x6a\xb1\x20\x4c\x8d\x19\x8f\xc9\x98\x34\xb8\x34\x97\x30\x09\x2d\x04\x5c\xf1\x98\xac\x74\x48\x7a\x66\xfa\x33\x98\x6e\x64\x3e\xf1\xdb\x01\xf9\xd9\x3e\x19\xd7\x5b\x1f\xca\x94\xd6\x3c\x72\x0f\x1e\xba\xc9\xb8\x37\x75\xa6\xba\x28\xbf\x03\xb8\x10\xec\x00\x9a\x1d\x7a\x09\x56\x2e\x85\xb5\x7a\x1c\xab\x8e\x00\xfd\xb2\x9e\xb9\xbd\xac\x02\x58\x54\x28\x5d\x21\xe8\x8c\x6a\xf9\xbd\xbb\xc3\x16\x38\xe1\x26\xde\x0c\x83\x11\xd9\xc9\x9d\x51\x2c\x85\xc3\xc9\x38\xf4\xf4\x57\x38\x21\x27\x3c\xaf\x0a\xf0\x76\x01\xa8\x0c\x93\x6b\xad\xac\xbe\xd0\x7c\x78\x66\x12\xb8\xc8\x9c\x9a\x94\xe9\xc1\xe9\x05\xd2\xa7\x83\xa7\x06\x57\x08\x16\x2d\x57\x73\x2e\xe8\x6f\xad\x09\x26\xed\x32\x7a\xe1\x69\x2d\xf2\x71\xcc\x38\xcb\xd2\x3a\x10\xab\x11\x29\x54\x49\x2b\x69\xd2\x99\xd0\x24\x07\x08\x4d\xcd\x66\xa7\x79\x62\x70\xf7\x23\x2e\x62\x53\xf8\x5a\x96\xb2\x7f\x20\x8a\xd2\x89\xf7\x58\xf9\x06\xa9\x45\x1a\xb4\xc8\xfe\xc6\x82\xb3\x54\x00\xfd\x6b\x4e\xf2\x1d\x25\x50\xbd\x69\xc8\xe9\x3d\x9e\xc9\x22\x86\xd4\xac\x8d\xe6\xcd\xc5\xfa\xfe\x5d\xcf\x54\x06\x29\x87\xce\xb2\xe8\x11\x7c\x8c\x4a\x6e\xea\x3a\xae\x65\xd1\xb9\x35\xc8\xe5\x3b\x30\xe9\xbc\x46\x3c\x47\x5d\x46\x6a\x60\x3f\x96\xfc\x9e\x7c\x02\x5e\x95\x45\xbc\x90\x9d\xc4\x41\xc0\x57\xa4\x8f\x17\x34\x99\x6c\xc0\xe4\xea\x42\xf5\xd2\xa0\xd6\xc2\x80\xe2\xd9\x5a\x43\x2e\xac\xe2\x10\x35\xff\x2c\x28\x00\x7c\x2d\x8a\x97\x7d\x09\x53\x77\x5d\x84\x3c\x46\x4b\x29\x46\xac\x85\xb8\x0e\xb7\x84\x8b\x66\x1e\xbf\x86\x01\xc2\x36\x54\xee\xba\xee\xb7\x6f\x3b\x11\x86\x25\xed\xeb\x91\xa8\xa3\x7b\xac\x3c\x0c\xbe\x90\xc3\xdb\x18\x10\xbd\x68\xf3\x7a\x27\xc3\x93\xe3\x38\xc2\xd1\xbc\x75\x52\x13\xce\x13\x82\x59\x9b\xf4\xda\xf8\xb8\x7a\x44\x0c\x36\x25\xb0\xee\x24\x01\x80\x56\xb7\x04\xb6\xa8\x5f\x21\xbe\xb3\x18\x80\xb5\x0d\x0f\x37\x48\x1c\x6e\xa0\x8a\x30\x67\xf9\xa1\x6c\x96\x90\xea\x5a\x59\x04\xf4\x03\xdb\x49\x12\xe5\x49\x50\xd5\x2f\x23\x42\x8f\x5a\x2f\xf1\x13\x61\x5a\x67\xb0\xe3\x70\xce\x8c\x67\x97\xcf\xea\x6b\xf9\x1c\xf8\xae\x9d\x3f\x0d\x92\xc6\xe2\x11\x83\x83\xcb\xcb\x87\x55\xd3\xaa\xd4\x6a\x46\x68\x97\xda\xf8\x74\x06\x42\xc4\xda\xc7\xf3\xae\x6c\x26\x5e\xfb\x4c\x9a\xbe\xc7\x10\x63\xb0\xb5\x6b\x2d\x70\xbf\x14\x99\xf6\x66\x63\x1d\x9a\xd2\x2b\x19\x91\x21\x6a\xa3\x0c\xf2\x12\x04\x6d\xb4\xa1\xf9\xbc\xe8\x5d\x52\x54\x2f\x70\xb7\x41\xc7\xa1\x2c\x75\x55\x77\x74\x3c\x83\x75\x72\xd9\xb9\xbd\xb0\x11\xb7\x65\x97\xad\x4f\xcf\x28\xc2\x1c\x6d\x7d\x4e\x25\x30\x24\x97\x43\x4a\xf0\xcf\x46\xc3\xa6\xd2\x58\xc0\x5c\x95\x82\x34\x53\x0b\x5b\xd4\x0a\xee\xc5\x30\x25\xd3\x00\x76\x35\xb9\x87\xab\x77\x64\x5c\x72\x10\x37\x75\x06\x1d\x59\xb3\x42\x63\x93\x6e\xa1\x43\x00\x88\x4a\xc2\x7d\x5b\x34\x88\xa9\x0f\x3a\xc6\x49\xab\x2d\x6b\x07\x4c\x13\xb2\x24\x8b\x24\x7b\x8b\xdd\xa9\x44\x4e\x34\xef\xc2\x49\x52\x99\x17\x86\x6c\x56\xe5\x6b\x84\x4d\x8a\x42\xa6\xdd\x9d\xd5\x09\x9e\x90\xb5\xdc\xd3\x17\xe6\x83\xa5\x54\x04\xaf\x40\xaa\x69\x96\x25\x8b\x6e\xa8\x4d\x61\xe8\x5d\x23\xc6\xd5\xaa\x81\x85\xc8\x58\x4b\xef\xa6\x32\xba\xd4\x66\x43\x94\x24\xca\x05\x55\x8b\xb1\x35\xfa\x75\x67\x5a\x77\xf6\xcb\x53\xfb\x61\x17\x8d\xfa\x04\xb9\xfe\x9c\x91\x11\xee\x29\x41\x4d\x01\x14\x3b\x85\x2e\xdb\xad\xb5\xe4\x46\xec\x9b\x65\x0b\xeb\xc0\x77\xba\x0d\x55\x77\xb1\xe9\xf0\x6c\x61\x85\x31\x9f\x3a\x58\x9b\xee\x0b\x5b\xad\x38\xb1\x86\xb5\xd4\xa1\xe7\x66\x82\x72\x61\x0b\x3b\x74\x09\x6a\x4b\xf1\xe7\x71\x86\x05\x4e\x12\x92\x50\x99\x6e\x6e\xdb\xfd\xd3\x77\x4b\x47\x7b\x6a\x0a\x90\x48\x5b\xce\xe7\x33\x4d\xf3\x14\xb1\x3c\x9d\x58\x29\x17\xcb\xc7\x10\xbb\xd0\x65\x5a\x1b\x08\x1e\x37\xc0\x52\xbe\xb7\x08\xd0\x28\x47\x2c\xc0\x25\xb6\xa6\x0a\x1c\xcd\x29\x79\x02\xd4\x44\xc1\x88\x94\x47\xe8\x8a\x2b\x72\x82\x2e\x71\x76\x0f\x82\x9a\xa9\x08\x38\x33\xd6\x71\x2c\x91\x96\x5a\x73\x46\xd5\xc1\x88\x59\x30\x63\xb7\x2a\xc7\x11\x67\x06\xd0\x32\x82\x85\xf5\x4d\x80\xb9\xd7\x21\x3b\x2a\x97\x97\x46\x65\xcb\x62\x0b\xfc\x3c\x0e\xa2\x57\xc7\x26\x3b\x60\x0d\x3a\xbe\xc5\xcf\x26\x5e\x1b\x2a\xe0\x9b\xaf\x97\x48\xee\x36\x20\xca\x16\x80\x31\x38\xae\x2e\x70\x84\x5b\x30\x01\x5f\xba\xca\x44\xa7\x7e\x4d\x8f\xc8\x11\xfa\x3e\xe1\x13\x79\x80\xa4\xc7\x3c\x76\x05\xfa\xe5\x81\x71\x50\xc1\xbf\x4d\x26\xcf\x37\x6e\xf5\x0b\xbe\x0f\x55\xdb\xa6\xf4\xb3\xc1\x30\x90\x7f\x3a\x39\x3e\x4e\x17\x87\x93\x3c\x7a\x24\x4a\xff\x05\x32\x45\xe3\x0a\x39\x00\x20\xdc\x04\x27\xb4\x6a\x75\xea\x50\x44\x9d\x28\xd2\x82\xd8\x49\x02\xb0\xd7\xfa\x4a\xf7\x75\x31\x1d\x72\x0d\x67\xcd\x45\xff\xec\x94\x45\xde\x76\xbc\x4a\x78\xb9\xaf\xa3\xad\x98\xba\x9f\x21\x4c\xef\x34\xc1\xb3\x8a\xca\xb2\x86\x92\x72\x9d\x52\x4b\x45\x7a\xee\x10\x6f\xa1\x4f\x59\x39\xca\xec\x2b\xe7\x8e\x04\xb7\xa2\x75\xb7\x1c\x8d\xd8\x40\xa2\x67\x62\xca\x79\x42\x4a\x19\x78\x27\x72\x2a\xe7\x3e\xa1\x0c\xec\xa5\xd0\xa8\x41\x33\x35\x49\xef\x56\x71\x74\x9a\x95\xf3\xdf\x58\x0d\x14\x27\x92\x1c\xe8\x86\x01\xd1\xca\x05\x12\xa2\x67\x81\xb3\x8c\x88\x11\xb3\xc8\x94\x80\xbf\xcc\xb9\x0d\x12\x69\x8b\x26\xef\x35\xca\xfd\xd2\x28\x07\x95\xd0\x72\xa8\x70\x9b\x82\xd2\x23\x8b\x42\x7e\xce\x3e\xe5\x55\xce\xd2\xd5\x0c\x60\xbc\xf0\x71\xcc\x89\x0c\x0c\xcf\xc8\xdb\x8f\x12\x3a\x25\xfa\xc6\x1c\x31\xbd\xf4\xa1\x91\xdc\x60\xfa\x3a\x88\x5f\xdd\x69\x24\xb8\x94\x36\x5a\xdc\xb4\xb3\x3c\xe7\x67\x8b\xf2\x61\x06\x98\xd8\x14\xee\xaf\x16\x12\x0b\x9e\xb9\x92\x62\xf6\x61\x73\x3d\xf7\xb6\xa6\x56\x16\x10\x2b\xd6\x62\x8d\x12\x62\xc7\xa7\x17\xe7\xbe\x6e\x4e\xa5\xeb\x7a\x0d\xb1\x10\xcc\xb9\xbd\x8a\x58\x7d\xc6\x41\x3d\xb1\x4a\x13\x4b\x2a\x8a\xad\xde\xac\x72\x8c\xea\x36\x48\x5d\x95\xad\x5f\x75\x67\x55\x68\x66\x55\x28\xf5\x8e\xb6\xa9\x85\x15\x46\x20\xe4\xbc\xb4\x57\x18\x84\x05\xfd\x96\x54\x38\xcd\xc2\x34\x41\x07\x55\x68\xa7\x69\x8e\x5a\x1b\xe3\x7e\x55\x08\xe5\x08\x9b\x08\x8c\xea\xe0\x6a\x5b\xb1\x9e\x97\xe6\xde\x22\x33\xef\x22\xf4\xf6\xf5\xf2\x6e\x93\x45\x11\x69\x26\xad\xbc\xe1\xaa\xfe\xb6\xd8\xaa\x27\xc4\xa3\x50\xb7\x6e\xe8\xb6\x89\x75\x1e\xad\x46\x10\x2c\x6d\x08\x01\xe4\x9f\x55\x72\x53\xd6\x30\x69\xfa\x31\x9b\x0c\xd6\x43\x8f\xfb\x1e\x5c\x35\xb6\x94\x51\xe4\x0e\x22\x15\x82\x3c\x11\x01\xb4\x63\xe3\x54\x58\xf9\xa8\xe2\x44\x10\x1c\x2f\x82\x15\xf1\x4e\x72\xd3\x33\x98\x74\x24\x4d\xb5\xd2\x09\xe2\x34\xe3\x87\x3c\x73\x72\x76\xe9\x2d\x00\xed\xa7\x53\x7d\x63\x05\x2e\x76\xfd\x05\x3b\x24\x9f\xa9\x54\x5a\x2f\x69\x88\x2f\x74\x8d\xc0\x2d\x0d\xa5\x7c\xe6\xc4\xde\x70\xa3\x0f\x83\xef\xaf\x6f\xef\x87\x67\xa3\x0f\x45\x44\xb9\x4b\x99\xf2\x20\x34\x0e\x53\x9c\xb3\x11\xf3\x41\xa0\x1e\x73\x15\xf6\x12\xe1\x38\x2e\x10\xaf\xad\xe2\x63\xe4\x8c\xa5\x1c\x39\x38\x15\x2b\xc3\x3f\x97\x34\xf3\x00\x79\x33\xfb\x7a\xb2\x96\xb8\x7b\x4a\x27\xc7\x64\xff\x2c\x49\xd3\xd8\xd1\x65\x13\xc2\x45\x2a\xa3\x1f\x12\xe5\xf0\xcc\x18\x79\x76\xf2\x3d\xdc\xce\xc7\xd8\x5c\xc2\xeb\x71\x3b\xb7\x21\x1b\x6c\xea\x47\xfa\x99\xc4\xb7\x2d\x52\xd5\x4e\xb2\x30\x3a\x45\xaf\x35\xee\x42\xce\xe8\x3a\x5a\xaa\x9f\xca\x83\xfe\xae\x3b\x5b\xba\x2e\x50\xa0\x0a\x44\x47\x80\x73\x54\x08\xa3\x88\x08\x85\x29\x43\x53\x38\xd8\x2c\x5a\x20\xc0\xe2\x20\xe0\x77\xfd\x0e\xa5\x94\x41\xb6\xfb\xb2\xa5\x7d\x28\xcf\x63\x9d\x52\xfe\xe7\x57\x0f\xf7\x25\x51\xf5\x87\xeb\x87\x72\x1d\xe9\xc1\x2f\x4b\x65\xd5\x4a\x0b\xcb\x02\x5c\x82\x29\x16\x99\x73\x16\xd8\xd2\xaf\x4c\xe3\x44\x93\x85\x22\x0f\xb7\x17\x5b\xc9\x77\xcd\x0e\x9e\x56\x58\xe2\x50\xba\x6a\xce\xe2\xef\xf2\x69\x4c\xa2\x55\xc0\x89\xdd\xe9\xc8\x44\xee\xe8\x75\xb0\x16\x30\x0b\xaa\x84\x25\xca\xb0\xb0\xbe\x93\xd8\x04\xed\x94\x8b\x11\x19\xcd\x6b\x19\xea\xc1\x27\xa2\x7e\xd2\x57\x1f\x67\xbb\x88\xdc\xb7\xa2\x2c\xf8\xf4\xc8\xf8\xc9\x34\xbc\xc6\x49\xb3\x43\x59\x92\x9e\xe1\x84\x65\xe8\x01\xd9\x1e\x42\xac\x80\x23\x53\x94\x7a\xa0\x9b\x83\x15\x71\x31\x70\x5a\x25\xe5\x4c\x53\xa4\x41\x70\x74\xb0\x8f\x41\x73\x7c\x6a\x3e\xee\x08\x82\x15\x44\x62\xeb\xb6\x8a\xa5\x44\x83\x9b\xf3\x86\xb5\xbe\xa8\xba\x3d\xbe\xac\x0a\x1a\x89\xf7\xc0\xec\xba\x78\x46\x90\x52\xb7\x17\x75\x33\xec\x4c\xb7\x2b\x99\x61\x1c\xd5\x37\x65\xef\xf7\x3e\x00\x84\x36\xa9\x0c\xa5\x54\xd9\x15\x58\xa0\xeb\x65\x8f\x15\xcb\xb0\x26\x50\x4f\x38\x20\x9b\xba\x10\x82\xd3\xd4\xe3\x62\x0f\x42\xb0\x1a\x6e\x6a\x74\x5a\x7f\xf8\xce\x00\x7c\x8a\xd9\x74\x41\xf0\xf9\xc9\x50\xb4\x07\x78\x00\xc8\x0a\x57\x03\xce\xc5\xb3\xda\x7c\xeb\x70\xba\x21\xb5\xad\x07\xfa\x53\x8c\xcf\x99\x6c\x2d\xfc\x2d\xce\xb0\xb5\x3b\x80\x12\xe5\xc0\xd9\x9b\x6a\x79\x1d\x8d\x58\x10\x64\x21\x8d\xda\xa3\xcf\x88\xab\x87\x00\x45\x36\x19\x60\xe9\x42\x62\x89\x17\x7e\x4a\x3b\x50\x4d\xeb\x56\xf3\x72\x45\x83\x5a\x3f\xf6\x74\xca\x39\x76\xc9\x73\xce\x82\x62\x63\xd7\x42\xfb\x12\xb4\x17\x60\x98\xdb\x8e\xc1\x84\x0a\x46\x0b\x1c\x54\xc8\x0a\x12\xae\x63\x4e\x24\xfb\x4a\xf9\xf4\x44\x9a\xd8\x2a\x0c\xb8\x6a\xd2\xd6\x52\x1d\xa6\xb6\xe5\xe5\x07\x7c\x07\x88\x42\xeb\x2a\x0e\xc1\xb1\x5a\x69\xa6\x72\x7e\x49\xa0\x84\x30\x7e\x06\x3a\x6d\x83\xff\xf9\x9c\x91\x68\x13\xd8\x93\x1b\x2c\x70\x4a\x14\x11\xcb\x42\x68\xca\xf5\x6b\x41\xc4\x71\x3b\x68\xfb\x35\xbb\x68\xc0\xfd\xab\x55\x20\xbc\x76\x7b\xb1\x0a\xc6\xc4\xcf\x62\x2d\xc4\x26\x3d\x8d\x9f\x6c\x35\x83\x35\x67\x61\xfb\x29\xa6\x61\x23\x84\x02\xd4\x9a\x6d\xe7\xf4\x3a\xf0\x1d\xf7\x35\x20\x8c\x52\x88\xcb\x9e\xe0\x76\xac\x1e\x65\x1b\x60\xc7\x2a\x5e\xba\x13\xde\xed\xa2\xf2\x5d\xda\x67\xe5\x50\x95\xe2\xfd\x81\x4a\x40\xa5\x32\xd8\x15\xcd\xa0\x1b\x20\xb4\x34\x45\xf5\x05\xae\x2a\x0b\xc9\x56\x18\x74\xad\x64\x55\xad\x67\x53\x59\xae\x15\x3c\x6e\x57\x80\x04\xbd\x44\xb3\x6b\x89\x66\x15\x29\x97\x22\x42\x35\x75\x12\x51\xc1\x46\xb1\x75\x66\x6d\x52\x7b\x79\x82\x90\x2f\x63\xaf\x48\x5b\xac\x12\xae\x7e\xca\xfc\xbf\xca\x1c\xdc\x11\x75\x48\xaa\x4d\x89\x80\x47\x81\x0b\x0a\x3c\x50\x49\x28\x0d\xd8\x58\x10\x18\xad\x09\xdd\x33\x56\xfe\xf3\x2b\xe3\xc0\x82\x84\xdc\x05\xcf\xd1\x33\x95\x73\xa4\xf8\x88\x41\x6c\x9b\xf7\x06\x28\x8e\xcc\x8b\x07\xf0\x16\xa4\xee\xcb\x7c\x92\x52\x85\x70\x30\xc3\x92\x49\xf2\xc0\x9e\x67\xfd\x01\xcc\xb8\x31\x37\xbc\x09\x56\x66\xc5\xa1\xd9\xc0\xbe\x56\x34\xb2\x6d\xfa\x77\x10\x87\xfb\xb2\x09\xe0\x81\xc6\x13\x6a\x98\x8d\x67\xae\xcf\x00\x47\xcd\xd6\x06\x0b\x74\x09\x68\xa4\x54\xaa\xca\xdd\x62\x0d\x3d\x2b\xb2\xbf\x8b\x8d\xe8\x94\xfe\x5d\xbc\xbe\x8b\xfc\xef\xb6\xca\x48\xcb\xf2\x01\xdd\x27\x2d\xf6\x6f\x97\x67\xaa\xb8\x0b\xf6\x0e\x25\xa5\x9b\x56\x49\x69\xdf\x90\xb8\x8a\x20\xf6\xcd\x43\xa2\xd7\x51\x07\x8b\x9c\xa2\x90\x8a\x82\x14\xc1\x32\x8e\x09\xa9\x72\x7e\xc6\x15\xe4\x81\x44\x50\x35\xba\x96\x9b\x38\x62\xcd\x12\xc8\x72\x9e\xb8\x6d\x5a\xc1\x4e\x11\xbb\x82\xf3\xe7\x66\x61\x2d\x5a\x3f\xfb\xc0\x2c\xa3\x2c\xdb\xfa\xcf\x55\x11\xb3\x70\xf1\xb5\x28\x20\x20\x78\x6c\x92\x24\xdb\x70\x2a\x3b\x06\xfd\xaf\x3c\x17\xf6\xd2\xdd\xa1\x6a\x57\xe3\xce\x9d\x73\x24\xbc\x8c\x6c\xb9\xb1\x0b\xf2\x75\x6a\x7c\xc5\x53\xbb\x49\x5d\x4b\x00\xc2\xdc\x19\x7c\x67\x35\xa3\x5e\x37\x7e\x00\xde\x5d\x3b\x74\x6c\x22\x5d\x3c\xa8\x74\x65\x4b\x4a\x13\xb6\xf5\xc2\x5f\x60\xd2\xeb\xd6\x22\x0d\xbc\x8d\xc2\x46\xa8\xd2\xd0\x6e\x00\x45\x48\x6d\x60\x5f\x85\x0f\x7b\xd1\x2e\x67\x31\x11\x8c\x60\x35\x7f\xbd\xbc\x80\xd3\x6d\x8d\xd3\xaf\x96\x23\x70\xba\x93\x42\xd4\x95\xb8\xfb\x35\x43\xee\xd7\x88\x5f\x2f\xca\x92\xd6\x14\xc7\x06\xa3\x61\x00\x9b\xb2\x0e\x95\x6e\x95\x3a\xd0\xac\xcc\xbd\x4c\x12\x45\x83\xd5\xa7\x96\x3e\xa1\x0f\x7b\x58\xcc\x75\xc5\x92\x7c\x11\xd9\x0a\x2f\x1f\x40\xbf\xac\x6c\x6c\x1e\xc4\xd4\x43\xed\x5e\x85\x29\xb3\xdc\x6b\x59\x18\xbd\x96\x28\x53\xdc\x14\x39\xbf\xf7\x39\x19\x5f\x7c\x4a\x46\x1f\xa0\xdf\x07\xe8\xf7\x01\xfa\x6b\x05\xe8\x2f\x33\x33\x7a\xcf\x17\x94\xd1\x2b\x15\x3f\x31\xeb\xb8\x42\x5b\xdb\x3c\x70\xde\x59\xea\xc2\xa8\x23\xfb\x8b\xfd\xa1\x31\xf0\xa8\xf6\x59\x75\xb6\xa1\xd5\x90\x2d\xaa\xc6\x77\x2c\xe2\xc4\x22\x94\xd9\xb0\xe0\xb2\x95\x67\x99\x41\x72\xc4\x7e\xe0\xcf\xe4\x89\x88\x03\x84\x15\x4a\xb9\x56\xd2\x83\x28\x14\x20\xb8\x12\xd8\xb5\x89\x36\xc0\xe8\x0a\xa7\x24\x36\xa5\xcc\x82\xe0\x41\x6b\x16\xb5\x0e\xcd\x26\x20\x4e\xc0\x94\x34\xdb\xe0\xa2\x13\x46\xcc\x04\xf4\x99\x20\x32\xb8\x93\xa9\x9b\x18\xd0\xf5\x1f\xbc\xbb\xf5\x0f\x47\xe8\x5e\xdf\x03\x54\x96\xc7\x1b\xe0\x72\xb5\x8d\x6d\xc4\x66\x82\xe7\x99\xb7\x54\xf1\x89\xa9\x69\x69\x62\x8c\xea\xee\x56\x18\x8c\xf3\xb5\x46\x38\xd6\x1a\xef\x72\xc2\x79\x93\x58\xcf\x8d\xc0\x6d\x42\x02\xd2\x5c\xc2\x07\xb0\xd9\x80\x72\xe3\x25\x0d\x20\x3d\x96\x41\x74\xbf\x90\x0b\xf7\x8c\x48\xb0\xbd\x78\xdb\x76\x29\xc3\xb8\x9c\xc5\xde\x38\xce\x65\x96\x47\xef\x1d\x70\x16\xf4\xe6\x04\xf9\xa2\x73\x1b\x59\x65\xd2\x17\x2d\x3f\x7e\x31\x9b\x64\xe7\x18\xd5\x36\x7e\x71\x93\x8b\x8c\x83\xc4\x93\x2c\x5c\x42\xbf\xc5\x00\xcb\x78\x96\x9b\xe8\x31\x1a\x06\x13\x35\x52\x36\x95\xea\x12\xab\x68\xae\xf9\x7b\x81\x85\xb5\xa3\xa8\xba\x82\x2b\xbf\xac\x9d\xb2\x61\x06\xa7\x61\xef\x2d\x86\xfb\x0e\x76\x6b\x73\xbf\xba\x20\x76\x77\x63\xa7\xba\xbf\x52\xb9\xfe\xc0\xfa\xe8\x3e\xb1\x4f\xf4\x44\x57\x51\xd1\xaa\xf1\x77\xa3\xad\x72\x2d\xa6\x9d\xc7\xeb\x6d\x01\x2e\x72\x66\xa1\x9c\x8a\x17\x6d\xe9\xc5\x16\x27\xfb\x86\xb5\xd4\xad\xf7\x04\x8a\xf3\x17\x76\xcd\x14\x67\x5a\x58\x57\x5c\xdf\x92\x62\x66\xe4\x45\x13\x8d\x8a\x30\xca\x05\x75\x67\xbf\x92\x2d\xdc\x4e\x1d\x60\x07\x3c\x0e\x6b\xed\x44\x38\x28\x43\x66\xdc\xea\x38\x52\x39\xf6\xe1\x7f\x40\x13\xae\xba\xb1\xc9\x8c\x76\xee\x6b\xe1\xc4\xa8\x86\x3d\x5d\x49\xd8\x5b\xec\x32\x6e\x42\xbe\xeb\x74\xd2\x28\x9b\x05\xb0\x79\xcd\xb6\xd8\x2e\xa8\xf8\x8d\x5f\x76\x43\xf6\x6f\xfc\xd4\xc9\x3e\x9b\x7c\xbb\x04\xd6\x67\xe3\x08\xe8\x52\x34\xb9\x0d\x37\xb5\xd2\x53\x08\x68\x68\xed\x64\x80\x4b\x4a\xc1\x1d\x8e\xad\x34\xf5\x9f\xfe\x2f\x53\x45\xc9\x2c\xcd\x7f\x22\x2e\x46\xcc\xfc\x7e\xe0\x2b\x18\xe8\x17\x0a\x68\x50\x9c\x92\x02\x3c\x51\x94\x61\xd6\x00\x6c\xc2\xc2\x64\x19\x18\x58\x0f\xe0\xae\xc7\xf0\x98\x4f\x88\x60\x44\x0f\xcd\xa5\xa5\x7b\x66\x96\x62\x86\x67\x00\x3a\x7b\x00\xf1\x67\x20\xae\x16\x22\xbf\x21\x69\x53\x09\x0f\xb8\x95\x66\x96\x36\xab\xb5\x28\xe8\x09\x7d\x1a\x51\xd6\x62\x5e\x16\x41\x0c\xcd\xd4\x7f\x6b\xfb\xdf\x4c\x62\xbf\x1f\xdc\xfd\x38\xbe\x1d\xde\x5d\x3f\xdc\x9e\x96\xc4\xf6\xd3\x8b\x87\xbb\xfb\xe1\x6d\xe3\xb3\x22\x23\xf4\xaf\x0f\xc3\x87\x96\x47\xae\x81\x8b\xc1\xf7\xc3\x52\x75\xdc\xbf\x3e\x0c\x2e\xce\xef\x7f\x19\x5f\x7f\x1c\xdf\x0d\x6f\x7f\x3a\x3f\x1d\x8e\xef\x6e\x86\xa7\xe7\x1f\xcf\x4f\x07\xfa\xcb\xf0\xdd\x9b\x8b\x87\x4f\xe7\x57\x63\x17\xdc\x1b\x3e\xfa\xf9\xfa\xf6\xc7\x8f\x17\xd7\x3f\x8f\x83\x2e\xaf\xaf\x3e\x9e\x7f\x6a\x9a\xc5\xe0\xee\xee\xfc\xd3\xd5\xe5\xf0\x6a\x79\x15\xde\xe6\xd5\x68\x2d\xf0\x19\x5c\x64\x81\x71\x26\x10\x93\x26\x0b\x4b\xda\xf4\x37\x70\x11\xdc\x18\x7a\x3c\x3c\x70\x7f\x99\x9a\xb9\x87\x9a\x05\x3a\xef\x53\xc1\x3d\x46\xcc\xbb\x07\xfd\xa5\x0a\x35\xd3\x6d\x82\x6f\x69\xb4\x27\x68\x00\x67\x05\x14\x86\x52\xa7\x90\x3f\xe0\x47\xea\x1c\xca\x40\x87\x09\x4d\x29\xf8\x96\xd1\x21\xaa\x6e\x78\xb9\x41\x3b\x27\x18\x82\xf5\x8e\xc5\xcb\x4e\x83\xac\xe6\x0e\x03\xa5\x9c\x20\xc7\xa1\x89\x51\xdb\x0d\x2a\xe9\x82\xe1\x94\x46\xd5\x44\x07\x00\xe6\x44\x05\x08\x45\xb5\xc5\x12\x81\x95\x5b\x9e\x13\xf4\xe3\x5f\x8a\x41\x81\xa7\xc0\x1a\x08\xf2\x5a\xad\x35\xfb\x40\xe4\x66\x55\x57\x91\x67\xa9\x27\x77\xcc\xad\x09\x17\xce\xad\x2d\xc9\x0b\x6e\x9d\x9c\x05\x40\x54\x25\x1f\x8f\x3e\xde\x66\x46\x15\x1a\x3f\x41\x77\x00\x82\x21\x0b\xd5\x5d\xef\x62\x96\xe4\x33\xca\x10\x4d\xb3\x84\x14\xc5\x9c\x27\x64\x8e\x9f\x28\x77\x85\x0d\x4c\xfd\x07\x58\x47\x2b\x5a\xa1\x43\xd4\x7a\x50\x4e\xd0\x20\x8e\x65\x99\xc1\x95\x28\xc7\xb1\xcc\xc3\xf2\xb0\x43\xec\x28\x16\x7b\xb6\x59\xa1\xa3\xe2\xc8\xc1\x8a\xed\x1e\xe6\xa3\xce\x0e\xcb\x77\xef\x16\xd7\xbf\x5e\xc1\xb1\x23\xe5\xf1\x46\xc2\xc0\x3d\x96\x8f\x8e\x35\xaf\x12\x08\x1c\xe0\xca\x76\x3d\x5a\xe4\x95\xae\x9d\xfa\x95\x1d\xc3\x41\xdb\xac\xcf\x56\xbc\xe0\x15\x5d\xba\x19\x27\x95\xa2\x4e\x9d\xfb\x2b\x15\x85\x6a\xec\x6c\xa7\x5e\x95\x66\x69\x0c\x8e\xe4\xd8\xd3\xff\x1a\xf3\xb8\x81\x4f\xaf\xfd\x97\x4b\x45\xb6\x71\xb0\x6e\xeb\xfa\x5a\x6a\xa9\xb0\xd6\xdf\xb2\x94\x0e\x77\x04\xfc\xd3\x5d\x18\x04\x48\x7e\x1a\x81\x5b\x0d\x53\x66\x0b\xb5\x10\xef\xf7\x71\xa5\x89\xf5\x39\xf6\xc5\xc3\xf0\x84\x3f\x95\x94\xcb\x94\x48\x89\x5b\x60\x41\x02\x93\xd8\x36\x8c\xc1\x9f\x50\xfb\x61\x47\x7a\x72\x67\xf2\x5e\x7f\xb5\xcc\xe8\x73\x1b\x6a\xc6\x6e\xa2\x5a\x60\x8d\x5d\x3c\x2b\xba\x36\x59\x6d\x9a\xbf\x1c\x14\x21\x2b\x5c\x04\x91\x3c\x6d\x6e\x96\x8e\x66\xb5\xea\x82\x35\xd6\xdf\x09\x5d\x65\xeb\x47\xba\x04\xad\x6f\x8c\x95\x6c\xfd\x17\xb8\xbc\x3e\x6b\x50\x5d\xc9\xaf\x18\xd6\x26\x36\x65\xf8\xc1\xe6\x16\xda\x52\x0f\x10\x36\xc9\x84\x85\x34\x25\xf3\x68\x6e\xbc\x39\xfa\xca\x38\x18\xb1\xe7\x60\x43\x4a\xe1\xb6\x83\xb0\x25\xc0\x99\xfc\xac\x8f\x1b\x7d\x2a\x05\x31\x83\xc8\x48\x21\xa2\x36\x20\x04\xe3\x78\x2b\x0a\x0b\xad\x20\xf0\x60\xbf\xb6\x20\xf5\x0d\xaa\xc8\x55\xd6\xb7\xad\x96\x9c\x9f\x5b\x50\xc2\x6d\x0b\x4d\xb9\xeb\x10\x82\x2a\x72\x4d\x23\xd8\x41\x11\xb9\x57\x05\x7e\xf6\x49\x91\x26\x87\x36\x9d\x58\x24\x08\x3d\x5d\xb7\xda\xff\xe6\x66\xf4\x6f\xc6\xef\x90\xb7\x40\x87\x04\xad\x79\xec\x67\x74\xa8\x65\x56\x97\xd2\x6e\x03\x1e\x24\x3a\x34\x78\x72\x5f\x41\x3c\xe3\xe0\xe6\xfc\xab\x03\xf4\x55\x98\xd3\xf5\xd5\x46\x07\xd0\x8e\xdb\x16\x92\x03\x6d\xaa\x14\xd8\x5f\x3e\x76\xb0\x57\x95\x93\x68\xf7\xcc\x1e\x44\xd4\x76\x0e\xf5\x97\xa5\x6f\xc0\x09\x0c\x85\xd1\x8c\x9f\xd4\x87\x15\x5b\x17\x90\x91\x71\xa9\x6c\x58\xbb\x78\xc4\x26\x8b\xaa\x93\xe7\xc0\x7b\x79\x3a\x9f\xd2\xad\x8b\x7d\xe9\xf6\xea\x49\xc0\x3b\x0e\x77\x5d\x7e\x1f\xac\x48\x2b\x1e\x98\xc8\x66\x3e\x0d\xb8\x58\x5b\x34\x40\x1f\x27\xde\x34\xab\x92\xbd\xcc\x2d\x66\xe3\xa6\xac\x92\x7f\xde\x1b\xb9\x75\x08\xae\x1e\x34\xad\x88\x8d\xab\x6f\x11\xae\x7b\x2a\x7b\x59\x2a\xdb\x45\x5e\x41\x79\x70\xeb\x5f\xa0\xa7\x46\x8e\x0b\x9a\x71\x06\x57\xad\x4c\x78\x06\x5f\xaa\x08\xb7\xba\x94\xea\x9a\x3e\xdf\x60\x4d\x56\x3b\x7d\xef\x4c\xe0\x80\x71\xbb\xd6\xc7\x5a\x1d\xea\x40\xd9\xf2\x34\x9c\x9a\x1c\x42\x45\x53\x72\x80\x38\x4b\x16\x41\xb0\x83\x3d\xaf\x40\x6e\x26\x16\x68\x4e\xa8\x70\x9d\x58\x24\xbf\xb5\x92\xce\xd7\x94\xc6\xdb\x68\x64\x8b\x48\x93\xab\xc1\xe5\xf0\x6c\x3c\xbc\xba\x3f\xbf\xff\xa5\x01\xa5\xb1\xfc\xd8\x01\x35\x06\x2f\xdc\xfd\x72\x77\x3f\xbc\x1c\x7f\x1a\x5e\x0d\x6f\x07\xf7\x2b\x40\x1c\x97\x75\xd6\x06\x10\x98\xcb\x26\xf5\x6d\x1d\x90\x40\x67\xe6\x6d\xe8\xbd\x0e\xe5\x18\x74\x42\x49\x0b\x9c\xa3\x49\xb0\x67\x31\x11\x28\x26\x4f\x24\xe1\x59\x61\x56\x6d\x5c\xb0\x00\xe7\xb1\xa1\xfd\x65\x58\x8f\xd0\x66\x75\x8d\x4f\x90\xa9\x02\x16\x14\x42\xf5\x0d\x82\xc8\x87\x05\x61\x5f\x29\x44\x3e\x67\x09\x8d\xa8\x0a\x12\xf0\xb8\xb0\xee\x15\xe3\x3e\x84\x28\xd0\x15\xc4\xb5\xb3\x68\x94\x9d\xeb\xfc\xa1\x27\xbd\xae\xed\xfb\x13\xe5\x71\xc7\x56\x96\x96\xd9\x81\x62\xdf\xe2\x34\xae\xc1\xa2\x6d\x30\xba\x97\x30\x0f\xd4\x33\x61\x6c\x12\x5d\x0b\x64\x5a\xf3\x20\x57\xdf\x86\xcb\xe2\x64\x4a\xe7\x7a\x79\xa0\x4c\x37\x4a\x7d\xe3\x70\x97\x52\xc9\xc5\x1d\xe0\x5b\xd8\x18\xf1\x35\x03\x16\x6a\x95\x44\x98\x89\xed\xc4\x48\x90\x94\x2b\xad\x80\x99\x88\x80\x03\x2d\x54\x51\x9c\xd0\xdf\x00\x09\x4a\x90\xa3\x20\x82\xc2\xe1\x67\x15\xee\x03\x8b\xd2\x70\x34\x62\x67\xc3\x9b\xdb\xe1\xa9\x66\x48\x47\xe8\x41\x02\xc8\x53\x69\xea\x67\x96\xbc\x8d\x38\x16\x46\x32\x50\x26\x15\xc1\x6d\xc1\x60\x44\x08\x2e\xba\xf3\x07\xdf\xdf\x10\xbe\x6b\x26\x6f\x78\x56\xb2\x4d\x39\x03\xc0\x55\x6b\xbd\xdc\x20\x36\x7f\xe7\xa9\x4f\xb7\xf8\xb9\xb4\x22\x21\xc8\x05\x48\x22\xe5\x55\x7f\xc1\xd5\x06\x98\xcc\xee\xf3\x2b\xf5\x79\x03\xdf\x2e\x9b\xe7\x3d\x84\xd8\x49\x55\x60\x6e\x1a\x58\x4e\x5f\x0f\xa5\x32\xcf\x56\x51\x51\xbc\x05\x20\x46\x85\xf4\x27\x64\x86\x19\x12\x39\x63\x15\x10\xd6\xd0\xd2\x56\x0f\x9a\x59\xf7\xa8\xea\x35\xc3\x29\xcf\x19\x28\x0d\x10\xc6\xda\x30\x18\x99\x11\xa6\x56\x0c\xe6\xad\xe0\x4e\x2a\x43\xdd\x5f\xc4\x93\x86\x81\xb6\x81\x9e\x34\xf9\x93\xa0\x28\xef\x7a\xd7\xb2\x0b\xca\x2b\x39\x95\xf4\xa1\xf2\xf7\x73\xb3\x96\x8d\xe5\xe3\xd6\xdd\xdd\x63\xf9\xb8\xba\xab\x98\x44\x8f\xeb\x5e\x36\xd5\x0c\xc8\xc4\xd6\x34\xae\x19\xfb\x16\xfa\xa9\x2d\xda\x01\xa5\xac\xa3\x47\xf4\xc3\xfd\xe5\x05\x9a\x52\x2d\xf7\xea\x6b\xe5\x0a\x6b\x19\xfb\x41\x24\xce\x2e\x6c\x6d\xab\xb9\x48\xfc\xdd\x0b\x1b\xef\x44\xa9\x40\x4a\xd0\x37\x1a\x9e\x11\x67\xec\x15\x16\xd3\xae\x52\xb4\x43\x60\x16\xf3\xd4\xcc\xe3\x58\xe6\xd3\x29\xfd\x7c\xa4\xb0\xf8\xa6\x65\x3d\x4c\x54\xc5\xf8\x6f\x7c\x32\xd6\x23\xda\xf2\x22\x6e\x6a\x0e\xd9\x52\xbb\x7e\xd9\xec\xcc\xce\xcc\xbb\xff\x97\x4f\x20\xa7\x3c\x13\x1c\x70\xf6\xc0\x3b\x67\x23\x15\xec\x2b\x8e\x92\x8e\x90\x4b\x54\x2a\x41\x89\x44\x5c\x08\x62\x53\xd1\x4d\xd5\xc9\x0c\x0b\x45\xc1\x5a\xeb\xa0\x48\x4a\x18\xf4\xc5\x16\x85\xc5\xa0\xe7\xb8\xc0\x7b\x9e\x10\x02\x0e\x9e\x8c\x26\xeb\x29\xbd\xa7\x25\xdf\x64\xe5\x04\xda\xc8\x53\x8b\x4e\x09\x06\x99\x95\x22\xd6\xf0\x89\x30\xb5\x13\xfd\x04\x9a\x68\x48\x8e\xef\xe6\x65\x30\xc5\x1f\xcf\xcf\x8a\xcb\xcd\x85\xf4\x86\x51\x4d\x4a\x60\xb8\xe7\x6d\x42\x92\x75\xa9\xb7\x39\xfa\x9f\x3a\xfb\x8e\xe1\xd5\xfa\xba\xac\x08\x8d\xb7\xab\x5d\x14\x81\x2e\xc2\x5a\x1d\x80\xfe\x86\x70\x39\x92\x18\x2b\x46\x00\xd3\x60\x95\xd3\xea\x9e\x9b\x3e\x35\x6d\x55\xba\x5c\xb9\xe5\x1b\x60\xc3\x94\x9a\xf9\x44\x20\x75\x72\x17\x81\xe8\xeb\xa4\xc8\xc3\x40\x1e\x44\x02\x21\xd4\x4b\xad\x58\xa6\x00\xb5\xe6\x7c\x5e\xb2\xc3\x1d\x64\x74\x33\x18\x2d\x34\x92\x4c\x90\x48\x5f\x65\x27\xe8\x26\x21\x5a\xf2\xca\xb5\xf4\x95\x27\x89\xc3\xd1\x5a\x2e\x1d\xae\x85\xfd\xf6\xe2\xf3\x0a\x74\x8f\x25\x13\x73\x38\x72\xcb\x67\x16\xac\xc1\xee\x81\x0d\x82\xf5\x05\x13\x32\x18\x12\xcb\x5a\x24\x70\xf8\x85\x89\x9b\x05\x53\x12\x2e\x5d\x64\xf4\x37\xcd\x7e\x05\x91\x73\xde\x9a\x4c\x18\xce\xf6\x65\xe6\xe0\x96\xf2\x05\x27\xe1\xee\xc3\xb6\xb8\xea\x0e\x72\x4d\xe5\x0e\x2c\x89\x38\xcb\xa6\xe8\x6b\x2c\xf8\xe8\x0f\x8b\x6a\x6a\xef\x56\x3b\x34\xb8\x25\x0b\x53\x5b\x88\x30\x56\xb8\x2e\x0a\x65\x66\x61\x7c\xaf\xfe\xf3\xc2\x80\x5c\xa4\x04\x50\x25\x8b\x7a\x64\x48\xdf\xb5\x6d\x5b\xac\xe7\x39\xce\xc5\x5a\xd0\x0f\x05\x36\xf8\x3a\x9c\xdb\x26\xa3\x14\xc3\xd2\x8b\xd0\xcc\x2e\x6d\xc9\x06\x10\xa3\x6d\xa8\x91\x2c\xe1\xad\x59\xb2\x31\xcb\xd8\xa8\xe2\xb5\x33\xe5\x6d\xdd\x6a\x20\x25\x17\xa2\xcc\x4b\x79\xd7\x4a\x14\x58\x9a\x40\x8f\xe0\xb5\x3e\x82\x97\xad\xdf\xe1\x69\x0f\xf0\xf6\x94\x80\x04\xfb\xc2\x81\x56\x15\x1c\xac\xd1\x7b\x55\xe6\x53\x69\x77\x3a\xa5\x39\x95\xbe\xd0\xbc\xe4\x6c\x4b\x0f\x9c\x9e\xcc\x62\x0c\x89\xa3\xdb\x44\xe1\x94\xe6\x6f\xbc\x07\xd0\x26\x89\x91\x41\x09\x30\xf8\xc2\x76\xed\xbc\xe7\x24\xc3\x82\x30\x35\x62\xb7\x7a\x14\xe6\x8b\x22\x12\xc3\xc5\xe1\x38\xcc\x77\xa8\x66\x3a\x45\xd8\x7e\x05\x8b\xde\x16\x08\x27\xc7\xe6\x25\x50\x4d\x5f\x30\x99\xfd\x7b\xf3\x8e\xc1\x16\xb0\xd8\x3a\x7a\xaa\x74\x5a\xa8\xf1\x5a\x80\x8c\xe6\x14\x52\xfb\x63\x22\xed\x85\x44\x95\xc5\x6e\xf0\xe2\x77\x4e\x1c\xca\x31\x7c\xe6\xf9\x57\x13\xc3\x76\x86\x02\xe6\x0c\x74\x72\xc4\x82\x3e\x96\x80\x62\x1a\x65\x7d\x43\x55\x02\xf6\x99\xc6\xde\xf1\x05\xff\x34\x3b\xc4\x05\x9d\x51\x16\x94\x26\xb2\xd3\x4b\x71\x06\xe6\x5d\x73\x06\xf9\xd4\xdf\x69\xf7\x36\xcb\xe0\x08\x46\xfc\xdf\xff\xf5\x3f\x47\xb4\xcd\xfb\x21\xc7\x76\x05\xf6\x61\x27\xd7\xdb\x96\x70\xe7\x03\xb4\x8e\x16\x14\x88\x40\xa7\x95\xa5\xcc\x89\xe2\x57\x7b\xb9\x69\xa2\xe1\x6a\x6e\xdc\xbd\x65\x72\x07\xdf\x88\xc8\x97\xa3\xf5\x07\x2c\xae\x08\x08\x28\xbc\xbe\x41\xd0\xad\xab\xc5\x60\x82\x25\x75\xfb\x95\x0b\xa5\xc2\xa0\x02\xd0\xbc\x6d\x82\x13\xe7\x58\xbe\x5c\x04\x4a\x63\x0d\x21\x63\x34\x0e\xef\xc8\x55\xb1\x28\x66\x90\x26\xa9\x51\xef\x4a\x2e\x89\x30\x07\xda\xa3\x2b\x59\xe2\x09\x21\x01\x21\x14\x71\x85\x4b\x8d\xa4\x98\xae\x15\x36\xaf\xdf\x6f\x06\x2c\x2c\xd9\xd4\xf1\x8c\x88\x71\x9c\x97\x62\xa4\x57\xb5\x7d\xa3\x3f\x3a\xcb\xd5\x62\x75\xfb\x32\xc1\xf5\x1a\x2a\xcb\x40\x22\xf5\xfb\x2d\xcd\xae\x16\x0c\x83\x48\x96\xb2\x70\xd8\x02\xc1\x48\x2a\x10\x8c\x36\xb4\xb2\x64\x09\x80\x8b\x86\x41\x9d\xf8\x40\x61\xb0\x37\x91\x01\x8a\x86\x91\xa3\x49\x5e\x58\x4e\x3c\xf4\x7e\x7c\x34\x62\x1f\x4d\xed\x0a\x50\x66\xcc\x00\x22\xc8\x6b\x21\x9f\x33\x2e\x49\x29\xd1\xaa\x01\x4e\xdf\x26\x4a\xda\x61\x34\xcb\xa4\x95\x3a\xfd\x5b\x89\xa4\x6f\x0e\xa6\x59\xdf\xf0\xfa\x94\x9b\x29\x70\x2b\xa9\x27\xa2\x19\xd5\xb4\x33\x6e\x3c\x69\xeb\x4f\xbd\x6b\x35\x96\x22\x74\x09\x60\x95\x54\xb2\x38\x40\x7e\x7a\x15\x82\x48\xc8\x13\x01\xab\x31\x8c\x31\x2c\x9a\x50\x36\x5f\xb5\xb0\x93\x55\x07\xa8\xc8\x72\x04\xb6\x80\xe2\xea\x08\xca\xb9\x60\x4d\xb4\x58\xce\x72\xd9\x3a\x21\xab\x29\xfe\x62\x0d\x29\x74\x10\x16\x8f\x58\x10\x85\xc8\x67\x45\x6c\x79\xc9\x7b\x97\x32\x57\x8f\xb2\x47\xcd\x59\x3f\xed\x22\xd2\xee\xa9\xa2\x36\x11\x9b\x28\xed\x72\x02\x63\x77\xef\xdb\x1c\xb9\x39\x66\xb1\x4d\xfc\xb4\xb2\xb4\x96\x29\x60\x76\xc6\xb6\xe4\x43\xe2\x6d\xfa\x62\x80\xba\x6d\xda\x34\xf0\xe0\x70\x91\x39\xbd\x48\x4b\xe6\x10\x45\xc0\x85\x16\x50\x73\xa6\x68\xa2\x89\xc3\x8e\x41\x6b\xcd\x39\xf3\xb8\x77\x10\xc0\xdd\x06\xad\x46\xa5\xa4\x6c\x36\xb6\x2b\xe9\x72\x18\xbb\x5d\x0c\x65\x9a\xba\x34\x4d\x99\x1f\xbf\x77\x0d\x2d\xb7\x1d\x1b\xb2\x06\xd8\x2b\x97\x3d\x09\x82\x35\xe3\x6e\x32\x16\xaf\xcc\x25\x5d\x8e\x69\x6c\x96\x82\x9a\x2a\xc6\x30\xd1\x75\xcc\xcb\x20\xd6\xd5\xe1\x0a\x8a\x2b\x44\xda\x8c\x48\x93\xe7\x04\x01\xe9\xaa\x25\xe5\x53\xb6\xa6\x7a\x9e\x33\x2f\xa2\xd9\x1a\x4a\x3e\xa1\xbd\x92\x35\x8a\x5d\x77\x36\xea\x1e\x27\xc9\x04\x47\x8f\x5e\xd9\xf0\x2a\x37\x17\x0e\x83\x5e\x0b\xa8\x50\x64\xcb\x10\x97\x1e\x68\x04\xd2\x4d\xe8\x14\x33\x80\x35\x76\xd8\x45\xe7\x66\xd5\x2c\xe2\x96\x41\x28\x32\xa3\x37\x21\xfc\x31\xc9\x12\xbe\x48\x5b\xee\xb3\x6a\xa6\xdc\x36\x01\x29\x6d\x89\x7a\x3b\xbd\xca\x2a\x4c\x6f\xed\xcb\xac\x96\x76\xb3\x03\xf8\xa4\x35\xb8\xe4\xa7\x84\x4f\xc0\x72\x68\xb5\x6c\x97\x4a\x12\x64\x34\x54\xcf\xf3\xba\x09\x2e\xd5\x13\x49\x65\x96\xe0\xc5\xb2\x1e\x4c\x6a\xc5\xcb\xee\x9b\x49\xc5\x5f\x6d\x04\xeb\x1e\x94\xdc\xf8\xf9\x4b\x00\xe2\x5e\x38\x49\xc0\xbc\x6b\xf8\x57\xc5\x98\x64\x72\xda\x8e\x8c\x2f\x56\xf1\x11\x53\x78\xe6\x36\xd7\x0a\x97\xfc\x99\x11\x21\xe7\x34\x2b\x15\xdf\xdb\x3a\x0a\xda\x52\xb4\xfd\x8f\x89\xf9\x5d\x83\x77\xf2\xec\xd0\x00\x71\x68\xfa\x90\x19\x8e\x0a\xe3\x5f\x94\x60\x29\xe9\x74\x11\xe0\x67\xf8\x80\x52\xc8\x52\x2a\x6b\xcb\x41\xbd\xab\x26\x46\x63\xc6\xb7\x9b\x04\xf2\xed\x93\xe7\x1e\xca\xc7\x8f\xc6\x21\x50\x99\xbe\x4f\xea\x60\x29\xee\xa6\xb6\xa0\x29\xad\xc0\xa6\x26\x53\x7e\xb3\x84\xef\xa5\x18\x37\xed\x66\x84\x42\x98\xb4\xc3\xb6\x8a\x8c\xc7\xb5\x08\x31\x5f\x54\x29\x63\x10\x36\x5f\x2b\x4e\xce\xfc\xa9\x89\xd3\x63\x62\x00\x74\x40\xf1\xf1\x01\x92\x5b\x61\x49\x75\xa1\x8b\x33\x92\x90\x9d\x04\x16\x6f\x40\x24\x55\xaf\x7d\x40\x1e\x4b\x49\xa3\xc0\xac\x5f\x6d\x5c\xd8\x20\xde\xb9\x05\x91\xa6\x79\xe8\x3f\x9b\x81\xda\x90\xe7\xa6\x5d\x04\xfb\x17\xac\x72\x57\xdd\xa5\x09\xda\xce\xb4\x60\x49\xae\xe8\xa6\x44\x57\x45\xa7\x5e\x5e\xd9\x47\x52\x7b\xe3\xc8\xe0\xda\xb8\x3e\x91\x2e\x51\x0c\x2b\x0f\xc0\x46\x1c\xa8\xce\xa7\xbb\xd1\x85\xf5\x13\x2a\x8e\x66\x44\x99\x52\xf2\xbe\x5e\xfe\x7b\xa2\x89\x9d\xe5\x35\xec\x68\xf5\x9b\x0f\xf9\x7a\xa7\xf6\x8e\x28\xe9\xae\x84\x1a\x5a\xa0\xdd\x9c\x3d\xdc\x82\xfd\x38\x96\x46\x70\xfd\xe2\xe5\x96\xad\xb1\x00\xec\xc8\x6c\x46\xfc\xef\x48\xa0\x32\x73\x8c\xed\x17\x3e\xfb\xbd\x84\xfb\x84\x4b\x58\x79\x66\x8d\xde\x9e\xeb\x55\x49\xfb\x4b\x17\xbd\xd6\xa7\xf1\xea\xa8\x0a\xea\xee\xe5\xc1\xf5\xe4\x41\x87\x25\xb9\x87\x97\x7f\xdb\x31\xd8\xcf\xfb\x67\x0f\x84\xc3\xda\x95\xb8\x3b\x11\xf1\x1d\x91\xc9\x5e\x48\x8a\xb5\xad\x78\x2d\x79\xf1\xd0\x81\xf9\x14\xd0\x38\xfb\xbb\x45\xfb\x71\x92\x6f\xad\x1b\xe8\xe5\x2e\xd8\xd5\xf4\xb2\x13\xfa\x00\x5c\x4b\x0c\xe9\xbf\xb9\x2d\x94\x01\x87\x37\x08\x19\xab\xf9\x1e\x56\x04\xe3\xd9\xe1\x75\x0a\xc3\xab\x2d\xe7\x4b\x6c\xaf\xcd\xf5\xea\xbc\xb9\x2f\x49\x6a\xeb\x8e\x65\x17\x3a\xca\x0b\x7b\x71\x2c\x35\x06\x1f\xf4\x31\xb1\xdd\x6e\xd1\x06\x04\x19\xb7\x65\xbb\x3c\x64\x4d\x55\xc4\xb6\xcf\x56\x77\xa9\x6c\xe3\x4c\x90\x29\xfd\xbc\x91\x28\x7e\x03\x9f\x5a\xf5\x52\x2f\x73\xa5\x2e\x19\xb8\x67\xa0\x8e\x59\x10\xb7\x67\x57\xda\xd6\x2e\x1a\xb1\x22\x01\xd0\x66\xff\x3d\x92\x05\xe2\xa2\xf4\xd3\xa6\x58\x87\xbb\xaf\xa1\x66\xf6\x75\xae\x54\x26\x4f\x8e\x8f\x67\x54\xcd\xf3\xc9\x51\xc4\x53\x13\x6e\xce\xc5\xcc\xfc\x71\x4c\xa5\xcc\x89\x3c\xfe\xee\x8f\x7f\x2c\xb6\x78\x82\xa3\xc7\x99\x41\x8f\xa9\xfb\x9d\xca\x5b\x4e\xb0\xdc\x2e\xb2\xc7\x65\x6a\xbd\x70\xc6\x6e\xd0\x8d\xcb\x91\x2c\x4a\xf3\x07\xd1\xa3\xa6\x0a\x99\x54\xb8\xa8\xc9\x00\xe9\x77\x7a\x9a\x68\x8e\xb3\x8c\xb0\x76\xb3\x83\xc9\xa7\xdc\x82\xf5\xb8\x8c\x4c\x3b\x42\xf2\x39\x4b\x30\x2b\xa3\x0c\x40\x81\x21\x41\x22\xc2\x94\xcd\x80\x2f\xea\x12\x03\x35\x1a\xa4\x1b\xc3\xff\xd7\xcb\xb8\x83\x39\x52\x59\x54\xe8\x72\xc3\xb1\xd5\x32\x5d\x0d\x45\x1c\x2c\x5d\xb5\x42\x69\xb1\x76\xc4\xad\xda\xb2\x5c\xbc\xbb\x7a\x9d\xea\xf5\x2b\xb7\x08\xce\xc6\xe4\xb3\x66\x72\x72\x53\x5c\xaa\x07\x49\x24\x1a\xfc\x7c\x87\xe4\x82\x29\xfc\xf9\x04\x5d\x52\x06\x02\xec\x0f\x3c\x17\x12\x9d\xe1\xc5\x21\x9f\x1e\xa6\x9c\xa9\x39\xba\x84\xff\xb5\x3f\x3d\x13\xf2\x88\x7e\x21\x58\x58\xfe\x60\x2b\x9c\xf9\x62\xd9\x9a\x84\x44\xce\x24\x22\x4f\xfa\x84\xfe\xf1\x3f\x50\x6a\x5a\x3e\x41\xdf\x1e\xff\xf1\x3f\xd0\x1f\xe0\xff\xff\xff\xe8\x0f\x2d\x9a\xfe\x7a\xc8\x56\x50\x07\xf7\xb6\xec\xce\x3d\xa8\xac\xd4\x06\xa5\xc1\x4f\x05\x2f\x76\xaa\xb1\xe5\x47\x1a\x3d\xf2\xe9\x74\xac\x09\xc3\xe4\xab\x8d\xb1\xa8\xa1\x22\x6f\x08\x13\x4a\x6d\x21\x63\x41\x0d\x7a\xbe\x2b\x95\x62\x3b\x35\xc0\x06\x8e\x5d\xcb\xbc\x28\xe4\x0a\x41\x44\xa5\xe2\xb8\x54\xc2\x57\x24\xd6\x5c\x75\x9d\xd3\xe1\xac\x7b\x2e\xc7\xd9\x59\x70\x42\x20\x90\xb0\x38\xb7\x0f\xfc\x0b\xa3\x58\x4d\xa0\x8f\x5d\xc8\xc6\xe3\x50\x0b\xaf\xfd\x62\x62\x26\x61\x6a\x6f\x15\x2f\x29\x6b\x9d\xaf\x0e\x95\xbc\xe3\x62\x2b\x7d\xeb\x91\xd4\x62\xb6\x3b\x96\x05\x72\x25\x61\xc3\x32\xf1\x90\x08\xcd\x85\x87\xeb\x35\x76\x11\x5b\x3c\x70\xb5\x15\x93\x0a\x13\x5c\xd6\xed\xd0\xeb\xa9\x9f\xf9\x4f\x56\x0d\x13\x22\xcd\xdc\xdb\x45\x59\x34\x18\xad\x16\x91\x34\x4b\x6c\x18\x71\x03\xa6\xdf\xaa\x0d\xbd\xf3\x30\x0e\xd0\x38\x84\x3d\x42\xca\x07\x73\x92\xad\xcd\x93\x6f\xde\xcf\x5c\x44\xe4\x94\x6f\x17\xf6\x9a\x50\x56\x8b\x97\xef\x5e\x71\xc7\xaf\xde\x85\xad\xad\xe4\x60\x6f\x79\x5c\x28\x0b\xc6\x2d\x60\x8b\x2d\x04\x78\x9b\xe5\xd9\x00\x6e\xdb\x2e\x20\x1d\x6b\x25\x00\xb6\xe0\xda\xc6\x70\x5c\x30\x3c\x57\x41\xa2\x52\x38\x42\x60\xcd\x0b\x37\x44\xc1\x34\xa5\x80\x0e\x90\xc0\x10\x07\xa9\xe6\x98\x19\x93\xc2\x14\x47\x94\xcd\x0e\x02\x00\x44\x00\x23\x08\x39\x70\x13\x5d\xdc\x63\xf9\xb8\xdb\xd8\xbe\xad\x4b\x23\xd2\xb8\x28\xcf\x65\x21\x4b\x8c\x2f\x81\xd6\xd0\xdf\x14\x96\x8f\x6d\x98\x3d\x35\xc0\xb0\x25\xa3\xf3\x4b\xe1\x60\xc6\x96\x8d\xcf\x25\x37\x93\x50\x85\x81\x6a\x00\xae\x28\xae\x85\x0f\x74\xb9\x64\xd8\xe3\x7b\x54\x71\x33\x97\x8c\x5f\xce\xb9\x50\xe3\x0d\x11\x47\xab\x09\xda\x8c\x1c\x26\x00\x15\xc2\x9f\x88\x78\xa2\xe4\xb9\x0c\xdc\xb9\x0e\x2d\x1a\x3b\x55\x10\xc8\x06\xc8\x8e\x69\xc6\x21\x6b\x65\x8a\x52\xcc\x16\x86\x37\xe9\xf3\x8c\xe5\xa3\xf4\x25\x42\x91\x4c\x71\x92\x1c\x20\x41\x72\x69\x4a\xd4\x4a\x92\x4c\x0f\x5d\x91\x85\x18\x25\x7c\x46\x23\x9c\xa0\x49\xc2\xa3\x47\x39\x62\xfa\x6e\x66\x33\xc3\x17\x32\xc1\x23\x22\x65\x20\xcc\x14\x79\xd2\x36\x7b\x0d\xea\x83\x2a\x22\x52\xca\xa8\x54\x34\x72\x52\x4a\x01\x77\x60\xaa\x41\x47\x18\xac\xb0\x90\x0b\x08\xc3\xd5\xc2\x15\x31\xb0\x8f\x39\xb3\xe5\x78\xe0\x86\xb4\x68\x6e\x2e\x2e\xbb\xed\x00\xed\x00\x9c\xce\x51\xc8\x58\x95\x0f\xe4\x8a\x23\x75\x6a\x3f\x83\x63\xbc\x8c\x04\x6e\xcb\x27\xca\x13\xa4\x3f\x69\x25\xc0\x1c\x08\xe3\xf6\x51\xe7\x25\x61\xc1\x07\x63\xef\x19\x56\x16\x0c\xb9\x05\x21\x6b\x15\x4d\xeb\x55\x04\x29\x03\x2a\x40\x55\x1d\xd5\x94\x45\x49\x1e\xfb\x1a\x80\xfa\xd6\x7d\xd2\x44\xe2\x96\x47\xaf\xbd\xbe\x9b\x0f\x10\x96\xe8\x99\x24\x89\xfe\xaf\x09\x3a\x3f\xf4\x90\xfc\x9a\x25\x9b\xb2\x09\xd0\x89\xe3\xd2\x6d\x14\xb5\x77\xb8\x87\x37\x58\xcd\x4d\x36\x79\xca\x95\x29\xbf\x68\x70\x0f\x9d\x49\xc9\x00\xe5\x4d\x12\x3e\x81\x93\x0e\x90\x88\x2e\x1b\x35\xc8\x64\xcb\xa3\x88\x90\x98\xc4\xe8\xeb\xe0\xe0\x7a\xa4\x83\x6f\x9a\x01\xfa\x4a\x2b\xb2\x07\x70\x88\x55\x5b\x56\x2b\x28\x62\xb9\x82\xd8\x11\xba\xa9\x40\x7e\x84\x15\xb8\x71\x15\x00\xea\xa0\xb6\x85\x6f\x03\xa1\x58\x99\xc4\xcb\xed\xd0\x9a\x10\x8a\xa5\x3e\x77\x00\xa1\x58\x99\x67\x4b\xb8\x3c\x9f\xbd\x68\x9a\xaf\x9e\xd4\x05\xef\x9e\x7b\x65\xa0\xa7\xcc\xdd\x59\x22\x41\x77\x20\x17\x4d\x84\xb8\x5f\xf0\x90\x95\x3a\x7b\x6f\x0b\x0f\x59\x19\xcc\x3e\xc3\x43\x56\x86\xba\xbf\xf0\x90\x0d\x03\xed\x00\x0f\x69\xfc\xe9\x63\x4d\xd4\xdd\x98\x02\xe4\x92\x4c\xf2\xe9\x1d\x64\x57\x2f\x1d\xe3\xa9\xf1\xd5\x9b\x6b\xcc\xdd\xd1\x16\x2d\x19\x46\x6b\xd3\x0e\xdb\x22\x90\x2a\x76\xff\x75\x69\xcf\x3b\xbc\xa8\x34\x1a\xda\x7a\x96\xee\x83\xd0\xc0\x0c\xa6\xbf\x08\x67\x36\x8d\xbb\xad\x88\xc9\xfe\x24\xac\xae\x87\xbc\x09\xa8\x76\x25\x56\xdf\x09\x93\xea\xb2\x52\x07\x60\xce\x9f\x6d\x2d\x1e\x20\x3f\x43\x8c\xad\xa4\x07\x9d\x8e\xad\xb2\xd6\xb6\x62\x94\x29\x32\xab\xea\xb2\xc5\x61\xa1\x4c\xfd\xe9\xbb\x95\x1c\xc8\x80\xf6\x39\xb5\x30\x40\xe3\xf7\x7e\x05\xfb\x8c\xc4\x28\x9a\x6b\x6d\x48\x6a\xb5\x45\x4f\xc7\xdc\xa8\x12\xa5\x98\x3a\x05\x2a\x97\xc6\x8b\x43\xe5\x88\x95\x50\x2e\x8f\xd0\x47\x28\x31\x8a\xd3\x4c\xeb\x5d\x7e\x7e\x54\x53\xd0\x28\xff\xf6\xdb\x3f\x11\xf4\x2d\x4a\x09\x66\x25\xdd\x15\xd4\x25\x7d\xe5\x01\x2a\x9c\x9a\x93\x11\x6b\xdc\x0a\x34\xfc\x6c\xaa\x16\xb9\xd0\xba\x73\x36\xe5\x4e\x17\x86\xd2\x79\x38\x9a\x23\x99\x4f\x4c\xed\xd7\xc0\x76\xe1\x04\xe8\x0b\x3e\x03\x9f\x30\xdc\xc4\x6e\xd0\xcb\x4e\xdf\xcb\xba\xdb\xad\x67\xaf\xeb\x2d\x3c\x80\xfb\xe3\x50\x92\x12\x5a\x50\x83\x7f\xca\x70\xbc\xf0\xc0\x4b\x03\x35\x7a\x60\xcc\xf5\x5a\x2f\xc3\xd6\x88\xae\x65\x68\x88\x9c\x05\x87\x54\x9e\x60\x61\x8f\xfc\x88\x69\x05\x43\x90\x27\xca\x73\x99\x2c\x50\xcc\x19\x39\x00\x4a\xc8\xa3\xb9\xf1\x61\x6a\x5d\x05\xdb\x12\x08\x4f\x54\xe6\x5a\x91\x85\xb6\x5c\xc5\x05\xa9\xb0\x41\x39\x9a\x53\xe8\x47\xab\xdd\x04\xbe\x0a\x13\xd2\x50\x37\xed\x29\x04\x22\xad\xf0\xfa\x8e\x40\xa4\x25\xaa\xea\x81\x48\x9b\x19\xdf\xde\x02\x91\x56\xf6\xbc\x1b\x10\x69\xd3\x96\x6f\x00\x44\x5a\x6a\xe6\x8b\x01\x22\xad\xac\xe8\x17\x03\x44\x5a\x99\x57\x0f\x44\xfa\xe5\x01\x91\x6e\x09\xb5\xd9\xcc\x8b\x0d\x94\x91\xa2\x6c\xb1\x36\x91\x7d\x25\xd1\xf9\xb5\x26\xb0\xe8\xb1\x1c\x3f\xe6\xaf\xab\xed\xe1\x3d\x9b\x99\xd0\x7a\xf0\x9e\x8d\x2a\x7a\x3b\xab\xdb\x16\x4b\x09\x14\x82\x57\x86\xf7\x2c\x4d\xa0\x0f\x65\x5c\x3f\x94\xb1\x91\xf8\x6c\xdf\x7a\x78\x2e\xbe\xb1\x7a\x21\x77\x04\xf8\x2c\xed\x4f\xa7\xa0\x47\x10\xdd\x77\x40\x89\x2f\x2b\xcd\xdf\x97\x0e\xf9\x4a\x59\x3e\x5c\x45\x69\xa1\x86\xb5\x84\xe7\x80\xd9\x8c\xf2\x1d\xba\xda\x7b\xca\xdd\x20\x08\xb7\xb2\xbc\xde\x9f\x62\x68\xb1\x03\xa9\x76\xa6\x50\xa7\x95\xee\x26\x27\xd5\xe5\x29\xae\xe9\x5a\x76\x83\xb8\xcb\x48\xd4\x62\x5b\xa6\x29\xdd\x55\xb3\xab\x2e\x32\x0f\x3b\x05\x0a\x79\x2d\x05\x53\x5f\x4f\x66\x38\x46\xc6\xaf\x64\x9e\x02\x26\x86\xf9\x72\x46\xa5\x12\xad\x61\x44\xb5\x11\x6e\xe3\x22\xcd\xf2\xce\xb1\x27\xc1\xaa\xce\x36\xfb\x2c\x25\x29\x17\xab\x62\x98\x1a\xbf\xb4\xc5\x53\x36\xf9\x94\x64\x73\x92\x6a\x49\x66\xbc\x6e\x23\x5d\xf7\xdb\xe7\xe7\xda\x34\x31\x13\x53\x58\x22\x82\xc0\x01\xaa\xdf\x8d\x0d\xf8\x63\xe7\xed\xde\x76\x9b\x2d\x3c\xe5\x9a\x8e\x20\x07\xcf\xbb\xdc\xe0\x66\x5f\x2a\xb9\xb9\x81\xbe\x1b\x63\x39\x7c\x28\xcd\xea\x68\x8d\x25\x71\x1a\xcb\x20\x9e\x8a\xaf\x6c\x69\xe1\x35\x5c\xf8\x65\xaf\xbc\xe6\x84\x61\x5d\xd9\xf5\x03\x3b\x5a\x00\x4a\xeb\xcb\x03\x11\x39\x92\x88\xc3\x50\x33\x28\x0d\xa6\xbe\x5e\x25\x2a\x71\x1a\xe5\x16\x44\x92\x8b\xd6\x80\xce\x2e\x86\xec\x48\xe5\x38\x01\x4d\x22\xac\x87\x58\xdd\xd4\xc9\xa2\x21\xc3\xb0\x9b\xa7\x84\x32\xf5\xe7\x7f\x5f\x6b\x37\xb5\x6a\x65\xd7\x0d\x6a\x38\xe1\x28\x22\xd2\xd8\xd6\x6d\xc0\x2f\x9e\xf0\x27\x28\xdf\xb4\xcd\xae\xea\xa3\xac\xe7\xad\x19\xbc\x47\xfd\x8d\x0b\x52\x37\xe2\xc2\x5c\xf0\x7c\x36\x77\x36\x24\x7d\x66\xf4\xd4\x9a\xf6\xf2\xa7\x9a\x8d\x7c\xed\xbd\xfc\x3e\xa7\xc9\x66\x16\xba\xbb\x52\x61\xab\x4f\xe7\xf7\x48\xce\xfd\x69\x9d\x40\xb3\x8d\x1b\x5b\x1f\x74\xf7\x3e\xed\xb7\xde\x4f\x03\xdd\x1c\x38\xa4\xcb\x29\x4f\x12\xf0\x34\x48\x92\x3e\x85\xf5\xe8\xc3\xee\x61\xc2\xf7\x74\x3d\x90\x3a\x3f\x00\xf8\xba\xc8\x41\xe8\x24\x7f\xdd\x18\xd1\x50\x22\x37\xfa\x6a\xb0\x82\x09\x51\xe3\x8c\xb0\x26\x1b\xdb\xcf\xf5\x9a\x22\xef\x2c\x50\xd0\x45\x8d\xed\x2c\x58\xd0\x2d\xc9\x2b\x07\x0c\xae\x98\xc7\xbe\x06\x0d\x56\x98\x9d\x8f\xe1\x2b\xae\x19\x17\x30\x64\x14\x9f\x81\x5e\xe2\x11\x1b\x94\x52\x17\x5c\xed\xe5\xc9\xa2\x88\x7d\x36\x3a\x44\xc8\xcc\xa0\x72\x83\x35\xac\x80\x1b\x4d\xff\x05\x9a\x8e\xc1\x89\x35\xa1\x84\x2e\x5c\x10\x02\xb7\x49\x7c\x88\xa3\x45\x94\xd0\x28\xd0\x99\x67\x02\x67\xf3\x26\x8e\xe7\x76\xbe\x07\xb8\x79\x2b\x80\x9b\xb6\x12\x47\xeb\x84\x6a\x3b\xba\x62\x38\x25\x3d\xf0\x4e\x13\xf0\xce\x81\x87\x96\x60\x45\xb1\xa6\x37\x44\x2c\xa8\x9f\xbb\x1e\x7d\xe7\x0d\xd0\x77\x36\x39\x7c\x05\xb4\x4e\xe9\xd8\xf5\x88\x40\x1f\x3a\x21\x02\xf9\x4b\x70\xaf\x40\x5e\xda\xcf\xe3\x1b\x83\x87\xd4\x07\xf6\x96\x08\x40\x0d\xe2\xc2\x3a\x72\xd3\x32\x08\xa0\x65\x74\xd1\x69\x5d\xde\x16\x90\x67\xbd\x95\x59\x0b\x6b\xa7\xf1\xee\xda\x13\xe4\x9d\xf6\x6d\xd8\x93\x73\xb3\xcb\x6c\x96\xf5\xaa\x51\x86\x19\x2d\xeb\x28\x58\xeb\x25\xb7\x78\x7a\x78\x5f\x09\x2e\x45\xd9\xae\xcd\x92\x5c\x06\xce\x07\x4d\x04\x9a\xf3\x24\x76\x78\x0f\x7e\xb5\x7c\x07\x3e\x03\xc0\x2f\x90\xdb\x0c\x28\x9f\x0d\xda\x56\x51\x7b\x6b\x59\x2a\x8b\xdf\x44\x18\xee\x0e\x18\xcd\x2e\xac\x08\x9e\x93\x6c\x62\x3f\x58\x29\x8b\xc8\xb2\xf9\x7b\xc9\x18\x4b\x2b\x04\x56\xf3\xe6\x61\xae\xb4\xfb\xae\x18\xdc\x32\xd1\x23\x30\x0e\x8a\xa6\xe2\x91\x86\xce\xe0\xe9\x13\x75\x86\x08\x1c\xf6\xb8\xd4\x4b\xe7\x66\xd7\xc9\x53\x57\x25\x96\x0d\x82\xc1\x6a\x45\xd2\xb6\xc7\xe1\x49\xf1\xe7\x71\x86\x05\x4e\x12\x92\x50\x99\xbe\x58\x30\xf0\x69\xd9\x5d\xab\xcf\xaa\xe0\xc6\x44\xc4\xf2\x74\x62\x48\xd1\x0d\xc4\x96\x66\x54\x1c\x89\x9c\x85\x28\x62\xcf\xb5\xfa\xf5\x39\xdc\x0b\x60\x55\x8a\xe6\x50\x07\x74\x8a\xa9\x60\x44\xb6\x56\x5d\x24\x51\x2e\xa8\x5a\x8c\x6d\x11\xcb\xee\x07\xee\xce\x7e\x79\x6a\x3f\x5c\xee\xe1\x76\x09\xf4\xae\x3f\x5f\x34\x33\x23\x02\x2a\xf2\xb8\xda\x32\x41\xa1\x4e\x0b\x90\x40\x7c\x59\x1f\x08\x7f\xae\x5d\xdb\x6d\x81\xc3\xf8\x79\x1c\x64\x52\x8d\xa3\x2a\x71\xac\x3a\xac\x4d\x10\x4f\xcb\x26\xf9\xc2\x20\x47\x2d\x5e\xe4\x17\x28\xe8\x61\xd3\x25\x4c\xd3\x7a\xc0\x81\x2b\x18\xec\x95\xc5\xc6\x04\x79\xee\x56\xa9\x6a\x19\xa7\x85\xd5\x69\x0a\x3e\x5a\x32\xd8\x41\xf0\x55\x87\x11\x07\x9d\xec\x68\xd8\xfa\xa0\x0b\x91\x67\x8a\x4e\xea\x28\x32\x6a\x77\x05\x3e\x07\x09\xa4\x57\x3b\x37\x43\xa9\x5b\x53\xf5\xb3\xc4\x89\xed\xec\xb4\xfc\x6f\x21\xbb\x1c\x18\x8f\x01\x33\x0a\xf3\xf7\xae\x53\xaa\x94\x4b\x14\x30\x06\x68\x4d\x9d\x65\xdb\xec\x57\x2e\xdc\x03\x43\xed\x50\x63\x22\x3a\x1a\xb1\x81\x44\xcf\x04\x31\x62\xd1\x1a\x1a\xaa\x82\x7a\xab\x36\x94\x59\x9a\x10\xdd\x93\x8f\x4d\xd1\xc2\x03\x55\xd2\x57\xfa\x32\x7d\x4c\x71\x22\xc9\x81\x6e\x18\x0a\x84\x2a\x0e\xc1\x9f\x18\x3d\x0b\x9c\x65\x44\x8c\x98\xcd\xe2\x00\x87\x0b\xe7\x89\x69\xbf\x2d\xc4\xd5\xae\x01\x19\x47\x38\x9a\xbf\xd2\x1e\x61\x48\xc2\x89\xe6\x24\x76\x79\xc2\xe5\xed\x71\xf3\x36\x06\xeb\x35\x36\xeb\x7c\xea\x2a\x55\x1d\xd8\x4e\x92\x48\x73\x14\x5f\xb8\x38\x23\x42\x8f\x5a\xd3\xf0\x13\x61\x88\x4e\xdd\x38\x6c\xec\x0e\x7a\x06\xcf\x94\x26\xfd\x27\x4c\x13\x93\x78\xef\xba\x76\x42\xa0\x31\xbf\x8f\x98\x71\x77\xb3\xa8\x94\x99\x4a\x19\x95\x73\xcd\xa9\x73\xf0\x49\x82\x9a\xb1\x96\xe4\x19\xc7\xb2\x6c\x64\x34\xea\x1b\xfd\xad\x64\xde\x38\x2c\x65\xdd\x45\x01\x52\x0e\x04\x4b\xba\x62\x59\xcb\xe4\xcc\x3e\x85\xa0\x9e\x42\xd0\xbc\x36\xfb\x98\x46\xe0\x0f\xcb\xba\xa9\x04\x6d\xdb\xbf\x0b\x09\x72\x87\x29\x05\x6f\x1c\x7b\xff\x32\x61\xf7\x6f\x9b\x27\xf1\x12\x29\x12\x7d\x22\xc1\x1b\x26\x12\x74\xb6\x88\x96\x63\xa0\xdb\x8f\xed\x5a\x41\xf8\x2b\xc0\x92\x9a\x7a\xb9\x24\x4a\xd0\x48\xee\x82\x3f\xc8\x0c\x77\x8c\x1e\x03\x6d\x2b\x5b\x21\x9d\xe8\x17\xbc\xb3\x0f\xe2\xb1\x7c\xe9\xba\x89\x20\xf8\x31\xe6\xcf\x35\x9b\x98\x0c\xd1\x2a\x2e\xb5\xbe\xae\x0f\x13\x95\xa4\x14\x31\x42\x25\x62\x44\x5a\xa3\x22\x1e\xb1\x39\x25\x02\x8b\x68\x0e\x59\x84\xc5\xc6\x98\x6c\x54\x03\x18\x64\x62\x06\x42\xaf\xce\x1a\x9b\xde\x61\xdd\xab\x96\x1c\x0f\xb9\x66\xf7\x5c\x8f\x24\x35\x9f\x78\x99\xda\x4a\x19\xa1\xe9\xab\xd3\xf6\x6f\x1b\xf0\xee\x17\xfb\x45\x83\xde\x7d\xd0\x4e\xf0\x45\xc7\xc0\xf7\x82\x1a\xfa\xe0\xf7\x17\x0a\x7e\x6f\x58\xe2\xf5\x02\xe0\x37\x32\xad\xbd\x7e\x6c\xae\xeb\xf9\x35\xe2\x73\x57\x05\x47\xe5\x93\xf1\x8b\x1f\xbd\xc6\x39\x77\x3d\x81\x3f\x7b\xa2\x30\x12\xb1\xd0\x74\x36\x21\x71\x0c\x9c\x56\x71\x5b\xfc\xb8\xa0\x1d\xa7\x86\xeb\xbb\x17\x4b\x4d\xec\x38\xe1\x6c\x26\x69\x6c\xc0\x4c\x32\x0c\x45\x48\x43\x23\x01\x24\xf1\xc3\xfe\x26\x09\x11\xce\xfa\x2f\xd0\xd7\x92\x6a\xb5\x2f\xf0\x08\x08\x14\x73\x22\xd9\x57\xca\x28\xe5\x98\x2d\xd0\x23\xe3\xcf\x09\x89\x67\xb0\x43\xd5\xc1\x1c\x22\x4a\x0e\x10\x55\xfe\x33\x01\x59\xff\x3c\x57\x23\x3d\x76\x88\xe9\x32\x1a\x00\xb1\xdf\x06\x65\xbe\x7d\x33\xdf\x1c\x21\x74\xce\xd0\x14\x47\xea\x00\xc9\x7c\x52\xb4\x1f\x73\x53\xb7\x59\x6b\xb9\xc1\xc4\x8b\x46\xfa\xd8\xec\x86\xce\x9b\xcf\x86\xe3\x0e\x9a\x5c\x07\x09\xc5\x5b\xc5\xb0\x3d\xe1\x6d\x50\x33\x2f\x73\x69\x83\x1d\x10\x67\xfe\xe8\x5b\xf8\x22\x0f\x7b\x0c\xc5\x76\x0d\x84\x30\xe3\x71\xab\x4d\xb1\x32\x95\x75\xc7\x52\x04\x1c\x5a\x41\xc9\x3a\x84\xa0\x5d\xb3\xdc\x5a\x6a\x92\x4a\x10\x9c\x5a\x23\xbc\xbe\x6a\x40\xac\x31\xe1\x86\x7a\xf4\x54\x18\x09\x73\x9d\x2d\xbe\xa0\xec\x51\xef\x6e\x01\xf4\x0c\x25\xd3\xa1\xe7\xa6\x4d\xcb\xf4\x8d\x47\x4e\x39\x33\x8e\xb8\xad\xe4\x4e\x3a\x63\x38\x59\xd3\xc6\x51\x5b\xb9\xba\xef\xcc\xc9\x59\x56\x5c\xd0\x52\x84\x31\xaa\x21\xd3\xe3\x5a\x36\xa4\xca\x7c\x43\x79\x0f\xa3\x98\x64\x84\xc5\x84\x45\x0b\x20\x11\x06\xc8\x34\x82\xe1\x04\x61\xf8\x0e\x27\x47\xe8\xcc\xe4\xb1\x78\x09\xcf\x5e\xeb\x70\xa1\xa7\x98\xd1\xa9\xd6\x13\xc0\xd8\x69\x47\x39\x62\x66\x98\xce\xd7\x10\xd4\xa1\xf7\x2b\xd6\xb0\x33\xdf\x53\x86\x4b\x89\x43\x1b\x9c\xa7\x24\x5f\x2b\x36\x3c\xb0\x5a\x2e\xda\xd0\xcf\x15\x5e\x05\x48\xbe\xc6\x66\x20\x09\x15\xfc\x91\xee\x0e\xc1\x95\xe9\xb1\xf1\x31\x38\x34\xe6\x24\xc9\x82\x2a\xd8\x19\x16\xca\xe3\xa2\x18\x08\x5b\x7d\xcb\xa4\x39\x33\x18\x37\xc6\xd0\xf4\x6c\x61\x42\xad\x2f\xab\x68\xfc\x68\xc4\xce\xd5\x57\x52\x73\x3e\xce\x66\xc9\x02\xe1\xf8\x89\xca\x02\x0e\x3d\xe2\x4c\xe6\x29\x11\xb6\x0b\x2a\x4d\xac\x96\x85\x12\xc6\x8e\x34\xf5\xd8\xb4\xca\xf7\x84\x13\x1a\x3b\xc8\x7e\xfd\xe3\x84\x4c\x41\xd5\xc1\x42\x3a\x83\x68\x83\x47\xdb\x6e\x6e\xac\xd7\xea\xcd\xb8\xe5\x4f\x21\x43\x44\x69\xc1\x3b\xb1\x35\x81\x1c\x57\x39\xa7\x5d\xf5\x25\x5c\x73\x52\x9b\x14\x5a\x2e\xe0\xd8\x55\x38\x5b\x05\xc2\xe4\x80\x00\x73\x13\xc1\xa4\xfb\x71\xb2\xb4\x19\xdc\x5a\x1c\xa0\x32\x41\x3b\x6a\x63\x67\x0f\xb9\x26\xa1\x20\x5c\x48\x85\x15\x8d\xac\xd8\xce\x85\xbd\x38\xec\xc5\xd2\xbe\xb5\x67\x5b\x02\x4a\xcb\x08\x27\xf5\x1d\x5e\xa2\xc6\x9b\xf7\x97\xf3\x56\x7b\xdc\x4c\xdb\x4b\x73\x96\x22\x9e\x24\xeb\x80\x9d\x57\x66\x7e\x5a\x7c\xbe\x7c\x44\x45\x3f\x7a\x03\xdc\x5e\xc0\xa9\x31\xae\x67\x9c\x58\x09\x55\x2a\xbb\x4b\xe1\x4b\xe6\x76\x5b\x58\xd7\xf6\x88\xf1\xa9\xa9\x75\xdc\xe6\x94\xce\x04\x4f\xe9\x3a\xe0\x90\xc6\x4f\x7b\xeb\xcc\x0d\x2b\x84\x37\x67\x94\xd0\xa7\xc8\x92\x97\xed\x11\xd2\x0d\x30\x33\xf2\xea\x92\x33\x94\xe2\x6c\xa3\x05\x5f\x65\x6c\x1b\xa0\xd4\x58\x3a\xed\xea\x01\x5c\x14\x01\x64\x79\x58\xe4\x67\xbc\x28\x32\xbb\xda\x60\xff\xd8\x5a\xe4\xf0\xa0\x5f\x3f\x67\x53\xbe\xc6\xe1\x2c\x32\xb1\xec\xe9\xc3\x8e\x66\x83\xf3\xe7\x8d\x3f\x66\xf7\xcd\x9a\x76\x39\x8f\xa7\x4d\x44\xbd\xf6\xc9\x74\x2b\xf8\x92\xaa\x5f\xc8\x44\x42\xad\x6f\x9d\xbb\xb5\x7c\xb4\x82\x16\x11\x0c\x67\xf9\x52\x5d\x96\xe8\x70\xe7\x6b\x54\x69\x07\x19\x0b\x83\x8b\x05\xbb\x69\x6e\xf5\x15\xd6\xcc\x1e\x92\x4e\x8b\xb5\x65\xea\xe9\x7a\xf0\x85\xae\x47\x0f\x5a\xd8\x7c\x42\x57\x62\x33\xaf\xa3\x2b\x4e\xb5\x24\x64\xd4\x87\x22\xb0\xc4\x46\xd8\x4f\x69\x42\xe4\x11\x3a\x6f\xd0\x1b\x5d\x7c\xbb\xf7\x07\x9b\x48\x3f\x27\x3d\xe5\x82\x06\x25\xc4\x9c\x8c\x84\x28\xe0\xaa\x87\xb6\x33\x41\xf4\x98\x23\xe3\xba\xe5\x06\xab\x10\x82\xeb\x04\xd5\x3c\xcb\x08\xab\x0a\xa4\x68\xcd\x0b\xa8\x45\x17\x30\x32\xbc\xff\x80\x9b\x90\x07\x6c\xab\x24\x16\xa3\x6a\xd9\xd2\x5d\x14\x83\xe8\x9e\x3e\xe0\x7a\xbd\xd7\x5f\xd4\xf7\xa6\x71\x84\xf7\xe5\xd6\xd7\x1e\x9d\x97\xf2\xd7\xf7\x43\x7f\x84\x4f\x9d\x55\x14\xa3\xa9\x20\xe0\x37\x49\x7d\x4a\xb0\xc1\x04\xe4\x1c\xee\xbb\xbb\xb3\x1f\x8f\x1f\xce\x11\x51\x11\x4a\xe8\x23\x19\xb1\x48\x3e\x1d\x68\xf1\xf8\xef\x39\x51\xfa\xe7\x16\x43\x0b\x4d\x09\x93\xc0\x09\xa8\xaa\x41\x27\x34\x2f\xa4\x5b\x18\xfd\xdf\xb3\xf2\xf7\x4b\x48\xbe\x96\xfd\x04\xb4\xeb\x60\xfa\x81\x4c\x01\x89\xdc\x2c\xad\x6c\xa0\x18\xa3\xe2\x0d\x9b\xea\x66\x6d\x10\xed\xcc\xfe\x96\xb3\x35\x85\xae\xd3\xe2\xa3\x60\x14\x2d\x32\x5d\x9a\x61\x80\xea\x5c\x2f\x8c\xda\x7c\xd3\xd8\xfa\x2a\x26\x52\x64\x95\x39\x95\xbd\x28\x31\x86\x94\x20\x04\x58\x88\xa7\x27\x7b\xd7\xdb\x44\x62\x3f\xb1\xe0\xa3\xa3\x11\xbb\x74\x86\xfc\xe2\x57\xe9\x9a\x30\xa1\xf9\x1e\xc1\xb4\xdc\x0a\x34\x1b\x53\xe9\x7f\x00\x1c\x7a\x99\x27\xca\xd4\xbe\x99\x52\xad\xa5\xbb\x81\x9a\x27\x4d\x5c\x42\x60\x16\xcd\xaf\xb6\x2c\x81\x43\xa7\x63\x92\xac\x23\x89\x9e\x4f\x87\x89\xd4\xf4\x1d\x3d\xb6\x9c\xce\x4d\xaa\x3b\x15\x93\xb1\x35\xeb\x4c\xb9\x0a\xa3\xe3\x18\xeb\x71\x62\x6a\xcf\x10\x04\xa6\xdf\x6a\xf0\xbb\xc9\x6f\xd5\xbb\x68\x25\x75\x63\xf9\x35\x51\xa7\x3e\xa2\x0c\x7a\x41\x58\x8d\x98\xc8\x19\x60\x64\x7b\x47\x10\x46\x05\xdc\x69\xe4\xcc\x32\xd6\x48\x36\xd3\x6c\xc2\xa0\x89\x9a\x97\xb5\x7e\xc6\x73\x09\x01\xac\x29\x51\xfa\x82\xfa\x1a\x2a\xc6\x19\x4f\xec\x01\xca\x04\x4d\xa9\xa2\x4f\x44\x7e\xd3\xb0\x75\xa7\x58\xe1\x84\xcf\x06\x42\xd1\x29\x8e\xd4\x3d\xde\x4a\x03\xc7\xb6\x99\x4d\xa3\x7a\xdc\x30\xd0\xf9\x99\x5e\xfc\x19\x61\x44\xc0\x44\xb5\x4e\xde\x7c\x84\xe1\xc9\x46\x9c\x1b\xbc\xa7\x91\x29\x50\x21\xbd\xc5\x02\xe7\x8a\xa7\x5a\xbf\xc5\x49\xb2\x80\xc2\x13\xfa\xc9\x1c\xcb\xb9\xdb\x68\x13\x85\xd6\xe5\x6e\xb2\x8b\x7b\x8a\xa3\x39\xb9\x83\xfa\x89\x4d\x8b\x5b\x19\xe5\x07\xc2\xf2\xf4\xc3\x09\xfa\xef\x62\x8e\xa7\x83\xd3\x1f\x86\xe3\xb3\xf3\xbb\xc1\xf7\x17\xc3\xb3\x60\x3e\xf6\xc9\xe5\xf9\xdd\x5d\xfd\xd7\x1f\xce\xef\xeb\x3f\xde\x5c\xdf\x3c\x5c\x0c\xee\x9b\x5a\xb9\xb8\xbe\xfe\xf1\xe1\x66\xfc\x71\x70\x7e\xf1\x70\x3b\x6c\xf8\xf4\xe1\xbe\xfd\xe1\xdd\x8f\xe7\x37\x37\xc3\x33\xb7\x2a\xff\x13\x9c\x2e\x88\x4e\x83\xc8\xd1\xe6\x69\x54\x0f\xe0\x21\x2a\xbf\x78\x82\x1e\xaa\xc8\xcd\x36\xc4\xcb\xa4\xe1\x3e\x63\xa9\x79\x18\x44\xf2\x8d\x18\x72\x9f\xeb\x45\x69\xfb\xd4\x78\x41\xa3\x39\x41\x09\xe7\x8f\x79\x66\x59\x9b\x71\xbb\x33\x6e\x0c\x3f\x44\x06\xad\xfd\x70\x7e\x7f\x52\x47\x90\xf6\x8d\x05\x80\x1f\xee\x0c\xc0\xb8\xb0\x63\xa7\x60\x4b\x71\xc8\xc2\x85\xa9\x34\xe8\xc1\xef\xcc\xb2\x7e\x4c\x6b\x98\xa9\x4a\x37\x71\x6c\xcb\x03\xba\x89\x05\x0d\x97\xf7\x75\xd9\x6a\xfa\xe5\x30\x25\x33\xd0\x84\x44\x38\x37\xbe\x62\x7d\x4f\x09\xc1\x45\x38\xe0\x82\x1e\x76\xd7\xa8\xa5\xa3\xc6\x06\x2b\x7b\xa6\x27\x2e\x1f\x69\x96\x91\xf8\x43\x5d\x7e\x29\xd7\x91\xb3\xd5\x4b\xf9\x14\x05\x67\x52\xeb\xf5\xa0\xf3\x3b\xbc\xf7\xb9\xad\xcb\x41\xa5\xf1\x87\x15\x1e\x42\xc0\xa1\xd4\x77\x82\xc7\xe5\xa6\xe0\xbd\xc6\x0a\x3d\x13\xc8\x08\xcb\x6d\xc1\x0b\xa3\x7b\xeb\xb3\x0d\xdd\x19\x4f\x86\x2b\x5f\x53\xca\x14\x6b\x65\xc6\xbb\x10\xb8\xf5\xf7\x92\x34\x31\xe2\x2d\xd2\x7a\xce\x4c\xa3\xc0\x9d\x5d\x28\x01\x8c\xb8\xc5\x67\xe4\x6e\x83\x06\x0b\xf9\x12\xf9\xaa\x7e\x23\xad\xb8\x2c\x34\xdb\xee\x32\x1e\x97\xca\x5c\xc2\xe7\xec\x3e\xb0\x12\x86\xe3\xca\xb5\xba\xe7\x31\x5e\x68\xe2\x80\x10\x2e\x99\x67\x19\x17\x0a\xb5\xb4\x61\xbc\x23\x66\x7c\x70\xe7\xd8\x79\x78\x1e\x07\x8d\x68\x09\x43\x36\x40\x81\x77\xcb\xee\xb4\xeb\x5a\x30\x8e\x30\xee\x08\x14\x41\x5f\xae\x21\x2d\xa9\xd4\x25\x0a\x6d\x12\x7e\xb7\x09\xdc\xcc\xf4\x05\xdf\xb5\x7a\x50\x53\xef\xd7\xae\x85\xc6\x2d\x4f\xc8\x54\x8d\x1b\xbd\x3e\x4b\x0c\x9c\xba\x45\xd6\x96\x10\x4f\x67\xf3\x1d\xb4\xd8\x5d\x4b\xf8\xce\xfa\x4b\xb5\x6a\x10\x58\x08\x04\xe7\xca\xc8\xa7\x85\x0e\x83\xdc\x6a\x82\x79\xc1\x76\x6a\x43\xd9\xbd\x10\xa8\x65\xfe\x47\xc6\x9f\x99\xb7\xec\xcb\xa3\x11\x1b\x62\xa8\xaf\xe8\x15\x11\x17\xe1\x0e\x5a\xc0\x4a\xf9\xbf\x54\x2b\xed\x55\x83\x60\xda\x01\xea\x0a\xba\xb7\x95\x75\x93\x05\x2a\xea\xe1\x95\xbe\xeb\x72\x7a\x8c\xd5\xdb\x89\x80\x66\xc2\xb6\xe0\xab\x22\x99\xb5\xcc\x9b\x79\x16\x0e\x54\x70\xbb\xeb\xae\x8e\xd0\xcf\xce\xf2\x03\xf1\x44\x45\x29\x49\x5b\x08\x3c\xc1\x0b\x87\x69\xd5\xb4\xb0\xbb\x80\x89\xda\x75\x84\xd1\xf2\x05\xf6\x78\x14\x0d\xab\x5c\x52\xc0\x19\x33\x16\xd9\x35\xa2\x69\x4f\xfd\x47\x77\x64\x79\xb8\xfd\x47\xa8\x1e\x66\x1d\xd6\x20\x74\xb0\x64\xf1\xbf\xcc\x66\x99\x44\x1a\x57\x17\xc4\x56\x73\xb2\x1e\x54\x7d\x7e\xc0\x03\x68\xf2\x6c\xd0\x94\x26\x09\xc8\x01\x47\x68\x00\x55\x0d\x21\x0f\x45\x5f\x85\x2e\x6a\x8d\xce\x18\x5f\x15\xba\xdf\x42\x4c\x51\x40\x4c\x77\xed\xc4\x24\x81\x9a\x8a\x34\xc4\xdd\x50\xd4\x0e\x52\xd2\x35\x6f\xc1\x75\x40\xcf\xee\x89\xe8\x6b\x28\xef\x6f\x11\x74\x56\x1b\x6e\xf0\xe1\x3f\x9b\x87\xfe\x29\xc7\x02\x33\x05\xa1\x54\x56\x74\x17\x24\x88\xe8\x26\x9f\x21\x58\x91\x19\x43\x30\xfc\x14\x6e\xae\x73\xf9\xcf\x28\xe4\x1d\xc5\x07\x88\x1e\x91\xa3\x03\x5b\xeb\x5d\xe6\x93\xe2\xcd\xb9\x96\x1c\x46\xac\x16\x22\x72\x84\x06\x89\xe4\xf6\x0b\xc2\xa2\x04\xaa\x88\x06\x51\x5f\x9e\xf2\xad\x5b\x69\xb2\x00\x05\x05\xb6\xb2\x68\x9e\xdb\x07\xc1\x87\x50\x23\x05\x7c\xe2\x09\x9c\xf4\xe2\xf7\xa6\xd2\xcb\xa5\x38\x89\x17\x44\xa3\xae\x5d\x43\x2f\xb6\x49\xa6\xd2\xd1\xb2\x0d\x82\x37\x60\x63\x8a\xd0\x9d\x20\x81\x1c\x7d\x8d\x15\x4a\x08\x96\x0a\xfd\xf1\x9b\xb5\x62\x43\xdc\x04\x0b\xee\x6a\x8f\x6f\x11\x7f\xef\x22\x38\xdb\xea\xc7\x43\x25\x3a\x84\x11\x23\xcf\x61\xc0\x0e\x87\x18\x2b\x57\xcf\x86\x04\x29\x43\xa6\xb4\xa6\x49\x2c\x84\x20\x58\xa3\x32\xb5\xf0\x11\x87\xd6\x68\xdd\xa7\x76\x58\x0d\x94\x65\x95\x27\x6a\xd4\x33\x40\x14\x29\x62\x29\xe7\x58\x8d\x98\xe5\xac\x2e\x6c\x24\x88\x9e\x1f\x24\x49\x39\x7e\x11\x43\x88\x2e\xd3\x13\x86\xb2\xb2\x47\x7e\x81\xae\x40\xfd\xf2\x41\x64\xe5\x9a\xfd\xfe\xb0\x68\x4d\x6d\xc4\x3c\x5c\x43\xd8\x76\xa3\xb4\xd3\x64\x5f\x7e\x45\x21\xb8\xa1\xfb\x0b\x53\xdf\xb7\x83\x30\x4c\x9a\x86\xbc\xe2\x60\xd5\x6d\xfa\x4b\x64\xe3\x5d\x77\xd0\x5d\x54\x6e\xb6\x8f\xc3\x35\xfb\xcc\x1b\xcc\xed\x2d\x9b\x1b\xc8\x16\xdb\x28\xe0\x3e\x9a\xf1\xb5\x3c\xbe\xa5\xa1\x9f\xc7\x90\x4b\xb1\x9a\x0b\x16\xb9\x09\x8e\x75\x80\xa1\x9b\xc6\x41\xa8\x74\x10\x99\x09\xa1\xf4\x8e\xf1\xd9\x37\x5b\x3c\xaf\xd9\xfb\x9e\xfe\x41\x31\x7f\x37\x15\x1f\x04\x57\x9f\x78\xbb\xb0\x37\x88\xff\x86\x23\x08\xa0\x84\x9e\x5c\xe8\x66\x1d\x4f\xc2\xa1\x70\x62\x30\xe6\x37\x8a\x87\xb6\x54\xf7\x11\x1a\xc2\x45\xe3\x2a\x77\xe3\xa9\x73\x48\x04\x2f\x8f\x98\xd6\x4c\x5c\xfa\x79\xd0\x7e\x99\xc4\x9b\x4e\x80\xc1\xb2\xd9\xca\x97\x93\xae\x86\x58\x6f\xd3\x26\x1c\x94\x0e\xb4\x01\xa8\xcc\x68\x38\x3b\x41\x31\x8f\x1e\x89\x38\x16\x24\xa6\xf2\x04\x7c\xeb\xaa\xd5\xa9\x97\x6a\x6d\x7b\x6b\x49\xa3\x2d\x50\x60\x45\xae\xc1\xa9\xe9\xdf\x06\xd1\xbb\x7a\x88\x07\x88\x4e\x41\x9d\x70\xa1\xae\x26\xc9\xc6\x65\xeb\x13\xa6\xc4\x22\xe3\x94\x29\x6f\xca\xaa\x2c\x84\xd3\x34\xb4\xd0\xd6\x16\xa4\x2d\x76\x11\x83\xb3\xe1\xb4\xef\xe7\x44\x12\x17\x70\x60\x26\xa5\xb8\xcd\x51\x33\xec\x22\xc3\x6a\x2e\x21\x23\xa8\xbc\x06\x56\xe9\x82\x4f\xf5\x0a\xe1\x0c\xe2\x15\x8c\x95\xa2\xf8\xc8\xe7\xad\x48\x45\x93\x64\xc4\x18\x21\xb1\x44\x90\xbc\xf3\x55\x63\xe2\xa1\xfe\xf4\x00\xe1\x38\x46\xff\xfb\xeb\x8f\x17\xbf\xdc\x0f\xc7\xe7\x57\x60\xb4\x3e\xbf\x18\x7e\x73\xe0\x7f\xbc\x7e\xb8\xf7\xbf\x1a\x0b\xcb\x13\x11\x28\xc5\x8f\xa0\xe2\x31\x69\xe4\x3f\xc8\xee\x08\x47\xea\x52\x32\xf5\x13\x49\x5c\xa4\xab\x15\x53\x3c\x02\x94\xdd\xc3\xd6\x82\x8b\xc6\xe6\xb7\x86\xf2\x7b\xeb\x3f\x59\x4e\x83\x8e\x78\x7c\x17\x4e\x0c\x4c\x09\x83\x68\xec\x22\x47\xcf\xea\xbe\x05\xc1\x11\x36\xa3\xac\x2d\x1e\x8f\xb0\xa7\x97\x14\xe2\x7f\x24\x8b\x9f\xb4\x7a\x7d\x83\xa9\xe8\x4c\x7b\x43\xf6\x44\x05\x67\x30\x35\x6f\xd6\xf2\x27\x46\xeb\xe9\x58\x56\x0f\x95\x34\xb2\x30\xc4\x68\x64\xad\x31\x9f\x4d\x38\x36\x6f\x3e\x5d\x8b\x8e\x41\x3e\x2b\xe1\x92\x7f\x3d\x08\x8b\x43\xa2\xf0\x17\x4d\x41\x83\x23\x76\x7f\x7d\x76\x7d\x82\x48\x82\x27\x5c\x40\x36\x98\x09\x09\x72\x4d\xd8\x05\x8b\x78\x1a\x34\x54\x4a\xfc\x3e\x40\x59\x91\xf8\x1d\x1a\xd1\x8e\x4c\x1b\xab\xea\x90\x73\x51\x4f\x9b\xde\xad\x0a\x68\x27\x7b\xc3\x45\x97\xeb\x5f\xbf\x06\x4b\xc7\x33\xad\xc8\x55\x38\xaf\xbd\x9b\xa7\x04\x9b\x12\xc0\xc6\x2d\x64\x6d\xf9\x36\x80\x35\x49\x4a\xe5\xa0\xf4\xc1\x91\x47\xd6\x05\x5f\xbc\xc9\x19\xfa\xf1\x2f\x12\x4d\x72\x35\x62\xe5\x36\x38\x43\x83\x9f\xef\xd0\xf7\x58\x45\xf3\x6f\x46\xec\x5a\xab\x99\x3f\xfe\xa5\x05\xa1\x62\x6d\x70\x25\xbd\x26\x67\x58\xe1\x0b\x8e\x63\xca\x66\x4d\xc8\x4a\x05\xfc\xfd\xf0\x7e\x70\x82\xae\xad\x0e\xef\x93\xca\x8b\x4c\xab\xa0\x21\x60\xc8\x30\x11\xc7\x45\x80\x95\xb3\x32\xfa\x8c\xd1\xcc\xe0\xc2\x1a\xb1\x7b\x03\x29\xa5\xb9\x2a\x55\x28\xe3\xb6\x04\x83\xd6\xca\x0c\xd8\x96\x31\x65\x5b\x4b\xa2\x5e\x1d\x20\x63\xbf\x19\x56\x1e\x03\x79\xa6\xce\xec\x47\x0c\x14\x74\x9f\xe9\x99\xf0\x08\x27\x10\x93\x77\x18\xd8\xf4\xb4\xda\xce\x73\x48\xbb\x33\x35\x5b\x17\xe5\xd0\x59\x9f\x09\xea\x85\xb2\x70\xa3\xc0\x00\x00\xfb\x68\xbd\xb1\x29\xd7\x1c\xc7\x40\xc9\x80\xf1\x2d\x31\xab\xa3\x3f\xf4\xd0\x32\x66\x59\xf4\x53\xc7\x8f\xa0\x34\xba\x4d\xf1\x8e\xc0\x7c\xcf\x16\x10\xbe\x0d\x98\xe9\x1c\x42\x3f\x0a\xee\x6c\x89\xb2\xb6\x8b\xfe\x4e\x0c\x3e\x1b\x31\x13\x29\x58\xda\x97\x10\x14\x21\xe8\x9d\x33\x08\x64\x2c\xae\x4b\x2f\x60\x64\x36\xb0\xd1\xca\xfa\x99\x20\x87\x31\x51\x44\xa4\x60\xef\x09\xd7\x54\xdf\xb0\x47\xe8\x36\x54\xaf\x63\x1e\xe5\xa9\x03\x86\x84\xf4\xc4\xa2\x2a\x6e\x49\xe2\x31\x17\xfb\x2a\x8a\x87\xe4\x77\x45\x20\x2b\xaf\xb3\x7e\x6c\x08\x66\x10\x7e\x5a\x97\xd4\xdb\x05\x5f\xe0\x1d\xdb\x45\xad\x99\x86\xc6\x59\xb9\xa5\x52\x6b\xab\x71\xed\x56\xd4\x39\xb9\x2a\xc0\xeb\xb8\x00\x61\x8b\x7c\xce\x38\x18\xb9\x4d\x4e\x15\x8f\xbf\x92\xe8\xfc\x46\x4b\x40\x5a\xe3\xf5\x67\x30\x97\xca\x04\x97\x41\xba\x8e\xf9\xda\xa4\x0b\x1c\xa0\x6f\x4d\xcd\xea\x08\x7d\x76\x7f\xfc\xf9\x3f\xfe\xe3\x4f\x7f\x5e\x27\x9d\xc4\x29\xe4\xd0\x6e\xb1\x46\xbe\x1a\x46\x59\x24\x0a\x77\xa0\xce\xa9\xb6\xd8\x05\x7b\x00\xdb\x96\x7f\x13\x90\xaa\x20\x76\x08\xcf\xec\x09\x97\xe1\xc9\x44\xa5\xa3\x59\x44\x12\x48\xa2\x0e\xca\x1c\xc2\x0b\xbb\x56\xa2\xff\x5f\x4b\x30\x60\xc6\xfa\xa8\x6c\x16\xe3\x44\x13\x2f\x5e\xeb\x46\xd0\xd7\xd6\xfe\xa7\xc0\x81\xf8\x8d\xbb\xe0\x78\x12\x13\x61\xeb\xdd\x3b\x93\x9d\x37\x24\x02\x73\x20\x9f\xb3\x84\xc7\x0e\xdd\x4d\x92\x0c\x83\x00\xa1\x99\xc1\xd1\x88\x0d\x5d\xf9\x73\x83\x4e\x62\x3e\x32\x9e\x97\x29\x8e\x0c\xa8\x99\x44\x5f\x7f\x3e\xd1\xbf\x1d\xa0\xc5\x09\x04\x91\x1e\xa0\xdf\x4e\x2c\x08\x01\x16\x6a\xac\x7f\xfa\xc6\xc9\xda\xb6\x09\x18\x34\x95\xe8\xab\xe3\x27\x2c\x4c\xc9\xcb\x63\x33\xa2\xaf\x2c\x67\xf5\x65\x7d\x42\xd9\x3c\xe1\xfc\xd1\x06\xd8\xd6\x3e\x3c\x76\x78\x36\x40\xde\xde\x6f\x62\xb6\xde\xe7\x3b\x2a\x74\x68\x8b\xb7\x1f\x65\x13\x74\xf4\x37\xc9\x19\x3a\x5a\xe0\x34\xb1\xbf\xba\xa7\x36\xfe\x17\x4b\xe4\xca\xf7\x17\xe5\xc3\x8d\xa5\xf4\xfb\x84\x4f\x60\x56\x97\x6e\xa6\x26\x82\x16\x06\x5a\xdc\x3e\xc5\x85\x65\x27\x62\x25\x29\x03\xcb\x90\x72\x65\x5e\x01\x1e\xd7\x34\xab\xcf\x7e\x48\xff\x65\xfc\xc2\xb0\x28\x2e\x89\xcf\x18\x87\x7d\xf4\x9a\x6e\xf4\x33\xfa\xda\xb2\xa0\x6f\xf4\x1d\x63\xc3\x95\xcd\x32\x34\x75\xb0\xf0\x1d\xfc\x12\x74\x40\x19\x32\x69\x99\x4b\xbe\xfc\xed\xf8\xe8\xe8\xc8\x7f\x7d\xa5\xa7\xf2\xff\x22\xaa\x24\x49\xa6\xa6\x25\x77\x83\x2d\x46\xec\xd2\xe1\x46\x3b\xe3\x75\x81\x94\x05\x65\xf7\x23\x9e\xa0\xc3\xc2\xa0\x1b\xf3\x48\xa2\x7f\xd5\x62\x6d\xb0\x94\xf0\xa3\xd6\xe3\x5a\x50\xec\x0c\x50\xe5\x2b\x1d\x2a\x6b\x10\xaf\x1e\xab\x10\x1c\xc7\x2b\xb6\x58\x86\x20\xe4\x40\x0b\x9a\x72\x8e\x2d\x80\x8e\x10\xfa\x65\xf2\x59\xc1\xa3\x16\x7c\xa2\xc6\x50\xf6\xe6\x9b\xb2\xc6\x6e\x0b\x98\x22\x43\xd6\x2d\x0b\x60\x61\x44\x2c\x67\x30\xf3\x3c\x08\xdd\x27\xfa\x72\x61\x21\x92\xb1\xcc\xd3\x14\x8b\xc5\x71\x71\xda\xea\xc4\x59\x00\xd8\x00\x8f\x49\xdc\x02\x80\x0b\x37\xb1\x47\xcb\x46\x31\x58\xf1\xd2\xdd\x68\xfe\xec\x46\x50\x8a\x09\x02\xf2\x4c\x21\x32\xc2\x22\x1e\x5b\xba\x2e\xb2\x4f\xcb\x12\x8b\x7f\xa7\x2e\xab\xb8\x88\x18\x59\x18\xe3\x98\x32\x99\xd1\xf6\x0d\xf7\x71\x0b\xfb\xe6\x63\x28\xea\x47\x66\x6b\xb8\x47\xcf\xaf\xef\xdc\x37\xdd\x2f\x5d\x58\x87\xb2\xc8\x8e\x93\x10\x76\x88\xcd\x90\xc0\xcf\xc5\xf5\x0b\xb1\x1d\xc6\x3a\x93\xfb\xdc\x5c\xf3\xef\x53\x7e\x43\x13\x7d\x6b\x01\x8d\x1f\x8d\x58\xe9\xe7\x03\x44\x12\x9a\x52\xe6\x63\xeb\x0c\x73\xe7\x53\x23\x3d\x3f\x52\xa5\xb7\x4c\xc6\x8f\x9a\x83\x39\xb8\x8c\x40\xa5\x1a\xb0\x85\x23\x1d\xef\x98\xb2\x16\x88\x5c\xea\x71\x15\x3a\xba\x16\x66\x75\x13\x87\x56\x20\xa5\x01\xe1\xc1\xf9\x1d\x31\xdd\x9a\x3b\x4b\x45\xb8\x70\xd0\x5e\xd0\xdc\xa1\xc3\xf3\x0d\x38\x00\xf4\x51\x8a\xf9\xf5\xf2\x6f\x83\x80\x32\x64\x79\xba\x6d\xb2\x89\x0d\x1f\x7e\x2b\x33\xdd\x8d\x20\xee\xa6\xb2\x89\x4b\x84\xe5\xa9\x3b\x50\x6b\x50\xdc\xd0\x8a\x3f\x31\x89\x12\x6c\x00\x00\x74\x43\x10\xf9\x78\x60\x1c\xa4\x59\xd0\x97\xb9\x5e\x4c\x37\xa6\x44\x40\x42\xd8\xd7\xe6\xdf\xdf\x20\x7b\x37\x7c\x7b\x60\xef\x73\x21\x1d\x80\xa9\xdd\x73\x28\x31\x45\x62\x63\x43\x07\xb0\xc7\x19\x16\xb1\xb1\x96\x87\x5a\x85\xc9\xe0\xd5\xf2\xd7\x82\xe7\xe8\x99\xca\xf9\x88\xdd\x73\x67\x70\x44\x8c\x7b\xb8\xcc\x03\x50\x46\x6b\xfd\x61\x09\x4c\x00\x46\xdd\x44\x01\x9a\x09\x6f\x95\x6b\x04\x51\xb0\x63\xc6\x63\xb2\x1d\x2e\xc4\x7d\xe1\xab\x70\xfe\x6b\x41\x4c\x3e\x18\xdc\x14\x6d\xe9\xb4\x44\xca\x35\x6d\xf3\xd5\x8d\x87\x7b\xc8\xb6\x03\x15\x0d\x9f\xd9\xa6\x90\x2b\xfe\x56\x83\x56\x9c\xc6\x19\x64\x03\x97\xd6\xde\x83\x50\x6e\xbb\x09\x51\x39\x55\x65\xe5\x0a\xf8\xab\xcf\xcc\x3d\x82\x65\xf7\x01\xc6\x18\xcd\x04\xcf\x33\x9f\x32\xef\xd2\xfd\xcc\x36\x58\x99\xe6\x9c\x4d\xf9\x89\xd5\xa9\x2e\x28\x7b\x34\x14\xff\x52\x7b\x64\x70\x46\x49\x5c\x42\xc7\x71\x45\xe6\x60\x0e\x87\x88\xb2\x28\xc9\xe1\xe2\x93\x0a\x47\x8f\x06\x2b\xb5\xcd\xe8\xab\xbf\x19\xaf\x4e\xa6\x6c\x91\x98\xf2\x24\xb1\xdd\x16\x17\x68\x51\x85\xf3\x89\x62\x84\xd1\xc3\xed\x79\x73\xdf\x8f\xb4\xee\xcc\x69\xbe\x3d\xcb\x04\x02\xff\xf3\x23\x5d\x2b\xee\xb2\x82\x36\x44\x4a\xa4\xee\x8d\x4b\x6d\x58\x76\x9a\x48\x3f\x61\x45\xb6\xcd\x84\x32\xd0\x2a\x6b\x44\xea\xd5\x30\x6b\x96\x5a\x8f\xb7\x04\x7c\x29\xc0\x5a\x20\x34\xa8\x1d\x79\x26\x0c\xd6\x82\x87\x6b\x60\x37\xc0\xfb\xdd\xe6\x53\x79\x77\xc5\x74\x96\x0f\x33\x21\x64\x0d\xb4\x81\x3b\xfd\x7a\xc7\x41\x96\x5e\x5d\x36\xc6\x67\x6c\xc0\xa3\xeb\x58\x8a\x71\x5e\xaa\x0f\xdd\x89\xa0\x1d\x39\x1a\xf1\x5a\xfa\x1c\x11\x3f\x12\x17\x86\xe3\x65\x31\xd7\xef\x0c\x7c\x5b\xbc\x84\x4d\xed\x2d\xb4\x0d\x84\x1f\x88\xad\x5b\x86\x4d\x68\xf1\x6b\x9c\x36\xb0\xe8\xe6\x9d\x28\x3a\x3e\xb3\x1f\x5f\xea\x6f\x9b\x59\xd1\x25\x64\xf1\x79\xe0\x94\x14\x33\x7d\xb2\x5d\xaf\x2d\x46\x48\x23\x11\x6e\x34\xa4\x87\x6c\xa3\x01\x99\x1e\x3b\x96\x6d\xb2\x5d\xb9\x56\x9e\x8d\x1d\x1e\x27\xc6\xce\xa4\xe6\x60\x82\x28\xca\x1d\x68\x8e\x56\x36\x45\x98\xd2\x08\x09\x16\x33\xa3\x20\x49\xa2\xe4\x37\x0d\x3b\x5c\xe4\x3c\x6c\xb1\xc3\x1b\x94\x94\x0b\xfd\x9e\x20\x7e\x2f\x3b\x69\x7e\x94\x65\xcc\x36\x7f\x2b\xfb\xe2\x8c\x56\x68\xa2\x32\x44\xd6\x8a\xb8\x30\x00\xa7\xb1\x3e\x2b\xed\x98\x29\x5b\x96\x16\xbd\xc2\xa9\x47\x04\x70\x05\x0e\x6d\x7e\x97\x19\xdc\x84\x00\xdc\x60\xfb\x18\xb6\xae\x21\x1a\x0e\xc1\xd6\xf4\x6a\x1b\xc1\x88\x0d\xdc\x2b\x3e\xab\x18\x74\x3b\x61\x04\x70\x88\x0f\x35\xd1\xd0\xa0\x5f\xe1\x62\xd5\xed\xe4\x5a\x26\xb1\x6e\xf2\x66\xb5\x0c\xaa\xd6\xef\xfc\x6d\x64\x0b\x1e\x78\x68\xb4\xa5\xc5\x26\x9e\xd6\x2f\x54\xdd\x0c\xcc\x12\x55\x0b\x09\x37\x75\xbc\x5a\x97\x72\x88\x11\xb6\xa1\xb0\x76\xb1\x89\x21\x4d\x16\x05\x99\xea\x15\x37\x3a\x79\xa5\xb3\xfa\x69\x55\x5b\x71\x63\x8a\xd3\xb1\xe0\xed\xd5\x38\x3a\x2c\x93\x6b\xa2\x64\xdf\x99\x1b\xd4\xf0\x05\xfa\x7b\x8e\x13\x73\xb9\x31\x4b\x8e\x6e\xd8\x20\x2a\x7f\xf7\x67\x34\x80\xdb\x07\x5d\x02\x5f\x04\x07\x3f\xb4\xa6\x38\xa2\x69\x46\x84\xe4\x0c\xb7\x96\xa5\x79\xfc\x8b\x1c\x5b\xc8\xff\x31\x8e\x22\x9e\xd7\xe1\xfd\xd7\x98\x49\x43\x6b\xe1\xa4\x30\x7a\xcc\x27\x44\x30\x62\x4a\xef\xc0\x7b\xc8\xbd\xd7\x69\xb8\x1c\xe7\x6a\xfe\xdd\x38\x4a\x68\xe7\x3a\x04\x90\x5d\x34\xd0\x9f\x9d\x9a\xaf\x96\x4d\xa0\xd4\x7e\x69\xe8\x0c\x99\x67\xc8\x3c\x3b\x42\xdf\xe3\xe8\x91\xb0\x18\x65\x49\x3e\xa3\x16\x4c\x00\x6e\x28\x60\x97\x81\x79\xb6\x3c\x31\x23\x5b\x98\xf6\xf5\x35\x34\x62\x29\x7e\x34\xd8\x80\x56\x88\x8c\x70\x92\xac\x65\x66\xf0\xf4\x50\x43\x55\x71\x99\xef\xbe\xcc\x91\x39\x1f\xca\x9c\x0f\x30\xa8\x02\x82\x64\xce\x10\x06\x60\x96\xaf\x24\xca\x33\x27\x01\x81\xa5\x2f\x01\xbf\xab\x99\x24\xd4\xaf\xa6\x5a\x0f\x9a\x93\x11\x83\x58\x56\xd7\xe2\xc2\x73\x95\xd0\xd5\xef\x43\x4e\x9a\x0e\xdf\xd4\xc0\x12\x6c\xe7\x45\xac\x01\x50\xae\xa0\x84\x8e\x71\xba\x6a\x4e\x18\x18\x20\xba\xb7\x0c\x1a\x4d\xf7\x4d\x2b\xc5\xe4\x5a\x41\xd3\x5b\x4c\xfd\x12\xe6\x8c\xda\xca\x17\xd6\x48\x1e\x84\xcb\x39\x4f\x52\xf1\x3d\x95\x48\x62\x45\xe5\x94\x36\x1a\x66\x42\x30\x88\x6d\x56\x1d\xaf\x87\x40\xd1\x80\x3e\x51\x59\x0b\x1f\xf7\x7f\x84\x3e\x82\x9d\x29\x90\xbd\xb9\xc7\x72\x68\x63\x09\x6a\x4e\x5a\x41\x0d\x77\x11\x30\xe3\x66\x10\xbc\xbf\xd4\x7c\xe8\x73\x3c\x8e\xd0\xa0\xb0\xef\x1b\x34\x0b\x63\xb9\x5f\x31\x23\x92\x48\xb2\x09\xf1\x75\x32\x85\x81\x0f\x1c\x08\x08\x81\xac\x22\xf5\xef\x05\xf4\xad\x1f\xe6\x33\xa4\x51\xe2\x47\xc2\x96\xd9\x3b\xba\x8f\xd0\x18\xa4\x96\x2a\xdd\xde\xd2\xc5\x8d\xb1\x6b\x93\x01\x76\x3f\x76\x05\x80\x08\x9d\x1e\xeb\x25\xd7\x82\x7e\xf4\x68\x93\x37\x8c\xbd\xd3\x42\x90\x3c\xcf\xb9\x0c\xcf\x99\xdb\x3f\xa3\x2b\x8a\x9c\xb8\x24\x0d\x48\x7e\xf1\x0b\x6c\xa2\x5e\x18\x0f\x11\x4a\x60\xd4\xfe\x90\x1a\x5b\xae\xdf\x6f\xe4\x58\x28\x2c\x03\xf8\x89\x5c\x53\xf5\xd3\xfc\xe3\x5f\xe4\x35\x9c\xd8\x5d\xe4\xc2\x37\xd7\x6d\xdb\x3e\x0e\x7d\x43\x0b\xbc\x8f\xb0\x2a\x8a\xbe\xe1\xd8\xa3\x37\x64\x3c\x46\x05\x79\xad\x5f\xe1\xed\xed\xa7\x55\xa9\x0c\xd7\x69\x6e\xab\x28\xfb\x32\x70\xd3\xa3\xff\x8f\xbd\x77\x6b\x6e\x23\x39\xd2\x86\xef\xfd\x2b\x2a\x62\x2f\x24\x7d\x1f\x08\x7a\xec\xd8\x37\x6c\x45\xec\x05\x87\xa2\x3c\xb0\x35\xa4\x4c\x52\x33\xde\x77\xb1\x01\x15\xba\x0b\x40\x9b\x8d\xaa\x56\x57\x37\x29\x78\xed\xff\xfe\x46\x65\x66\x1d\xfa\x88\x6e\x00\x94\x64\xef\x5c\xec\x7a\x44\x00\xd5\xd5\x75\xc8\xca\xca\x7c\xf2\x79\x96\x65\x82\x22\xab\x15\x97\x8b\xea\x25\xe1\xf6\x4b\xc7\x7f\xa2\xdd\x79\xd2\xbe\xc6\xde\xab\xf8\x98\x85\x35\x9e\xb0\xae\xb9\xae\x07\xa0\x78\x75\x9b\x28\x6c\xcf\x48\x64\xaa\x1b\x7f\x19\x2f\x86\xcb\xa8\x42\xc2\x7d\x59\xae\xee\x80\x16\xbd\x8b\x13\x22\x90\x41\xb1\x45\x5e\x66\x9e\xcd\x63\x5c\xc9\x41\xd7\xa4\x50\xfe\xd6\x1f\xff\x9c\xfd\xf1\xee\xe6\xfa\x6c\xcb\x73\xbd\xe1\x50\x73\x6b\xdb\x9a\x58\xa5\x19\xbc\x80\xda\xbc\x52\x22\xe7\xf2\x8c\xad\xd5\x04\xb3\x98\xaf\xd9\xa6\x28\x32\xfd\xfa\xfc\x7c\x9d\x14\x9b\x72\x39\x8d\xd4\xf6\xdc\x0f\xcd\x39\xcf\x92\xf3\x65\xaa\x96\xe7\xb9\x00\x1c\xeb\xd9\x77\xd3\xdf\x7c\x07\x33\x73\xfe\xf8\xdd\x39\xe4\xae\xa6\x6b\xf5\x6f\xef\x7e\xf3\xfb\xdf\xfe\x1f\xd3\x70\xb6\x2b\x36\x4a\xbe\xa6\x14\x69\x6f\xdb\x67\xe8\xf7\x9e\xe3\x4f\x6a\x4f\xf9\xfd\xf4\xd7\x61\x37\xe8\xab\x5b\x15\x8b\x54\x9f\x3f\x7e\xb7\xb0\x13\x33\xcd\x76\xbf\x20\x3f\xbf\x1a\xf2\xf3\x21\x29\x7e\x41\x7e\x7e\x55\xe4\xe7\x70\x0f\xc7\xd9\x98\x9a\x68\xb6\xf9\xbb\xb3\x91\x36\xb8\xbd\xcf\x0e\xb5\x1c\x0e\x21\x2e\xff\x88\x23\xe2\x41\x34\x90\x1f\x23\x42\x0e\xee\xea\xd0\x11\xc4\x1a\x4b\x67\xdf\xe9\xcc\x8f\x2a\x43\x06\x9c\x45\x12\x01\x55\x32\x06\xdd\x32\x9e\xb4\xe1\x39\x09\x4f\x74\xcc\xf8\x3d\x27\xe9\xf7\xa9\xd9\xbe\xe9\x75\x0f\x64\xfa\x4e\xf1\xd7\x16\xfd\xa4\x9e\x2c\xc3\xf7\x29\x78\xb1\x07\x0a\xd0\x39\xba\x5f\x5c\x3c\xd0\x17\xdb\xaf\x8e\x6e\x6c\xb8\x3e\x0c\x46\x77\x81\xa4\x7a\x2e\x13\xe6\x64\x73\xe9\x81\xf6\xe0\xb0\x3c\x05\xa0\x6e\x4a\x74\x48\x59\x99\x67\x4a\x0b\x3d\x65\x6f\x6b\x12\x4d\x1e\x1a\x78\xfb\xf6\x92\x7d\xf7\xbb\xdf\xff\x76\x2e\x5f\xb6\x9c\xdb\x60\xef\x55\xbe\x26\xa4\x22\x9c\xd6\x5b\xae\x0b\x91\x9f\xe7\xab\xe8\x1c\xad\xdc\xb9\xf9\xfd\x19\x3d\xf4\x4c\xad\xce\x1c\xe9\xef\x19\xf1\x9f\x4e\xb7\xf1\xb8\x12\xfe\xca\xd2\xc3\xb3\x86\x0e\x1a\x0d\x87\x12\x92\xfd\xa8\x95\xa3\x77\xc7\x4a\x12\x54\x82\x50\xab\x96\xff\x00\x31\xeb\x57\x8e\x62\x8c\x6b\xfb\x0c\xcf\xf9\xd3\xbd\x35\x4f\xc3\xff\x6d\x97\xc8\x73\x06\x2a\xac\x2d\x09\xaf\x23\x63\x06\xbe\x7d\xb3\xf9\xe3\x1e\x19\x0f\x48\x0d\x19\xf9\x93\x95\x14\x6a\x05\x38\x39\xf0\x84\x2d\x0e\x00\xa2\xa1\xe6\xa4\xf5\xec\x06\xb9\xc8\xf0\x80\x09\xd5\x93\x5b\x86\xfb\x48\x0e\xf1\x7d\xe3\xfc\x1c\x1c\xe2\xc7\x8e\x3b\x19\x94\xaf\x34\xe0\xc7\x82\xf5\x70\x2b\x8d\xc1\x2d\x98\xef\xef\xcd\x51\x3a\x3b\x00\x49\xc9\x50\xb0\x18\xd9\xbc\xc0\x49\x13\x67\x85\x3a\x03\x5a\x18\x20\x1b\x41\x56\xff\x2e\xe0\x02\xe4\x76\xc7\x1c\x93\xe6\xfb\x03\xfa\x89\x8e\xf9\xe7\xa0\xa3\xe4\x93\x68\x24\xc9\x24\xd0\x53\x22\xa5\xc8\x29\x6b\xb5\xf7\x44\x1d\x99\xf9\x0d\xa7\xb2\x1f\xf3\x14\x08\x72\x06\x8c\xeb\x0e\xf1\xce\x03\x23\x30\x65\xe0\x7d\x6e\xd4\x56\x19\x77\x46\x95\x3a\xf8\x10\x6f\x2f\x70\x08\x77\xfa\x5e\x5b\x9e\x21\x0d\xdc\xd7\x7b\x1b\xb3\xb5\xcc\x47\x18\xd4\x0b\xbf\x34\x4a\xc4\x62\x59\xa5\xed\xdf\xd3\x7f\xc7\xb7\xde\xbf\x6e\x00\x57\xb0\x85\x24\x0a\x68\xdc\x11\x8b\x72\xf2\x37\x73\xaf\x31\x4b\xca\xdd\x14\xdc\xc9\x8d\x30\x18\x64\x3b\x0c\x09\x55\xad\x37\xdf\x59\x8f\x5c\x6e\x47\xce\x81\x83\xf1\x0e\x99\x00\x2e\x11\xd8\x6a\x11\xad\x67\xad\x90\xd6\xae\x7d\x69\x15\xe5\xe2\x85\x65\xe4\x1c\xd7\xd5\x3b\xd7\x00\x91\x6f\x36\xfb\xed\x09\x8d\x00\xff\x8c\x63\x8c\x06\xc1\xfa\x16\x1d\xb0\x16\x39\x7e\x33\x82\x84\xc9\x98\xb1\x83\x87\xe0\xe2\x6c\x8c\x60\xb0\x17\xba\x06\x70\x5c\x88\xad\x2f\x62\xd5\x06\x98\x47\x0e\x38\x5f\x1f\x63\x7a\xd9\xb8\x3c\xba\x1f\x3e\x7a\xf9\xcc\x5d\x26\x26\x6c\x59\xc2\xe7\xd7\x37\xf7\x21\x1e\x22\xc1\xb7\x3d\x8b\x36\x22\x7a\x80\x80\x09\x1e\x79\xb8\x19\xac\x74\xea\x72\x37\x97\x5e\x5c\xab\x50\x36\xb9\xbf\x73\x7c\xe3\x8e\x73\x5f\xe5\x2c\x4e\x74\x96\xf2\x1d\xa4\x51\x25\x22\xe1\x7d\x0a\xd6\x95\x90\x18\x53\xb0\x2f\x5e\x3c\x7c\xa6\xcd\xac\x5c\xf8\xdf\x8d\x1d\x4b\x9e\x2f\x93\x22\xe7\xf9\x8e\xf9\xc1\x6c\xda\x03\xa6\xc5\x96\xcb\x22\x89\xe6\x72\x2b\xb8\x0c\x71\x6f\x94\x46\x36\x83\x1c\x2b\x41\x8c\xbc\xab\x95\x88\x0a\x4f\xe9\x07\xce\xbb\x1b\xa9\x7d\x7b\x70\xdc\xbb\xbb\x9d\xd7\xfb\xea\x3f\x24\x12\x0b\xc8\x93\x2d\xa0\x2a\x69\x0d\xd1\xd1\x78\x60\xf2\x06\xc4\xd8\xe8\xc8\xb5\x97\x41\xf8\x97\x5d\x53\x6c\x29\x8a\x27\x01\x15\xeb\x54\x62\xd7\xe6\xe3\x1f\x4d\xc8\x7f\x9c\x6c\x61\xbb\xe0\x63\x80\xb5\xc2\x0d\x16\xc2\xb5\x1c\xb5\x8e\xac\x71\xe4\xbc\xa0\xa2\x3f\x88\xf6\xbc\xa0\xb8\xd5\x0b\x38\xa6\xcd\xed\x31\x7f\x14\xf1\x5c\x56\x89\x8b\xc8\x67\xf4\x1b\x8e\x79\xa9\xa9\xd3\x58\x1b\x3b\xc6\x83\x62\xf9\x57\x40\xd6\xe0\x69\x1a\x5d\x59\x5b\x8f\xf4\x55\xbb\x54\xfe\x33\xa8\x2a\x0d\x4e\xf2\x78\x35\x2a\x92\x92\x21\xe5\xb9\x0a\x9e\xc2\x2d\x4a\x47\xcb\x82\x9c\x6d\x0e\x62\x4a\x71\xc9\x46\xa4\xb3\xad\x8d\xb9\xb4\xf5\xca\xab\x32\x45\x1e\xce\x2e\x31\x2e\x62\x69\xb2\xb5\x15\x5f\xaf\xc6\xc6\xc5\xd5\x58\xa0\xde\xe5\x60\x0f\x01\xdc\x17\x6d\x9d\x5d\xf5\x42\x6a\x54\xd2\xb4\xc2\x3d\x10\x78\x5e\x8b\x02\x4e\xf3\xb8\x4c\xb1\xfc\x16\x22\xe6\xc0\xf8\xc4\xd3\x94\x25\x85\x9e\x4b\x47\x50\x85\x74\xe3\x60\x61\x6d\x48\x3d\xa6\x2b\x17\x3c\x02\x9a\x25\xd1\x61\xf0\xc3\x92\x28\x29\x1a\x20\xe9\x5d\x28\x76\x91\x65\x82\x63\xb5\x18\x4e\xdb\x5c\x86\x77\xae\xfa\x24\x50\x69\x15\x88\xab\x9e\xa2\xca\xa9\x07\xf3\x0e\x8a\xb4\xa3\xa7\x64\xca\x2e\xf0\xed\x22\xa7\xe1\xcf\xa8\xb7\x54\xa1\x4e\x58\x46\x73\xab\x29\xb4\x8d\x91\xfb\x7b\x6b\xc6\xf3\x22\x89\xca\x94\xe7\x29\xb0\xbe\xaf\xca\x94\x25\xab\x40\x92\x13\xe6\x00\xe9\x89\xcc\x74\x45\x0a\xce\x6a\x1b\x25\xd7\x7c\x2b\x82\xca\x68\x0a\xef\xa4\x01\x86\x02\x39\x97\x31\x39\x6f\xda\x7a\x35\x65\x6f\xea\xd2\xb8\xb0\x27\x02\x5a\xc3\x44\xa3\xf9\x73\xfd\x0d\x8a\xfa\x50\x62\x37\x59\x99\x2b\xe5\x8b\x60\xd7\x75\x89\xcc\x73\xfd\x30\x12\xa0\x61\xc9\xf1\xfb\x71\xb9\xad\x45\xbd\xf7\x20\x44\x5e\x81\x6d\xb8\x0d\xd1\xd1\x41\x7b\x2a\x8c\xec\x64\x48\x09\x79\x40\x47\x7f\x0e\x94\xbe\xeb\x9d\xdd\xf6\x28\x80\xc2\x3c\x8e\xec\x6a\xa0\xa7\x33\xbe\xa3\xc1\xca\x09\xe1\x38\x43\x46\x76\xcd\x8b\xb1\xd8\x1c\x57\xee\x32\xbe\xa3\xad\x38\xa8\xce\x6e\xee\x8f\x34\xfd\x5c\x11\xe0\x61\xa6\x57\xe6\x96\x2f\x10\x67\xa6\x56\x81\x09\xa6\xf3\x86\x94\x7a\x80\xfc\xdc\xd9\x84\xa5\x60\x69\x22\x1f\x2c\xd5\x81\x59\xa0\x13\xc6\x7d\xeb\x60\x23\x70\x90\x71\xcf\x75\x78\x5e\x6d\x52\x01\x47\x38\x63\xc3\x0a\x06\xdb\x6f\xc8\xb6\x27\xa3\xd4\x20\xec\x0b\xb7\xbd\xc7\xf0\x69\xe9\x45\x36\xbb\x3b\x8f\x85\x33\xe3\x31\x18\x60\x2c\x03\x39\xf7\xce\xf1\x7d\xbf\xa9\x62\xf6\x46\x08\xeb\x7c\xb8\x7e\x73\xf5\x76\x76\x5d\x55\xc3\xf9\xf3\x87\xab\x0f\xd5\xbf\xdc\x7e\xb8\xbe\x9e\x5d\xff\x21\xfc\xd3\xdd\x87\xcb\xcb\xab\xab\x37\xd5\xef\xbd\xbd\x98\xbd\xab\x7d\xcf\xfc\xa9\xfa\xa5\x8b\xef\x6f\x6e\x6b\xfa\x3b\x56\x3c\x27\xf8\xd3\xfd\xec\xc7\xab\x37\x8b\x9b\x0f\x15\x09\x9f\x37\xff\x79\x7d\xf1\xe3\xec\x72\xd1\xd2\x9f\xdb\xab\xcb\x9b\x9f\xae\x6e\xf7\x28\xf0\xf8\xf7\x6d\x1d\xd2\x53\x80\xad\x0e\xd6\x63\xba\x60\xab\x3c\x11\x32\x4e\x77\x88\x05\xb7\xf7\xc0\x1a\xf4\x34\x3c\xa9\x92\xad\x50\xe5\x31\x90\xee\xfb\x8d\x60\xea\x51\xe4\xc0\xca\x80\xad\x51\x09\x27\xd7\x0f\x9d\x9c\x7d\x45\xde\x8c\xa1\xf7\x56\xae\x14\xf9\xce\xd5\x46\xf5\x75\xc7\x33\xfa\xd0\x43\x58\x26\xf2\xbe\xbe\x80\x1f\x91\x97\x59\x91\x2c\xbb\x41\xfa\x03\x99\x6e\xc6\xdf\x54\x91\x7f\xae\x9d\xac\xe3\xba\xdd\x30\x56\xb0\xea\xc7\xc0\x74\xa1\x85\x43\x65\xc6\xdc\xaf\x2d\xb4\x31\x2b\x97\x69\x12\xb1\x24\xae\x47\x1f\xb0\xa4\x0a\x03\xac\x75\x9a\xca\x4c\xe4\xe0\xd8\x19\x7f\x39\xcb\xc5\x19\x2f\x8b\x8d\x55\x40\x77\x95\x75\x48\x1b\x29\xa2\x5c\x14\x81\x5a\x3f\xe9\x4b\x05\x4f\x82\xce\x50\x45\x71\x0c\xe4\x25\xd3\x80\x32\xbc\x23\xa2\x8e\xbf\xc4\xd6\x47\x84\x14\xf1\xfb\xbd\x43\x43\x3d\x4e\x74\x5d\x5c\x18\x5c\x58\xfc\xd0\xaa\x54\x99\xf7\x36\x96\xda\xa9\x34\xe1\x24\xdb\x5a\x82\xf6\xd7\xd8\xb7\xc6\xc2\x85\x52\x85\xfe\x53\xeb\xf4\xd1\x65\x2e\xe0\x10\xa1\xc4\xb9\xbd\xed\x03\xd0\x83\x6a\x0f\xa0\xe4\xc0\x5c\x6c\x96\x62\xc3\xd3\x15\xc6\xf0\xcc\xd4\xf8\x7d\xd5\x5c\xa2\xf7\xea\x41\xc8\x5b\x9c\xb0\xaf\x62\x0e\x25\xde\x13\x7c\x8d\xb9\x8b\x9f\xf8\x80\x9f\xe9\xa3\x5d\x55\xb6\xf6\x0a\x45\xfa\xd1\xab\x0e\x3e\xc6\x02\x08\xcf\x20\x6b\xcb\xb6\x56\xab\xe4\xb3\x69\x70\x2e\x45\x2b\x87\x26\xa0\x6b\x2c\xdb\x8f\xb3\xcb\x80\x24\x42\xca\x94\x07\x21\x41\xdf\x0a\xe5\x6f\xf7\xae\xd9\x71\xd1\xe6\xe6\x5c\xf4\x84\xbf\x21\x42\x96\x54\x64\xbf\xc2\x9c\x88\x1d\x27\x28\xb2\x7c\x10\x53\xf6\x86\x88\x20\xcc\x5f\x2e\xdf\xcd\xae\xae\xef\x17\x97\xb7\x57\x6f\xae\xae\xef\x67\x17\xef\xee\x86\x6e\xbf\x53\xd4\xe9\xd4\x76\x5f\xbd\x54\xca\x59\x88\x73\xda\x79\xbe\x5c\xd4\xbd\x94\xdf\x76\x30\x25\xfb\x7b\x9f\xc4\xd9\x22\x4e\x74\x64\x8e\xbf\xdd\x42\xc8\x18\xc8\x87\x0f\x5a\xaa\xed\x4d\xd5\xdf\xc2\x7d\x83\xb9\x6f\x58\x0b\x82\xa7\xdd\xa3\x5d\xd1\xee\x73\xc0\xa8\x41\xd0\x2e\x17\x66\xf3\xc7\x73\x19\x9c\x36\xd3\xfd\x8a\x13\xa6\xb9\xe3\xde\xad\xda\x44\xfd\x9d\xb0\xbf\x89\xd6\x25\x37\xf6\xd1\x7e\x0d\x00\x7a\x1d\xa3\x42\x8c\x70\x21\x03\x72\x12\xa8\x77\x32\x73\x93\xdf\x72\x19\xf3\x42\xe5\xbb\x8e\x57\x1c\x66\x3c\xc3\x6d\x53\x35\xa1\xe1\x91\x2d\x85\x88\xed\x2c\xe0\x57\xb9\xac\x2f\x25\xe4\x49\xbe\xbf\xf9\xd3\xd5\xf5\xdd\xe2\xea\xfa\xa7\xc5\xfb\xdb\xab\xb7\xb3\xbf\x38\xdc\x60\xc6\x75\x9b\x5a\x5f\x96\x0b\x63\x5d\x2c\xed\x44\xab\x7d\x41\x09\x3d\xdb\x0e\xc9\x26\x25\xab\xb9\xb4\x96\x25\xf7\xcd\x6f\x72\x55\xae\x37\xed\x0d\xd5\x7b\xf9\xfe\xe2\xfe\x87\x83\xba\x09\xa4\x40\xa8\xb3\x85\xbb\xad\x89\x9f\x4c\x56\x64\xf7\x10\x74\x59\xeb\x1e\x50\x5b\xc1\x57\xdb\x62\xf2\x1d\x16\xed\xa0\xdb\x4b\xd3\x68\xf5\x3a\xff\x2d\x5f\xef\x5a\x40\xf7\x81\xdd\xac\x1c\x23\x80\xe7\x45\xb9\xc6\x46\x6b\xaf\x5b\xfe\x56\x39\xc1\x7e\x73\x96\x8a\xf5\x5a\xc4\xb8\xbc\xea\x0d\x53\xc4\x8a\x4c\x60\xe4\xcf\xf5\xb6\x51\x24\x41\xb5\x23\x0e\x66\x87\x8e\x1a\x6e\xc0\xdf\xbb\x9f\xb4\xdb\x8a\x4b\x2b\xda\x1c\x29\xa9\x0b\x2e\x3b\xd2\xae\x8f\x4d\x3c\xe3\x20\x53\x74\x93\x33\x57\x2a\x44\x01\x12\x1b\x60\xf7\xfb\xe0\x90\x84\x13\x09\xc7\x49\x8a\x78\x04\x82\x72\x81\xca\x74\xcb\x24\x40\xa4\xf1\xd6\x5a\xc4\xe7\x0f\x6e\xf4\x5e\x9d\x88\x09\x09\x02\xa3\xa8\xdc\x43\x50\x6d\x8c\x06\x81\x1c\x56\x27\x8c\x76\xd4\x84\xd4\x9e\xfc\x13\x0d\x3d\xde\x5a\xab\x81\x59\x6e\xb9\xc6\xdc\x04\x39\xe7\x6d\x7c\x7c\xab\xe2\x87\xfb\x96\xb3\x5c\xc5\x65\x64\xd9\x58\xa0\x59\x8f\x07\xa1\x80\x96\x3d\x60\x63\x76\x66\xa6\x99\x2e\x29\x22\x3e\x03\xa4\xf7\x5c\x76\x25\x5f\xac\x0d\xe8\x08\x73\xbd\xb7\xa7\xd6\x31\x73\xdf\x32\xfa\xdd\x5b\xd0\x0e\xf6\xb0\x8a\x4b\x66\xbf\x0e\xce\x5e\x07\x9c\x86\xe6\x65\xc9\x31\xb3\x5a\x3d\x8e\xbb\xc8\x17\x9c\x55\x1d\x87\xfa\x19\x06\x9a\xa8\x96\x52\xe0\x11\xb9\xe1\x1a\x3d\xd7\x22\xda\x54\x3b\x0e\x6f\x53\x25\x2c\xab\x77\xd7\x79\x82\xc7\x45\x08\x06\xe5\x57\x26\x78\xa7\x4e\x34\xf5\x3e\x14\x9f\x72\x4a\x7a\xe3\x16\x7e\xe8\x1c\xb9\xcb\x0b\xda\x3d\x30\x58\x29\x2f\x65\xb4\x61\x59\xca\xb1\xca\x78\xc3\x35\x2e\x69\x0b\x32\xe0\xcb\x24\x4d\x0a\x20\x48\xc1\xdc\x57\x6d\x84\xcd\x8d\x86\xe7\x0f\x96\x93\x94\x7b\x36\x9c\xbe\x45\x7f\x24\x98\xd3\x0b\xb6\x7f\x49\x38\xa7\xdf\xb2\xc1\x2f\x7a\x33\x67\x7e\x59\x12\x94\xd3\x4f\x87\xb1\x78\xb0\x2c\xfd\xbb\x8c\x9b\x59\x6a\xf1\x7d\xfd\xe7\x95\xf1\x6e\x39\xa8\xc7\x43\x19\x88\x6c\x7b\x84\x99\xaf\x53\x71\xb7\xee\xac\x55\xaa\x78\x87\x1c\xac\x6d\x1b\x99\xb5\xbb\xda\x8e\x55\xb9\xec\xe2\x72\xc5\x5e\xf5\xb7\xde\x17\xf7\xb7\xfb\xf6\x54\x71\xc1\xd0\x00\xf2\x42\x14\xc9\xb8\xd0\x46\xf0\xd2\xbc\x10\x67\xf0\xf3\xf6\xc6\xa9\xf4\x6c\xf0\x3b\x37\x16\x9a\xd7\x77\x70\x8c\xb1\x00\x32\x6b\xae\xae\x3f\x97\xdc\x98\x86\x9b\xd5\x1d\x32\x76\x1c\xb3\xc8\x8a\xa4\xb9\xc2\xda\x77\x62\xfd\xa9\xf7\xd5\xa4\x4a\xb8\x06\x06\x57\x6b\xb6\xbd\xcd\x9d\xf9\xf5\xf0\x0d\x59\xd5\x4c\xcf\xf2\x44\x01\xaf\x06\x29\xb5\xf7\x90\xde\xb5\x3e\xf7\x88\x91\xfc\x54\x8a\x52\x98\xb5\xbf\x2c\xe3\x75\x33\xb6\x39\xc2\x3b\xf3\xaf\xb4\x51\x4f\x6c\x5b\x46\x1b\x66\x1b\x67\xb1\x48\xf9\xae\xf2\x6a\xe0\x2f\x15\x2a\x05\x1a\xd9\x03\x39\x2d\xa3\x52\x17\x6a\x0b\x20\x4c\xdf\x6e\x5e\x4a\x58\xf0\x8c\x17\x45\x9e\x2c\xcb\xa2\x15\xb0\x55\xe1\xb8\x3a\x30\xa1\x75\xf7\xfe\xea\x72\xf6\x76\x56\xcb\x26\x5d\xdc\xfd\x29\xfc\xf7\xcf\x37\xb7\x7f\x7a\xfb\xee\xe6\xe7\xf0\x6f\xef\x2e\x3e\x5c\x5f\xfe\xb0\x78\xff\xee\xe2\xba\x92\x73\xba\xb8\xbf\xb8\xbb\xba\xdf\x93\x56\x6a\x3e\xb5\x7b\x22\x78\x40\xc1\x65\x61\xa1\x96\x8b\xd8\xde\x2e\xe9\xa9\xaf\xd9\x85\x25\x24\xab\x50\xe6\xd9\xd4\x20\x64\xde\x51\x99\x97\x32\x88\x6f\x78\xc1\x49\xe9\x7c\xca\x2e\x98\x55\xac\x07\x30\xb4\x36\xce\x02\xb1\x35\x99\xd9\xc1\x26\x8c\xc7\x10\xf9\x9b\x9b\x17\x5b\x53\x2b\xe2\x49\x4b\x45\x48\xcb\x6d\x2b\x7f\xe6\xf2\xea\x51\xc8\xa2\x04\xce\x60\x9e\xa6\xcc\x0a\xac\xd3\x17\x82\xaa\x66\xdb\x4b\x9d\x6c\x93\x94\xe7\x5e\x17\xeb\x86\xda\x02\x87\xdd\xf6\xd5\x91\xd8\x34\x4b\x66\xed\xe5\xe1\xc3\x8c\x41\xbf\x2f\xdf\xcd\xc0\x05\x8a\x0a\x2b\xfa\x60\x1f\x3e\x97\xc8\xc3\x45\x4f\xdc\x72\x00\xe8\x17\x8a\xe2\x69\xf8\x78\xfa\x72\xf7\x42\xd4\xc7\x6c\x62\x1b\x79\x7e\x2e\x10\x90\xeb\xa4\xfd\x8f\x2b\x59\xe4\xbb\xc1\x7e\xcd\x3d\x54\xa4\x6a\xf0\x4d\x09\xef\x53\xd5\xca\xc2\x70\x07\xb3\xad\x5f\x83\xb3\x63\xc1\x68\x14\x8d\x77\x41\x77\x01\xcc\xc4\x1d\xfe\x77\x6a\x0e\xa1\x6f\x75\x1c\x42\xd2\x10\x18\x85\xa5\x2a\x65\xac\x09\x99\xb4\x4d\xe4\xf9\x96\x7f\x7e\x65\xdf\x14\x8b\xf0\x1d\x63\x3d\x10\x2c\x89\xd4\xdc\x44\x76\xc6\xc8\xf5\x0f\xd7\x5c\xf6\x8c\xd7\x7e\x6f\xd1\x5a\x56\xb8\xf6\xf8\x3b\x2a\x62\xac\x1e\xc5\xae\x6d\xfe\x1a\xaa\x23\x88\xe3\xa2\x0d\x0f\x8d\x64\xb9\x30\x5f\x74\x00\xae\x14\x71\x79\xee\xdf\x00\xd4\xae\x28\xa3\xb5\xdb\xee\x30\xcb\x7b\xd4\xb6\x69\xcd\x2f\x3f\x83\x6c\x0c\x3d\xc9\xcc\x19\x66\x9b\x6d\xa0\x93\x80\xe9\x94\x46\x33\x93\xf5\x57\xb5\x64\x2b\xa8\xd2\x20\xe5\xe3\x5c\x40\x60\x1b\xa6\xc2\xf2\x1c\x03\x0d\x4f\x23\x85\x6d\x97\x40\x2a\x34\x84\x7b\xa5\xb9\x6e\x89\x4f\x25\x65\xec\xbe\xfb\xf5\xb8\x73\xb6\xc8\x77\xcc\x72\xea\x87\x55\x22\x54\x24\x45\x67\x2e\xf4\xab\x94\x49\x1b\x37\xd7\x6d\x29\xcd\x51\x7c\x0a\xb0\xc3\xf0\x6c\x56\xed\xa1\xf4\xcf\xbd\x85\x14\x36\x10\x9b\xe3\xf7\x9f\x8d\xcc\xf0\xa7\x1a\x87\x21\x3d\x0e\x60\xbb\xd4\x7a\x78\xa0\x2d\x79\xf4\xf0\xc4\xf3\x18\x63\x85\x80\x3e\x98\xb2\x1f\xd4\x93\x78\x14\xf9\x84\x45\x22\x2f\x38\xd1\x1b\x69\x48\xbf\xc2\x86\xa2\x76\xe6\x12\x50\xec\xc8\x15\x25\x41\x34\xba\x48\xd6\x1b\x73\x9f\x0c\x92\xe7\x2a\x37\xe6\xa8\x40\xee\xb8\x4c\x44\x44\x28\xd3\x31\x00\xab\x94\x3f\x36\xf9\x9a\x0e\xa9\x84\x67\x33\x57\x8a\x67\xb3\x53\x96\x3b\xbe\x0f\xee\x40\x03\x46\x46\x13\x29\x40\x26\x6c\xad\x52\x2e\xd7\xd3\xe9\x94\x89\x22\x9a\xbe\x1a\xb5\xd0\xa9\xc1\x30\xdf\xe5\x20\xa8\xa9\x52\x5a\xa4\x3b\x47\x82\xe2\x8a\x04\xcc\x30\x43\x8d\x88\x4e\x30\xe4\xd1\xb2\xfc\xef\xea\x15\xf5\x5f\x36\x74\xde\x7e\x53\x1d\x5d\x82\xd6\xd1\x0e\x48\xd1\x8c\x68\x09\xbf\xdf\x7e\xf3\x3a\xa8\xa4\xb2\x83\xe7\x54\xc9\xb1\x75\x82\x3f\xa9\x2e\x61\xe5\x83\xb8\xc9\x5a\x5b\x22\x22\x87\x83\x6a\xab\xba\x22\x16\xb5\x72\xb7\x23\x2a\xdd\x7a\x8a\xd6\x46\xd6\xab\xb5\xec\xbb\x96\x6d\x51\x9b\xee\xd1\xdb\x62\x3f\x3b\x7e\xeb\x0b\x8d\xac\x07\xf4\x85\xbb\x63\x5c\x27\x2c\x29\x4a\x77\x70\xe3\x72\xd5\x81\x10\x59\x8e\x83\xc8\x78\x25\xf0\x0f\x75\x2a\x3e\x73\xe0\x08\x76\x82\x44\x81\x2e\x54\xce\xd7\x82\x6d\x45\x9c\x94\xdb\x56\x63\xe3\xba\x7b\x0c\xda\x4b\xa5\xe5\xb6\x9b\xea\xec\x58\x07\xda\x77\x12\xff\xeb\x12\x1e\x37\xd8\x81\xf6\x12\xe2\x56\xa4\x84\xfa\x8b\x61\x70\x1a\x6b\x73\x52\xe6\x89\x06\x52\xbe\x43\xca\xc2\x5c\x33\xd8\x34\x64\xeb\x76\x19\x86\x5f\x2b\xb3\x7b\x66\xb3\x3b\xf4\x13\x8d\xb3\x0a\x29\xbe\xee\x43\xa1\x8e\x21\x1b\x3d\x47\x20\x81\x71\x50\x5e\x13\xdc\xc6\x80\x8c\x9a\x40\x2e\xd0\x20\x65\xe2\x0b\xc5\x56\xb6\xd0\xe8\x41\x04\xd4\x4d\x31\xd0\x54\x3f\x21\x0f\xc8\x9f\x7e\xa7\x6d\xce\x9e\x60\x15\xde\x63\x29\xfc\x43\x30\x37\xf0\xf8\x9d\x45\xd3\xe0\x1b\x62\x13\x40\xb0\x14\x73\x59\xb4\x36\xe0\xc1\x66\xd0\x16\xfe\xe4\x27\x5e\xa6\xed\x5f\xa7\xf6\xe1\xab\x28\x79\x73\xf1\xf3\x1d\xc3\xa1\x26\x42\xe3\xbc\xaf\xa3\x41\x23\xfb\xf1\x3c\x30\x5c\x8b\x03\x3c\xc1\xca\x3c\xe0\xa0\x5b\x46\x6b\x33\xec\xa2\x88\x36\xde\xf3\xa8\x6a\xd7\x92\x9e\x19\xbd\xe7\xd6\x53\x34\x23\x54\x32\xc4\x9c\x25\x6b\xa9\x42\x75\x01\x25\x05\x24\x69\x8c\x01\x52\x61\xb3\x2c\x29\xf6\x03\x7b\x46\xb2\x2a\xed\x5b\x6a\x85\x42\xc0\x06\xbd\x67\x25\xd7\x06\x57\x8a\x04\xb9\x58\x2c\x2a\x12\xef\x44\x24\x8f\x55\x27\x16\xae\x56\xb7\xcf\x65\xf5\x51\x8d\x41\xb2\xc8\x9b\x24\x17\xc8\x07\xaa\x8d\xf7\x56\x24\x8f\x66\xa3\x36\x97\xb5\x5b\xa0\x60\x01\x9a\x6b\x6f\x2e\xb1\xdb\x01\xa9\xe8\x83\xd8\xe9\x50\x8b\x8b\x56\x14\xeb\x5a\x90\x89\x79\x1f\x9a\xaf\xfd\x53\x01\x03\xb7\x08\xb4\xc5\x87\x9d\x65\xf8\xd0\x1f\xcd\x8f\x7b\x20\x7d\x8d\xc6\xcd\x1a\xf4\x95\x5c\x3e\xa6\x48\x66\xc2\x8f\x33\xcd\xa1\x47\xed\xb4\xe8\xce\xfb\xf0\x2c\x5c\x7c\xcd\xfd\x76\x2e\x89\x77\x38\x38\xe4\x8c\xc1\x69\x4e\x1b\x95\x97\x22\xdb\xe9\xae\x42\x8d\x01\xd4\x70\x96\x26\xaf\x5d\xee\xdf\x4a\x39\xce\x25\x09\xe6\x83\xe2\x3d\xc5\xf0\x5a\x1f\x78\x20\x14\x8c\x26\xb7\x13\xfe\xe5\xaf\x30\x34\x70\xc4\x8e\x86\xa2\x6e\x78\xfb\x89\x84\x19\xbe\x0b\xd9\x8a\xbc\xb2\xb8\xab\xbb\xab\xcb\xdb\xab\xfb\x2f\x06\x0f\xb3\xd8\xac\xd1\xf8\x30\xdb\xcf\x37\x57\x6f\x2f\x3e\xbc\xbb\x5f\xbc\x99\xdd\x3e\x07\x40\x8c\x3e\x3a\x00\x21\x76\x47\x74\xe6\x97\x4a\x16\xe2\xf3\x51\x67\x72\x5e\xca\x05\x1f\x51\xa9\xe0\x24\x03\xfa\xdc\x1d\x6c\xb4\x49\xc7\xee\xb8\xd2\x89\x9b\x0f\x4f\x34\xc7\xbe\xbe\xf2\x41\xc3\x55\x92\xa6\x50\xe6\xe8\xc2\xeb\x54\x14\x64\x06\x15\xec\x8f\xa5\x23\x24\x9b\x3a\x97\xcb\x0a\x1f\x3d\x84\xfc\x36\xe6\x12\x8c\x05\x8e\x99\x19\x80\x3c\x81\xf2\xb1\x3e\xc6\xf6\x75\x22\x85\xef\x06\x0a\xb0\x96\x92\x75\xd2\xec\xd2\x24\x3e\x67\x15\x2b\x39\x5e\x43\x7d\x4d\xbb\xe2\x2a\xeb\xd3\xba\x9f\xf6\x43\xf7\x86\xb8\x89\x13\x89\x8e\x69\x65\x37\xdf\xb5\x2f\xdd\x73\xbf\x05\x60\xdc\xcd\x4c\x72\xc8\x41\x80\xc6\xa9\x9f\x48\x9a\x08\xd4\x4a\xf1\xc9\x89\x87\x04\x51\x34\x6a\x55\x1b\x67\x63\x0a\xcd\x58\x27\x90\xa9\xe0\xc4\xdc\x10\xa5\xa5\x2e\x44\x4e\x61\x93\x8b\x9f\xef\xe6\x12\x85\xf0\xe9\x14\x22\x3d\x0d\x7c\x04\x62\x38\x54\xe5\xf9\xd6\x43\x09\x2d\xd8\x4b\x8c\x51\x6f\x05\x97\x1a\xf5\xa7\xd3\x54\xe4\x7e\x65\x60\x7f\x84\x88\x49\x83\x0c\xa8\x2a\xfd\xef\x49\x82\x58\xc1\xae\x35\xfd\xa5\x4f\x49\x84\xb7\xbe\x9e\xba\xaa\x68\x01\x20\xfa\x9c\x2b\xa7\xa5\x4e\x61\xe8\x2a\x22\x6c\x6d\xeb\x22\xaa\x56\x0d\x0c\x5a\x4b\xf7\xd8\xdc\x2f\x4b\xe9\x84\x4b\x69\xc0\xb9\x1e\x9e\x12\x6c\xa3\x8c\x01\x75\x52\x18\x3e\xcd\xec\xaa\xf8\x53\xc0\x3f\x99\x61\x6c\x3d\x75\x6a\x82\x6b\x47\x9c\x3a\xa8\xb0\x76\x1c\x9c\xf3\xa2\x85\x2e\xc4\x2b\xfb\xd8\xdc\x4e\xaf\x96\xdb\xf3\xd0\x72\x5d\x58\xbc\x9d\x54\x85\x2d\xb0\x77\x10\x37\xc2\xeb\x99\x2f\x38\x66\x87\xde\x3e\x12\x5b\x82\xf5\x52\x16\x47\xea\x21\xdd\x87\xb8\xc0\x4a\x11\x25\xf6\x22\x94\x54\x25\x04\xb1\x27\x38\x18\xb3\xf8\x0e\x57\xdc\xab\xae\x39\x47\x96\x77\x10\xd8\xe1\xfa\xe6\xfa\x2a\x84\x2a\xcc\xae\xef\xaf\xfe\x70\x75\x5b\x29\xbf\x7d\x77\x73\x51\x29\xa1\xbd\xbb\xbf\xad\x55\xce\x7e\x7f\x73\xf3\xee\xaa\x81\x79\xb8\xba\x9f\xfd\x58\x69\xfc\xcd\x87\xdb\x8b\xfb\xd9\x4d\xe5\x7b\xdf\xcf\xae\x2f\x6e\xff\x33\xfc\xcb\xd5\xed\xed\xcd\x6d\xed\x79\x1f\x2e\xfb\xd1\x13\x95\xd7\x68\x0f\xff\xf8\xe4\x6c\xc0\x1b\xd8\xba\x8d\xab\x8a\x84\x47\xec\xe2\x81\x20\xac\x7d\xcb\xd1\x56\xd7\xc6\x21\x9d\x38\x6e\x0c\xd3\xd5\x51\xab\xee\xf4\x12\x8a\x95\xa1\xcb\xf8\x71\x66\xcf\x9c\x6a\x8b\x53\x80\xe2\x7a\x1d\x40\xf7\x94\x5a\xe0\x56\x17\x50\x82\x84\x43\x9b\x41\x06\x6b\xcd\x3b\xe5\x4d\x64\xfc\xec\x3d\xb5\xcf\xd8\xd7\x4f\xcf\x53\xb3\x87\xee\xe3\x54\xe4\x05\x7d\x9d\x0e\x1e\x66\x6b\x83\x93\xd8\x3a\x0a\xf6\xc3\xe0\xe0\x86\xd7\x30\x2b\x27\x58\x8e\x5d\x5a\x77\xed\x35\x0e\xfd\xd4\x52\x63\xfb\x4f\x0f\x69\xf6\xbd\xc6\xac\x30\xa2\xdf\xc0\x07\x33\xa6\xdf\xf7\x5c\x3f\x8c\xed\x37\x3d\xa4\xd9\x6f\x70\xfb\x0e\xea\x37\x04\xbc\x8b\x76\xd6\x8b\x11\x46\x2c\x6c\xa6\xda\x3d\x57\x92\xeb\xbe\x12\x48\x4a\x0e\xeb\xa3\xd9\x00\xcf\x7b\xbd\xcc\xf8\xf0\x44\x06\xf4\xc6\x6d\x57\x5e\xa3\x4c\xbe\x83\x4f\xe1\x0d\x97\xb9\xe0\x0f\xb1\x7a\xa2\xf9\xa8\x23\x43\xd9\x20\x6b\x5e\x1d\x20\x63\xc3\xed\x11\x01\x42\xd4\xe6\x91\x88\x52\xf3\xcd\x03\x4c\x2e\x21\xd2\x5f\xf4\xc1\x02\x2d\xc4\x3a\x6f\x08\x30\xb5\x48\x3f\x3b\x73\x89\xde\x7c\x9b\x9e\xa2\x99\x55\xd3\x23\xaa\xf4\x87\x57\x75\x3e\x34\x26\xd7\x75\x30\xb1\x54\xcb\x50\xe6\x00\xa6\x5b\xe6\x70\x67\x82\x01\x49\x24\x04\x93\x73\x73\xe1\xc9\x45\x94\x68\x11\x28\xde\xb4\x9e\xd8\x9f\x8e\xe3\xc7\x2f\x78\xd1\x1a\x76\x1d\x1c\x0f\xe7\x51\x51\xf2\x94\x7d\x2a\x45\xbe\x23\x7a\x31\x8c\x55\xe2\x5f\x22\x2e\xb1\x68\xa2\x10\xdb\x0c\x8a\x70\x43\xb4\xff\x5c\xfe\x0c\x40\x09\x9c\x82\x17\x9a\xfd\x01\x20\x0f\xf6\xcb\x74\x08\x6f\x79\x01\x67\xf1\x9f\xf1\x19\xee\xb3\xe9\x5c\x56\x14\x24\x82\x5f\x55\xc4\x24\xa6\x73\x69\x29\xdc\x63\x15\xe9\x29\xdc\xf8\xa6\x2a\x5f\x9f\x93\xbc\xa8\x59\xec\xea\x61\xa9\xd4\xc3\xb9\x90\xe7\x10\x93\x2a\xce\x79\x59\xa8\x73\x80\x4b\xe1\xfc\xeb\x73\xab\x42\x68\x65\x1c\xf5\xf9\x26\x79\x14\xf0\xff\xa6\x9b\x62\x9b\xfe\x9b\xce\x36\x9f\xcf\xd6\x69\x7e\x66\x7e\x7b\x16\xfe\xf6\xcc\xfe\xf6\xcc\xfe\xf6\xcc\xfc\x0c\xff\x5f\xb6\xc3\xf4\x8e\xf8\xcc\xcd\x59\x36\x99\xcb\x44\x6a\x91\x17\xe0\xfd\x3c\xe5\x49\xe1\xa5\x3a\x76\xec\xc5\xff\xfc\x0f\x9b\xe6\xfc\x09\xcb\xe7\xde\xf0\x82\xbf\xc7\xf8\xe2\x3f\xfe\xf1\x02\x12\xaa\x58\xdf\x92\xf1\xfc\x53\x29\x8a\xb9\xd4\xc2\x6c\x42\xf6\xff\xcd\x25\x64\x60\xb7\xbb\x45\x81\x71\x57\x8c\x41\xc6\x9a\xfd\x07\xb6\x39\x43\xaa\xbd\x58\x9b\x96\x3a\x90\xf5\x09\x4f\x5b\x84\x6b\x3b\x42\xf4\x9f\xd2\x37\xf4\xfd\x11\xdb\xfa\x53\x5a\xdd\xd5\x56\x2c\x42\x7f\x4a\xe1\x00\x4d\x15\xb7\x60\x2d\xe6\x16\x2f\xdc\x93\xa9\x73\x6d\x7b\xa4\x01\x0d\x78\xd6\x34\x7d\xfb\x5e\xb9\x43\xba\x5f\x1b\xb9\x6f\x98\x11\xc8\x15\xf8\x3c\x04\x64\xcf\x13\xb3\x43\xee\x30\x12\x0a\x9e\x1b\xbe\x39\xf8\xa4\x94\x3a\x77\xed\x61\xe0\x42\xff\xf6\xf5\xf9\xf9\x84\xad\x35\xfc\xcf\xf2\x13\xfc\x0f\xa0\x87\x4e\xc5\x58\xd9\x18\x4c\x07\x84\x6b\xce\xf2\xfe\x99\x38\x05\x8a\xee\x4b\x90\x24\xd7\x96\xe9\xf7\xa5\x8c\x53\xe1\xab\x01\x2b\x29\x91\x54\x59\xe1\x6c\x0c\x8c\xd5\xe5\x28\x60\x8e\x97\x22\xe2\xc6\xf0\x35\x9e\x8d\xe0\x52\xb5\x2a\x84\xc4\x68\x58\xee\xd5\xaa\x38\x46\xae\xc0\x2d\x06\x28\x24\x2f\x08\x72\x2e\xe0\x8f\xf0\x10\x60\x1d\x9e\xd4\x3f\x62\x3b\x55\x12\x81\x2e\xd0\x42\xc6\x22\x4a\x81\xa5\xdc\x92\x7d\xb0\x5c\x14\x65\x2e\x19\x67\x19\x97\x31\xd7\xb0\x02\x57\x39\x64\x3b\x73\xc6\x9b\x1d\x9d\x20\x1c\x57\x95\x05\x50\xd8\x20\xb2\x20\x1c\x09\x64\x38\x0e\xfa\x3c\x09\x3a\x81\x67\x02\x10\xad\x36\x7e\x38\x9d\x4b\xab\xa7\x44\x58\x38\x8c\x94\x45\x2a\xdb\x11\x41\x49\x7d\xd0\x13\x1b\x39\xa3\xe1\x9e\x78\xbc\x49\xfd\xbb\x13\x96\x54\x53\x6b\x40\xa6\x5c\x04\x8a\xb0\x56\xb5\xf6\xa5\x90\x91\x8a\x45\xae\x5f\x99\x6d\x98\xb8\x7b\x07\xfa\x0f\x89\xf6\x93\x01\x56\xca\x1c\x6e\x14\x2d\x34\xcd\x3b\xd5\x11\x33\x3a\x15\xfa\xdd\x36\x3f\x67\xff\x56\xf9\xd6\x51\x30\x6d\xfd\xa5\xff\xfc\xa2\x88\x98\x10\xd7\x69\xef\x9c\x87\x87\x20\x70\xcb\x86\x16\x17\x1b\x45\x1f\x87\x9c\x13\x2b\xbf\x99\x14\xa0\xf0\x95\x0b\x5d\xcc\x25\x9d\xc0\x13\xb6\x12\xdc\xf8\x79\x13\x16\xe9\x47\x34\xc6\x78\xdc\x17\x4f\xca\x63\x70\xac\x76\x03\x80\x61\x2b\x8d\xfb\x20\x31\x7e\x0d\x10\x05\x3c\x2a\x10\x60\xd0\x75\x43\x77\xae\x0a\x0c\x56\xab\x41\x3c\x60\x1c\xac\x14\x40\x5d\x76\x27\x54\xa2\x80\x91\xd8\x61\xa2\x98\xd5\xfb\x81\x1f\x18\xc3\x83\x6f\x87\x30\x90\xc0\x38\x82\xc7\x4d\x58\x5a\xdc\x67\x3e\x87\x1b\xf2\x31\x43\x6c\xa6\x6b\x53\xf5\x0c\x04\x74\xe0\xb0\xb8\x85\xf9\xe9\xde\x80\x95\x16\xb9\xd5\x29\xc0\x77\x45\x3e\xb8\x4d\x92\xc7\x67\x19\xcf\x8b\x9d\x5d\xbe\x69\xb2\x04\x7a\xf3\x34\x79\x10\xec\x22\xcf\xd5\xd3\xa9\x47\xa1\xd3\xb4\x74\xdd\xb0\x8f\x41\xb2\x8f\xbd\xe5\xb7\xb2\x41\xd6\xc3\x1d\x87\x31\x4f\x76\x05\x3e\x5a\x9f\x93\x8b\x22\xdf\x2d\xcc\x42\xdc\x66\x9d\x96\x62\x50\xd1\xc4\x70\x27\x77\x1c\xa9\x65\x2d\x84\xd1\x49\x6a\x59\x99\xd5\x6f\x87\xd4\xb2\x85\xaf\xb2\x49\x6a\x39\xbb\x9e\xdd\xcf\x2e\xde\xcd\xfe\x6f\xad\xc5\x9f\x2f\x66\xf7\xb3\xeb\x3f\x2c\xde\xde\xdc\x2e\x6e\xaf\xee\x6e\x3e\xdc\x5e\x5e\xf5\xb3\xd4\x34\x7b\xef\x5d\xf0\x33\x16\x3e\xe7\x35\xbb\x0f\x80\x1a\x58\x6c\x40\xfe\x37\xe9\xfb\xc1\xaa\x32\x9b\x39\x91\xeb\x09\x6c\xd4\xd7\xec\x2a\xcf\x67\x5b\xbe\x16\xef\xcb\x34\x05\x38\x15\x56\xf6\x5c\xe6\x02\x2e\x9e\x13\xf6\x5e\xc5\xb3\xe0\x77\x50\x8e\xd8\xfa\x1a\xf0\x7c\x1e\xc7\xb9\xd0\x1a\x1f\x3f\xa1\xe7\x07\xe0\x21\x57\xea\x48\xe0\x39\xfe\xc8\x93\xd4\xdc\xdf\x5e\x83\xc6\xbe\x5a\xad\xb0\x7c\x66\xe2\x0a\xa7\xd8\xa7\x52\x15\x9c\x89\xcf\x11\x30\x33\xb5\xaf\x93\x77\x6a\xfd\x15\xa0\xca\x03\xd2\x53\x1d\x97\x14\xd0\x71\x5a\xb4\x1f\xe7\xed\x86\x80\xde\xf2\x47\xfc\xe9\x5b\xfc\x65\x7b\x80\xb2\x48\x4f\x50\x29\xfe\x4e\xad\xdb\x55\x35\xc0\xbb\x26\x29\x10\x4a\x24\x44\xc4\x3b\xa1\xd6\x4c\x27\xf2\x61\x2e\x7f\xde\x08\xc9\x54\x99\xe3\x9f\xe0\x9a\x6f\xdc\xcc\xb4\xd4\x1b\x01\x32\x9b\x13\xf6\x24\xd8\x96\xef\xd0\x6d\x86\x3b\x81\x93\x02\x80\x25\x03\xa7\x88\xf9\x75\x9a\x48\x63\x2d\xb2\xc4\xd6\x25\xd4\xa7\xfe\x14\x37\x2e\xcb\x4b\xc6\x8f\xa7\x0d\xed\x3b\x4f\x2b\xf8\x3c\x08\x95\x79\xdc\xa4\x05\x08\x91\xe5\x06\xa5\x41\xa5\x1e\xca\xcc\x33\x18\xbe\xb0\xc9\x49\x18\xee\x47\x95\xc4\x2c\x2e\xb3\x34\x89\x9c\xdd\x7d\x52\x79\x27\x4d\x2b\x16\xd0\x0c\x3f\x75\xea\x65\x61\x7d\x2f\xd6\x52\x9d\x13\x20\xe9\x7a\x08\x5b\x9f\x99\xb2\x96\x25\x32\x4a\x4b\xd0\x50\x2a\xb5\xc8\xcf\x8a\x3c\x59\xaf\xc1\x01\xb7\xb5\x7e\xdf\x3e\xa7\xad\xe7\xcc\x3b\xbe\xac\x2d\x2c\x3a\x4f\xd5\x3a\x89\x78\x1a\x82\x9b\x3d\x2a\xc2\x91\x66\xda\x6d\x4f\x0a\x93\x50\x07\x61\x3b\xd4\x49\x06\x94\xe5\x02\x78\x5b\x17\x60\xca\x17\x64\xee\x8e\xe9\xf7\x8a\x99\x0b\x3a\xf6\x2b\xa4\xb4\xb4\xe9\x05\x7b\xc2\xf9\x67\x5b\x99\x21\x14\xd6\x07\x09\x62\xa6\x9e\xa4\xc8\xc1\x83\x05\xd8\x87\x79\x53\xa9\xc0\x37\x71\xd2\x43\x0e\x9f\x6c\xa5\xb7\x56\x0e\x88\x8d\x95\xb3\xeb\xe4\x51\xc8\x2f\xcf\x41\x1c\x3c\x20\xe2\xd1\x46\x2c\xac\x5f\x7e\x6a\x93\xe5\x0e\x80\x91\xc6\xca\x6a\x00\x84\xa6\xd4\xa5\x37\xe1\xea\x84\x3d\x6e\xda\x2e\x4c\x24\xf6\x54\x64\x99\x4e\x2c\x62\x11\x3d\x7c\x71\xd3\xec\x41\x56\xb6\x23\x8c\xb3\x37\x22\x7a\x60\x1f\x6e\x67\x58\x0d\x9c\x14\xcc\x98\x02\xbd\xf1\x9a\x26\x9d\x77\xb7\x82\xaf\x9f\x81\xdc\x68\xa8\x28\x8b\x67\x16\x77\x52\x54\xa6\x43\x04\x88\x82\x7a\x49\x63\x24\xa9\x96\x06\x80\x60\xbc\xb0\x52\x1d\x10\x88\x67\x7a\x0b\xca\x1c\x65\x11\xc8\x59\xa5\x7c\x29\x52\xdd\xfe\xc2\x99\x8a\x17\x36\x4f\x72\x2c\x98\xa7\xd1\x96\x8d\x63\x50\xd6\xd1\xd6\x31\x70\xe3\xb1\xde\xd3\x17\xd9\xc3\xef\x74\x40\xaf\xa1\x42\xba\x5f\xb8\xd7\x73\x2d\x6a\xfa\xee\xc9\x8a\xf4\x43\xb0\xa0\x1f\x94\xb2\x8d\xbd\x34\x2d\xbd\x57\x31\xc1\xf4\x1c\x9f\x97\xf1\x82\x04\x45\x4f\x3c\xae\x22\xec\x82\x53\x13\xd7\x10\x1b\xd0\x85\xe0\x31\x53\x2b\x8a\x26\x66\x59\x9a\x00\x91\x6b\x8c\x9c\xd1\xc0\x9e\xa1\xab\xe8\xf8\xb0\x35\xdb\xd9\x80\xe4\xe3\xbd\x05\xe2\xf5\xe6\x1b\x7d\x92\xcb\xbc\x57\x35\xc8\x5d\xf7\xa9\x8e\x55\xca\x72\xf5\x48\x87\x5e\xa1\xfb\xa3\x69\xeb\x54\x2d\x61\xa0\xba\x41\x71\x3d\x06\xda\x58\xa7\x3c\x89\xc7\x1c\xef\x76\x4c\x6e\xdc\x4f\xfb\x3a\x78\x63\x23\x1d\xee\x49\x76\x9a\x19\xd1\x6c\x87\x19\xfc\x5a\x19\xfb\xbe\xbb\x36\x24\x08\xb5\xcb\x10\x3a\x6f\xdc\x92\xcc\xc3\xae\x70\xe6\xb8\xe3\x5a\x5d\x7d\x97\xa3\x26\xba\x49\x8c\xb2\x67\x2c\x3d\x97\x4a\xff\x24\x1f\xc1\x6e\x81\x3b\xd7\x51\x5c\x8c\x61\x0a\xb6\x53\x87\x18\x5f\x33\x9e\x7e\x12\x2b\xc5\x17\x83\x66\xb4\x3e\xee\x76\x17\x1f\x33\xe4\xcf\xb1\xa3\xca\x42\xf9\x90\x3f\xbc\xcf\x0c\xf8\x33\xc3\xb2\x2e\x30\x1b\xb3\xb8\x03\x2e\x60\x7d\x30\xbb\x35\x47\x80\x50\x47\xc1\x60\xb3\x5c\xd8\xe4\xd1\x4e\x14\xae\xb8\x3f\xb5\xca\x49\x90\x1b\x71\x6f\x5d\x65\x37\xb1\x04\x06\x8e\x91\x0a\x32\x19\xe4\xef\x45\x6a\x9b\x29\x09\xd8\x14\x2c\x55\x9a\x4b\x6a\xdc\xea\xdf\xba\xf4\x4a\xa5\xde\x6d\x42\x51\x2d\xac\x9e\x10\x5a\xa5\x8f\x94\x47\x0b\x88\xe7\x41\x39\xcb\x74\xf0\xd2\x5c\x10\xcc\x75\x18\x12\xbc\x64\xde\x01\x0e\x5e\x13\x81\xcd\xc5\x3a\xd1\x85\x08\x4b\x04\xc3\xdf\x9f\x4c\xaf\xaf\x72\x83\xee\x1b\xfa\x4e\xbd\xbe\x7d\xae\xb0\xd9\xb5\x23\xfa\xb3\xcb\x44\x3c\x73\xbf\xeb\x5f\x0c\xb5\x2a\x6e\x6f\x24\x2a\xa7\x00\xae\x01\xbc\x02\x68\xe4\x7b\xd2\x8e\x32\xde\x4d\x12\x31\xf1\x70\x8f\x6a\x33\x53\xb4\x2e\x79\xce\x65\x21\x84\x9e\x4b\xca\x3e\x22\x6f\x59\x48\xcd\x51\x43\xc3\x39\x07\x37\x52\xba\x40\x1a\x20\xf8\xc9\x8a\x27\x69\x99\x77\xde\x39\x71\x55\x1e\xc4\x3d\xd0\x37\x4a\x97\xd0\x2c\x6b\x9b\x34\x57\xc5\x1a\xec\x22\x47\x9d\x51\xcf\x1d\x56\x8b\x3c\x3b\x5e\xc1\x9a\xdc\xe1\xf3\xed\x02\x8e\x1d\x85\xad\xbf\xd3\x8b\x4c\x8d\xb0\x78\x7f\xfa\x9d\x7e\xaf\x3a\x4a\x82\xf5\xa7\x46\x60\xac\x27\x87\xfe\xa9\x8b\x44\x9f\xeb\x07\x48\x3f\xed\xbb\x8f\xef\x0f\xb2\xff\xf6\x37\xfb\x93\x54\x9d\xb6\x0b\x56\xed\x86\xcb\x38\x35\xf7\x54\x5e\xd4\x4e\x20\x0f\xf6\x35\x7e\x71\x61\x8d\x63\x77\x65\x17\x14\x4a\x2c\xa2\x46\x95\xdd\xbe\x71\xaa\x95\xe7\xf5\x02\xea\x6a\x4f\xa9\x16\xcd\xb5\x15\x6b\xf8\x93\x9d\x84\x1e\xdd\x86\xed\x5e\x82\xab\x64\xfd\x0d\x5c\xb2\x7e\x6c\x5a\xca\x88\xb6\x22\x9d\x5f\x0e\xf9\x7d\xe4\x66\x84\x22\x1b\x63\xcc\x42\x9e\xde\xb9\x24\x1d\x58\xcc\xbc\x42\xca\x0d\xb9\xa8\x34\xfb\xce\x55\x5e\x7e\xf7\xef\x96\x89\x68\xc7\x56\x30\xd6\x40\xf7\xa5\xa2\xa8\xcc\x21\x2d\x4a\xa1\x1b\x26\xf0\x6c\x1a\x43\xa7\x7e\x81\x27\xb2\x03\xb3\xa0\xfb\xd4\xe6\x3d\xb8\x58\x5d\xe5\xa5\xee\x21\x44\x83\x8a\xb6\xee\x2c\x24\xe9\x95\x5c\x17\x4c\x17\x22\x6b\xb5\x4a\x15\xa7\xab\x2a\xda\x7c\x84\xdb\xe5\x25\xa3\x07\xfa\xba\x23\x6c\xf4\x45\x70\x9d\xfe\xe3\xdd\xcd\x35\xcb\xf8\x0e\x70\x61\x85\x22\xb5\x6d\x20\x63\xac\xef\xdf\x7d\x33\x50\x7d\xf9\xea\x66\xc3\x31\xb5\x00\xd3\xf6\xd8\x2d\x77\x6a\xfa\x35\x3b\x04\x6b\x86\x96\xa4\xd9\xca\xb9\x4a\xcf\xb2\x94\xcb\x00\xfa\xab\xa7\xac\xf6\xf8\x30\xd7\xeb\xb2\x3e\x84\xa6\x81\x0e\x40\x38\x85\xd6\x42\x5e\xb6\x82\x43\xab\x3a\xd4\x47\xa5\x77\x3b\x6d\x44\x2f\xe8\xed\x47\xa4\xd3\xe7\x91\xd9\x26\xc8\x2c\x60\x53\xd6\x0e\xf5\xc0\x35\x00\x12\x47\x4c\x54\xbf\x68\xf6\x5c\x5a\x4d\x54\xf5\xa4\x59\x8c\xdc\x0b\x65\xa2\x37\x10\x9f\xc4\x84\x00\x80\x83\xc8\xbe\x20\x72\x21\xe7\x52\x9b\x09\x85\x98\xa6\x78\x14\x14\xd8\xa8\x24\xe3\x66\x6f\xde\xb9\xfc\x3e\x4e\x12\x09\x71\x75\x0c\x7d\xe0\x98\x1d\x73\x81\x69\x55\x71\xde\xcf\x71\xff\x23\xcf\xfa\xaa\xc6\x8e\x6e\x71\xdf\x2c\x39\xe6\x99\xba\xd7\x09\xfa\xb2\xa0\xcd\x53\x29\x1d\x0b\x47\xef\x83\x3c\xd2\xfc\xb4\x92\x5e\xef\xe7\xd7\x1f\x7c\x09\x1b\x56\x09\x38\xc2\xf6\x04\x24\x70\x0e\x5b\xe3\xfc\x65\xb3\xcb\x41\xf9\x04\xd8\xab\x30\x92\x36\x65\x77\x42\xb0\x8f\x30\x52\xe6\x61\x1f\x49\x59\x0b\xe0\x82\x05\x4f\x5a\x85\x4f\xe0\xdb\x33\xb9\x52\xc7\x19\x83\x7c\xdd\x80\xa3\x1d\x35\x2a\xed\xfd\x3c\x16\xf0\x06\xa5\x8c\xf2\x79\xeb\xef\x5b\xdf\x6b\x0f\xbc\xed\xbd\xbf\x93\x53\x55\x9e\xed\xa9\x39\x9f\x61\x8a\x0f\x13\xfe\xaf\x2c\x12\xf3\x96\x13\x64\x2d\x7e\x90\xea\x49\xa2\x2f\x40\x4f\x62\x2f\xcd\xfe\x83\x03\x0c\x03\xa8\xe8\x16\x94\x68\x0d\x5f\x01\x8d\xf2\x85\xfb\x37\xbb\xc3\x5c\x11\xf6\x19\x74\x42\x34\x38\x3f\xa4\xf0\x01\xd6\xfc\xe5\xc5\x84\x7d\x3f\x61\x97\x13\x36\x9d\x4e\x5f\x4d\x98\xe0\xd1\xc6\xf6\x08\x7f\x82\xc8\xb1\x82\xaf\x4d\xdb\xa4\x9c\xb0\x0a\x1e\x00\xb2\x37\xe6\xb0\xb2\x6c\x61\xdc\x7f\x2b\x88\x3c\xd8\x57\xc0\x1a\x46\x2a\xb8\xa0\xbc\x7a\xb4\x51\x89\xef\x14\x40\x34\x45\xa4\x72\x0b\xf2\xd4\x85\xca\x2d\x60\xed\x91\xe7\x3c\x91\x50\xda\xcd\x9b\x70\x5d\x7a\x72\x40\xee\x2c\x3e\xf3\x2d\xbc\x7f\x22\x1d\xbf\xa5\x19\xa6\x7b\xd7\xff\x62\x97\x51\x40\xfa\x29\x4f\x8a\xc2\x9c\xce\x7a\x2e\xef\xd8\xeb\xff\x60\x17\x59\x96\x0a\x76\xc1\xfe\xce\xbe\xe7\x92\x4b\xce\xbe\x67\x7f\x67\x97\x5c\x16\x3c\x55\x65\x26\xd8\x25\xfb\xbb\x19\x36\xd3\xde\xb5\x32\xc7\xe1\x6e\xc2\x38\x93\x65\x8a\xa7\xfe\x4b\x0b\x06\x7b\xe5\xde\x8b\xfb\xd9\x59\x8a\xe2\x49\x08\xc9\xb4\xda\xd2\x51\xf8\x17\x97\x93\xd0\x89\x5c\xa7\xa2\xa0\xf5\x50\x85\xed\xe1\x03\xce\xe0\x4d\x5f\xcf\xa5\x8b\xe5\xfd\xc5\xf4\xf8\x2f\xec\xef\xec\xba\x4c\x53\xd3\x25\x63\x68\xcc\x42\x7a\xcd\x6c\x19\x85\x90\xd3\xa7\xe4\x21\xc9\x44\x9c\x70\x28\xa4\x30\xff\x3a\xbf\x87\xd9\x5e\x94\x9e\x33\x2f\xdc\xd3\x4e\x7b\xe5\x18\xd3\xf3\x2c\x45\xd9\x4e\x82\xc7\x4e\x7e\xcf\xcd\xaf\xfa\xd3\xf1\x1e\x91\x67\x0a\xa5\xfd\x40\x0e\x2b\xea\xe6\x84\x52\x3f\x07\x99\x80\xda\x61\x6b\xdb\x6a\x39\x0a\xc2\x43\xfd\x58\x23\x0b\xca\x51\x27\xbf\x43\x0e\x90\xf1\x19\x6a\x72\x1b\x22\x24\x95\x32\x77\xf0\x25\x3d\xd5\xcf\xa0\xac\x90\x13\x1f\xf9\xa9\x2a\x9d\x55\x19\x62\x95\x0c\xd2\x18\xab\x75\xf6\x03\xc5\x2e\xb0\x40\xcd\x6c\xd3\x24\x3d\x37\x5b\xf5\xfc\x5a\x49\x73\x6d\xd5\xc9\x1a\xe9\x89\x00\x46\xa4\x81\x90\xd5\x3a\x05\xf7\x55\x97\x35\xd8\x02\xe0\x1f\x98\x2e\x21\xb4\xad\x30\x56\xc0\x4c\x41\xba\x9b\x4b\xf3\x0b\x3a\x91\x00\xe6\x9e\x38\x16\x5b\x7c\x9a\x55\x33\xa7\x67\x91\x41\x0e\x1a\x6f\x59\x60\x7d\x35\xb4\x47\x2c\x38\x2a\xd9\x3a\x22\x2a\x7e\x1d\x30\xb8\x51\x6b\x96\xde\x03\xf3\x9e\x4b\x91\x2a\xb9\x36\xab\xa2\xcb\x08\xa8\x2d\x4f\x8e\x01\x96\x84\x5d\xc0\xc6\x3a\x7b\x60\x0e\x4b\xfa\x0a\x4d\x89\x39\x27\x93\xd8\xdf\xef\x75\xb9\x34\x7e\x84\x8b\xc8\xba\xd3\x90\x5e\xae\xab\xa0\xf8\xb8\xfc\xf2\x07\x2d\x72\xa0\x59\x46\x84\x83\x8b\xf6\xe3\xc1\xe9\xc9\x36\xf0\x8d\x86\x6d\xaa\x5e\x60\x6c\x7b\x28\x84\xb2\x09\x8d\xd2\xea\x01\xeb\xf1\x6b\x62\x64\x9f\x53\x0e\xbe\x55\xfb\x1d\xbe\x67\x5a\xa3\x3f\x8d\xd5\x77\xb7\xa3\x77\x0a\xf8\xe0\x27\x94\x7b\x59\xa8\x95\xad\xa4\x1c\x7e\xa6\x37\x04\x77\x86\xa1\x54\x42\x92\xed\x50\x98\xa6\xb9\x70\x3a\xeb\xc1\xe5\x82\x32\x12\xc3\x3a\x5b\x1f\xb0\x1b\xf9\x16\x7f\xfe\x5e\xa5\x49\xd4\x0f\x7a\xb3\xc7\xd5\x46\x3d\xb5\xa0\x88\x96\x02\x50\xa0\x14\xff\xa1\x4e\xa1\x87\x5e\x88\xa8\xf0\x19\xb7\xe6\xcb\xfd\xaf\x06\xda\xec\xbf\x83\x63\x44\xd9\x0d\x1b\x88\x3e\xba\x1c\x1e\x9c\xad\x40\xb0\x09\xbc\xf2\x18\x6b\x85\x5a\x3a\xc8\x6d\x47\x9c\x42\xd0\x95\x91\x07\x03\xfd\xb4\x51\xa9\xb9\x8b\xc9\x98\xc8\x4a\xe7\x32\x13\x79\xa4\x00\xa0\x82\x75\xf0\x8a\x45\x9b\x24\x8d\xbd\x78\xcb\x4b\x40\xf4\x02\xee\xee\x15\x29\xd4\x09\x97\x63\xb6\xcd\xf7\x9c\xba\x76\xd9\x59\x95\xea\xe3\x22\x50\xa7\x83\xe8\xf5\x2d\xfb\x9f\x09\x4a\x86\x43\x41\xf4\x42\xb5\x6c\xa1\x19\xf4\x4a\x7f\x46\x45\x78\x41\x47\x7a\x65\x75\x30\xed\xc5\xa9\xa8\xcd\x2b\x2d\xb3\xfa\x50\x02\xe9\x2c\xa2\xa8\x10\x40\xa2\x05\x74\x67\x2b\x38\xfa\x62\x9e\x02\x92\x26\x75\x2e\x7d\x7e\xf4\x85\x0e\xfd\xb2\xd6\x79\x46\x4e\x55\x0b\x02\x9c\xb0\x17\x95\x17\x7d\x01\xa4\xa4\x52\xc1\xf3\x28\x87\x55\x19\x1a\x58\xae\x13\x96\x14\x73\x99\x68\x5c\x99\xb9\x48\xc5\xa3\xe9\x5d\x18\x2c\x26\xac\x8b\xbd\x3b\xdb\xd7\x06\x1c\x39\xb7\xe5\xc7\x4e\xdc\x1c\x36\x61\x1e\x92\x5b\x72\x08\x4c\xc7\x42\x1b\xbf\x11\x64\x39\xc4\x67\xb3\x01\x12\xc8\x85\x20\xfc\x23\x16\xd2\xf6\x0f\x50\x21\xa8\x9f\x3a\x97\xb3\x15\xd4\x80\x42\xe5\x69\x1c\xe3\x2d\xd4\x0a\x35\x38\xa6\xb1\x84\x82\xc3\x8a\xee\xe4\x76\x22\x48\x60\x11\x77\x92\x78\x14\xf9\xae\x80\xa0\x2e\x8c\xab\x14\xbc\xd8\xb0\xa4\x98\x00\x45\x9c\xb5\x94\x73\xc9\x63\xd2\xa7\xa6\xe6\xcc\xd0\xc0\xba\xef\x99\x67\xfa\x7c\xa9\x1e\xfb\x1c\xdb\x63\x51\x5f\xb8\xab\xb3\x94\xcb\x05\x9e\x20\x5f\x01\xf7\x15\x68\x5f\x76\xa5\x3a\xcb\xe5\xc2\xd1\xda\x9c\xa4\x9f\xce\xde\xdf\x56\x14\x69\x8d\x1f\x6b\x1f\x34\xc1\xc5\xe0\x69\xad\xed\xf5\xc4\xc5\x69\x08\x5d\x90\x33\x9b\x81\x1d\x6e\x05\x3c\x24\x8c\xd7\x90\x08\x76\xb5\xee\xc3\x84\xd9\x15\xf0\xad\xe2\x93\x86\xcc\x7c\xed\x0c\xa9\x4f\xfb\x78\x68\x4c\xc3\x43\x3c\x08\x1e\xb3\xa7\x5b\xcf\x0b\x91\xe9\x8c\xa3\x34\xa1\x32\xf6\x6d\x83\x74\x1f\x16\x4f\x08\x8c\xc3\xb9\x30\x4f\xbb\xb6\x69\x78\x0f\x53\x2d\xd8\xca\x53\xc6\xa8\xc1\x4e\x0d\x8d\x94\xf8\xda\x6b\xe8\xd7\x94\xcd\x24\xb3\xee\xde\x84\xbd\xc0\x85\xa5\x5f\x50\x08\x92\x04\x72\x29\x77\x1e\xd3\xee\xa1\x6a\xd5\x3a\x14\x03\x6b\x06\xfc\x76\xc3\x4c\x50\x2f\xb5\xe1\xb3\x8e\xcb\xf7\x09\xd4\x2c\x1c\x52\x96\x8e\x59\xc4\x25\x36\x40\x87\x24\x5e\xbb\x77\xe8\xb4\x2b\x1f\xcd\xf6\x2f\x6c\xf3\x5d\xec\x7b\xfb\x43\x33\x44\x59\x49\xe7\xa9\xfd\x9c\xa9\x7c\x2e\x6d\x6b\x14\x92\xd4\xa8\xa5\x54\x6f\x2a\x80\x50\x93\xcf\x1f\xac\x54\x00\x31\x58\xf9\x2c\x50\x65\xf3\xfc\xab\x75\x2b\x00\xa0\x88\xa5\xf0\xd2\xde\x53\x76\xe1\x9f\x66\x1c\x0f\xb3\xc0\xb7\x78\xcc\xd7\x39\x1a\xd3\xd4\x0c\x4a\x52\x58\x4a\xc8\xa0\xbc\x41\x97\x40\x6c\xba\x2a\x8d\x31\x0a\xd8\x5f\xe7\xd2\x0c\x1e\x5b\x25\x80\xfb\xa5\x71\x99\xcb\x1f\x95\xb6\xd5\xf4\xda\x8f\x87\xc5\x90\xd2\xb0\xbd\x70\x2a\x62\xf4\x87\x37\x70\x68\x53\xcc\xbf\x26\x2b\x0f\x75\x2d\x44\x89\xb1\x53\x65\xee\x5f\x2a\xe2\x72\x2e\xff\x6a\x86\x07\x45\x9d\x9d\x22\xba\x5a\xe1\x16\xb6\x32\xfc\xec\xe5\x47\x6c\xf4\xe5\xbf\xbf\xfa\xf8\x0a\x71\xe8\xa5\x06\xe1\xc6\x49\xf5\x00\x71\x44\xe0\x65\x9a\x42\x26\xda\xbe\x81\x23\xa3\xf0\x8f\xe0\x7d\xb0\x1c\xba\xd4\x2d\x64\xd5\xc5\x18\xb2\xd1\xfb\x56\xb0\x0f\x3e\x5f\xb0\x88\x17\xd1\xe6\xcc\xfa\x72\x64\xc6\xec\xe9\x47\xd3\x87\x0a\x6e\xc6\xd3\x6a\xe7\xc2\x36\x17\xce\x7c\xeb\xd8\xf9\x2a\xeb\xc5\xbc\x02\x00\x6b\xee\xeb\xc2\x30\x8e\x3c\x14\x17\xa7\xd7\x24\xf7\x7e\x9e\xfb\xba\x95\x65\xf3\x37\x4e\x8a\x92\x4b\xbe\x15\x31\x7b\x01\x15\x53\x2f\xec\xe4\xcf\x65\xb6\x9c\xa6\xbb\x55\x41\x14\x4f\x66\x50\xa6\x20\x60\xb4\xe7\x94\x5b\xc4\xcd\x6b\xd2\x9e\xc1\xee\xbc\x68\xb5\xfb\x3a\x6e\x6c\xdc\x93\x86\x3b\x2c\x18\xe3\x72\xa3\x73\x57\x85\x08\x55\x99\xd4\xb9\x7e\x98\xb0\x65\xce\x25\x68\x4f\xc4\xa1\x53\xe5\x77\x27\x5c\x9e\x91\x3f\xc9\x96\x50\x48\x9e\xee\x00\x3b\x3e\x99\x4b\x24\x9b\x02\x56\xe2\x5d\x94\x26\x11\x5b\xe7\x3c\xdb\xd4\xfc\x20\xf1\x28\x64\x71\x45\xec\x0a\x16\xa4\x7e\x6c\x6a\xd9\xb1\x35\x1c\xc5\xb9\x37\xab\x7a\x3b\xdc\xd3\x50\xf8\x08\x2b\x16\xaa\xd0\x8d\xda\x82\x5a\xdd\x02\x9f\x90\x14\x1a\xf0\x71\xb1\x3f\x97\x4b\x95\x5a\x42\xb3\xd9\x1b\xa6\x72\xd0\x12\x28\x14\xfd\x29\x89\xbb\x4e\xb1\x44\xc6\xe2\xf3\x51\xac\x02\xfd\x07\x92\x75\xef\xcc\x63\x02\xca\xfa\xfa\xcb\xc2\x2e\xca\x85\x39\x2c\x0a\x7b\x83\x6b\x7c\x4b\xd7\x11\x76\x17\x69\xb1\x01\xd8\x1b\x02\xae\xfd\xa0\x6e\xf9\x8e\x45\x1b\x2e\xd7\xc1\x15\x1a\x50\x48\x22\x53\x39\x6a\xee\x3d\x02\x7d\x97\xca\x6d\xd5\x26\xd5\x22\x12\xea\xdb\x05\xbc\x11\x6c\xa9\x6c\xc1\x21\x5f\xaf\x73\xb1\x86\x42\xfa\xb9\xac\x54\x53\x03\x75\x99\xa5\xfb\xc7\xe7\xf4\x15\xa3\x9e\x86\xd1\xa1\xeb\xd6\x52\xe4\x3b\x57\xca\x47\x82\x95\x6e\xe8\x1a\xc3\x3a\x61\x89\x98\x4e\xd8\x6f\x3c\xc0\x54\x44\x4a\xba\x5a\xc0\x8e\x42\xb0\x5a\x68\x7a\x8f\x2d\x6a\xa1\x7e\x68\xef\x3b\x7c\xd6\x90\xbd\x6c\x5d\x34\xbd\xc5\x94\x05\x2f\xca\x11\xb6\x92\xa4\x8d\x2f\xcd\x8f\xef\xf0\xb7\xbd\x18\x6c\x9e\x19\xf3\x66\x69\x77\xcc\xf7\x8d\x85\x37\xcf\xf6\xb4\xbc\x6d\x63\xbd\x37\xd0\x99\xaa\xee\x40\xe7\x29\x5c\x4a\xcb\xad\xb0\x3f\xd6\x99\x76\xf0\x05\xf4\xbc\xd3\xd8\x50\xa6\x05\xa3\x12\xcc\x5c\xd7\xaf\x5b\x2d\x16\x20\xcb\x55\x5c\x46\x22\x36\x3b\x17\xfc\x76\x44\x6e\x38\xda\x82\x8a\x91\x6c\x3b\x10\x2a\xdc\x2b\x20\x70\xfd\xa5\xee\xc6\x83\xe8\x6e\xdd\xf0\x7f\xe8\xb8\x17\x5b\xcf\xa4\x6d\xd0\xc3\xfd\x89\xe3\x94\x8f\x3c\xa7\xdc\xe3\xab\x24\xb5\x2a\x4f\xd6\x89\xe4\x85\xca\xd9\x4b\x57\x9c\xf8\xca\x29\xdb\xc0\x28\x9e\xc2\x4c\x54\x86\x08\xcd\x44\xfb\xdd\x0b\xf0\xcc\x22\x5e\x8c\xe3\xce\x1a\xcb\xf0\x0c\x8b\xd4\x7c\x4b\x17\x7c\x9b\x85\xb4\x8f\x4e\x37\x98\x46\x26\xc5\x41\x60\xb6\x63\x10\xe3\x4b\xb4\xaf\xc1\x9a\x4b\x8a\x8c\xe3\xbc\xa9\x3c\xe4\x2d\xee\x3c\x9b\xb3\xb2\x58\x1c\x48\x65\x82\x3f\x1e\x17\x20\xa1\x74\xf9\x8f\x3c\xeb\x27\x87\xe0\x74\x35\xc6\x22\x14\x27\xa6\x6c\x3d\x95\xea\xfa\xec\x57\x06\x18\x49\x56\x59\x4f\xf1\xde\xbe\xb3\x09\x0d\x7f\x6f\xa9\x5c\x04\x60\x22\x90\x25\x4f\x83\x57\x81\x57\x50\x67\xd6\xcc\x29\x6e\x19\x25\x2e\x53\x55\xc6\x8c\x8c\x1a\xa5\x8b\xf3\x29\x9e\x8e\x40\x5b\x39\x9d\x76\x71\x78\x8d\x54\x2c\x75\xf6\x07\x7e\xd7\xbe\x03\xe1\xb3\x0e\x0b\xdc\xbb\xf5\x69\x64\x9f\x6d\xea\x69\xa4\x61\xee\x9d\x39\x1e\x35\xf7\x2e\x5a\x0b\x1c\x5a\xe3\x02\x79\x70\x6f\x4a\xe2\x14\xf6\x5b\x18\xe8\x6e\x61\xf9\xac\x24\x10\xf5\xc3\xd1\x8f\xb3\x95\xb6\xfd\x8f\xca\x78\x2e\x64\xb1\x80\x27\x8e\x7b\x18\x3c\xe4\x3d\xfc\xbc\xe2\x30\x0d\x0a\x58\xfe\xd7\xbd\xc2\x38\xb4\x25\xcc\xf8\x6f\x76\x47\xb1\x17\x6d\x55\xed\xcd\xe9\xf8\x32\x01\x6c\x4c\x90\xb3\x73\x13\xd7\x31\x5d\xf4\x42\x07\x8c\x5e\xf0\x42\x15\xd3\x3e\xe8\x85\x7c\xef\x21\xa5\x0a\xad\x50\x18\x8a\x2a\x3c\x8d\xa9\xb5\x7f\x0b\x48\xb4\xaf\x2b\xff\x06\xc2\x43\x33\x7f\x29\xfb\x9b\xc8\x95\x2f\x5b\xc0\xa0\x4a\xd8\x70\xaf\xbf\x7e\xb8\xfe\x27\xfa\xe3\xa8\x3c\x19\x4a\xaf\xc1\x5f\x88\x93\x04\x6f\xbe\xcb\x9d\xbd\x8e\x74\xd1\xa9\x8b\x68\xd1\xc1\xb3\x3f\xa8\x2b\xc1\xc5\x33\xe4\xcd\x4f\x6a\x87\x99\xdd\xa0\xe7\x70\xaf\x26\xd6\xbf\x2d\xcf\x08\x87\x46\x90\xd7\x7a\x92\x61\x0a\x2f\xf1\x5f\x7f\xf9\xef\x69\x97\xb2\x33\x74\x7d\x2c\xac\xc7\x75\xfe\x6d\x9e\x08\x19\x43\xd2\x90\xc7\x4d\x09\x18\x59\x89\x22\x57\xcc\xb3\x59\x86\x27\xa9\xee\x6b\x3f\x6a\xf5\x02\x17\xd1\x17\xc8\x3c\x7b\x23\xeb\xb6\x6f\x25\x2f\xd5\xe5\x4a\xe8\x45\xbc\x93\x7c\xdb\xd4\xc2\x7e\xd6\x3e\xee\x12\x91\xc6\xd0\x45\x7a\xfa\xbe\xec\x49\x2c\xa2\x87\xb1\x3e\xc1\xc1\x04\xd6\x22\x7a\x60\x3f\xdc\xff\xf8\x0e\xf5\x0a\x13\x3d\x97\xd7\xbc\x48\x1e\xc5\x87\x3c\x75\x61\x6b\x62\x24\xc9\x53\xbb\x47\xaa\x84\xaa\x01\x79\x87\x65\x5f\xb5\x8e\x43\xc8\x77\xbd\xdd\x9d\x2d\xcb\xe8\x41\x14\xe7\x39\x97\xb1\xda\xe2\x6b\x9c\xeb\x72\xb5\x4a\x3e\x4f\x0b\x9e\x77\x90\x5f\x63\x1c\xe1\x2b\xfa\xb9\x5e\xd2\xa4\xf0\x3e\x2f\xba\xba\x4f\x50\x9d\x48\x42\xb9\x15\xe7\x16\xae\xc0\x39\xdf\x0a\x60\x2f\x63\x55\xe2\x78\x68\x05\x0b\xfe\x40\x5f\x4d\x6b\x42\x7a\x2b\x52\x6f\xfd\x18\x38\xf7\x1f\x83\x5e\x55\x15\x84\x6d\xa7\xbc\x66\xd9\x96\x3f\xe0\xfd\x70\x9d\x0b\xad\x27\x4c\x2b\xe8\xf1\x5c\x5a\xcc\xb4\xad\xeb\x01\x7c\x06\xf0\x1f\xa6\x3b\x16\xa9\x2c\x01\x89\x37\xf7\x5e\x1b\xf5\x04\xf1\xe4\xb0\xbc\x0d\x54\x39\x4b\x59\x24\x29\xe3\xab\x82\x82\xcd\x40\xf6\x6c\xc5\x5d\xf4\x74\x2e\x21\x65\x18\xc1\xeb\x43\x2a\xdf\xa5\x09\xdc\x4b\x68\xb6\xe2\x51\x92\x26\x05\x51\xd0\x40\x31\x0c\x37\xef\x6b\xce\x03\x33\x96\x39\xdf\xf1\xd4\x5f\xac\x78\x5a\xfa\x8a\xbe\x33\x2d\xea\x14\x67\xbf\x0a\xff\xb7\x72\xcf\xed\x3b\x75\x8f\xb8\xf0\x1e\x73\xf8\x34\xaf\xb4\x4e\x71\xd4\x9f\xe3\x49\x6c\x71\xa2\x15\x57\xd7\x33\xcf\xba\xe3\x07\x62\xe7\x1d\x97\xea\xa9\xd5\x89\x69\x3e\x61\xc4\xe8\xb5\x3b\x61\x5f\x28\x5c\xd0\xc5\x81\x3b\xa4\xfb\x36\xda\xfd\x5e\xa9\xf4\xd8\x88\x37\x4f\xad\x41\x5d\x80\x74\xe2\x31\xd7\x35\x5c\x00\x2e\x70\x34\x7b\xe3\x72\xaf\x8e\x54\xb6\x2a\xb8\x42\xb0\x20\xea\x02\x18\x0a\xe8\x44\x0f\x62\x58\x67\x2d\xc9\xf7\x91\xc8\x67\x68\x03\x51\x3b\xd6\x75\x6e\x86\xe0\x83\x5a\x76\xee\xfb\x08\xc4\x7b\xb5\x1e\x8e\x0a\x86\xa1\xd0\x61\xed\x51\x2e\x30\x16\x12\x74\xba\x71\x0c\x9e\x6d\xc7\x13\xe5\x95\xcd\xf9\x44\x5e\xf2\x5c\x06\x1e\x31\xb2\xea\x58\x68\xb9\x1b\xb5\xb6\x78\x59\x65\x19\x1e\x1d\x2f\x3b\x86\x85\xb9\x37\xa1\xf2\x26\xd4\x53\x02\x4c\x40\xa4\xb6\xcb\x44\xda\x52\x65\x0a\x22\x83\x2b\x7f\x61\x49\xee\x5c\xc0\xdf\xba\xe4\xc8\xb2\x5f\x1b\x7b\xe7\x46\x84\x7c\x81\xa1\xc9\xda\x77\xdd\x0d\xef\x4f\xa7\x25\x8c\xee\x40\xa9\xd6\xdf\x20\xd1\x8c\xa7\x4f\x7c\xa7\x41\x73\x54\x18\xab\xb8\xc2\xc0\x69\xb5\xff\x93\xe0\x78\xb7\x04\x8a\x24\xe0\x5d\x92\x14\x31\xbd\x4b\x82\xfc\x0d\x22\xb5\xea\xaa\x9e\x17\xe7\x85\x6e\x1f\x9c\xaf\x93\x0b\xc9\x7b\x73\x21\x98\x8c\xfc\xe7\x48\x7f\xf4\x04\x59\x8f\x8c\xf5\x06\xc7\x24\x7a\x64\x04\x17\x81\x02\x1e\x30\xc7\xe6\xd9\x13\xb6\xe5\x89\xa4\x6d\x80\x0a\x56\xb1\x58\x96\xeb\x75\x67\x08\xf2\xdb\xcf\x65\x54\xf7\xc9\xbf\x7c\xac\xb9\x97\xd9\xe9\x14\xd1\xd8\x99\x7d\x12\x86\x87\xcd\xbd\xea\xcb\x04\x60\xbf\x62\xb4\xbb\x35\xe5\xd4\x58\x44\xa7\x89\x76\xcf\x86\x44\xbb\x2d\xc6\x07\x4a\xad\xe8\xba\x6a\x71\x18\xbf\x84\xc1\xbf\x4c\x18\x7c\xd0\xa2\x40\x7a\x8f\x45\x52\x75\xd0\x7b\x7a\x78\x20\x4b\x98\xa3\x93\x84\x5e\x91\x1a\xb8\x16\x32\xd6\x6c\xc9\xa3\x67\xa0\x0d\x83\xd3\xf1\xf8\x78\xdb\x1e\x70\xc9\x9d\xda\x0a\x06\x8f\xd2\xa8\x7d\xc0\xa8\x9a\x6d\x02\xa8\x45\xf3\x82\x1e\x91\x41\x78\x0f\x38\x4e\x11\x19\x12\x7b\xa7\xfa\xa5\x14\x4f\xcc\x9c\x56\x93\x10\xc6\x15\x4c\x0f\x88\xe2\xbc\x32\xde\x61\x05\xf3\xed\x4a\xf7\x73\xb1\xe6\x79\x0c\x95\x06\xb4\x25\x53\x1e\x3d\x98\xff\x86\xfe\xd1\x13\x09\x6a\x66\xf9\xb9\x11\xfe\xe8\x5b\x4b\x64\x94\x03\x29\x13\xa1\xda\x7c\xff\xf0\xe7\x9a\xf1\x28\x57\x1a\x83\x32\x4e\x4b\x12\x2a\x5d\xc1\x81\x7d\x4c\xe2\x92\xa7\xf8\xc4\xce\x48\x36\xd7\x47\xf1\x8d\x5f\x04\xb2\x2f\xe2\x73\x96\x72\x59\xdd\x93\xf8\xba\xc0\x55\x93\xf4\xac\x7c\x47\xb9\x76\x4c\x57\x46\x53\x47\xce\x02\xc5\x55\xbf\xad\xd0\x3b\xce\x05\x8f\x77\x21\x31\x55\x22\x49\x77\x9f\xc7\xdb\x44\x9a\xa9\xb7\xaa\x5e\xce\xbe\x5a\x82\x5f\x04\x5c\x82\xf8\x45\x9a\xd6\xb6\xbe\x66\x52\x18\x97\x8a\xe7\x49\xba\x03\x2f\x3a\xcb\xc5\x59\xf0\x9c\x60\x7f\x53\xbd\x07\x50\x15\x13\x89\x42\xa9\xc5\xaa\x4c\xd1\xd7\x86\xdb\xa8\x7b\x01\xda\x87\x1f\x66\x13\x73\xcc\x16\x44\x39\x1f\x3c\x18\x85\x9c\x4e\x81\x9d\x6f\xde\x03\x07\xe5\x6f\x3c\x61\x5a\x0e\xd0\xde\x8d\x7a\xb2\x05\x3e\x4f\xdc\x23\x38\xbb\xce\x92\x93\xc5\xec\xfb\xbd\x2e\x7b\xdf\xb1\xbb\x12\x07\x3d\xae\x24\x6a\xe8\x33\x11\xbb\x9d\x98\x48\x78\x1d\xd2\x40\xf4\x71\xd0\x52\x63\x9d\x90\x99\x43\xb0\xd6\xf6\x5a\x5f\x0d\x83\x32\xf7\x76\x89\x56\x92\xcd\xcb\x5f\xff\xfa\xb7\x82\xfd\x1a\x0a\xa7\xc8\xfb\xc6\x6c\x0b\x50\xa6\x61\xeb\x60\xa0\xdc\x03\x04\xf2\xa9\x35\x66\x84\xb5\x01\x1e\x6d\x95\x32\x40\x06\x79\xb4\x61\xba\x5c\x22\x1e\x8e\x53\xc0\x9e\x4b\xc7\x48\xfa\x4e\x01\xb4\x0d\xcf\x31\xdb\xfb\xff\x25\xe1\x69\x64\x05\x9f\xcb\x4c\x21\x69\x2e\x00\x09\x97\x82\x6d\x79\xfe\x00\x22\x6f\xa4\xe4\xcd\x78\xc1\x5e\x26\x62\x5a\x0d\x56\xbf\xaa\xf4\x87\xd2\x03\x48\x86\xc9\xf2\x52\x4a\xab\x5a\xc1\x8c\x1b\xe6\x23\xc7\x93\xb9\x5c\x96\xe1\x4d\xab\x12\x7a\xf6\x4b\x0b\xc2\xcf\x60\x64\x15\x30\x24\x50\xa7\xb8\x0e\x14\xc6\xd9\x80\x18\xf4\x5c\x3e\x53\x10\xba\x2b\xbc\xf5\x9e\x3c\x0e\x1b\xba\x0a\x50\xda\xf0\xba\xa1\xb0\x22\x4c\x07\x2e\x7b\x38\xd2\xdf\x83\xba\xe2\x84\xfd\x90\x3c\x8a\x09\xbb\xcb\x78\xfe\x30\x61\x6f\x30\x99\xf4\x47\xb5\xdc\x1b\xb1\x3a\x45\xd4\xd6\x5d\xac\x8e\x65\xbc\xc7\xf8\xe7\x24\x60\x66\x0e\x12\x98\xcd\xf8\xa2\xc5\xb7\x15\xc0\x6b\x1f\x3d\x08\xd9\x69\x2c\x2d\x2a\xb9\x93\xbe\xfb\x54\xf7\xee\x6e\x50\x75\xe7\x2d\xbc\x7e\x6e\x7b\x0f\x8b\x6a\x56\xdb\x70\x7e\xc6\xb3\x41\xed\x69\x1e\x3d\x9c\x81\xaf\xaa\x72\x57\x57\xad\x29\xb9\x86\xab\x02\xd1\xcf\xe8\xa3\xd5\x2a\x91\x87\xba\xe2\xf6\xc1\x8b\x4c\xa9\xb4\xd5\x23\x3f\xe9\x00\x36\xe2\xf3\x43\x07\x6f\x86\x15\x5c\x3a\xf4\x53\xed\x28\xfa\x58\xaf\x8f\x0c\x63\x18\x18\xa8\x58\x60\x35\xc5\x25\xa4\x48\xfd\x70\x84\x92\x7e\xc6\xd6\x20\xe6\x1c\x5d\x53\xab\x00\xcb\xed\x9d\x21\xe2\x2e\xe8\x1d\x62\x9d\x1b\x51\x68\xdd\x7c\x4e\xc7\x45\x01\xda\x5d\x24\x6d\xbc\x2b\x63\x37\x17\x4a\xa7\x37\x52\x4b\xd8\x73\x7b\xa4\xdb\xaa\x9f\x7d\xac\xb3\xb6\xc4\x79\x11\xa5\x5c\x0f\xc4\x11\xb7\xda\x9d\x19\x35\x74\x09\xed\x0c\xb7\x99\x3f\x40\x16\x60\x3b\xd0\x85\x9a\xcb\x0b\xc7\xba\xea\x9d\x6f\x77\x61\x40\x33\x8b\x57\xa5\xc6\xd4\x60\x29\x91\xa7\xe8\x9d\x30\x5d\x46\x1b\x28\x96\xaa\xda\xa9\xd0\x6e\x35\x77\xec\x64\x2e\x8d\xfb\x8a\xca\x5f\x1c\xe0\x2e\x4f\x20\x12\x93\xfc\x4d\x38\xff\x98\x30\xf9\xa1\x4b\xbc\xe4\x66\x6a\x94\x6c\xbd\x3e\xd8\xba\x35\x3c\xe9\xfc\xe1\x5e\x66\xc6\x73\x98\xce\xbd\xdb\x93\xa0\x9e\xbf\x3d\x6e\xe9\x3e\xa2\xc3\x17\x0b\xaf\x4f\x35\x4b\x9b\x26\x2b\x11\xed\xa2\x06\x0d\x55\x05\x64\x76\xba\x2c\xc8\x61\x49\x80\x3e\xba\xa2\xf6\xd8\xc9\xcf\x0d\x7a\x0d\xd6\x85\xcc\xf9\xe7\xc4\x0b\x77\x30\xe6\xfc\xab\xc7\x71\xf7\x80\x68\x7e\x81\xd6\xfe\x4b\xc6\x14\xfb\xc9\x72\x7e\x15\xfe\xaf\xb5\x5f\x16\xbd\x0a\x31\x0c\xf2\x9a\x5b\x31\xb3\xdf\x16\x3d\x40\x12\xd7\x2f\x79\x4d\x96\x80\x61\x5b\x81\x48\x18\x62\x47\x10\x31\xa2\x24\x88\x7e\x6a\xc7\xeb\x32\x55\xba\xcc\xfb\x37\xff\x6d\xb5\xd7\xf6\xe9\x2d\x84\xb9\xb0\xd8\xb6\x4b\x01\xdc\x1f\x43\xc1\x71\xf8\xb5\xc5\x5f\xd5\x72\x01\x48\xd0\xe3\x76\x78\x5b\x73\x56\x82\xcb\xe1\x09\xa8\xab\xfe\xc6\x75\x97\x09\xe0\x6d\xf3\xa1\x0d\x7f\x7f\xa9\xad\x30\x17\x58\x9e\x4b\x4b\x63\x8f\x75\xe7\x79\x2e\x80\x6f\x3b\x17\xa0\x2c\xc7\x32\x9e\x3b\x38\x96\xbd\x61\x07\x11\x34\x0f\xd9\x0b\x6b\x45\xa1\xe4\x9b\xe2\x76\x4b\x21\xa4\x1b\xed\x31\x57\x53\x73\xdb\xac\x8f\x3e\x61\x71\x9f\x04\x8b\xb0\xcc\xab\x43\x05\xb3\xf1\xbb\x20\xa6\x08\x7e\xcb\x5a\x84\x3e\x54\xcd\xb5\xa8\x6c\xcd\x4a\x7e\xff\x9b\xaa\x47\x6a\xbd\xc1\xd6\x28\xee\x2a\xe1\xe7\x41\x88\x88\x53\x64\x1b\xdf\xf3\x62\x83\x81\xd1\xad\x2a\x04\xda\x4c\xe4\xda\xc2\xf5\x82\x39\xbb\x65\xaa\x96\x20\xe9\x66\x3e\xe9\xba\x3e\x47\xb4\xb5\x07\x0d\x5d\x73\xc2\x86\x58\x06\x63\x4d\xa0\x5e\x3d\x17\x1a\x68\x8b\x9a\x39\xfe\xa1\xd5\x13\xe3\x82\xb7\xcd\xee\x1a\xa3\xff\xa6\x11\xbc\x6d\xea\x5c\x98\x6d\x0d\x50\xfa\xab\x03\xea\xfb\xae\xc2\x9a\x6f\xe3\x1c\x10\xe5\x37\x81\x68\x90\xf5\xb7\xf6\xbe\x56\x39\x7c\x2e\x2f\xf0\x93\xe0\x10\xe0\x5e\xcf\xc9\xa1\xd5\x49\x24\xd6\xed\x3f\x2c\x02\x67\x17\x21\x3e\x9a\x6e\x45\x13\x7f\x5f\x85\xe0\xd2\x04\x6a\xae\x65\x91\xe4\xe6\x36\xa2\xc1\xd9\xd2\xe5\xf2\xcc\xd3\xfb\xa8\x1c\xdc\x33\x60\x7f\xca\x38\x84\xc6\x80\xf5\xeb\xac\xe5\x18\xc6\xbc\x8e\xd7\x65\xb1\x34\x98\x3c\x25\xe3\x0f\xb7\x6a\xe4\x97\x70\xef\xee\xda\x31\x97\x23\x88\xca\x5a\x6e\x03\x3c\xec\xfa\xec\x05\x28\x47\x41\x7d\xf8\x2d\x5e\xc7\xbf\xf6\x01\x1e\x62\x49\x86\x1e\xdd\x70\xfd\x9e\xcb\xff\xdf\x9e\x0d\xdd\x25\x0f\x23\x56\xba\x19\x19\x73\x44\x75\x96\x62\x54\xfa\x66\x43\x92\x81\x13\xd8\xdd\xa9\xc6\x92\x6f\x6b\x95\xbb\x00\x49\xa0\x93\xa2\xa8\x98\x1f\x3e\x7d\x4c\x74\x40\x9a\x0f\x4f\xbb\x13\x82\xbd\xce\xc5\xea\xf5\xc7\x5c\xac\x16\x76\xa6\xa7\xf0\x42\x53\xf3\x46\x4d\xea\xfc\x81\x8b\x43\x67\x4a\xb6\x53\x88\xee\xa1\xf8\xad\xbd\x12\xb6\x13\xbc\x53\xb2\x62\x5e\x4e\x13\xa2\x08\x65\x14\x09\x11\xd7\x39\xfd\x1b\x3d\xfb\xe2\xc7\x5c\x17\x8e\x76\x00\x50\xb5\x43\x86\xf2\x5f\xff\x78\xab\x8c\xd9\x90\xe3\xed\xbe\x1a\x4f\xb1\xc6\x9e\x4b\x77\xe0\x75\x17\xa6\x7c\xd9\xda\x19\x98\x40\x9d\xf1\x27\x49\x6c\x50\xa3\x52\x19\xc3\x8e\xb5\x5a\x74\x29\x38\xd6\x1a\x08\x62\xbf\xcb\xa4\xcd\x1c\x25\x4e\xb3\x71\x12\xc8\x9d\xf3\x34\x0d\x95\x49\x7c\xfc\x77\x2e\x7d\x94\xd0\x78\xad\x69\x6a\x53\x42\x15\x7f\x83\xb8\xbf\x62\xa0\x2b\x10\x13\x4b\x5d\x44\xa4\x9f\x84\x26\x38\xc3\x68\x9c\x8f\x99\xed\xdb\xcd\xa7\xba\x44\x7e\x63\xac\x0d\x7b\x70\x3b\xf8\xd8\xc5\x83\xd8\x8d\xee\x6b\x7b\xe6\xdc\x4b\xf9\x6e\x60\x33\x5b\x2b\x1b\xf1\x3c\xb7\x35\x48\xf4\x54\x66\xee\x4a\x2b\x1e\x55\xd2\x66\x1d\xfd\xdc\x88\xe8\x21\x53\x89\x1c\x6d\x8b\x82\xfe\x18\x47\xaa\x30\xe7\x99\x6f\xcd\xdd\x0e\x07\x1d\x8e\x15\x7f\x12\x5f\x44\x03\x38\xcd\x02\xeb\x3d\xa5\x21\x67\x4e\xab\xb8\x7b\xd9\x9d\x3a\x7e\x21\xfc\xd9\xf0\x0c\xb1\xd8\xfe\x24\x05\x5a\x8d\xa6\x47\x59\xc9\x62\xf1\x46\x6d\xea\xc0\xc1\xe6\xac\x42\x04\xda\x3a\xa4\x10\x82\xfc\x25\x32\xf4\x4b\x64\xe8\x9f\x3c\x32\xf4\x25\xc3\x42\x80\x2c\x7c\xce\x98\x50\x3b\xd9\xc0\x2f\xc7\xeb\xb7\x75\xbc\x22\xa7\x28\x56\xc6\x8d\x19\x5a\xea\xea\xad\xff\xf9\x71\x83\x2b\x58\xd0\x13\x3d\x62\x9c\xbf\xa0\x7b\xd0\x62\xab\xc6\xd9\xdd\xc1\xe7\x55\x3f\x7a\xc2\x3b\x20\xfe\x32\x10\x14\xd2\x37\xb6\x6f\x18\x04\x2e\xc2\xa5\x63\x0c\xcf\xe0\xf4\x4b\x37\x57\xc9\x37\x95\x44\x1e\xe2\x60\x18\xcb\xe8\xd2\xca\xd7\xd6\x22\x4a\x81\x06\xbc\xc7\x32\x06\x1c\xd6\xbc\x78\xa1\xdd\xa8\x57\x2d\xa0\x45\xb8\xbf\x4b\x74\xf1\x53\x4d\x21\xf1\x30\x89\xc5\x67\x43\x42\xd9\xae\x62\x37\x83\x5f\xf4\x02\x78\x6e\xab\x10\x1b\xb5\xb2\x6b\x0e\x0e\x39\xab\x89\x65\xfa\x3d\xe6\xbc\xfa\xe8\xc6\xeb\x23\xfa\xd1\x4f\x39\xcf\x32\x91\x5b\xdc\x48\x03\xda\x03\x02\x53\xf0\x14\x50\x88\xdb\x08\x94\xa9\xad\x79\x23\xc6\x94\xd4\x9a\x86\xaf\xc1\xd0\x4d\xdb\x67\xee\xba\x4c\xd3\xce\x99\xdb\xaf\x5b\x73\xfd\xe1\xdd\xbb\xc5\x4f\x17\xef\x3e\x5c\xd9\xd7\x6f\xd5\x81\x09\xbe\xd6\x39\x26\xae\x27\x34\x26\x5e\x69\xce\x3c\x56\x58\xa9\x5c\xe5\xdf\x1a\x2f\x23\x65\x9a\x56\x35\x82\xe6\xf2\x23\xb5\x03\xb0\x6c\xd4\x3f\x34\xe3\xc6\x7a\x07\xae\xfa\x7c\xf8\xda\x47\xd3\xf8\x47\xfc\xed\x19\xf3\x2f\xf1\x1a\x94\xec\x48\x21\xab\x7d\x5c\xa9\xe6\xe3\x88\xed\x80\x20\xe0\xae\xed\x70\x6a\x15\xb4\xc3\xb6\xc7\x07\x09\xfc\xcb\x22\xb6\xe2\x65\x27\xd9\x1d\x38\x76\x1f\xab\xf9\x04\x67\xcb\x63\x0c\xae\x41\xbb\x13\xd4\xae\x02\x45\x5e\x2f\xef\x34\x97\x78\x57\x35\x7d\x2a\x54\x77\x9f\xd8\x8c\xd0\x54\x29\x97\xeb\x92\xaf\x85\x9e\x30\xfb\xf0\xb9\xdc\x26\xeb\x0d\xb2\x49\x94\x99\xc7\x25\x73\x26\x81\x74\xa4\xb6\x84\x6a\xb8\xe4\x44\xce\x25\xbd\x93\x5c\xfb\xe6\x11\x23\xfb\xc7\x3b\xf7\x3a\x04\x46\xc7\x86\x48\x7e\x4b\xce\x25\x4e\x2e\xb2\x5c\xd8\x88\x15\xf8\xef\xbc\xa8\x2f\x5d\x0e\x31\x66\x94\xa8\x36\x36\x7d\x0d\xb1\xb3\xb9\x74\x85\xa8\xe8\xe1\xd3\x3b\x04\x32\x0d\xd8\xa5\xfd\xf6\xc4\x4e\x86\xdd\x13\xd4\xb7\xf6\x55\x7f\xf4\x19\x60\x36\xdc\x62\x84\xd6\x6e\xd3\x8c\x0d\xbc\xd5\xf1\xc0\x70\x74\xb1\x13\x40\xf5\x71\x7b\x6f\xec\x7b\xe1\x77\x3a\x21\x48\xaa\x5c\xa6\x23\xba\x84\xdf\xef\xed\x14\x9a\xe4\xfe\x4e\x0d\xb8\x32\xde\xd6\xb6\x96\x59\xa6\x7d\x8f\x5d\x2a\xd5\x31\x2f\x27\x0c\xfc\x56\x3a\x45\x3f\xd8\x37\x18\x65\x54\x1c\xb2\x5e\x06\x94\xe4\xd5\x87\xc8\x5a\x9f\xbe\x0e\xa5\x89\x3e\xa8\x3b\xde\x7f\x1a\xdc\x23\xe7\x21\xd0\x61\x37\xca\xc2\xd2\x39\x57\x31\xb0\x1d\x66\x92\xe2\x7e\x56\xb4\x36\x41\xf3\x62\x36\x0f\x2a\xca\x9a\xf5\x3f\x71\x8b\x68\xe2\x67\x6e\x02\x9d\x8c\xca\x5c\x1b\x73\x49\xf6\x8e\xac\xb6\xca\x19\x9f\x4b\xab\x7e\x60\xcd\xf1\x85\x05\x51\xe5\xee\xaf\x58\xe6\x98\x21\x7b\x38\x78\xac\x05\x53\x52\x58\x6b\x38\x97\x56\xe9\x78\xc2\xf8\x52\x5b\x01\x61\x2e\x77\x4e\xd5\x37\x71\x92\x6d\x5c\x32\x40\xa7\xed\xb7\x79\x35\x37\xa0\x72\xce\xff\xca\xfc\xdf\x3f\x7e\xf5\xff\x02\x00\x00\xff\xff\x0e\x57\x6c\x47\x41\x9a\x04\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 300994, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 301633, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-java/flyteidl/admin/Common.java b/flyteidl/gen/pb-java/flyteidl/admin/Common.java index b379a2a39..0b4f88df6 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/Common.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/Common.java @@ -20743,6 +20743,837 @@ public flyteidl.admin.Common.RawOutputDataConfig getDefaultInstanceForType() { } + public interface FlyteURLsOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.FlyteURLs) + com.google.protobuf.MessageOrBuilder { + + /** + * string inputs = 1; + */ + java.lang.String getInputs(); + /** + * string inputs = 1; + */ + com.google.protobuf.ByteString + getInputsBytes(); + + /** + * string outputs = 2; + */ + java.lang.String getOutputs(); + /** + * string outputs = 2; + */ + com.google.protobuf.ByteString + getOutputsBytes(); + + /** + * string deck = 3; + */ + java.lang.String getDeck(); + /** + * string deck = 3; + */ + com.google.protobuf.ByteString + getDeckBytes(); + } + /** + *
+   * These URLs are returned as part of node and task execution data requests.
+   * 
+ * + * Protobuf type {@code flyteidl.admin.FlyteURLs} + */ + public static final class FlyteURLs extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.FlyteURLs) + FlyteURLsOrBuilder { + private static final long serialVersionUID = 0L; + // Use FlyteURLs.newBuilder() to construct. + private FlyteURLs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private FlyteURLs() { + inputs_ = ""; + outputs_ = ""; + deck_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private FlyteURLs( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + inputs_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + outputs_ = s; + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + deck_ = s; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.Common.internal_static_flyteidl_admin_FlyteURLs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.Common.internal_static_flyteidl_admin_FlyteURLs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.Common.FlyteURLs.class, flyteidl.admin.Common.FlyteURLs.Builder.class); + } + + public static final int INPUTS_FIELD_NUMBER = 1; + private volatile java.lang.Object inputs_; + /** + * string inputs = 1; + */ + public java.lang.String getInputs() { + java.lang.Object ref = inputs_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + inputs_ = s; + return s; + } + } + /** + * string inputs = 1; + */ + public com.google.protobuf.ByteString + getInputsBytes() { + java.lang.Object ref = inputs_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + inputs_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OUTPUTS_FIELD_NUMBER = 2; + private volatile java.lang.Object outputs_; + /** + * string outputs = 2; + */ + public java.lang.String getOutputs() { + java.lang.Object ref = outputs_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + outputs_ = s; + return s; + } + } + /** + * string outputs = 2; + */ + public com.google.protobuf.ByteString + getOutputsBytes() { + java.lang.Object ref = outputs_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + outputs_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DECK_FIELD_NUMBER = 3; + private volatile java.lang.Object deck_; + /** + * string deck = 3; + */ + public java.lang.String getDeck() { + java.lang.Object ref = deck_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deck_ = s; + return s; + } + } + /** + * string deck = 3; + */ + public com.google.protobuf.ByteString + getDeckBytes() { + java.lang.Object ref = deck_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deck_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getInputsBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, inputs_); + } + if (!getOutputsBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, outputs_); + } + if (!getDeckBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deck_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getInputsBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, inputs_); + } + if (!getOutputsBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, outputs_); + } + if (!getDeckBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deck_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.Common.FlyteURLs)) { + return super.equals(obj); + } + flyteidl.admin.Common.FlyteURLs other = (flyteidl.admin.Common.FlyteURLs) obj; + + if (!getInputs() + .equals(other.getInputs())) return false; + if (!getOutputs() + .equals(other.getOutputs())) return false; + if (!getDeck() + .equals(other.getDeck())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + INPUTS_FIELD_NUMBER; + hash = (53 * hash) + getInputs().hashCode(); + hash = (37 * hash) + OUTPUTS_FIELD_NUMBER; + hash = (53 * hash) + getOutputs().hashCode(); + hash = (37 * hash) + DECK_FIELD_NUMBER; + hash = (53 * hash) + getDeck().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.Common.FlyteURLs parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.Common.FlyteURLs parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.Common.FlyteURLs parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.Common.FlyteURLs parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.Common.FlyteURLs prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * These URLs are returned as part of node and task execution data requests.
+     * 
+ * + * Protobuf type {@code flyteidl.admin.FlyteURLs} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.FlyteURLs) + flyteidl.admin.Common.FlyteURLsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.Common.internal_static_flyteidl_admin_FlyteURLs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.Common.internal_static_flyteidl_admin_FlyteURLs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.Common.FlyteURLs.class, flyteidl.admin.Common.FlyteURLs.Builder.class); + } + + // Construct using flyteidl.admin.Common.FlyteURLs.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + inputs_ = ""; + + outputs_ = ""; + + deck_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.Common.internal_static_flyteidl_admin_FlyteURLs_descriptor; + } + + @java.lang.Override + public flyteidl.admin.Common.FlyteURLs getDefaultInstanceForType() { + return flyteidl.admin.Common.FlyteURLs.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.Common.FlyteURLs build() { + flyteidl.admin.Common.FlyteURLs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.Common.FlyteURLs buildPartial() { + flyteidl.admin.Common.FlyteURLs result = new flyteidl.admin.Common.FlyteURLs(this); + result.inputs_ = inputs_; + result.outputs_ = outputs_; + result.deck_ = deck_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.Common.FlyteURLs) { + return mergeFrom((flyteidl.admin.Common.FlyteURLs)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.Common.FlyteURLs other) { + if (other == flyteidl.admin.Common.FlyteURLs.getDefaultInstance()) return this; + if (!other.getInputs().isEmpty()) { + inputs_ = other.inputs_; + onChanged(); + } + if (!other.getOutputs().isEmpty()) { + outputs_ = other.outputs_; + onChanged(); + } + if (!other.getDeck().isEmpty()) { + deck_ = other.deck_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.Common.FlyteURLs parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.Common.FlyteURLs) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object inputs_ = ""; + /** + * string inputs = 1; + */ + public java.lang.String getInputs() { + java.lang.Object ref = inputs_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + inputs_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string inputs = 1; + */ + public com.google.protobuf.ByteString + getInputsBytes() { + java.lang.Object ref = inputs_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + inputs_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string inputs = 1; + */ + public Builder setInputs( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + inputs_ = value; + onChanged(); + return this; + } + /** + * string inputs = 1; + */ + public Builder clearInputs() { + + inputs_ = getDefaultInstance().getInputs(); + onChanged(); + return this; + } + /** + * string inputs = 1; + */ + public Builder setInputsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + inputs_ = value; + onChanged(); + return this; + } + + private java.lang.Object outputs_ = ""; + /** + * string outputs = 2; + */ + public java.lang.String getOutputs() { + java.lang.Object ref = outputs_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + outputs_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string outputs = 2; + */ + public com.google.protobuf.ByteString + getOutputsBytes() { + java.lang.Object ref = outputs_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + outputs_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string outputs = 2; + */ + public Builder setOutputs( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + outputs_ = value; + onChanged(); + return this; + } + /** + * string outputs = 2; + */ + public Builder clearOutputs() { + + outputs_ = getDefaultInstance().getOutputs(); + onChanged(); + return this; + } + /** + * string outputs = 2; + */ + public Builder setOutputsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + outputs_ = value; + onChanged(); + return this; + } + + private java.lang.Object deck_ = ""; + /** + * string deck = 3; + */ + public java.lang.String getDeck() { + java.lang.Object ref = deck_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deck_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string deck = 3; + */ + public com.google.protobuf.ByteString + getDeckBytes() { + java.lang.Object ref = deck_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deck_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string deck = 3; + */ + public Builder setDeck( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + deck_ = value; + onChanged(); + return this; + } + /** + * string deck = 3; + */ + public Builder clearDeck() { + + deck_ = getDefaultInstance().getDeck(); + onChanged(); + return this; + } + /** + * string deck = 3; + */ + public Builder setDeckBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + deck_ = value; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.FlyteURLs) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.FlyteURLs) + private static final flyteidl.admin.Common.FlyteURLs DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.Common.FlyteURLs(); + } + + public static flyteidl.admin.Common.FlyteURLs getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FlyteURLs parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new FlyteURLs(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.Common.FlyteURLs getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + private static final com.google.protobuf.Descriptors.Descriptor internal_static_flyteidl_admin_NamedEntityIdentifier_descriptor; private static final @@ -20863,6 +21694,11 @@ public flyteidl.admin.Common.RawOutputDataConfig getDefaultInstanceForType() { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_flyteidl_admin_RawOutputDataConfig_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_FlyteURLs_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_FlyteURLs_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -20934,11 +21770,12 @@ public flyteidl.admin.Common.RawOutputDataConfig getDefaultInstanceForType() { "\n\010AuthRole\022\032\n\022assumable_iam_role\030\001 \001(\t\022\"" + "\n\032kubernetes_service_account\030\002 \001(\t:\002\030\001\"5" + "\n\023RawOutputDataConfig\022\036\n\026output_location" + - "_prefix\030\001 \001(\t*\\\n\020NamedEntityState\022\027\n\023NAM" + - "ED_ENTITY_ACTIVE\020\000\022\031\n\025NAMED_ENTITY_ARCHI" + - "VED\020\001\022\024\n\020SYSTEM_GENERATED\020\002B7Z5github.co" + - "m/flyteorg/flyteidl/gen/pb-go/flyteidl/a" + - "dminb\006proto3" + "_prefix\030\001 \001(\t\":\n\tFlyteURLs\022\016\n\006inputs\030\001 \001" + + "(\t\022\017\n\007outputs\030\002 \001(\t\022\014\n\004deck\030\003 \001(\t*\\\n\020Nam" + + "edEntityState\022\027\n\023NAMED_ENTITY_ACTIVE\020\000\022\031" + + "\n\025NAMED_ENTITY_ARCHIVED\020\001\022\024\n\020SYSTEM_GENE" + + "RATED\020\002B7Z5github.com/flyteorg/flyteidl/" + + "gen/pb-go/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -21099,6 +21936,12 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_RawOutputDataConfig_descriptor, new java.lang.String[] { "OutputLocationPrefix", }); + internal_static_flyteidl_admin_FlyteURLs_descriptor = + getDescriptor().getMessageTypes().get(22); + internal_static_flyteidl_admin_FlyteURLs_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_FlyteURLs_descriptor, + new java.lang.String[] { "Inputs", "Outputs", "Deck", }); flyteidl.core.Execution.getDescriptor(); flyteidl.core.IdentifierOuterClass.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); diff --git a/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java index 7d55aaccc..7fde07694 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java @@ -13842,6 +13842,19 @@ public interface NodeExecutionGetDataResponseOrBuilder extends * .flyteidl.admin.DynamicWorkflowNodeMetadata dynamic_workflow = 16; */ flyteidl.admin.NodeExecutionOuterClass.DynamicWorkflowNodeMetadataOrBuilder getDynamicWorkflowOrBuilder(); + + /** + * .flyteidl.admin.FlyteURLs flyte_urls = 17; + */ + boolean hasFlyteUrls(); + /** + * .flyteidl.admin.FlyteURLs flyte_urls = 17; + */ + flyteidl.admin.Common.FlyteURLs getFlyteUrls(); + /** + * .flyteidl.admin.FlyteURLs flyte_urls = 17; + */ + flyteidl.admin.Common.FlyteURLsOrBuilder getFlyteUrlsOrBuilder(); } /** *
@@ -13951,6 +13964,19 @@ private NodeExecutionGetDataResponse(
 
               break;
             }
+            case 138: {
+              flyteidl.admin.Common.FlyteURLs.Builder subBuilder = null;
+              if (flyteUrls_ != null) {
+                subBuilder = flyteUrls_.toBuilder();
+              }
+              flyteUrls_ = input.readMessage(flyteidl.admin.Common.FlyteURLs.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(flyteUrls_);
+                flyteUrls_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -14154,6 +14180,27 @@ public flyteidl.admin.NodeExecutionOuterClass.DynamicWorkflowNodeMetadataOrBuild
       return getDynamicWorkflow();
     }
 
+    public static final int FLYTE_URLS_FIELD_NUMBER = 17;
+    private flyteidl.admin.Common.FlyteURLs flyteUrls_;
+    /**
+     * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+     */
+    public boolean hasFlyteUrls() {
+      return flyteUrls_ != null;
+    }
+    /**
+     * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+     */
+    public flyteidl.admin.Common.FlyteURLs getFlyteUrls() {
+      return flyteUrls_ == null ? flyteidl.admin.Common.FlyteURLs.getDefaultInstance() : flyteUrls_;
+    }
+    /**
+     * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+     */
+    public flyteidl.admin.Common.FlyteURLsOrBuilder getFlyteUrlsOrBuilder() {
+      return getFlyteUrls();
+    }
+
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -14183,6 +14230,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       if (dynamicWorkflow_ != null) {
         output.writeMessage(16, getDynamicWorkflow());
       }
+      if (flyteUrls_ != null) {
+        output.writeMessage(17, getFlyteUrls());
+      }
       unknownFields.writeTo(output);
     }
 
@@ -14212,6 +14262,10 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(16, getDynamicWorkflow());
       }
+      if (flyteUrls_ != null) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(17, getFlyteUrls());
+      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -14252,6 +14306,11 @@ public boolean equals(final java.lang.Object obj) {
         if (!getDynamicWorkflow()
             .equals(other.getDynamicWorkflow())) return false;
       }
+      if (hasFlyteUrls() != other.hasFlyteUrls()) return false;
+      if (hasFlyteUrls()) {
+        if (!getFlyteUrls()
+            .equals(other.getFlyteUrls())) return false;
+      }
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
@@ -14283,6 +14342,10 @@ public int hashCode() {
         hash = (37 * hash) + DYNAMIC_WORKFLOW_FIELD_NUMBER;
         hash = (53 * hash) + getDynamicWorkflow().hashCode();
       }
+      if (hasFlyteUrls()) {
+        hash = (37 * hash) + FLYTE_URLS_FIELD_NUMBER;
+        hash = (53 * hash) + getFlyteUrls().hashCode();
+      }
       hash = (29 * hash) + unknownFields.hashCode();
       memoizedHashCode = hash;
       return hash;
@@ -14450,6 +14513,12 @@ public Builder clear() {
           dynamicWorkflow_ = null;
           dynamicWorkflowBuilder_ = null;
         }
+        if (flyteUrlsBuilder_ == null) {
+          flyteUrls_ = null;
+        } else {
+          flyteUrls_ = null;
+          flyteUrlsBuilder_ = null;
+        }
         return this;
       }
 
@@ -14501,6 +14570,11 @@ public flyteidl.admin.NodeExecutionOuterClass.NodeExecutionGetDataResponse build
         } else {
           result.dynamicWorkflow_ = dynamicWorkflowBuilder_.build();
         }
+        if (flyteUrlsBuilder_ == null) {
+          result.flyteUrls_ = flyteUrls_;
+        } else {
+          result.flyteUrls_ = flyteUrlsBuilder_.build();
+        }
         onBuilt();
         return result;
       }
@@ -14564,6 +14638,9 @@ public Builder mergeFrom(flyteidl.admin.NodeExecutionOuterClass.NodeExecutionGet
         if (other.hasDynamicWorkflow()) {
           mergeDynamicWorkflow(other.getDynamicWorkflow());
         }
+        if (other.hasFlyteUrls()) {
+          mergeFlyteUrls(other.getFlyteUrls());
+        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -15375,6 +15452,123 @@ public flyteidl.admin.NodeExecutionOuterClass.DynamicWorkflowNodeMetadataOrBuild
         }
         return dynamicWorkflowBuilder_;
       }
+
+      private flyteidl.admin.Common.FlyteURLs flyteUrls_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.admin.Common.FlyteURLs, flyteidl.admin.Common.FlyteURLs.Builder, flyteidl.admin.Common.FlyteURLsOrBuilder> flyteUrlsBuilder_;
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public boolean hasFlyteUrls() {
+        return flyteUrlsBuilder_ != null || flyteUrls_ != null;
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public flyteidl.admin.Common.FlyteURLs getFlyteUrls() {
+        if (flyteUrlsBuilder_ == null) {
+          return flyteUrls_ == null ? flyteidl.admin.Common.FlyteURLs.getDefaultInstance() : flyteUrls_;
+        } else {
+          return flyteUrlsBuilder_.getMessage();
+        }
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public Builder setFlyteUrls(flyteidl.admin.Common.FlyteURLs value) {
+        if (flyteUrlsBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          flyteUrls_ = value;
+          onChanged();
+        } else {
+          flyteUrlsBuilder_.setMessage(value);
+        }
+
+        return this;
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public Builder setFlyteUrls(
+          flyteidl.admin.Common.FlyteURLs.Builder builderForValue) {
+        if (flyteUrlsBuilder_ == null) {
+          flyteUrls_ = builderForValue.build();
+          onChanged();
+        } else {
+          flyteUrlsBuilder_.setMessage(builderForValue.build());
+        }
+
+        return this;
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public Builder mergeFlyteUrls(flyteidl.admin.Common.FlyteURLs value) {
+        if (flyteUrlsBuilder_ == null) {
+          if (flyteUrls_ != null) {
+            flyteUrls_ =
+              flyteidl.admin.Common.FlyteURLs.newBuilder(flyteUrls_).mergeFrom(value).buildPartial();
+          } else {
+            flyteUrls_ = value;
+          }
+          onChanged();
+        } else {
+          flyteUrlsBuilder_.mergeFrom(value);
+        }
+
+        return this;
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public Builder clearFlyteUrls() {
+        if (flyteUrlsBuilder_ == null) {
+          flyteUrls_ = null;
+          onChanged();
+        } else {
+          flyteUrls_ = null;
+          flyteUrlsBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public flyteidl.admin.Common.FlyteURLs.Builder getFlyteUrlsBuilder() {
+        
+        onChanged();
+        return getFlyteUrlsFieldBuilder().getBuilder();
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      public flyteidl.admin.Common.FlyteURLsOrBuilder getFlyteUrlsOrBuilder() {
+        if (flyteUrlsBuilder_ != null) {
+          return flyteUrlsBuilder_.getMessageOrBuilder();
+        } else {
+          return flyteUrls_ == null ?
+              flyteidl.admin.Common.FlyteURLs.getDefaultInstance() : flyteUrls_;
+        }
+      }
+      /**
+       * .flyteidl.admin.FlyteURLs flyte_urls = 17;
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          flyteidl.admin.Common.FlyteURLs, flyteidl.admin.Common.FlyteURLs.Builder, flyteidl.admin.Common.FlyteURLsOrBuilder> 
+          getFlyteUrlsFieldBuilder() {
+        if (flyteUrlsBuilder_ == null) {
+          flyteUrlsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              flyteidl.admin.Common.FlyteURLs, flyteidl.admin.Common.FlyteURLs.Builder, flyteidl.admin.Common.FlyteURLsOrBuilder>(
+                  getFlyteUrls(),
+                  getParentForChildren(),
+                  isClean());
+          flyteUrls_ = null;
+        }
+        return flyteUrlsBuilder_;
+      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -15554,16 +15748,17 @@ public flyteidl.admin.NodeExecutionOuterClass.NodeExecutionGetDataResponse getDe
       "CompiledWorkflowClosure\022\034\n\024dynamic_job_s" +
       "pec_uri\030\003 \001(\t\"Q\n\033NodeExecutionGetDataReq" +
       "uest\0222\n\002id\030\001 \001(\0132&.flyteidl.core.NodeExe" +
-      "cutionIdentifier\"\241\002\n\034NodeExecutionGetDat" +
+      "cutionIdentifier\"\320\002\n\034NodeExecutionGetDat" +
       "aResponse\022+\n\006inputs\030\001 \001(\0132\027.flyteidl.adm" +
       "in.UrlBlobB\002\030\001\022,\n\007outputs\030\002 \001(\0132\027.flytei" +
       "dl.admin.UrlBlobB\002\030\001\022.\n\013full_inputs\030\003 \001(" +
       "\0132\031.flyteidl.core.LiteralMap\022/\n\014full_out" +
       "puts\030\004 \001(\0132\031.flyteidl.core.LiteralMap\022E\n" +
       "\020dynamic_workflow\030\020 \001(\0132+.flyteidl.admin" +
-      ".DynamicWorkflowNodeMetadataB7Z5github.c" +
-      "om/flyteorg/flyteidl/gen/pb-go/flyteidl/" +
-      "adminb\006proto3"
+      ".DynamicWorkflowNodeMetadata\022-\n\nflyte_ur" +
+      "ls\030\021 \001(\0132\031.flyteidl.admin.FlyteURLsB7Z5g" +
+      "ithub.com/flyteorg/flyteidl/gen/pb-go/fl" +
+      "yteidl/adminb\006proto3"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
         new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
@@ -15656,7 +15851,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors(
     internal_static_flyteidl_admin_NodeExecutionGetDataResponse_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_flyteidl_admin_NodeExecutionGetDataResponse_descriptor,
-        new java.lang.String[] { "Inputs", "Outputs", "FullInputs", "FullOutputs", "DynamicWorkflow", });
+        new java.lang.String[] { "Inputs", "Outputs", "FullInputs", "FullOutputs", "DynamicWorkflow", "FlyteUrls", });
     flyteidl.admin.Common.getDescriptor();
     flyteidl.core.Execution.getDescriptor();
     flyteidl.core.Catalog.getDescriptor();
diff --git a/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java
index df8c99c25..7094d57d6 100644
--- a/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java
+++ b/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java
@@ -10299,6 +10299,34 @@ public interface TaskExecutionGetDataResponseOrBuilder extends
      * .flyteidl.core.LiteralMap full_outputs = 4;
      */
     flyteidl.core.Literals.LiteralMapOrBuilder getFullOutputsOrBuilder();
+
+    /**
+     * 
+     * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+     * Deck will be empty for task
+     * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + boolean hasFlyteUrls(); + /** + *
+     * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+     * Deck will be empty for task
+     * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + flyteidl.admin.Common.FlyteURLs getFlyteUrls(); + /** + *
+     * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+     * Deck will be empty for task
+     * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + flyteidl.admin.Common.FlyteURLsOrBuilder getFlyteUrlsOrBuilder(); } /** *
@@ -10395,6 +10423,19 @@ private TaskExecutionGetDataResponse(
 
               break;
             }
+            case 42: {
+              flyteidl.admin.Common.FlyteURLs.Builder subBuilder = null;
+              if (flyteUrls_ != null) {
+                subBuilder = flyteUrls_.toBuilder();
+              }
+              flyteUrls_ = input.readMessage(flyteidl.admin.Common.FlyteURLs.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(flyteUrls_);
+                flyteUrls_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -10565,6 +10606,42 @@ public flyteidl.core.Literals.LiteralMapOrBuilder getFullOutputsOrBuilder() {
       return getFullOutputs();
     }
 
+    public static final int FLYTE_URLS_FIELD_NUMBER = 5;
+    private flyteidl.admin.Common.FlyteURLs flyteUrls_;
+    /**
+     * 
+     * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+     * Deck will be empty for task
+     * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public boolean hasFlyteUrls() { + return flyteUrls_ != null; + } + /** + *
+     * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+     * Deck will be empty for task
+     * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public flyteidl.admin.Common.FlyteURLs getFlyteUrls() { + return flyteUrls_ == null ? flyteidl.admin.Common.FlyteURLs.getDefaultInstance() : flyteUrls_; + } + /** + *
+     * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+     * Deck will be empty for task
+     * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public flyteidl.admin.Common.FlyteURLsOrBuilder getFlyteUrlsOrBuilder() { + return getFlyteUrls(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -10591,6 +10668,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (fullOutputs_ != null) { output.writeMessage(4, getFullOutputs()); } + if (flyteUrls_ != null) { + output.writeMessage(5, getFlyteUrls()); + } unknownFields.writeTo(output); } @@ -10616,6 +10696,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getFullOutputs()); } + if (flyteUrls_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getFlyteUrls()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -10651,6 +10735,11 @@ public boolean equals(final java.lang.Object obj) { if (!getFullOutputs() .equals(other.getFullOutputs())) return false; } + if (hasFlyteUrls() != other.hasFlyteUrls()) return false; + if (hasFlyteUrls()) { + if (!getFlyteUrls() + .equals(other.getFlyteUrls())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -10678,6 +10767,10 @@ public int hashCode() { hash = (37 * hash) + FULL_OUTPUTS_FIELD_NUMBER; hash = (53 * hash) + getFullOutputs().hashCode(); } + if (hasFlyteUrls()) { + hash = (37 * hash) + FLYTE_URLS_FIELD_NUMBER; + hash = (53 * hash) + getFlyteUrls().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -10839,6 +10932,12 @@ public Builder clear() { fullOutputs_ = null; fullOutputsBuilder_ = null; } + if (flyteUrlsBuilder_ == null) { + flyteUrls_ = null; + } else { + flyteUrls_ = null; + flyteUrlsBuilder_ = null; + } return this; } @@ -10885,6 +10984,11 @@ public flyteidl.admin.TaskExecutionOuterClass.TaskExecutionGetDataResponse build } else { result.fullOutputs_ = fullOutputsBuilder_.build(); } + if (flyteUrlsBuilder_ == null) { + result.flyteUrls_ = flyteUrls_; + } else { + result.flyteUrls_ = flyteUrlsBuilder_.build(); + } onBuilt(); return result; } @@ -10945,6 +11049,9 @@ public Builder mergeFrom(flyteidl.admin.TaskExecutionOuterClass.TaskExecutionGet if (other.hasFullOutputs()) { mergeFullOutputs(other.getFullOutputs()); } + if (other.hasFlyteUrls()) { + mergeFlyteUrls(other.getFlyteUrls()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -11603,6 +11710,168 @@ public flyteidl.core.Literals.LiteralMapOrBuilder getFullOutputsOrBuilder() { } return fullOutputsBuilder_; } + + private flyteidl.admin.Common.FlyteURLs flyteUrls_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.Common.FlyteURLs, flyteidl.admin.Common.FlyteURLs.Builder, flyteidl.admin.Common.FlyteURLsOrBuilder> flyteUrlsBuilder_; + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public boolean hasFlyteUrls() { + return flyteUrlsBuilder_ != null || flyteUrls_ != null; + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public flyteidl.admin.Common.FlyteURLs getFlyteUrls() { + if (flyteUrlsBuilder_ == null) { + return flyteUrls_ == null ? flyteidl.admin.Common.FlyteURLs.getDefaultInstance() : flyteUrls_; + } else { + return flyteUrlsBuilder_.getMessage(); + } + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public Builder setFlyteUrls(flyteidl.admin.Common.FlyteURLs value) { + if (flyteUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + flyteUrls_ = value; + onChanged(); + } else { + flyteUrlsBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public Builder setFlyteUrls( + flyteidl.admin.Common.FlyteURLs.Builder builderForValue) { + if (flyteUrlsBuilder_ == null) { + flyteUrls_ = builderForValue.build(); + onChanged(); + } else { + flyteUrlsBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public Builder mergeFlyteUrls(flyteidl.admin.Common.FlyteURLs value) { + if (flyteUrlsBuilder_ == null) { + if (flyteUrls_ != null) { + flyteUrls_ = + flyteidl.admin.Common.FlyteURLs.newBuilder(flyteUrls_).mergeFrom(value).buildPartial(); + } else { + flyteUrls_ = value; + } + onChanged(); + } else { + flyteUrlsBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public Builder clearFlyteUrls() { + if (flyteUrlsBuilder_ == null) { + flyteUrls_ = null; + onChanged(); + } else { + flyteUrls_ = null; + flyteUrlsBuilder_ = null; + } + + return this; + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public flyteidl.admin.Common.FlyteURLs.Builder getFlyteUrlsBuilder() { + + onChanged(); + return getFlyteUrlsFieldBuilder().getBuilder(); + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + public flyteidl.admin.Common.FlyteURLsOrBuilder getFlyteUrlsOrBuilder() { + if (flyteUrlsBuilder_ != null) { + return flyteUrlsBuilder_.getMessageOrBuilder(); + } else { + return flyteUrls_ == null ? + flyteidl.admin.Common.FlyteURLs.getDefaultInstance() : flyteUrls_; + } + } + /** + *
+       * flyte tiny url to fetch a core.LiteralMap of task execution's IO
+       * Deck will be empty for task
+       * 
+ * + * .flyteidl.admin.FlyteURLs flyte_urls = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.Common.FlyteURLs, flyteidl.admin.Common.FlyteURLs.Builder, flyteidl.admin.Common.FlyteURLsOrBuilder> + getFlyteUrlsFieldBuilder() { + if (flyteUrlsBuilder_ == null) { + flyteUrlsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.Common.FlyteURLs, flyteidl.admin.Common.FlyteURLs.Builder, flyteidl.admin.Common.FlyteURLsOrBuilder>( + getFlyteUrls(), + getParentForChildren(), + isClean()); + flyteUrls_ = null; + } + return flyteUrlsBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -11745,14 +12014,15 @@ public flyteidl.admin.TaskExecutionOuterClass.TaskExecutionGetDataResponse getDe "curred_at\030\001 \001(\0132\032.google.protobuf.Timest" + "amp\022\017\n\007message\030\002 \001(\t\"Q\n\033TaskExecutionGet" + "DataRequest\0222\n\002id\030\001 \001(\0132&.flyteidl.core." + - "TaskExecutionIdentifier\"\332\001\n\034TaskExecutio" + + "TaskExecutionIdentifier\"\211\002\n\034TaskExecutio" + "nGetDataResponse\022+\n\006inputs\030\001 \001(\0132\027.flyte" + "idl.admin.UrlBlobB\002\030\001\022,\n\007outputs\030\002 \001(\0132\027" + ".flyteidl.admin.UrlBlobB\002\030\001\022.\n\013full_inpu" + "ts\030\003 \001(\0132\031.flyteidl.core.LiteralMap\022/\n\014f" + "ull_outputs\030\004 \001(\0132\031.flyteidl.core.Litera" + - "lMapB7Z5github.com/flyteorg/flyteidl/gen" + - "/pb-go/flyteidl/adminb\006proto3" + "lMap\022-\n\nflyte_urls\030\005 \001(\0132\031.flyteidl.admi" + + "n.FlyteURLsB7Z5github.com/flyteorg/flyte" + + "idl/gen/pb-go/flyteidl/adminb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -11821,7 +12091,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_admin_TaskExecutionGetDataResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_admin_TaskExecutionGetDataResponse_descriptor, - new java.lang.String[] { "Inputs", "Outputs", "FullInputs", "FullOutputs", }); + new java.lang.String[] { "Inputs", "Outputs", "FullInputs", "FullOutputs", "FlyteUrls", }); flyteidl.admin.Common.getDescriptor(); flyteidl.core.Execution.getDescriptor(); flyteidl.core.IdentifierOuterClass.getDescriptor(); diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index c81822aed..193fc74e2 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -38,260 +38,258 @@ public static void registerAllExtensions( "admin/task_execution.proto\032\034flyteidl/adm" + "in/version.proto\032\033flyteidl/admin/common." + "proto\032\'flyteidl/admin/description_entity" + - ".proto\032\036flyteidl/core/identifier.proto\032\033" + - "flyteidl/core/metrics.proto2\204N\n\014AdminSer" + - "vice\022m\n\nCreateTask\022!.flyteidl.admin.Task" + - "CreateRequest\032\".flyteidl.admin.TaskCreat" + - "eResponse\"\030\202\323\344\223\002\022\"\r/api/v1/tasks:\001*\022\210\001\n\007" + - "GetTask\022 .flyteidl.admin.ObjectGetReques" + - "t\032\024.flyteidl.admin.Task\"E\202\323\344\223\002?\022=/api/v1" + - "/tasks/{id.project}/{id.domain}/{id.name" + - "}/{id.version}\022\227\001\n\013ListTaskIds\0220.flyteid" + - "l.admin.NamedEntityIdentifierListRequest" + - "\032).flyteidl.admin.NamedEntityIdentifierL" + - "ist\"+\202\323\344\223\002%\022#/api/v1/task_ids/{project}/" + - "{domain}\022\256\001\n\tListTasks\022#.flyteidl.admin." + - "ResourceListRequest\032\030.flyteidl.admin.Tas" + - "kList\"b\202\323\344\223\002\\\0220/api/v1/tasks/{id.project" + - "}/{id.domain}/{id.name}Z(\022&/api/v1/tasks" + - "/{id.project}/{id.domain}\022}\n\016CreateWorkf" + - "low\022%.flyteidl.admin.WorkflowCreateReque" + - "st\032&.flyteidl.admin.WorkflowCreateRespon" + - "se\"\034\202\323\344\223\002\026\"\021/api/v1/workflows:\001*\022\224\001\n\013Get" + - "Workflow\022 .flyteidl.admin.ObjectGetReque" + - "st\032\030.flyteidl.admin.Workflow\"I\202\323\344\223\002C\022A/a" + - "pi/v1/workflows/{id.project}/{id.domain}" + - "/{id.name}/{id.version}\022\237\001\n\017ListWorkflow" + - "Ids\0220.flyteidl.admin.NamedEntityIdentifi" + - "erListRequest\032).flyteidl.admin.NamedEnti" + - "tyIdentifierList\"/\202\323\344\223\002)\022\'/api/v1/workfl" + - "ow_ids/{project}/{domain}\022\276\001\n\rListWorkfl" + - "ows\022#.flyteidl.admin.ResourceListRequest" + - "\032\034.flyteidl.admin.WorkflowList\"j\202\323\344\223\002d\0224" + - "/api/v1/workflows/{id.project}/{id.domai" + - "n}/{id.name}Z,\022*/api/v1/workflows/{id.pr" + - "oject}/{id.domain}\022\206\001\n\020CreateLaunchPlan\022" + - "\'.flyteidl.admin.LaunchPlanCreateRequest" + - "\032(.flyteidl.admin.LaunchPlanCreateRespon" + - "se\"\037\202\323\344\223\002\031\"\024/api/v1/launch_plans:\001*\022\233\001\n\r" + - "GetLaunchPlan\022 .flyteidl.admin.ObjectGet" + - "Request\032\032.flyteidl.admin.LaunchPlan\"L\202\323\344" + - "\223\002F\022D/api/v1/launch_plans/{id.project}/{" + - "id.domain}/{id.name}/{id.version}\022\242\001\n\023Ge" + - "tActiveLaunchPlan\022\'.flyteidl.admin.Activ" + - "eLaunchPlanRequest\032\032.flyteidl.admin.Laun" + - "chPlan\"F\202\323\344\223\002@\022>/api/v1/active_launch_pl" + - "ans/{id.project}/{id.domain}/{id.name}\022\234" + - "\001\n\025ListActiveLaunchPlans\022+.flyteidl.admi" + - "n.ActiveLaunchPlanListRequest\032\036.flyteidl" + - ".admin.LaunchPlanList\"6\202\323\344\223\0020\022./api/v1/a" + - "ctive_launch_plans/{project}/{domain}\022\244\001" + - "\n\021ListLaunchPlanIds\0220.flyteidl.admin.Nam" + - "edEntityIdentifierListRequest\032).flyteidl" + - ".admin.NamedEntityIdentifierList\"2\202\323\344\223\002," + - "\022*/api/v1/launch_plan_ids/{project}/{dom" + - "ain}\022\310\001\n\017ListLaunchPlans\022#.flyteidl.admi" + - "n.ResourceListRequest\032\036.flyteidl.admin.L" + - "aunchPlanList\"p\202\323\344\223\002j\0227/api/v1/launch_pl" + - "ans/{id.project}/{id.domain}/{id.name}Z/" + - "\022-/api/v1/launch_plans/{id.project}/{id." + - "domain}\022\266\001\n\020UpdateLaunchPlan\022\'.flyteidl." + - "admin.LaunchPlanUpdateRequest\032(.flyteidl" + - ".admin.LaunchPlanUpdateResponse\"O\202\323\344\223\002I\032" + - "D/api/v1/launch_plans/{id.project}/{id.d" + - "omain}/{id.name}/{id.version}:\001*\022\201\001\n\017Cre" + - "ateExecution\022&.flyteidl.admin.ExecutionC" + - "reateRequest\032\'.flyteidl.admin.ExecutionC" + - "reateResponse\"\035\202\323\344\223\002\027\"\022/api/v1/execution" + - "s:\001*\022\216\001\n\021RelaunchExecution\022(.flyteidl.ad" + - "min.ExecutionRelaunchRequest\032\'.flyteidl." + - "admin.ExecutionCreateResponse\"&\202\323\344\223\002 \"\033/" + - "api/v1/executions/relaunch:\001*\022\213\001\n\020Recove" + - "rExecution\022\'.flyteidl.admin.ExecutionRec" + - "overRequest\032\'.flyteidl.admin.ExecutionCr" + - "eateResponse\"%\202\323\344\223\002\037\"\032/api/v1/executions" + - "/recover:\001*\022\225\001\n\014GetExecution\022+.flyteidl." + - "admin.WorkflowExecutionGetRequest\032\031.flyt" + - "eidl.admin.Execution\"=\202\323\344\223\0027\0225/api/v1/ex" + - "ecutions/{id.project}/{id.domain}/{id.na" + - "me}\022\244\001\n\017UpdateExecution\022&.flyteidl.admin" + - ".ExecutionUpdateRequest\032\'.flyteidl.admin" + - ".ExecutionUpdateResponse\"@\202\323\344\223\002:\0325/api/v" + - "1/executions/{id.project}/{id.domain}/{i" + - "d.name}:\001*\022\271\001\n\020GetExecutionData\022/.flytei" + - "dl.admin.WorkflowExecutionGetDataRequest" + - "\0320.flyteidl.admin.WorkflowExecutionGetDa" + - "taResponse\"B\202\323\344\223\002<\022:/api/v1/data/executi" + - "ons/{id.project}/{id.domain}/{id.name}\022\211" + - "\001\n\016ListExecutions\022#.flyteidl.admin.Resou" + - "rceListRequest\032\035.flyteidl.admin.Executio" + - "nList\"3\202\323\344\223\002-\022+/api/v1/executions/{id.pr" + - "oject}/{id.domain}\022\255\001\n\022TerminateExecutio" + - "n\022).flyteidl.admin.ExecutionTerminateReq" + - "uest\032*.flyteidl.admin.ExecutionTerminate" + - "Response\"@\202\323\344\223\002:*5/api/v1/executions/{id" + - ".project}/{id.domain}/{id.name}:\001*\022\322\001\n\020G" + - "etNodeExecution\022\'.flyteidl.admin.NodeExe" + - "cutionGetRequest\032\035.flyteidl.admin.NodeEx" + - "ecution\"v\202\323\344\223\002p\022n/api/v1/node_executions" + - "/{id.execution_id.project}/{id.execution" + - "_id.domain}/{id.execution_id.name}/{id.n" + - "ode_id}\022\336\001\n\022ListNodeExecutions\022(.flyteid" + - "l.admin.NodeExecutionListRequest\032!.flyte" + - "idl.admin.NodeExecutionList\"{\202\323\344\223\002u\022s/ap" + - "i/v1/node_executions/{workflow_execution" + - "_id.project}/{workflow_execution_id.doma" + - "in}/{workflow_execution_id.name}\022\245\004\n\031Lis" + - "tNodeExecutionsForTask\022/.flyteidl.admin." + - "NodeExecutionForTaskListRequest\032!.flytei" + - "dl.admin.NodeExecutionList\"\263\003\202\323\344\223\002\254\003\022\251\003/" + - "api/v1/children/task_executions/{task_ex" + - "ecution_id.node_execution_id.execution_i" + - "d.project}/{task_execution_id.node_execu" + - "tion_id.execution_id.domain}/{task_execu" + - "tion_id.node_execution_id.execution_id.n" + - "ame}/{task_execution_id.node_execution_i" + - "d.node_id}/{task_execution_id.task_id.pr" + - "oject}/{task_execution_id.task_id.domain" + - "}/{task_execution_id.task_id.name}/{task" + - "_execution_id.task_id.version}/{task_exe" + - "cution_id.retry_attempt}\022\356\001\n\024GetNodeExec" + - "utionData\022+.flyteidl.admin.NodeExecution" + - "GetDataRequest\032,.flyteidl.admin.NodeExec" + - "utionGetDataResponse\"{\202\323\344\223\002u\022s/api/v1/da" + - "ta/node_executions/{id.execution_id.proj" + - "ect}/{id.execution_id.domain}/{id.execut" + - "ion_id.name}/{id.node_id}\022\177\n\017RegisterPro" + - "ject\022&.flyteidl.admin.ProjectRegisterReq" + - "uest\032\'.flyteidl.admin.ProjectRegisterRes" + - "ponse\"\033\202\323\344\223\002\025\"\020/api/v1/projects:\001*\022q\n\rUp" + - "dateProject\022\027.flyteidl.admin.Project\032%.f" + - "lyteidl.admin.ProjectUpdateResponse\" \202\323\344" + - "\223\002\032\032\025/api/v1/projects/{id}:\001*\022f\n\014ListPro" + - "jects\022\".flyteidl.admin.ProjectListReques" + - "t\032\030.flyteidl.admin.Projects\"\030\202\323\344\223\002\022\022\020/ap" + - "i/v1/projects\022\231\001\n\023CreateWorkflowEvent\022-." + - "flyteidl.admin.WorkflowExecutionEventReq" + - "uest\032..flyteidl.admin.WorkflowExecutionE" + - "ventResponse\"#\202\323\344\223\002\035\"\030/api/v1/events/wor" + - "kflows:\001*\022\211\001\n\017CreateNodeEvent\022).flyteidl" + - ".admin.NodeExecutionEventRequest\032*.flyte" + - "idl.admin.NodeExecutionEventResponse\"\037\202\323" + - "\344\223\002\031\"\024/api/v1/events/nodes:\001*\022\211\001\n\017Create" + - "TaskEvent\022).flyteidl.admin.TaskExecution" + - "EventRequest\032*.flyteidl.admin.TaskExecut" + - "ionEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events" + - "/tasks:\001*\022\200\003\n\020GetTaskExecution\022\'.flyteid" + - "l.admin.TaskExecutionGetRequest\032\035.flytei" + - "dl.admin.TaskExecution\"\243\002\202\323\344\223\002\234\002\022\231\002/api/" + - "v1/task_executions/{id.node_execution_id" + - ".execution_id.project}/{id.node_executio" + - "n_id.execution_id.domain}/{id.node_execu" + - "tion_id.execution_id.name}/{id.node_exec" + - "ution_id.node_id}/{id.task_id.project}/{" + - "id.task_id.domain}/{id.task_id.name}/{id" + - ".task_id.version}/{id.retry_attempt}\022\230\002\n" + - "\022ListTaskExecutions\022(.flyteidl.admin.Tas" + - "kExecutionListRequest\032!.flyteidl.admin.T" + - "askExecutionList\"\264\001\202\323\344\223\002\255\001\022\252\001/api/v1/tas" + - "k_executions/{node_execution_id.executio" + - "n_id.project}/{node_execution_id.executi" + - "on_id.domain}/{node_execution_id.executi" + - "on_id.name}/{node_execution_id.node_id}\022" + - "\234\003\n\024GetTaskExecutionData\022+.flyteidl.admi" + - "n.TaskExecutionGetDataRequest\032,.flyteidl" + - ".admin.TaskExecutionGetDataResponse\"\250\002\202\323" + - "\344\223\002\241\002\022\236\002/api/v1/data/task_executions/{id" + - ".node_execution_id.execution_id.project}" + - "/{id.node_execution_id.execution_id.doma" + - "in}/{id.node_execution_id.execution_id.n" + - "ame}/{id.node_execution_id.node_id}/{id." + - "task_id.project}/{id.task_id.domain}/{id" + - ".task_id.name}/{id.task_id.version}/{id." + - "retry_attempt}\022\343\001\n\035UpdateProjectDomainAt" + - "tributes\0224.flyteidl.admin.ProjectDomainA" + - "ttributesUpdateRequest\0325.flyteidl.admin." + - "ProjectDomainAttributesUpdateResponse\"U\202" + - "\323\344\223\002O\032J/api/v1/project_domain_attributes" + - "/{attributes.project}/{attributes.domain" + - "}:\001*\022\301\001\n\032GetProjectDomainAttributes\0221.fl" + - "yteidl.admin.ProjectDomainAttributesGetR" + - "equest\0322.flyteidl.admin.ProjectDomainAtt" + - "ributesGetResponse\"<\202\323\344\223\0026\0224/api/v1/proj" + - "ect_domain_attributes/{project}/{domain}" + - "\022\315\001\n\035DeleteProjectDomainAttributes\0224.fly" + - "teidl.admin.ProjectDomainAttributesDelet" + - "eRequest\0325.flyteidl.admin.ProjectDomainA" + - "ttributesDeleteResponse\"?\202\323\344\223\0029*4/api/v1" + - "/project_domain_attributes/{project}/{do" + - "main}:\001*\022\266\001\n\027UpdateProjectAttributes\022..f" + - "lyteidl.admin.ProjectAttributesUpdateReq" + - "uest\032/.flyteidl.admin.ProjectAttributesU" + - "pdateResponse\":\202\323\344\223\0024\032//api/v1/project_a" + - "ttributes/{attributes.project}:\001*\022\237\001\n\024Ge" + - "tProjectAttributes\022+.flyteidl.admin.Proj" + - "ectAttributesGetRequest\032,.flyteidl.admin" + - ".ProjectAttributesGetResponse\",\202\323\344\223\002&\022$/" + - "api/v1/project_attributes/{project}\022\253\001\n\027" + - "DeleteProjectAttributes\022..flyteidl.admin" + - ".ProjectAttributesDeleteRequest\032/.flytei" + - "dl.admin.ProjectAttributesDeleteResponse" + - "\"/\202\323\344\223\002)*$/api/v1/project_attributes/{pr" + - "oject}:\001*\022\344\001\n\030UpdateWorkflowAttributes\022/" + - ".flyteidl.admin.WorkflowAttributesUpdate" + - "Request\0320.flyteidl.admin.WorkflowAttribu" + - "tesUpdateResponse\"e\202\323\344\223\002_\032Z/api/v1/workf" + - "low_attributes/{attributes.project}/{att" + - "ributes.domain}/{attributes.workflow}:\001*" + - "\022\267\001\n\025GetWorkflowAttributes\022,.flyteidl.ad" + - "min.WorkflowAttributesGetRequest\032-.flyte" + - "idl.admin.WorkflowAttributesGetResponse\"" + - "A\202\323\344\223\002;\0229/api/v1/workflow_attributes/{pr" + - "oject}/{domain}/{workflow}\022\303\001\n\030DeleteWor" + - "kflowAttributes\022/.flyteidl.admin.Workflo" + - "wAttributesDeleteRequest\0320.flyteidl.admi" + - "n.WorkflowAttributesDeleteResponse\"D\202\323\344\223" + - "\002>*9/api/v1/workflow_attributes/{project" + - "}/{domain}/{workflow}:\001*\022\240\001\n\027ListMatchab" + - "leAttributes\022..flyteidl.admin.ListMatcha" + - "bleAttributesRequest\032/.flyteidl.admin.Li" + - "stMatchableAttributesResponse\"$\202\323\344\223\002\036\022\034/" + - "api/v1/matchable_attributes\022\237\001\n\021ListName" + - "dEntities\022&.flyteidl.admin.NamedEntityLi" + - "stRequest\032\037.flyteidl.admin.NamedEntityLi" + - "st\"A\202\323\344\223\002;\0229/api/v1/named_entities/{reso" + - "urce_type}/{project}/{domain}\022\247\001\n\016GetNam" + - "edEntity\022%.flyteidl.admin.NamedEntityGet" + - "Request\032\033.flyteidl.admin.NamedEntity\"Q\202\323" + - "\344\223\002K\022I/api/v1/named_entities/{resource_t" + - "ype}/{id.project}/{id.domain}/{id.name}\022" + - "\276\001\n\021UpdateNamedEntity\022(.flyteidl.admin.N" + - "amedEntityUpdateRequest\032).flyteidl.admin" + - ".NamedEntityUpdateResponse\"T\202\323\344\223\002N\032I/api" + - "/v1/named_entities/{resource_type}/{id.p" + - "roject}/{id.domain}/{id.name}:\001*\022l\n\nGetV" + - "ersion\022!.flyteidl.admin.GetVersionReques" + - "t\032\".flyteidl.admin.GetVersionResponse\"\027\202" + - "\323\344\223\002\021\022\017/api/v1/version\022\304\001\n\024GetDescriptio" + - "nEntity\022 .flyteidl.admin.ObjectGetReques" + - "t\032!.flyteidl.admin.DescriptionEntity\"g\202\323" + - "\344\223\002a\022_/api/v1/description_entities/{id.r" + + ".proto2\204N\n\014AdminService\022m\n\nCreateTask\022!." + + "flyteidl.admin.TaskCreateRequest\032\".flyte" + + "idl.admin.TaskCreateResponse\"\030\202\323\344\223\002\022\"\r/a" + + "pi/v1/tasks:\001*\022\210\001\n\007GetTask\022 .flyteidl.ad" + + "min.ObjectGetRequest\032\024.flyteidl.admin.Ta" + + "sk\"E\202\323\344\223\002?\022=/api/v1/tasks/{id.project}/{" + + "id.domain}/{id.name}/{id.version}\022\227\001\n\013Li" + + "stTaskIds\0220.flyteidl.admin.NamedEntityId" + + "entifierListRequest\032).flyteidl.admin.Nam" + + "edEntityIdentifierList\"+\202\323\344\223\002%\022#/api/v1/" + + "task_ids/{project}/{domain}\022\256\001\n\tListTask" + + "s\022#.flyteidl.admin.ResourceListRequest\032\030" + + ".flyteidl.admin.TaskList\"b\202\323\344\223\002\\\0220/api/v" + + "1/tasks/{id.project}/{id.domain}/{id.nam" + + "e}Z(\022&/api/v1/tasks/{id.project}/{id.dom" + + "ain}\022}\n\016CreateWorkflow\022%.flyteidl.admin." + + "WorkflowCreateRequest\032&.flyteidl.admin.W" + + "orkflowCreateResponse\"\034\202\323\344\223\002\026\"\021/api/v1/w" + + "orkflows:\001*\022\224\001\n\013GetWorkflow\022 .flyteidl.a" + + "dmin.ObjectGetRequest\032\030.flyteidl.admin.W" + + "orkflow\"I\202\323\344\223\002C\022A/api/v1/workflows/{id.p" + + "roject}/{id.domain}/{id.name}/{id.versio" + + "n}\022\237\001\n\017ListWorkflowIds\0220.flyteidl.admin." + + "NamedEntityIdentifierListRequest\032).flyte" + + "idl.admin.NamedEntityIdentifierList\"/\202\323\344" + + "\223\002)\022\'/api/v1/workflow_ids/{project}/{dom" + + "ain}\022\276\001\n\rListWorkflows\022#.flyteidl.admin." + + "ResourceListRequest\032\034.flyteidl.admin.Wor" + + "kflowList\"j\202\323\344\223\002d\0224/api/v1/workflows/{id" + + ".project}/{id.domain}/{id.name}Z,\022*/api/" + + "v1/workflows/{id.project}/{id.domain}\022\206\001" + + "\n\020CreateLaunchPlan\022\'.flyteidl.admin.Laun" + + "chPlanCreateRequest\032(.flyteidl.admin.Lau" + + "nchPlanCreateResponse\"\037\202\323\344\223\002\031\"\024/api/v1/l" + + "aunch_plans:\001*\022\233\001\n\rGetLaunchPlan\022 .flyte" + + "idl.admin.ObjectGetRequest\032\032.flyteidl.ad" + + "min.LaunchPlan\"L\202\323\344\223\002F\022D/api/v1/launch_p" + + "lans/{id.project}/{id.domain}/{id.name}/" + + "{id.version}\022\242\001\n\023GetActiveLaunchPlan\022\'.f" + + "lyteidl.admin.ActiveLaunchPlanRequest\032\032." + + "flyteidl.admin.LaunchPlan\"F\202\323\344\223\002@\022>/api/" + + "v1/active_launch_plans/{id.project}/{id." + + "domain}/{id.name}\022\234\001\n\025ListActiveLaunchPl" + + "ans\022+.flyteidl.admin.ActiveLaunchPlanLis" + + "tRequest\032\036.flyteidl.admin.LaunchPlanList" + + "\"6\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" + + "roject}/{domain}\022\244\001\n\021ListLaunchPlanIds\0220" + + ".flyteidl.admin.NamedEntityIdentifierLis" + + "tRequest\032).flyteidl.admin.NamedEntityIde" + + "ntifierList\"2\202\323\344\223\002,\022*/api/v1/launch_plan" + + "_ids/{project}/{domain}\022\310\001\n\017ListLaunchPl" + + "ans\022#.flyteidl.admin.ResourceListRequest" + + "\032\036.flyteidl.admin.LaunchPlanList\"p\202\323\344\223\002j" + + "\0227/api/v1/launch_plans/{id.project}/{id." + + "domain}/{id.name}Z/\022-/api/v1/launch_plan" + + "s/{id.project}/{id.domain}\022\266\001\n\020UpdateLau" + + "nchPlan\022\'.flyteidl.admin.LaunchPlanUpdat" + + "eRequest\032(.flyteidl.admin.LaunchPlanUpda" + + "teResponse\"O\202\323\344\223\002I\032D/api/v1/launch_plans" + + "/{id.project}/{id.domain}/{id.name}/{id." + + "version}:\001*\022\201\001\n\017CreateExecution\022&.flytei" + + "dl.admin.ExecutionCreateRequest\032\'.flytei" + + "dl.admin.ExecutionCreateResponse\"\035\202\323\344\223\002\027" + + "\"\022/api/v1/executions:\001*\022\216\001\n\021RelaunchExec" + + "ution\022(.flyteidl.admin.ExecutionRelaunch" + + "Request\032\'.flyteidl.admin.ExecutionCreate" + + "Response\"&\202\323\344\223\002 \"\033/api/v1/executions/rel" + + "aunch:\001*\022\213\001\n\020RecoverExecution\022\'.flyteidl" + + ".admin.ExecutionRecoverRequest\032\'.flyteid" + + "l.admin.ExecutionCreateResponse\"%\202\323\344\223\002\037\"" + + "\032/api/v1/executions/recover:\001*\022\225\001\n\014GetEx" + + "ecution\022+.flyteidl.admin.WorkflowExecuti" + + "onGetRequest\032\031.flyteidl.admin.Execution\"" + + "=\202\323\344\223\0027\0225/api/v1/executions/{id.project}" + + "/{id.domain}/{id.name}\022\244\001\n\017UpdateExecuti" + + "on\022&.flyteidl.admin.ExecutionUpdateReque" + + "st\032\'.flyteidl.admin.ExecutionUpdateRespo" + + "nse\"@\202\323\344\223\002:\0325/api/v1/executions/{id.proj" + + "ect}/{id.domain}/{id.name}:\001*\022\271\001\n\020GetExe" + + "cutionData\022/.flyteidl.admin.WorkflowExec" + + "utionGetDataRequest\0320.flyteidl.admin.Wor" + + "kflowExecutionGetDataResponse\"B\202\323\344\223\002<\022:/" + + "api/v1/data/executions/{id.project}/{id." + + "domain}/{id.name}\022\211\001\n\016ListExecutions\022#.f" + + "lyteidl.admin.ResourceListRequest\032\035.flyt" + + "eidl.admin.ExecutionList\"3\202\323\344\223\002-\022+/api/v" + + "1/executions/{id.project}/{id.domain}\022\255\001" + + "\n\022TerminateExecution\022).flyteidl.admin.Ex" + + "ecutionTerminateRequest\032*.flyteidl.admin" + + ".ExecutionTerminateResponse\"@\202\323\344\223\002:*5/ap" + + "i/v1/executions/{id.project}/{id.domain}" + + "/{id.name}:\001*\022\322\001\n\020GetNodeExecution\022\'.fly" + + "teidl.admin.NodeExecutionGetRequest\032\035.fl" + + "yteidl.admin.NodeExecution\"v\202\323\344\223\002p\022n/api" + + "/v1/node_executions/{id.execution_id.pro" + + "ject}/{id.execution_id.domain}/{id.execu" + + "tion_id.name}/{id.node_id}\022\336\001\n\022ListNodeE" + + "xecutions\022(.flyteidl.admin.NodeExecution" + + "ListRequest\032!.flyteidl.admin.NodeExecuti" + + "onList\"{\202\323\344\223\002u\022s/api/v1/node_executions/" + + "{workflow_execution_id.project}/{workflo" + + "w_execution_id.domain}/{workflow_executi" + + "on_id.name}\022\245\004\n\031ListNodeExecutionsForTas" + + "k\022/.flyteidl.admin.NodeExecutionForTaskL" + + "istRequest\032!.flyteidl.admin.NodeExecutio" + + "nList\"\263\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_" + + "executions/{task_execution_id.node_execu" + + "tion_id.execution_id.project}/{task_exec" + + "ution_id.node_execution_id.execution_id." + + "domain}/{task_execution_id.node_executio" + + "n_id.execution_id.name}/{task_execution_" + + "id.node_execution_id.node_id}/{task_exec" + + "ution_id.task_id.project}/{task_executio" + + "n_id.task_id.domain}/{task_execution_id." + + "task_id.name}/{task_execution_id.task_id" + + ".version}/{task_execution_id.retry_attem" + + "pt}\022\356\001\n\024GetNodeExecutionData\022+.flyteidl." + + "admin.NodeExecutionGetDataRequest\032,.flyt" + + "eidl.admin.NodeExecutionGetDataResponse\"" + + "{\202\323\344\223\002u\022s/api/v1/data/node_executions/{i" + + "d.execution_id.project}/{id.execution_id" + + ".domain}/{id.execution_id.name}/{id.node" + + "_id}\022\177\n\017RegisterProject\022&.flyteidl.admin" + + ".ProjectRegisterRequest\032\'.flyteidl.admin" + + ".ProjectRegisterResponse\"\033\202\323\344\223\002\025\"\020/api/v" + + "1/projects:\001*\022q\n\rUpdateProject\022\027.flyteid" + + "l.admin.Project\032%.flyteidl.admin.Project" + + "UpdateResponse\" \202\323\344\223\002\032\032\025/api/v1/projects" + + "/{id}:\001*\022f\n\014ListProjects\022\".flyteidl.admi" + + "n.ProjectListRequest\032\030.flyteidl.admin.Pr" + + "ojects\"\030\202\323\344\223\002\022\022\020/api/v1/projects\022\231\001\n\023Cre" + + "ateWorkflowEvent\022-.flyteidl.admin.Workfl" + + "owExecutionEventRequest\032..flyteidl.admin" + + ".WorkflowExecutionEventResponse\"#\202\323\344\223\002\035\"" + + "\030/api/v1/events/workflows:\001*\022\211\001\n\017CreateN" + + "odeEvent\022).flyteidl.admin.NodeExecutionE" + + "ventRequest\032*.flyteidl.admin.NodeExecuti" + + "onEventResponse\"\037\202\323\344\223\002\031\"\024/api/v1/events/" + + "nodes:\001*\022\211\001\n\017CreateTaskEvent\022).flyteidl." + + "admin.TaskExecutionEventRequest\032*.flytei" + + "dl.admin.TaskExecutionEventResponse\"\037\202\323\344" + + "\223\002\031\"\024/api/v1/events/tasks:\001*\022\200\003\n\020GetTask" + + "Execution\022\'.flyteidl.admin.TaskExecution" + + "GetRequest\032\035.flyteidl.admin.TaskExecutio" + + "n\"\243\002\202\323\344\223\002\234\002\022\231\002/api/v1/task_executions/{i" + + "d.node_execution_id.execution_id.project" + + "}/{id.node_execution_id.execution_id.dom" + + "ain}/{id.node_execution_id.execution_id." + + "name}/{id.node_execution_id.node_id}/{id" + + ".task_id.project}/{id.task_id.domain}/{i" + + "d.task_id.name}/{id.task_id.version}/{id" + + ".retry_attempt}\022\230\002\n\022ListTaskExecutions\022(" + + ".flyteidl.admin.TaskExecutionListRequest" + + "\032!.flyteidl.admin.TaskExecutionList\"\264\001\202\323" + + "\344\223\002\255\001\022\252\001/api/v1/task_executions/{node_ex" + + "ecution_id.execution_id.project}/{node_e" + + "xecution_id.execution_id.domain}/{node_e" + + "xecution_id.execution_id.name}/{node_exe" + + "cution_id.node_id}\022\234\003\n\024GetTaskExecutionD" + + "ata\022+.flyteidl.admin.TaskExecutionGetDat" + + "aRequest\032,.flyteidl.admin.TaskExecutionG" + + "etDataResponse\"\250\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/" + + "task_executions/{id.node_execution_id.ex" + + "ecution_id.project}/{id.node_execution_i" + + "d.execution_id.domain}/{id.node_executio" + + "n_id.execution_id.name}/{id.node_executi" + + "on_id.node_id}/{id.task_id.project}/{id." + + "task_id.domain}/{id.task_id.name}/{id.ta" + + "sk_id.version}/{id.retry_attempt}\022\343\001\n\035Up" + + "dateProjectDomainAttributes\0224.flyteidl.a" + + "dmin.ProjectDomainAttributesUpdateReques" + + "t\0325.flyteidl.admin.ProjectDomainAttribut" + + "esUpdateResponse\"U\202\323\344\223\002O\032J/api/v1/projec" + + "t_domain_attributes/{attributes.project}" + + "/{attributes.domain}:\001*\022\301\001\n\032GetProjectDo" + + "mainAttributes\0221.flyteidl.admin.ProjectD" + + "omainAttributesGetRequest\0322.flyteidl.adm" + + "in.ProjectDomainAttributesGetResponse\"<\202" + + "\323\344\223\0026\0224/api/v1/project_domain_attributes" + + "/{project}/{domain}\022\315\001\n\035DeleteProjectDom" + + "ainAttributes\0224.flyteidl.admin.ProjectDo" + + "mainAttributesDeleteRequest\0325.flyteidl.a" + + "dmin.ProjectDomainAttributesDeleteRespon" + + "se\"?\202\323\344\223\0029*4/api/v1/project_domain_attri" + + "butes/{project}/{domain}:\001*\022\266\001\n\027UpdatePr" + + "ojectAttributes\022..flyteidl.admin.Project" + + "AttributesUpdateRequest\032/.flyteidl.admin" + + ".ProjectAttributesUpdateResponse\":\202\323\344\223\0024" + + "\032//api/v1/project_attributes/{attributes" + + ".project}:\001*\022\237\001\n\024GetProjectAttributes\022+." + + "flyteidl.admin.ProjectAttributesGetReque" + + "st\032,.flyteidl.admin.ProjectAttributesGet" + + "Response\",\202\323\344\223\002&\022$/api/v1/project_attrib" + + "utes/{project}\022\253\001\n\027DeleteProjectAttribut" + + "es\022..flyteidl.admin.ProjectAttributesDel" + + "eteRequest\032/.flyteidl.admin.ProjectAttri" + + "butesDeleteResponse\"/\202\323\344\223\002)*$/api/v1/pro" + + "ject_attributes/{project}:\001*\022\344\001\n\030UpdateW" + + "orkflowAttributes\022/.flyteidl.admin.Workf" + + "lowAttributesUpdateRequest\0320.flyteidl.ad" + + "min.WorkflowAttributesUpdateResponse\"e\202\323" + + "\344\223\002_\032Z/api/v1/workflow_attributes/{attri" + + "butes.project}/{attributes.domain}/{attr" + + "ibutes.workflow}:\001*\022\267\001\n\025GetWorkflowAttri" + + "butes\022,.flyteidl.admin.WorkflowAttribute" + + "sGetRequest\032-.flyteidl.admin.WorkflowAtt" + + "ributesGetResponse\"A\202\323\344\223\002;\0229/api/v1/work" + + "flow_attributes/{project}/{domain}/{work" + + "flow}\022\303\001\n\030DeleteWorkflowAttributes\022/.fly" + + "teidl.admin.WorkflowAttributesDeleteRequ" + + "est\0320.flyteidl.admin.WorkflowAttributesD" + + "eleteResponse\"D\202\323\344\223\002>*9/api/v1/workflow_" + + "attributes/{project}/{domain}/{workflow}" + + ":\001*\022\240\001\n\027ListMatchableAttributes\022..flytei" + + "dl.admin.ListMatchableAttributesRequest\032" + + "/.flyteidl.admin.ListMatchableAttributes" + + "Response\"$\202\323\344\223\002\036\022\034/api/v1/matchable_attr" + + "ibutes\022\237\001\n\021ListNamedEntities\022&.flyteidl." + + "admin.NamedEntityListRequest\032\037.flyteidl." + + "admin.NamedEntityList\"A\202\323\344\223\002;\0229/api/v1/n" + + "amed_entities/{resource_type}/{project}/" + + "{domain}\022\247\001\n\016GetNamedEntity\022%.flyteidl.a" + + "dmin.NamedEntityGetRequest\032\033.flyteidl.ad" + + "min.NamedEntity\"Q\202\323\344\223\002K\022I/api/v1/named_e" + + "ntities/{resource_type}/{id.project}/{id" + + ".domain}/{id.name}\022\276\001\n\021UpdateNamedEntity" + + "\022(.flyteidl.admin.NamedEntityUpdateReque" + + "st\032).flyteidl.admin.NamedEntityUpdateRes" + + "ponse\"T\202\323\344\223\002N\032I/api/v1/named_entities/{r" + "esource_type}/{id.project}/{id.domain}/{" + - "id.name}/{id.version}\022\222\002\n\027ListDescriptio" + - "nEntities\022,.flyteidl.admin.DescriptionEn" + - "tityListRequest\032%.flyteidl.admin.Descrip" + - "tionEntityList\"\241\001\202\323\344\223\002\232\001\022O/api/v1/descri" + - "ption_entities/{resource_type}/{id.proje" + - "ct}/{id.domain}/{id.name}ZG\022E/api/v1/des" + - "cription_entities/{resource_type}/{id.pr" + - "oject}/{id.domain}\022\305\001\n\023GetExecutionMetri" + - "cs\0222.flyteidl.admin.WorkflowExecutionGet" + - "MetricsRequest\0323.flyteidl.admin.Workflow" + - "ExecutionGetMetricsResponse\"E\202\323\344\223\002?\022=/ap" + - "i/v1/metrics/executions/{id.project}/{id" + - ".domain}/{id.name}B9Z7github.com/flyteor" + - "g/flyteidl/gen/pb-go/flyteidl/serviceb\006p" + - "roto3" + "id.name}:\001*\022l\n\nGetVersion\022!.flyteidl.adm" + + "in.GetVersionRequest\032\".flyteidl.admin.Ge" + + "tVersionResponse\"\027\202\323\344\223\002\021\022\017/api/v1/versio" + + "n\022\304\001\n\024GetDescriptionEntity\022 .flyteidl.ad" + + "min.ObjectGetRequest\032!.flyteidl.admin.De" + + "scriptionEntity\"g\202\323\344\223\002a\022_/api/v1/descrip" + + "tion_entities/{id.resource_type}/{id.pro" + + "ject}/{id.domain}/{id.name}/{id.version}" + + "\022\222\002\n\027ListDescriptionEntities\022,.flyteidl." + + "admin.DescriptionEntityListRequest\032%.fly" + + "teidl.admin.DescriptionEntityList\"\241\001\202\323\344\223" + + "\002\232\001\022O/api/v1/description_entities/{resou" + + "rce_type}/{id.project}/{id.domain}/{id.n" + + "ame}ZG\022E/api/v1/description_entities/{re" + + "source_type}/{id.project}/{id.domain}\022\305\001" + + "\n\023GetExecutionMetrics\0222.flyteidl.admin.W" + + "orkflowExecutionGetMetricsRequest\0323.flyt" + + "eidl.admin.WorkflowExecutionGetMetricsRe" + + "sponse\"E\202\323\344\223\002?\022=/api/v1/metrics/executio" + + "ns/{id.project}/{id.domain}/{id.name}B9Z" + + "7github.com/flyteorg/flyteidl/gen/pb-go/" + + "flyteidl/serviceb\006proto3" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -320,8 +318,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( flyteidl.admin.VersionOuterClass.getDescriptor(), flyteidl.admin.Common.getDescriptor(), flyteidl.admin.DescriptionEntityOuterClass.getDescriptor(), - flyteidl.core.IdentifierOuterClass.getDescriptor(), - flyteidl.core.Metrics.getDescriptor(), }, assigner); com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); @@ -344,8 +340,6 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( flyteidl.admin.VersionOuterClass.getDescriptor(); flyteidl.admin.Common.getDescriptor(); flyteidl.admin.DescriptionEntityOuterClass.getDescriptor(); - flyteidl.core.IdentifierOuterClass.getDescriptor(); - flyteidl.core.Metrics.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java b/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java index d083391d3..a97f26777 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Dataproxy.java @@ -5411,34 +5411,34 @@ public interface CreateDownloadLinkResponseOrBuilder extends * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) *
* - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - java.util.List + @java.lang.Deprecated java.util.List getSignedUrlList(); /** *
      * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
      * 
* - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - int getSignedUrlCount(); + @java.lang.Deprecated int getSignedUrlCount(); /** *
      * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
      * 
* - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - java.lang.String getSignedUrl(int index); + @java.lang.Deprecated java.lang.String getSignedUrl(int index); /** *
      * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
      * 
* - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - com.google.protobuf.ByteString + @java.lang.Deprecated com.google.protobuf.ByteString getSignedUrlBytes(int index); /** @@ -5446,25 +5446,50 @@ public interface CreateDownloadLinkResponseOrBuilder extends * ExpiresAt defines when will the signed URL expire. *
* - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - boolean hasExpiresAt(); + @java.lang.Deprecated boolean hasExpiresAt(); /** *
      * ExpiresAt defines when will the signed URL expire.
      * 
* - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - com.google.protobuf.Timestamp getExpiresAt(); + @java.lang.Deprecated com.google.protobuf.Timestamp getExpiresAt(); /** *
      * ExpiresAt defines when will the signed URL expire.
      * 
* - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder(); + @java.lang.Deprecated com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder(); + + /** + *
+     * New wrapper object containing the signed urls and expiration time
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + boolean hasPreSignedUrls(); + /** + *
+     * New wrapper object containing the signed urls and expiration time
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + flyteidl.service.Dataproxy.PreSignedURLs getPreSignedUrls(); + /** + *
+     * New wrapper object containing the signed urls and expiration time
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + flyteidl.service.Dataproxy.PreSignedURLsOrBuilder getPreSignedUrlsOrBuilder(); } /** *
@@ -5532,6 +5557,19 @@ private CreateDownloadLinkResponse(
 
               break;
             }
+            case 26: {
+              flyteidl.service.Dataproxy.PreSignedURLs.Builder subBuilder = null;
+              if (preSignedUrls_ != null) {
+                subBuilder = preSignedUrls_.toBuilder();
+              }
+              preSignedUrls_ = input.readMessage(flyteidl.service.Dataproxy.PreSignedURLs.parser(), extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(preSignedUrls_);
+                preSignedUrls_ = subBuilder.buildPartial();
+              }
+
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -5575,9 +5613,9 @@ private CreateDownloadLinkResponse(
      * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
      * 
* - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public com.google.protobuf.ProtocolStringList + @java.lang.Deprecated public com.google.protobuf.ProtocolStringList getSignedUrlList() { return signedUrl_; } @@ -5586,9 +5624,9 @@ private CreateDownloadLinkResponse( * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public int getSignedUrlCount() { + @java.lang.Deprecated public int getSignedUrlCount() { return signedUrl_.size(); } /** @@ -5596,9 +5634,9 @@ public int getSignedUrlCount() { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public java.lang.String getSignedUrl(int index) { + @java.lang.Deprecated public java.lang.String getSignedUrl(int index) { return signedUrl_.get(index); } /** @@ -5606,9 +5644,9 @@ public java.lang.String getSignedUrl(int index) { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public com.google.protobuf.ByteString + @java.lang.Deprecated public com.google.protobuf.ByteString getSignedUrlBytes(int index) { return signedUrl_.getByteString(index); } @@ -5620,9 +5658,9 @@ public java.lang.String getSignedUrl(int index) { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public boolean hasExpiresAt() { + @java.lang.Deprecated public boolean hasExpiresAt() { return expiresAt_ != null; } /** @@ -5630,9 +5668,9 @@ public boolean hasExpiresAt() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public com.google.protobuf.Timestamp getExpiresAt() { + @java.lang.Deprecated public com.google.protobuf.Timestamp getExpiresAt() { return expiresAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiresAt_; } /** @@ -5640,12 +5678,45 @@ public com.google.protobuf.Timestamp getExpiresAt() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { + @java.lang.Deprecated public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { return getExpiresAt(); } + public static final int PRE_SIGNED_URLS_FIELD_NUMBER = 3; + private flyteidl.service.Dataproxy.PreSignedURLs preSignedUrls_; + /** + *
+     * New wrapper object containing the signed urls and expiration time
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public boolean hasPreSignedUrls() { + return preSignedUrls_ != null; + } + /** + *
+     * New wrapper object containing the signed urls and expiration time
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public flyteidl.service.Dataproxy.PreSignedURLs getPreSignedUrls() { + return preSignedUrls_ == null ? flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance() : preSignedUrls_; + } + /** + *
+     * New wrapper object containing the signed urls and expiration time
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public flyteidl.service.Dataproxy.PreSignedURLsOrBuilder getPreSignedUrlsOrBuilder() { + return getPreSignedUrls(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -5666,6 +5737,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (expiresAt_ != null) { output.writeMessage(2, getExpiresAt()); } + if (preSignedUrls_ != null) { + output.writeMessage(3, getPreSignedUrls()); + } unknownFields.writeTo(output); } @@ -5687,6 +5761,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getExpiresAt()); } + if (preSignedUrls_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getPreSignedUrls()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -5709,6 +5787,11 @@ public boolean equals(final java.lang.Object obj) { if (!getExpiresAt() .equals(other.getExpiresAt())) return false; } + if (hasPreSignedUrls() != other.hasPreSignedUrls()) return false; + if (hasPreSignedUrls()) { + if (!getPreSignedUrls() + .equals(other.getPreSignedUrls())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -5728,6 +5811,10 @@ public int hashCode() { hash = (37 * hash) + EXPIRES_AT_FIELD_NUMBER; hash = (53 * hash) + getExpiresAt().hashCode(); } + if (hasPreSignedUrls()) { + hash = (37 * hash) + PRE_SIGNED_URLS_FIELD_NUMBER; + hash = (53 * hash) + getPreSignedUrls().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -5873,6 +5960,12 @@ public Builder clear() { expiresAt_ = null; expiresAtBuilder_ = null; } + if (preSignedUrlsBuilder_ == null) { + preSignedUrls_ = null; + } else { + preSignedUrls_ = null; + preSignedUrlsBuilder_ = null; + } return this; } @@ -5911,6 +6004,11 @@ public flyteidl.service.Dataproxy.CreateDownloadLinkResponse buildPartial() { } else { result.expiresAt_ = expiresAtBuilder_.build(); } + if (preSignedUrlsBuilder_ == null) { + result.preSignedUrls_ = preSignedUrls_; + } else { + result.preSignedUrls_ = preSignedUrlsBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -5973,6 +6071,9 @@ public Builder mergeFrom(flyteidl.service.Dataproxy.CreateDownloadLinkResponse o if (other.hasExpiresAt()) { mergeExpiresAt(other.getExpiresAt()); } + if (other.hasPreSignedUrls()) { + mergePreSignedUrls(other.getPreSignedUrls()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -6015,9 +6116,9 @@ private void ensureSignedUrlIsMutable() { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public com.google.protobuf.ProtocolStringList + @java.lang.Deprecated public com.google.protobuf.ProtocolStringList getSignedUrlList() { return signedUrl_.getUnmodifiableView(); } @@ -6026,9 +6127,9 @@ private void ensureSignedUrlIsMutable() { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public int getSignedUrlCount() { + @java.lang.Deprecated public int getSignedUrlCount() { return signedUrl_.size(); } /** @@ -6036,9 +6137,9 @@ public int getSignedUrlCount() { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public java.lang.String getSignedUrl(int index) { + @java.lang.Deprecated public java.lang.String getSignedUrl(int index) { return signedUrl_.get(index); } /** @@ -6046,9 +6147,9 @@ public java.lang.String getSignedUrl(int index) { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public com.google.protobuf.ByteString + @java.lang.Deprecated public com.google.protobuf.ByteString getSignedUrlBytes(int index) { return signedUrl_.getByteString(index); } @@ -6057,9 +6158,9 @@ public java.lang.String getSignedUrl(int index) { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public Builder setSignedUrl( + @java.lang.Deprecated public Builder setSignedUrl( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -6074,9 +6175,9 @@ public Builder setSignedUrl( * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public Builder addSignedUrl( + @java.lang.Deprecated public Builder addSignedUrl( java.lang.String value) { if (value == null) { throw new NullPointerException(); @@ -6091,9 +6192,9 @@ public Builder addSignedUrl( * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public Builder addAllSignedUrl( + @java.lang.Deprecated public Builder addAllSignedUrl( java.lang.Iterable values) { ensureSignedUrlIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -6106,9 +6207,9 @@ public Builder addAllSignedUrl( * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public Builder clearSignedUrl() { + @java.lang.Deprecated public Builder clearSignedUrl() { signedUrl_ = com.google.protobuf.LazyStringArrayList.EMPTY; bitField0_ = (bitField0_ & ~0x00000001); onChanged(); @@ -6119,9 +6220,9 @@ public Builder clearSignedUrl() { * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) * * - * repeated string signed_url = 1; + * repeated string signed_url = 1 [deprecated = true]; */ - public Builder addSignedUrlBytes( + @java.lang.Deprecated public Builder addSignedUrlBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); @@ -6141,9 +6242,9 @@ public Builder addSignedUrlBytes( * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public boolean hasExpiresAt() { + @java.lang.Deprecated public boolean hasExpiresAt() { return expiresAtBuilder_ != null || expiresAt_ != null; } /** @@ -6151,9 +6252,9 @@ public boolean hasExpiresAt() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public com.google.protobuf.Timestamp getExpiresAt() { + @java.lang.Deprecated public com.google.protobuf.Timestamp getExpiresAt() { if (expiresAtBuilder_ == null) { return expiresAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiresAt_; } else { @@ -6165,9 +6266,9 @@ public com.google.protobuf.Timestamp getExpiresAt() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public Builder setExpiresAt(com.google.protobuf.Timestamp value) { + @java.lang.Deprecated public Builder setExpiresAt(com.google.protobuf.Timestamp value) { if (expiresAtBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -6185,9 +6286,9 @@ public Builder setExpiresAt(com.google.protobuf.Timestamp value) { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public Builder setExpiresAt( + @java.lang.Deprecated public Builder setExpiresAt( com.google.protobuf.Timestamp.Builder builderForValue) { if (expiresAtBuilder_ == null) { expiresAt_ = builderForValue.build(); @@ -6203,9 +6304,9 @@ public Builder setExpiresAt( * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public Builder mergeExpiresAt(com.google.protobuf.Timestamp value) { + @java.lang.Deprecated public Builder mergeExpiresAt(com.google.protobuf.Timestamp value) { if (expiresAtBuilder_ == null) { if (expiresAt_ != null) { expiresAt_ = @@ -6225,9 +6326,9 @@ public Builder mergeExpiresAt(com.google.protobuf.Timestamp value) { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public Builder clearExpiresAt() { + @java.lang.Deprecated public Builder clearExpiresAt() { if (expiresAtBuilder_ == null) { expiresAt_ = null; onChanged(); @@ -6243,9 +6344,9 @@ public Builder clearExpiresAt() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public com.google.protobuf.Timestamp.Builder getExpiresAtBuilder() { + @java.lang.Deprecated public com.google.protobuf.Timestamp.Builder getExpiresAtBuilder() { onChanged(); return getExpiresAtFieldBuilder().getBuilder(); @@ -6255,9 +6356,9 @@ public com.google.protobuf.Timestamp.Builder getExpiresAtBuilder() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ - public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { + @java.lang.Deprecated public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { if (expiresAtBuilder_ != null) { return expiresAtBuilder_.getMessageOrBuilder(); } else { @@ -6270,7 +6371,7 @@ public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { * ExpiresAt defines when will the signed URL expire. * * - * .google.protobuf.Timestamp expires_at = 2; + * .google.protobuf.Timestamp expires_at = 2 [deprecated = true]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> @@ -6285,6 +6386,159 @@ public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { } return expiresAtBuilder_; } + + private flyteidl.service.Dataproxy.PreSignedURLs preSignedUrls_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.service.Dataproxy.PreSignedURLs, flyteidl.service.Dataproxy.PreSignedURLs.Builder, flyteidl.service.Dataproxy.PreSignedURLsOrBuilder> preSignedUrlsBuilder_; + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public boolean hasPreSignedUrls() { + return preSignedUrlsBuilder_ != null || preSignedUrls_ != null; + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public flyteidl.service.Dataproxy.PreSignedURLs getPreSignedUrls() { + if (preSignedUrlsBuilder_ == null) { + return preSignedUrls_ == null ? flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance() : preSignedUrls_; + } else { + return preSignedUrlsBuilder_.getMessage(); + } + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public Builder setPreSignedUrls(flyteidl.service.Dataproxy.PreSignedURLs value) { + if (preSignedUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + preSignedUrls_ = value; + onChanged(); + } else { + preSignedUrlsBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public Builder setPreSignedUrls( + flyteidl.service.Dataproxy.PreSignedURLs.Builder builderForValue) { + if (preSignedUrlsBuilder_ == null) { + preSignedUrls_ = builderForValue.build(); + onChanged(); + } else { + preSignedUrlsBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public Builder mergePreSignedUrls(flyteidl.service.Dataproxy.PreSignedURLs value) { + if (preSignedUrlsBuilder_ == null) { + if (preSignedUrls_ != null) { + preSignedUrls_ = + flyteidl.service.Dataproxy.PreSignedURLs.newBuilder(preSignedUrls_).mergeFrom(value).buildPartial(); + } else { + preSignedUrls_ = value; + } + onChanged(); + } else { + preSignedUrlsBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public Builder clearPreSignedUrls() { + if (preSignedUrlsBuilder_ == null) { + preSignedUrls_ = null; + onChanged(); + } else { + preSignedUrls_ = null; + preSignedUrlsBuilder_ = null; + } + + return this; + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public flyteidl.service.Dataproxy.PreSignedURLs.Builder getPreSignedUrlsBuilder() { + + onChanged(); + return getPreSignedUrlsFieldBuilder().getBuilder(); + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + public flyteidl.service.Dataproxy.PreSignedURLsOrBuilder getPreSignedUrlsOrBuilder() { + if (preSignedUrlsBuilder_ != null) { + return preSignedUrlsBuilder_.getMessageOrBuilder(); + } else { + return preSignedUrls_ == null ? + flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance() : preSignedUrls_; + } + } + /** + *
+       * New wrapper object containing the signed urls and expiration time
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.service.Dataproxy.PreSignedURLs, flyteidl.service.Dataproxy.PreSignedURLs.Builder, flyteidl.service.Dataproxy.PreSignedURLsOrBuilder> + getPreSignedUrlsFieldBuilder() { + if (preSignedUrlsBuilder_ == null) { + preSignedUrlsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.service.Dataproxy.PreSignedURLs, flyteidl.service.Dataproxy.PreSignedURLs.Builder, flyteidl.service.Dataproxy.PreSignedURLsOrBuilder>( + getPreSignedUrls(), + getParentForChildren(), + isClean()); + preSignedUrls_ = null; + } + return preSignedUrlsBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -6338,93 +6592,2709 @@ public flyteidl.service.Dataproxy.CreateDownloadLinkResponse getDefaultInstanceF } - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_service_CreateUploadLocationResponse_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_service_CreateUploadLocationResponse_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_service_CreateUploadLocationRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_service_CreateUploadLocationRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_service_CreateDownloadLocationRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_service_CreateDownloadLocationRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_service_CreateDownloadLocationResponse_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_service_CreateDownloadLocationResponse_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_service_CreateDownloadLinkRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_service_CreateDownloadLinkRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_flyteidl_service_CreateDownloadLinkResponse_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_flyteidl_service_CreateDownloadLinkResponse_fieldAccessorTable; + public interface PreSignedURLsOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.service.PreSignedURLs) + com.google.protobuf.MessageOrBuilder { - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n flyteidl/service/dataproxy.proto\022\020flyt" + - "eidl.service\032\034google/api/annotations.pro" + - "to\032\036google/protobuf/duration.proto\032\037goog" + - "le/protobuf/timestamp.proto\032\036flyteidl/co" + - "re/identifier.proto\"v\n\034CreateUploadLocat" + - "ionResponse\022\022\n\nsigned_url\030\001 \001(\t\022\022\n\nnativ" + - "e_url\030\002 \001(\t\022.\n\nexpires_at\030\003 \001(\0132\032.google" + - ".protobuf.Timestamp\"\224\001\n\033CreateUploadLoca" + - "tionRequest\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002" + - " \001(\t\022\020\n\010filename\030\003 \001(\t\022-\n\nexpires_in\030\004 \001" + - "(\0132\031.google.protobuf.Duration\022\023\n\013content" + - "_md5\030\005 \001(\014\"f\n\035CreateDownloadLocationRequ" + - "est\022\022\n\nnative_url\030\001 \001(\t\022-\n\nexpires_in\030\002 " + - "\001(\0132\031.google.protobuf.Duration:\002\030\001\"h\n\036Cr" + - "eateDownloadLocationResponse\022\022\n\nsigned_u" + - "rl\030\001 \001(\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.pr" + - "otobuf.Timestamp:\002\030\001\"\320\001\n\031CreateDownloadL" + - "inkRequest\0225\n\rartifact_type\030\001 \001(\0162\036.flyt" + - "eidl.service.ArtifactType\022-\n\nexpires_in\030" + - "\002 \001(\0132\031.google.protobuf.Duration\022C\n\021node" + - "_execution_id\030\003 \001(\0132&.flyteidl.core.Node" + - "ExecutionIdentifierH\000B\010\n\006source\"`\n\032Creat" + - "eDownloadLinkResponse\022\022\n\nsigned_url\030\001 \003(" + - "\t\022.\n\nexpires_at\030\002 \001(\0132\032.google.protobuf." + - "Timestamp*C\n\014ArtifactType\022\033\n\027ARTIFACT_TY" + - "PE_UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DECK\020\0012\374" + - "\003\n\020DataProxyService\022\240\001\n\024CreateUploadLoca" + - "tion\022-.flyteidl.service.CreateUploadLoca" + - "tionRequest\032..flyteidl.service.CreateUpl" + - "oadLocationResponse\")\202\323\344\223\002#\"\036/api/v1/dat" + - "aproxy/artifact_urn:\001*\022\246\001\n\026CreateDownloa" + - "dLocation\022/.flyteidl.service.CreateDownl" + - "oadLocationRequest\0320.flyteidl.service.Cr" + - "eateDownloadLocationResponse\")\210\002\001\202\323\344\223\002 \022" + - "\036/api/v1/dataproxy/artifact_urn\022\233\001\n\022Crea" + - "teDownloadLink\022+.flyteidl.service.Create" + - "DownloadLinkRequest\032,.flyteidl.service.C" + - "reateDownloadLinkResponse\"*\202\323\344\223\002$\"\037/api/" + - "v1/dataproxy/artifact_link:\001*B9Z7github." + - "com/flyteorg/flyteidl/gen/pb-go/flyteidl" + - "/serviceb\006proto3" - }; - com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = - new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { - public com.google.protobuf.ExtensionRegistry assignDescriptors( - com.google.protobuf.Descriptors.FileDescriptor root) { - descriptor = root; - return null; + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + java.util.List + getSignedUrlList(); + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + int getSignedUrlCount(); + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + java.lang.String getSignedUrl(int index); + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + com.google.protobuf.ByteString + getSignedUrlBytes(int index); + + /** + *
+     * ExpiresAt defines when will the signed URL expire.
+     * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + boolean hasExpiresAt(); + /** + *
+     * ExpiresAt defines when will the signed URL expire.
+     * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + com.google.protobuf.Timestamp getExpiresAt(); + /** + *
+     * ExpiresAt defines when will the signed URL expire.
+     * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder(); + } + /** + *
+   * Wrapper object since the message is shared across this and the GetDataResponse
+   * 
+ * + * Protobuf type {@code flyteidl.service.PreSignedURLs} + */ + public static final class PreSignedURLs extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.service.PreSignedURLs) + PreSignedURLsOrBuilder { + private static final long serialVersionUID = 0L; + // Use PreSignedURLs.newBuilder() to construct. + private PreSignedURLs(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PreSignedURLs() { + signedUrl_ = com.google.protobuf.LazyStringArrayList.EMPTY; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private PreSignedURLs( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + signedUrl_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000001; + } + signedUrl_.add(s); + break; + } + case 18: { + com.google.protobuf.Timestamp.Builder subBuilder = null; + if (expiresAt_ != null) { + subBuilder = expiresAt_.toBuilder(); + } + expiresAt_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(expiresAt_); + expiresAt_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + signedUrl_ = signedUrl_.getUnmodifiableView(); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_PreSignedURLs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_PreSignedURLs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.service.Dataproxy.PreSignedURLs.class, flyteidl.service.Dataproxy.PreSignedURLs.Builder.class); + } + + private int bitField0_; + public static final int SIGNED_URL_FIELD_NUMBER = 1; + private com.google.protobuf.LazyStringList signedUrl_; + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + public com.google.protobuf.ProtocolStringList + getSignedUrlList() { + return signedUrl_; + } + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + public int getSignedUrlCount() { + return signedUrl_.size(); + } + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + public java.lang.String getSignedUrl(int index) { + return signedUrl_.get(index); + } + /** + *
+     * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+     * 
+ * + * repeated string signed_url = 1; + */ + public com.google.protobuf.ByteString + getSignedUrlBytes(int index) { + return signedUrl_.getByteString(index); + } + + public static final int EXPIRES_AT_FIELD_NUMBER = 2; + private com.google.protobuf.Timestamp expiresAt_; + /** + *
+     * ExpiresAt defines when will the signed URL expire.
+     * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public boolean hasExpiresAt() { + return expiresAt_ != null; + } + /** + *
+     * ExpiresAt defines when will the signed URL expire.
+     * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public com.google.protobuf.Timestamp getExpiresAt() { + return expiresAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiresAt_; + } + /** + *
+     * ExpiresAt defines when will the signed URL expire.
+     * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { + return getExpiresAt(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < signedUrl_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, signedUrl_.getRaw(i)); + } + if (expiresAt_ != null) { + output.writeMessage(2, getExpiresAt()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < signedUrl_.size(); i++) { + dataSize += computeStringSizeNoTag(signedUrl_.getRaw(i)); + } + size += dataSize; + size += 1 * getSignedUrlList().size(); + } + if (expiresAt_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getExpiresAt()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.service.Dataproxy.PreSignedURLs)) { + return super.equals(obj); + } + flyteidl.service.Dataproxy.PreSignedURLs other = (flyteidl.service.Dataproxy.PreSignedURLs) obj; + + if (!getSignedUrlList() + .equals(other.getSignedUrlList())) return false; + if (hasExpiresAt() != other.hasExpiresAt()) return false; + if (hasExpiresAt()) { + if (!getExpiresAt() + .equals(other.getExpiresAt())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getSignedUrlCount() > 0) { + hash = (37 * hash) + SIGNED_URL_FIELD_NUMBER; + hash = (53 * hash) + getSignedUrlList().hashCode(); + } + if (hasExpiresAt()) { + hash = (37 * hash) + EXPIRES_AT_FIELD_NUMBER; + hash = (53 * hash) + getExpiresAt().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.PreSignedURLs parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.service.Dataproxy.PreSignedURLs prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Wrapper object since the message is shared across this and the GetDataResponse
+     * 
+ * + * Protobuf type {@code flyteidl.service.PreSignedURLs} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.service.PreSignedURLs) + flyteidl.service.Dataproxy.PreSignedURLsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_PreSignedURLs_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_PreSignedURLs_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.service.Dataproxy.PreSignedURLs.class, flyteidl.service.Dataproxy.PreSignedURLs.Builder.class); + } + + // Construct using flyteidl.service.Dataproxy.PreSignedURLs.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + signedUrl_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + if (expiresAtBuilder_ == null) { + expiresAt_ = null; + } else { + expiresAt_ = null; + expiresAtBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_PreSignedURLs_descriptor; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.PreSignedURLs getDefaultInstanceForType() { + return flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.service.Dataproxy.PreSignedURLs build() { + flyteidl.service.Dataproxy.PreSignedURLs result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.PreSignedURLs buildPartial() { + flyteidl.service.Dataproxy.PreSignedURLs result = new flyteidl.service.Dataproxy.PreSignedURLs(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((bitField0_ & 0x00000001) != 0)) { + signedUrl_ = signedUrl_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.signedUrl_ = signedUrl_; + if (expiresAtBuilder_ == null) { + result.expiresAt_ = expiresAt_; + } else { + result.expiresAt_ = expiresAtBuilder_.build(); + } + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.service.Dataproxy.PreSignedURLs) { + return mergeFrom((flyteidl.service.Dataproxy.PreSignedURLs)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.service.Dataproxy.PreSignedURLs other) { + if (other == flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance()) return this; + if (!other.signedUrl_.isEmpty()) { + if (signedUrl_.isEmpty()) { + signedUrl_ = other.signedUrl_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureSignedUrlIsMutable(); + signedUrl_.addAll(other.signedUrl_); + } + onChanged(); + } + if (other.hasExpiresAt()) { + mergeExpiresAt(other.getExpiresAt()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.service.Dataproxy.PreSignedURLs parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.service.Dataproxy.PreSignedURLs) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private com.google.protobuf.LazyStringList signedUrl_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureSignedUrlIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + signedUrl_ = new com.google.protobuf.LazyStringArrayList(signedUrl_); + bitField0_ |= 0x00000001; + } + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public com.google.protobuf.ProtocolStringList + getSignedUrlList() { + return signedUrl_.getUnmodifiableView(); + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public int getSignedUrlCount() { + return signedUrl_.size(); + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public java.lang.String getSignedUrl(int index) { + return signedUrl_.get(index); + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public com.google.protobuf.ByteString + getSignedUrlBytes(int index) { + return signedUrl_.getByteString(index); + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public Builder setSignedUrl( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureSignedUrlIsMutable(); + signedUrl_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public Builder addSignedUrl( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureSignedUrlIsMutable(); + signedUrl_.add(value); + onChanged(); + return this; + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public Builder addAllSignedUrl( + java.lang.Iterable values) { + ensureSignedUrlIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, signedUrl_); + onChanged(); + return this; + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public Builder clearSignedUrl() { + signedUrl_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...)
+       * 
+ * + * repeated string signed_url = 1; + */ + public Builder addSignedUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureSignedUrlIsMutable(); + signedUrl_.add(value); + onChanged(); + return this; + } + + private com.google.protobuf.Timestamp expiresAt_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> expiresAtBuilder_; + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public boolean hasExpiresAt() { + return expiresAtBuilder_ != null || expiresAt_ != null; + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public com.google.protobuf.Timestamp getExpiresAt() { + if (expiresAtBuilder_ == null) { + return expiresAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : expiresAt_; + } else { + return expiresAtBuilder_.getMessage(); + } + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public Builder setExpiresAt(com.google.protobuf.Timestamp value) { + if (expiresAtBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + expiresAt_ = value; + onChanged(); + } else { + expiresAtBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public Builder setExpiresAt( + com.google.protobuf.Timestamp.Builder builderForValue) { + if (expiresAtBuilder_ == null) { + expiresAt_ = builderForValue.build(); + onChanged(); + } else { + expiresAtBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public Builder mergeExpiresAt(com.google.protobuf.Timestamp value) { + if (expiresAtBuilder_ == null) { + if (expiresAt_ != null) { + expiresAt_ = + com.google.protobuf.Timestamp.newBuilder(expiresAt_).mergeFrom(value).buildPartial(); + } else { + expiresAt_ = value; + } + onChanged(); + } else { + expiresAtBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public Builder clearExpiresAt() { + if (expiresAtBuilder_ == null) { + expiresAt_ = null; + onChanged(); + } else { + expiresAt_ = null; + expiresAtBuilder_ = null; + } + + return this; + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public com.google.protobuf.Timestamp.Builder getExpiresAtBuilder() { + + onChanged(); + return getExpiresAtFieldBuilder().getBuilder(); + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + public com.google.protobuf.TimestampOrBuilder getExpiresAtOrBuilder() { + if (expiresAtBuilder_ != null) { + return expiresAtBuilder_.getMessageOrBuilder(); + } else { + return expiresAt_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : expiresAt_; + } + } + /** + *
+       * ExpiresAt defines when will the signed URL expire.
+       * 
+ * + * .google.protobuf.Timestamp expires_at = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getExpiresAtFieldBuilder() { + if (expiresAtBuilder_ == null) { + expiresAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getExpiresAt(), + getParentForChildren(), + isClean()); + expiresAt_ = null; + } + return expiresAtBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.service.PreSignedURLs) + } + + // @@protoc_insertion_point(class_scope:flyteidl.service.PreSignedURLs) + private static final flyteidl.service.Dataproxy.PreSignedURLs DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.service.Dataproxy.PreSignedURLs(); + } + + public static flyteidl.service.Dataproxy.PreSignedURLs getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PreSignedURLs parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PreSignedURLs(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.PreSignedURLs getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface GetDataRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.service.GetDataRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+     * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+     * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+     *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+     * 
+ * + * string flyte_url = 1; + */ + java.lang.String getFlyteUrl(); + /** + *
+     * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+     * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+     * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+     *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+     * 
+ * + * string flyte_url = 1; + */ + com.google.protobuf.ByteString + getFlyteUrlBytes(); + } + /** + *
+   * General request artifact to retrieve data from a Flyte artifact url.
+   * 
+ * + * Protobuf type {@code flyteidl.service.GetDataRequest} + */ + public static final class GetDataRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.service.GetDataRequest) + GetDataRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetDataRequest.newBuilder() to construct. + private GetDataRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetDataRequest() { + flyteUrl_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetDataRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + flyteUrl_ = s; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.service.Dataproxy.GetDataRequest.class, flyteidl.service.Dataproxy.GetDataRequest.Builder.class); + } + + public static final int FLYTE_URL_FIELD_NUMBER = 1; + private volatile java.lang.Object flyteUrl_; + /** + *
+     * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+     * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+     * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+     *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+     * 
+ * + * string flyte_url = 1; + */ + public java.lang.String getFlyteUrl() { + java.lang.Object ref = flyteUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + flyteUrl_ = s; + return s; + } + } + /** + *
+     * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+     * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+     * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+     *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+     * 
+ * + * string flyte_url = 1; + */ + public com.google.protobuf.ByteString + getFlyteUrlBytes() { + java.lang.Object ref = flyteUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + flyteUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getFlyteUrlBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, flyteUrl_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getFlyteUrlBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, flyteUrl_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.service.Dataproxy.GetDataRequest)) { + return super.equals(obj); + } + flyteidl.service.Dataproxy.GetDataRequest other = (flyteidl.service.Dataproxy.GetDataRequest) obj; + + if (!getFlyteUrl() + .equals(other.getFlyteUrl())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + FLYTE_URL_FIELD_NUMBER; + hash = (53 * hash) + getFlyteUrl().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.GetDataRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.service.Dataproxy.GetDataRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * General request artifact to retrieve data from a Flyte artifact url.
+     * 
+ * + * Protobuf type {@code flyteidl.service.GetDataRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.service.GetDataRequest) + flyteidl.service.Dataproxy.GetDataRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.service.Dataproxy.GetDataRequest.class, flyteidl.service.Dataproxy.GetDataRequest.Builder.class); + } + + // Construct using flyteidl.service.Dataproxy.GetDataRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + flyteUrl_ = ""; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataRequest_descriptor; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataRequest getDefaultInstanceForType() { + return flyteidl.service.Dataproxy.GetDataRequest.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataRequest build() { + flyteidl.service.Dataproxy.GetDataRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataRequest buildPartial() { + flyteidl.service.Dataproxy.GetDataRequest result = new flyteidl.service.Dataproxy.GetDataRequest(this); + result.flyteUrl_ = flyteUrl_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.service.Dataproxy.GetDataRequest) { + return mergeFrom((flyteidl.service.Dataproxy.GetDataRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.service.Dataproxy.GetDataRequest other) { + if (other == flyteidl.service.Dataproxy.GetDataRequest.getDefaultInstance()) return this; + if (!other.getFlyteUrl().isEmpty()) { + flyteUrl_ = other.flyteUrl_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.service.Dataproxy.GetDataRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.service.Dataproxy.GetDataRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object flyteUrl_ = ""; + /** + *
+       * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+       * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+       * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+       *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+       * 
+ * + * string flyte_url = 1; + */ + public java.lang.String getFlyteUrl() { + java.lang.Object ref = flyteUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + flyteUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+       * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+       * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+       *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+       * 
+ * + * string flyte_url = 1; + */ + public com.google.protobuf.ByteString + getFlyteUrlBytes() { + java.lang.Object ref = flyteUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + flyteUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+       * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+       * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+       *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+       * 
+ * + * string flyte_url = 1; + */ + public Builder setFlyteUrl( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + flyteUrl_ = value; + onChanged(); + return this; + } + /** + *
+       * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+       * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+       * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+       *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+       * 
+ * + * string flyte_url = 1; + */ + public Builder clearFlyteUrl() { + + flyteUrl_ = getDefaultInstance().getFlyteUrl(); + onChanged(); + return this; + } + /** + *
+       * A unique identifier in the form of flyte://<something> that uniquely, for a given Flyte
+       * backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.).
+       * e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input)
+       *      flyte://v1/proj/development/execid/n2/i (for node execution input)
+       * 
+ * + * string flyte_url = 1; + */ + public Builder setFlyteUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + flyteUrl_ = value; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.service.GetDataRequest) + } + + // @@protoc_insertion_point(class_scope:flyteidl.service.GetDataRequest) + private static final flyteidl.service.Dataproxy.GetDataRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.service.Dataproxy.GetDataRequest(); + } + + public static flyteidl.service.Dataproxy.GetDataRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetDataRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetDataRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface GetDataResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.service.GetDataResponse) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * literal map data will be returned
+     * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + boolean hasLiteralMap(); + /** + *
+     * literal map data will be returned
+     * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + flyteidl.core.Literals.LiteralMap getLiteralMap(); + /** + *
+     * literal map data will be returned
+     * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + flyteidl.core.Literals.LiteralMapOrBuilder getLiteralMapOrBuilder(); + + /** + *
+     * Flyte deck html will be returned as a signed url users can download
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + boolean hasPreSignedUrls(); + /** + *
+     * Flyte deck html will be returned as a signed url users can download
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + flyteidl.service.Dataproxy.PreSignedURLs getPreSignedUrls(); + /** + *
+     * Flyte deck html will be returned as a signed url users can download
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + flyteidl.service.Dataproxy.PreSignedURLsOrBuilder getPreSignedUrlsOrBuilder(); + + public flyteidl.service.Dataproxy.GetDataResponse.DataCase getDataCase(); + } + /** + * Protobuf type {@code flyteidl.service.GetDataResponse} + */ + public static final class GetDataResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.service.GetDataResponse) + GetDataResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use GetDataResponse.newBuilder() to construct. + private GetDataResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GetDataResponse() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private GetDataResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + flyteidl.core.Literals.LiteralMap.Builder subBuilder = null; + if (dataCase_ == 1) { + subBuilder = ((flyteidl.core.Literals.LiteralMap) data_).toBuilder(); + } + data_ = + input.readMessage(flyteidl.core.Literals.LiteralMap.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((flyteidl.core.Literals.LiteralMap) data_); + data_ = subBuilder.buildPartial(); + } + dataCase_ = 1; + break; + } + case 18: { + flyteidl.service.Dataproxy.PreSignedURLs.Builder subBuilder = null; + if (dataCase_ == 2) { + subBuilder = ((flyteidl.service.Dataproxy.PreSignedURLs) data_).toBuilder(); + } + data_ = + input.readMessage(flyteidl.service.Dataproxy.PreSignedURLs.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((flyteidl.service.Dataproxy.PreSignedURLs) data_); + data_ = subBuilder.buildPartial(); + } + dataCase_ = 2; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.service.Dataproxy.GetDataResponse.class, flyteidl.service.Dataproxy.GetDataResponse.Builder.class); + } + + private int dataCase_ = 0; + private java.lang.Object data_; + public enum DataCase + implements com.google.protobuf.Internal.EnumLite { + LITERAL_MAP(1), + PRE_SIGNED_URLS(2), + DATA_NOT_SET(0); + private final int value; + private DataCase(int value) { + this.value = value; + } + /** + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DataCase valueOf(int value) { + return forNumber(value); + } + + public static DataCase forNumber(int value) { + switch (value) { + case 1: return LITERAL_MAP; + case 2: return PRE_SIGNED_URLS; + case 0: return DATA_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public DataCase + getDataCase() { + return DataCase.forNumber( + dataCase_); + } + + public static final int LITERAL_MAP_FIELD_NUMBER = 1; + /** + *
+     * literal map data will be returned
+     * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public boolean hasLiteralMap() { + return dataCase_ == 1; + } + /** + *
+     * literal map data will be returned
+     * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public flyteidl.core.Literals.LiteralMap getLiteralMap() { + if (dataCase_ == 1) { + return (flyteidl.core.Literals.LiteralMap) data_; + } + return flyteidl.core.Literals.LiteralMap.getDefaultInstance(); + } + /** + *
+     * literal map data will be returned
+     * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public flyteidl.core.Literals.LiteralMapOrBuilder getLiteralMapOrBuilder() { + if (dataCase_ == 1) { + return (flyteidl.core.Literals.LiteralMap) data_; + } + return flyteidl.core.Literals.LiteralMap.getDefaultInstance(); + } + + public static final int PRE_SIGNED_URLS_FIELD_NUMBER = 2; + /** + *
+     * Flyte deck html will be returned as a signed url users can download
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public boolean hasPreSignedUrls() { + return dataCase_ == 2; + } + /** + *
+     * Flyte deck html will be returned as a signed url users can download
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public flyteidl.service.Dataproxy.PreSignedURLs getPreSignedUrls() { + if (dataCase_ == 2) { + return (flyteidl.service.Dataproxy.PreSignedURLs) data_; + } + return flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } + /** + *
+     * Flyte deck html will be returned as a signed url users can download
+     * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public flyteidl.service.Dataproxy.PreSignedURLsOrBuilder getPreSignedUrlsOrBuilder() { + if (dataCase_ == 2) { + return (flyteidl.service.Dataproxy.PreSignedURLs) data_; + } + return flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (dataCase_ == 1) { + output.writeMessage(1, (flyteidl.core.Literals.LiteralMap) data_); + } + if (dataCase_ == 2) { + output.writeMessage(2, (flyteidl.service.Dataproxy.PreSignedURLs) data_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (dataCase_ == 1) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, (flyteidl.core.Literals.LiteralMap) data_); + } + if (dataCase_ == 2) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, (flyteidl.service.Dataproxy.PreSignedURLs) data_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.service.Dataproxy.GetDataResponse)) { + return super.equals(obj); + } + flyteidl.service.Dataproxy.GetDataResponse other = (flyteidl.service.Dataproxy.GetDataResponse) obj; + + if (!getDataCase().equals(other.getDataCase())) return false; + switch (dataCase_) { + case 1: + if (!getLiteralMap() + .equals(other.getLiteralMap())) return false; + break; + case 2: + if (!getPreSignedUrls() + .equals(other.getPreSignedUrls())) return false; + break; + case 0: + default: + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + switch (dataCase_) { + case 1: + hash = (37 * hash) + LITERAL_MAP_FIELD_NUMBER; + hash = (53 * hash) + getLiteralMap().hashCode(); + break; + case 2: + hash = (37 * hash) + PRE_SIGNED_URLS_FIELD_NUMBER; + hash = (53 * hash) + getPreSignedUrls().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.service.Dataproxy.GetDataResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.service.Dataproxy.GetDataResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code flyteidl.service.GetDataResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.service.GetDataResponse) + flyteidl.service.Dataproxy.GetDataResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.service.Dataproxy.GetDataResponse.class, flyteidl.service.Dataproxy.GetDataResponse.Builder.class); + } + + // Construct using flyteidl.service.Dataproxy.GetDataResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + dataCase_ = 0; + data_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.service.Dataproxy.internal_static_flyteidl_service_GetDataResponse_descriptor; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataResponse getDefaultInstanceForType() { + return flyteidl.service.Dataproxy.GetDataResponse.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataResponse build() { + flyteidl.service.Dataproxy.GetDataResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataResponse buildPartial() { + flyteidl.service.Dataproxy.GetDataResponse result = new flyteidl.service.Dataproxy.GetDataResponse(this); + if (dataCase_ == 1) { + if (literalMapBuilder_ == null) { + result.data_ = data_; + } else { + result.data_ = literalMapBuilder_.build(); + } + } + if (dataCase_ == 2) { + if (preSignedUrlsBuilder_ == null) { + result.data_ = data_; + } else { + result.data_ = preSignedUrlsBuilder_.build(); + } + } + result.dataCase_ = dataCase_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.service.Dataproxy.GetDataResponse) { + return mergeFrom((flyteidl.service.Dataproxy.GetDataResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.service.Dataproxy.GetDataResponse other) { + if (other == flyteidl.service.Dataproxy.GetDataResponse.getDefaultInstance()) return this; + switch (other.getDataCase()) { + case LITERAL_MAP: { + mergeLiteralMap(other.getLiteralMap()); + break; + } + case PRE_SIGNED_URLS: { + mergePreSignedUrls(other.getPreSignedUrls()); + break; + } + case DATA_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.service.Dataproxy.GetDataResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.service.Dataproxy.GetDataResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int dataCase_ = 0; + private java.lang.Object data_; + public DataCase + getDataCase() { + return DataCase.forNumber( + dataCase_); + } + + public Builder clearData() { + dataCase_ = 0; + data_ = null; + onChanged(); + return this; + } + + + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Literals.LiteralMap, flyteidl.core.Literals.LiteralMap.Builder, flyteidl.core.Literals.LiteralMapOrBuilder> literalMapBuilder_; + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public boolean hasLiteralMap() { + return dataCase_ == 1; + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public flyteidl.core.Literals.LiteralMap getLiteralMap() { + if (literalMapBuilder_ == null) { + if (dataCase_ == 1) { + return (flyteidl.core.Literals.LiteralMap) data_; + } + return flyteidl.core.Literals.LiteralMap.getDefaultInstance(); + } else { + if (dataCase_ == 1) { + return literalMapBuilder_.getMessage(); + } + return flyteidl.core.Literals.LiteralMap.getDefaultInstance(); + } + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public Builder setLiteralMap(flyteidl.core.Literals.LiteralMap value) { + if (literalMapBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + data_ = value; + onChanged(); + } else { + literalMapBuilder_.setMessage(value); + } + dataCase_ = 1; + return this; + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public Builder setLiteralMap( + flyteidl.core.Literals.LiteralMap.Builder builderForValue) { + if (literalMapBuilder_ == null) { + data_ = builderForValue.build(); + onChanged(); + } else { + literalMapBuilder_.setMessage(builderForValue.build()); + } + dataCase_ = 1; + return this; + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public Builder mergeLiteralMap(flyteidl.core.Literals.LiteralMap value) { + if (literalMapBuilder_ == null) { + if (dataCase_ == 1 && + data_ != flyteidl.core.Literals.LiteralMap.getDefaultInstance()) { + data_ = flyteidl.core.Literals.LiteralMap.newBuilder((flyteidl.core.Literals.LiteralMap) data_) + .mergeFrom(value).buildPartial(); + } else { + data_ = value; + } + onChanged(); + } else { + if (dataCase_ == 1) { + literalMapBuilder_.mergeFrom(value); + } + literalMapBuilder_.setMessage(value); + } + dataCase_ = 1; + return this; + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public Builder clearLiteralMap() { + if (literalMapBuilder_ == null) { + if (dataCase_ == 1) { + dataCase_ = 0; + data_ = null; + onChanged(); + } + } else { + if (dataCase_ == 1) { + dataCase_ = 0; + data_ = null; + } + literalMapBuilder_.clear(); + } + return this; + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public flyteidl.core.Literals.LiteralMap.Builder getLiteralMapBuilder() { + return getLiteralMapFieldBuilder().getBuilder(); + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + public flyteidl.core.Literals.LiteralMapOrBuilder getLiteralMapOrBuilder() { + if ((dataCase_ == 1) && (literalMapBuilder_ != null)) { + return literalMapBuilder_.getMessageOrBuilder(); + } else { + if (dataCase_ == 1) { + return (flyteidl.core.Literals.LiteralMap) data_; + } + return flyteidl.core.Literals.LiteralMap.getDefaultInstance(); + } + } + /** + *
+       * literal map data will be returned
+       * 
+ * + * .flyteidl.core.LiteralMap literal_map = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Literals.LiteralMap, flyteidl.core.Literals.LiteralMap.Builder, flyteidl.core.Literals.LiteralMapOrBuilder> + getLiteralMapFieldBuilder() { + if (literalMapBuilder_ == null) { + if (!(dataCase_ == 1)) { + data_ = flyteidl.core.Literals.LiteralMap.getDefaultInstance(); + } + literalMapBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.core.Literals.LiteralMap, flyteidl.core.Literals.LiteralMap.Builder, flyteidl.core.Literals.LiteralMapOrBuilder>( + (flyteidl.core.Literals.LiteralMap) data_, + getParentForChildren(), + isClean()); + data_ = null; + } + dataCase_ = 1; + onChanged();; + return literalMapBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.service.Dataproxy.PreSignedURLs, flyteidl.service.Dataproxy.PreSignedURLs.Builder, flyteidl.service.Dataproxy.PreSignedURLsOrBuilder> preSignedUrlsBuilder_; + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public boolean hasPreSignedUrls() { + return dataCase_ == 2; + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public flyteidl.service.Dataproxy.PreSignedURLs getPreSignedUrls() { + if (preSignedUrlsBuilder_ == null) { + if (dataCase_ == 2) { + return (flyteidl.service.Dataproxy.PreSignedURLs) data_; + } + return flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } else { + if (dataCase_ == 2) { + return preSignedUrlsBuilder_.getMessage(); + } + return flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public Builder setPreSignedUrls(flyteidl.service.Dataproxy.PreSignedURLs value) { + if (preSignedUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + data_ = value; + onChanged(); + } else { + preSignedUrlsBuilder_.setMessage(value); + } + dataCase_ = 2; + return this; + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public Builder setPreSignedUrls( + flyteidl.service.Dataproxy.PreSignedURLs.Builder builderForValue) { + if (preSignedUrlsBuilder_ == null) { + data_ = builderForValue.build(); + onChanged(); + } else { + preSignedUrlsBuilder_.setMessage(builderForValue.build()); + } + dataCase_ = 2; + return this; + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public Builder mergePreSignedUrls(flyteidl.service.Dataproxy.PreSignedURLs value) { + if (preSignedUrlsBuilder_ == null) { + if (dataCase_ == 2 && + data_ != flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance()) { + data_ = flyteidl.service.Dataproxy.PreSignedURLs.newBuilder((flyteidl.service.Dataproxy.PreSignedURLs) data_) + .mergeFrom(value).buildPartial(); + } else { + data_ = value; + } + onChanged(); + } else { + if (dataCase_ == 2) { + preSignedUrlsBuilder_.mergeFrom(value); + } + preSignedUrlsBuilder_.setMessage(value); + } + dataCase_ = 2; + return this; + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public Builder clearPreSignedUrls() { + if (preSignedUrlsBuilder_ == null) { + if (dataCase_ == 2) { + dataCase_ = 0; + data_ = null; + onChanged(); + } + } else { + if (dataCase_ == 2) { + dataCase_ = 0; + data_ = null; + } + preSignedUrlsBuilder_.clear(); + } + return this; + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public flyteidl.service.Dataproxy.PreSignedURLs.Builder getPreSignedUrlsBuilder() { + return getPreSignedUrlsFieldBuilder().getBuilder(); + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + public flyteidl.service.Dataproxy.PreSignedURLsOrBuilder getPreSignedUrlsOrBuilder() { + if ((dataCase_ == 2) && (preSignedUrlsBuilder_ != null)) { + return preSignedUrlsBuilder_.getMessageOrBuilder(); + } else { + if (dataCase_ == 2) { + return (flyteidl.service.Dataproxy.PreSignedURLs) data_; + } + return flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } + } + /** + *
+       * Flyte deck html will be returned as a signed url users can download
+       * 
+ * + * .flyteidl.service.PreSignedURLs pre_signed_urls = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.service.Dataproxy.PreSignedURLs, flyteidl.service.Dataproxy.PreSignedURLs.Builder, flyteidl.service.Dataproxy.PreSignedURLsOrBuilder> + getPreSignedUrlsFieldBuilder() { + if (preSignedUrlsBuilder_ == null) { + if (!(dataCase_ == 2)) { + data_ = flyteidl.service.Dataproxy.PreSignedURLs.getDefaultInstance(); + } + preSignedUrlsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.service.Dataproxy.PreSignedURLs, flyteidl.service.Dataproxy.PreSignedURLs.Builder, flyteidl.service.Dataproxy.PreSignedURLsOrBuilder>( + (flyteidl.service.Dataproxy.PreSignedURLs) data_, + getParentForChildren(), + isClean()); + data_ = null; + } + dataCase_ = 2; + onChanged();; + return preSignedUrlsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.service.GetDataResponse) + } + + // @@protoc_insertion_point(class_scope:flyteidl.service.GetDataResponse) + private static final flyteidl.service.Dataproxy.GetDataResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.service.Dataproxy.GetDataResponse(); + } + + public static flyteidl.service.Dataproxy.GetDataResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GetDataResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new GetDataResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.service.Dataproxy.GetDataResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_CreateUploadLocationResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_CreateUploadLocationResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_CreateUploadLocationRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_CreateUploadLocationRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_CreateDownloadLocationRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_CreateDownloadLocationRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_CreateDownloadLocationResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_CreateDownloadLocationResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_CreateDownloadLinkRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_CreateDownloadLinkRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_CreateDownloadLinkResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_CreateDownloadLinkResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_PreSignedURLs_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_PreSignedURLs_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_GetDataRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_GetDataRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_service_GetDataResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_service_GetDataResponse_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n flyteidl/service/dataproxy.proto\022\020flyt" + + "eidl.service\032\034google/api/annotations.pro" + + "to\032\036google/protobuf/duration.proto\032\037goog" + + "le/protobuf/timestamp.proto\032\036flyteidl/co" + + "re/identifier.proto\032\034flyteidl/core/liter" + + "als.proto\"v\n\034CreateUploadLocationRespons" + + "e\022\022\n\nsigned_url\030\001 \001(\t\022\022\n\nnative_url\030\002 \001(" + + "\t\022.\n\nexpires_at\030\003 \001(\0132\032.google.protobuf." + + "Timestamp\"\224\001\n\033CreateUploadLocationReques" + + "t\022\017\n\007project\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\020\n\010fi" + + "lename\030\003 \001(\t\022-\n\nexpires_in\030\004 \001(\0132\031.googl" + + "e.protobuf.Duration\022\023\n\013content_md5\030\005 \001(\014" + + "\"f\n\035CreateDownloadLocationRequest\022\022\n\nnat" + + "ive_url\030\001 \001(\t\022-\n\nexpires_in\030\002 \001(\0132\031.goog" + + "le.protobuf.Duration:\002\030\001\"h\n\036CreateDownlo" + + "adLocationResponse\022\022\n\nsigned_url\030\001 \001(\t\022." + + "\n\nexpires_at\030\002 \001(\0132\032.google.protobuf.Tim" + + "estamp:\002\030\001\"\320\001\n\031CreateDownloadLinkRequest" + + "\0225\n\rartifact_type\030\001 \001(\0162\036.flyteidl.servi" + + "ce.ArtifactType\022-\n\nexpires_in\030\002 \001(\0132\031.go" + + "ogle.protobuf.Duration\022C\n\021node_execution" + + "_id\030\003 \001(\0132&.flyteidl.core.NodeExecutionI" + + "dentifierH\000B\010\n\006source\"\242\001\n\032CreateDownload" + + "LinkResponse\022\026\n\nsigned_url\030\001 \003(\tB\002\030\001\0222\n\n" + + "expires_at\030\002 \001(\0132\032.google.protobuf.Times" + + "tampB\002\030\001\0228\n\017pre_signed_urls\030\003 \001(\0132\037.flyt" + + "eidl.service.PreSignedURLs\"S\n\rPreSignedU" + + "RLs\022\022\n\nsigned_url\030\001 \003(\t\022.\n\nexpires_at\030\002 " + + "\001(\0132\032.google.protobuf.Timestamp\"#\n\016GetDa" + + "taRequest\022\021\n\tflyte_url\030\001 \001(\t\"\207\001\n\017GetData" + + "Response\0220\n\013literal_map\030\001 \001(\0132\031.flyteidl" + + ".core.LiteralMapH\000\022:\n\017pre_signed_urls\030\002 " + + "\001(\0132\037.flyteidl.service.PreSignedURLsH\000B\006" + + "\n\004data*C\n\014ArtifactType\022\033\n\027ARTIFACT_TYPE_" + + "UNDEFINED\020\000\022\026\n\022ARTIFACT_TYPE_DECK\020\0012\342\004\n\020" + + "DataProxyService\022\240\001\n\024CreateUploadLocatio" + + "n\022-.flyteidl.service.CreateUploadLocatio" + + "nRequest\032..flyteidl.service.CreateUpload" + + "LocationResponse\")\202\323\344\223\002#\"\036/api/v1/datapr" + + "oxy/artifact_urn:\001*\022\246\001\n\026CreateDownloadLo" + + "cation\022/.flyteidl.service.CreateDownload" + + "LocationRequest\0320.flyteidl.service.Creat" + + "eDownloadLocationResponse\")\210\002\001\202\323\344\223\002 \022\036/a" + + "pi/v1/dataproxy/artifact_urn\022\233\001\n\022CreateD" + + "ownloadLink\022+.flyteidl.service.CreateDow" + + "nloadLinkRequest\032,.flyteidl.service.Crea" + + "teDownloadLinkResponse\"*\202\323\344\223\002$\"\037/api/v1/" + + "dataproxy/artifact_link:\001*\022d\n\007GetData\022 ." + + "flyteidl.service.GetDataRequest\032!.flytei" + + "dl.service.GetDataResponse\"\024\202\323\344\223\002\016\022\014/api" + + "/v1/dataB9Z7github.com/flyteorg/flyteidl" + + "/gen/pb-go/flyteidl/serviceb\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; } }; com.google.protobuf.Descriptors.FileDescriptor @@ -6434,6 +9304,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.DurationProto.getDescriptor(), com.google.protobuf.TimestampProto.getDescriptor(), flyteidl.core.IdentifierOuterClass.getDescriptor(), + flyteidl.core.Literals.getDescriptor(), }, assigner); internal_static_flyteidl_service_CreateUploadLocationResponse_descriptor = getDescriptor().getMessageTypes().get(0); @@ -6470,7 +9341,25 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( internal_static_flyteidl_service_CreateDownloadLinkResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_flyteidl_service_CreateDownloadLinkResponse_descriptor, + new java.lang.String[] { "SignedUrl", "ExpiresAt", "PreSignedUrls", }); + internal_static_flyteidl_service_PreSignedURLs_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_flyteidl_service_PreSignedURLs_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_service_PreSignedURLs_descriptor, new java.lang.String[] { "SignedUrl", "ExpiresAt", }); + internal_static_flyteidl_service_GetDataRequest_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_flyteidl_service_GetDataRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_service_GetDataRequest_descriptor, + new java.lang.String[] { "FlyteUrl", }); + internal_static_flyteidl_service_GetDataResponse_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_flyteidl_service_GetDataResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_service_GetDataResponse_descriptor, + new java.lang.String[] { "LiteralMap", "PreSignedUrls", "Data", }); com.google.protobuf.ExtensionRegistry registry = com.google.protobuf.ExtensionRegistry.newInstance(); registry.add(com.google.api.AnnotationsProto.http); @@ -6480,6 +9369,7 @@ public com.google.protobuf.ExtensionRegistry assignDescriptors( com.google.protobuf.DurationProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); flyteidl.core.IdentifierOuterClass.getDescriptor(); + flyteidl.core.Literals.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) diff --git a/flyteidl/gen/pb-js/flyteidl.d.ts b/flyteidl/gen/pb-js/flyteidl.d.ts index e85f7b1e3..58fedaa1f 100644 --- a/flyteidl/gen/pb-js/flyteidl.d.ts +++ b/flyteidl/gen/pb-js/flyteidl.d.ts @@ -8886,6 +8886,70 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a FlyteURLs. */ + interface IFlyteURLs { + + /** FlyteURLs inputs */ + inputs?: (string|null); + + /** FlyteURLs outputs */ + outputs?: (string|null); + + /** FlyteURLs deck */ + deck?: (string|null); + } + + /** Represents a FlyteURLs. */ + class FlyteURLs implements IFlyteURLs { + + /** + * Constructs a new FlyteURLs. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.admin.IFlyteURLs); + + /** FlyteURLs inputs. */ + public inputs: string; + + /** FlyteURLs outputs. */ + public outputs: string; + + /** FlyteURLs deck. */ + public deck: string; + + /** + * Creates a new FlyteURLs instance using the specified properties. + * @param [properties] Properties to set + * @returns FlyteURLs instance + */ + public static create(properties?: flyteidl.admin.IFlyteURLs): flyteidl.admin.FlyteURLs; + + /** + * Encodes the specified FlyteURLs message. Does not implicitly {@link flyteidl.admin.FlyteURLs.verify|verify} messages. + * @param message FlyteURLs message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.admin.IFlyteURLs, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a FlyteURLs message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns FlyteURLs + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.admin.FlyteURLs; + + /** + * Verifies a FlyteURLs message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Properties of a DescriptionEntity. */ interface IDescriptionEntity { @@ -13809,6 +13873,9 @@ export namespace flyteidl { /** NodeExecutionGetDataResponse dynamicWorkflow */ dynamicWorkflow?: (flyteidl.admin.IDynamicWorkflowNodeMetadata|null); + + /** NodeExecutionGetDataResponse flyteUrls */ + flyteUrls?: (flyteidl.admin.IFlyteURLs|null); } /** Represents a NodeExecutionGetDataResponse. */ @@ -13835,6 +13902,9 @@ export namespace flyteidl { /** NodeExecutionGetDataResponse dynamicWorkflow. */ public dynamicWorkflow?: (flyteidl.admin.IDynamicWorkflowNodeMetadata|null); + /** NodeExecutionGetDataResponse flyteUrls. */ + public flyteUrls?: (flyteidl.admin.IFlyteURLs|null); + /** * Creates a new NodeExecutionGetDataResponse instance using the specified properties. * @param [properties] Properties to set @@ -16339,6 +16409,9 @@ export namespace flyteidl { /** TaskExecutionGetDataResponse fullOutputs */ fullOutputs?: (flyteidl.core.ILiteralMap|null); + + /** TaskExecutionGetDataResponse flyteUrls */ + flyteUrls?: (flyteidl.admin.IFlyteURLs|null); } /** Represents a TaskExecutionGetDataResponse. */ @@ -16362,6 +16435,9 @@ export namespace flyteidl { /** TaskExecutionGetDataResponse fullOutputs. */ public fullOutputs?: (flyteidl.core.ILiteralMap|null); + /** TaskExecutionGetDataResponse flyteUrls. */ + public flyteUrls?: (flyteidl.admin.IFlyteURLs|null); + /** * Creates a new TaskExecutionGetDataResponse instance using the specified properties. * @param [properties] Properties to set @@ -19300,6 +19376,9 @@ export namespace flyteidl { /** CreateDownloadLinkResponse expiresAt */ expiresAt?: (google.protobuf.ITimestamp|null); + + /** CreateDownloadLinkResponse preSignedUrls */ + preSignedUrls?: (flyteidl.service.IPreSignedURLs|null); } /** Represents a CreateDownloadLinkResponse. */ @@ -19317,6 +19396,9 @@ export namespace flyteidl { /** CreateDownloadLinkResponse expiresAt. */ public expiresAt?: (google.protobuf.ITimestamp|null); + /** CreateDownloadLinkResponse preSignedUrls. */ + public preSignedUrls?: (flyteidl.service.IPreSignedURLs|null); + /** * Creates a new CreateDownloadLinkResponse instance using the specified properties. * @param [properties] Properties to set @@ -19350,6 +19432,177 @@ export namespace flyteidl { public static verify(message: { [k: string]: any }): (string|null); } + /** Properties of a PreSignedURLs. */ + interface IPreSignedURLs { + + /** PreSignedURLs signedUrl */ + signedUrl?: (string[]|null); + + /** PreSignedURLs expiresAt */ + expiresAt?: (google.protobuf.ITimestamp|null); + } + + /** Represents a PreSignedURLs. */ + class PreSignedURLs implements IPreSignedURLs { + + /** + * Constructs a new PreSignedURLs. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.service.IPreSignedURLs); + + /** PreSignedURLs signedUrl. */ + public signedUrl: string[]; + + /** PreSignedURLs expiresAt. */ + public expiresAt?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new PreSignedURLs instance using the specified properties. + * @param [properties] Properties to set + * @returns PreSignedURLs instance + */ + public static create(properties?: flyteidl.service.IPreSignedURLs): flyteidl.service.PreSignedURLs; + + /** + * Encodes the specified PreSignedURLs message. Does not implicitly {@link flyteidl.service.PreSignedURLs.verify|verify} messages. + * @param message PreSignedURLs message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.service.IPreSignedURLs, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a PreSignedURLs message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns PreSignedURLs + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.service.PreSignedURLs; + + /** + * Verifies a PreSignedURLs message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + + /** Properties of a GetDataRequest. */ + interface IGetDataRequest { + + /** GetDataRequest flyteUrl */ + flyteUrl?: (string|null); + } + + /** Represents a GetDataRequest. */ + class GetDataRequest implements IGetDataRequest { + + /** + * Constructs a new GetDataRequest. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.service.IGetDataRequest); + + /** GetDataRequest flyteUrl. */ + public flyteUrl: string; + + /** + * Creates a new GetDataRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns GetDataRequest instance + */ + public static create(properties?: flyteidl.service.IGetDataRequest): flyteidl.service.GetDataRequest; + + /** + * Encodes the specified GetDataRequest message. Does not implicitly {@link flyteidl.service.GetDataRequest.verify|verify} messages. + * @param message GetDataRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.service.IGetDataRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetDataRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetDataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.service.GetDataRequest; + + /** + * Verifies a GetDataRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + + /** Properties of a GetDataResponse. */ + interface IGetDataResponse { + + /** GetDataResponse literalMap */ + literalMap?: (flyteidl.core.ILiteralMap|null); + + /** GetDataResponse preSignedUrls */ + preSignedUrls?: (flyteidl.service.IPreSignedURLs|null); + } + + /** Represents a GetDataResponse. */ + class GetDataResponse implements IGetDataResponse { + + /** + * Constructs a new GetDataResponse. + * @param [properties] Properties to set + */ + constructor(properties?: flyteidl.service.IGetDataResponse); + + /** GetDataResponse literalMap. */ + public literalMap?: (flyteidl.core.ILiteralMap|null); + + /** GetDataResponse preSignedUrls. */ + public preSignedUrls?: (flyteidl.service.IPreSignedURLs|null); + + /** GetDataResponse data. */ + public data?: ("literalMap"|"preSignedUrls"); + + /** + * Creates a new GetDataResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns GetDataResponse instance + */ + public static create(properties?: flyteidl.service.IGetDataResponse): flyteidl.service.GetDataResponse; + + /** + * Encodes the specified GetDataResponse message. Does not implicitly {@link flyteidl.service.GetDataResponse.verify|verify} messages. + * @param message GetDataResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: flyteidl.service.IGetDataResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GetDataResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GetDataResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): flyteidl.service.GetDataResponse; + + /** + * Verifies a GetDataResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + } + /** Represents a DataProxyService */ class DataProxyService extends $protobuf.rpc.Service { @@ -19411,6 +19664,20 @@ export namespace flyteidl { * @returns Promise */ public createDownloadLink(request: flyteidl.service.ICreateDownloadLinkRequest): Promise; + + /** + * Calls GetData. + * @param request GetDataRequest message or plain object + * @param callback Node-style callback called with the error, if any, and GetDataResponse + */ + public getData(request: flyteidl.service.IGetDataRequest, callback: flyteidl.service.DataProxyService.GetDataCallback): void; + + /** + * Calls GetData. + * @param request GetDataRequest message or plain object + * @returns Promise + */ + public getData(request: flyteidl.service.IGetDataRequest): Promise; } namespace DataProxyService { @@ -19435,6 +19702,13 @@ export namespace flyteidl { * @param [response] CreateDownloadLinkResponse */ type CreateDownloadLinkCallback = (error: (Error|null), response?: flyteidl.service.CreateDownloadLinkResponse) => void; + + /** + * Callback as used by {@link flyteidl.service.DataProxyService#getData}. + * @param error Error, if any + * @param [response] GetDataResponse + */ + type GetDataCallback = (error: (Error|null), response?: flyteidl.service.GetDataResponse) => void; } /** Represents an ExternalPluginService */ diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index 4e4792dc8..a4583e660 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -21530,6 +21530,150 @@ return RawOutputDataConfig; })(); + admin.FlyteURLs = (function() { + + /** + * Properties of a FlyteURLs. + * @memberof flyteidl.admin + * @interface IFlyteURLs + * @property {string|null} [inputs] FlyteURLs inputs + * @property {string|null} [outputs] FlyteURLs outputs + * @property {string|null} [deck] FlyteURLs deck + */ + + /** + * Constructs a new FlyteURLs. + * @memberof flyteidl.admin + * @classdesc Represents a FlyteURLs. + * @implements IFlyteURLs + * @constructor + * @param {flyteidl.admin.IFlyteURLs=} [properties] Properties to set + */ + function FlyteURLs(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * FlyteURLs inputs. + * @member {string} inputs + * @memberof flyteidl.admin.FlyteURLs + * @instance + */ + FlyteURLs.prototype.inputs = ""; + + /** + * FlyteURLs outputs. + * @member {string} outputs + * @memberof flyteidl.admin.FlyteURLs + * @instance + */ + FlyteURLs.prototype.outputs = ""; + + /** + * FlyteURLs deck. + * @member {string} deck + * @memberof flyteidl.admin.FlyteURLs + * @instance + */ + FlyteURLs.prototype.deck = ""; + + /** + * Creates a new FlyteURLs instance using the specified properties. + * @function create + * @memberof flyteidl.admin.FlyteURLs + * @static + * @param {flyteidl.admin.IFlyteURLs=} [properties] Properties to set + * @returns {flyteidl.admin.FlyteURLs} FlyteURLs instance + */ + FlyteURLs.create = function create(properties) { + return new FlyteURLs(properties); + }; + + /** + * Encodes the specified FlyteURLs message. Does not implicitly {@link flyteidl.admin.FlyteURLs.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.FlyteURLs + * @static + * @param {flyteidl.admin.IFlyteURLs} message FlyteURLs message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + FlyteURLs.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.inputs != null && message.hasOwnProperty("inputs")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.inputs); + if (message.outputs != null && message.hasOwnProperty("outputs")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.outputs); + if (message.deck != null && message.hasOwnProperty("deck")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.deck); + return writer; + }; + + /** + * Decodes a FlyteURLs message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.FlyteURLs + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.FlyteURLs} FlyteURLs + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + FlyteURLs.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.FlyteURLs(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.inputs = reader.string(); + break; + case 2: + message.outputs = reader.string(); + break; + case 3: + message.deck = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a FlyteURLs message. + * @function verify + * @memberof flyteidl.admin.FlyteURLs + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + FlyteURLs.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.inputs != null && message.hasOwnProperty("inputs")) + if (!$util.isString(message.inputs)) + return "inputs: string expected"; + if (message.outputs != null && message.hasOwnProperty("outputs")) + if (!$util.isString(message.outputs)) + return "outputs: string expected"; + if (message.deck != null && message.hasOwnProperty("deck")) + if (!$util.isString(message.deck)) + return "deck: string expected"; + return null; + }; + + return FlyteURLs; + })(); + admin.DescriptionEntity = (function() { /** @@ -33240,6 +33384,7 @@ * @property {flyteidl.core.ILiteralMap|null} [fullInputs] NodeExecutionGetDataResponse fullInputs * @property {flyteidl.core.ILiteralMap|null} [fullOutputs] NodeExecutionGetDataResponse fullOutputs * @property {flyteidl.admin.IDynamicWorkflowNodeMetadata|null} [dynamicWorkflow] NodeExecutionGetDataResponse dynamicWorkflow + * @property {flyteidl.admin.IFlyteURLs|null} [flyteUrls] NodeExecutionGetDataResponse flyteUrls */ /** @@ -33297,6 +33442,14 @@ */ NodeExecutionGetDataResponse.prototype.dynamicWorkflow = null; + /** + * NodeExecutionGetDataResponse flyteUrls. + * @member {flyteidl.admin.IFlyteURLs|null|undefined} flyteUrls + * @memberof flyteidl.admin.NodeExecutionGetDataResponse + * @instance + */ + NodeExecutionGetDataResponse.prototype.flyteUrls = null; + /** * Creates a new NodeExecutionGetDataResponse instance using the specified properties. * @function create @@ -33331,6 +33484,8 @@ $root.flyteidl.core.LiteralMap.encode(message.fullOutputs, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); if (message.dynamicWorkflow != null && message.hasOwnProperty("dynamicWorkflow")) $root.flyteidl.admin.DynamicWorkflowNodeMetadata.encode(message.dynamicWorkflow, writer.uint32(/* id 16, wireType 2 =*/130).fork()).ldelim(); + if (message.flyteUrls != null && message.hasOwnProperty("flyteUrls")) + $root.flyteidl.admin.FlyteURLs.encode(message.flyteUrls, writer.uint32(/* id 17, wireType 2 =*/138).fork()).ldelim(); return writer; }; @@ -33367,6 +33522,9 @@ case 16: message.dynamicWorkflow = $root.flyteidl.admin.DynamicWorkflowNodeMetadata.decode(reader, reader.uint32()); break; + case 17: + message.flyteUrls = $root.flyteidl.admin.FlyteURLs.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -33411,6 +33569,11 @@ if (error) return "dynamicWorkflow." + error; } + if (message.flyteUrls != null && message.hasOwnProperty("flyteUrls")) { + var error = $root.flyteidl.admin.FlyteURLs.verify(message.flyteUrls); + if (error) + return "flyteUrls." + error; + } return null; }; @@ -39085,6 +39248,7 @@ * @property {flyteidl.admin.IUrlBlob|null} [outputs] TaskExecutionGetDataResponse outputs * @property {flyteidl.core.ILiteralMap|null} [fullInputs] TaskExecutionGetDataResponse fullInputs * @property {flyteidl.core.ILiteralMap|null} [fullOutputs] TaskExecutionGetDataResponse fullOutputs + * @property {flyteidl.admin.IFlyteURLs|null} [flyteUrls] TaskExecutionGetDataResponse flyteUrls */ /** @@ -39134,6 +39298,14 @@ */ TaskExecutionGetDataResponse.prototype.fullOutputs = null; + /** + * TaskExecutionGetDataResponse flyteUrls. + * @member {flyteidl.admin.IFlyteURLs|null|undefined} flyteUrls + * @memberof flyteidl.admin.TaskExecutionGetDataResponse + * @instance + */ + TaskExecutionGetDataResponse.prototype.flyteUrls = null; + /** * Creates a new TaskExecutionGetDataResponse instance using the specified properties. * @function create @@ -39166,6 +39338,8 @@ $root.flyteidl.core.LiteralMap.encode(message.fullInputs, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.fullOutputs != null && message.hasOwnProperty("fullOutputs")) $root.flyteidl.core.LiteralMap.encode(message.fullOutputs, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.flyteUrls != null && message.hasOwnProperty("flyteUrls")) + $root.flyteidl.admin.FlyteURLs.encode(message.flyteUrls, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; @@ -39199,6 +39373,9 @@ case 4: message.fullOutputs = $root.flyteidl.core.LiteralMap.decode(reader, reader.uint32()); break; + case 5: + message.flyteUrls = $root.flyteidl.admin.FlyteURLs.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -39238,6 +39415,11 @@ if (error) return "fullOutputs." + error; } + if (message.flyteUrls != null && message.hasOwnProperty("flyteUrls")) { + var error = $root.flyteidl.admin.FlyteURLs.verify(message.flyteUrls); + if (error) + return "flyteUrls." + error; + } return null; }; @@ -45052,6 +45234,7 @@ * @interface ICreateDownloadLinkResponse * @property {Array.|null} [signedUrl] CreateDownloadLinkResponse signedUrl * @property {google.protobuf.ITimestamp|null} [expiresAt] CreateDownloadLinkResponse expiresAt + * @property {flyteidl.service.IPreSignedURLs|null} [preSignedUrls] CreateDownloadLinkResponse preSignedUrls */ /** @@ -45086,6 +45269,14 @@ */ CreateDownloadLinkResponse.prototype.expiresAt = null; + /** + * CreateDownloadLinkResponse preSignedUrls. + * @member {flyteidl.service.IPreSignedURLs|null|undefined} preSignedUrls + * @memberof flyteidl.service.CreateDownloadLinkResponse + * @instance + */ + CreateDownloadLinkResponse.prototype.preSignedUrls = null; + /** * Creates a new CreateDownloadLinkResponse instance using the specified properties. * @function create @@ -45115,6 +45306,8 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.signedUrl[i]); if (message.expiresAt != null && message.hasOwnProperty("expiresAt")) $root.google.protobuf.Timestamp.encode(message.expiresAt, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.preSignedUrls != null && message.hasOwnProperty("preSignedUrls")) + $root.flyteidl.service.PreSignedURLs.encode(message.preSignedUrls, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; @@ -45144,6 +45337,9 @@ case 2: message.expiresAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); break; + case 3: + message.preSignedUrls = $root.flyteidl.service.PreSignedURLs.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -45175,12 +45371,418 @@ if (error) return "expiresAt." + error; } + if (message.preSignedUrls != null && message.hasOwnProperty("preSignedUrls")) { + var error = $root.flyteidl.service.PreSignedURLs.verify(message.preSignedUrls); + if (error) + return "preSignedUrls." + error; + } return null; }; return CreateDownloadLinkResponse; })(); + service.PreSignedURLs = (function() { + + /** + * Properties of a PreSignedURLs. + * @memberof flyteidl.service + * @interface IPreSignedURLs + * @property {Array.|null} [signedUrl] PreSignedURLs signedUrl + * @property {google.protobuf.ITimestamp|null} [expiresAt] PreSignedURLs expiresAt + */ + + /** + * Constructs a new PreSignedURLs. + * @memberof flyteidl.service + * @classdesc Represents a PreSignedURLs. + * @implements IPreSignedURLs + * @constructor + * @param {flyteidl.service.IPreSignedURLs=} [properties] Properties to set + */ + function PreSignedURLs(properties) { + this.signedUrl = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * PreSignedURLs signedUrl. + * @member {Array.} signedUrl + * @memberof flyteidl.service.PreSignedURLs + * @instance + */ + PreSignedURLs.prototype.signedUrl = $util.emptyArray; + + /** + * PreSignedURLs expiresAt. + * @member {google.protobuf.ITimestamp|null|undefined} expiresAt + * @memberof flyteidl.service.PreSignedURLs + * @instance + */ + PreSignedURLs.prototype.expiresAt = null; + + /** + * Creates a new PreSignedURLs instance using the specified properties. + * @function create + * @memberof flyteidl.service.PreSignedURLs + * @static + * @param {flyteidl.service.IPreSignedURLs=} [properties] Properties to set + * @returns {flyteidl.service.PreSignedURLs} PreSignedURLs instance + */ + PreSignedURLs.create = function create(properties) { + return new PreSignedURLs(properties); + }; + + /** + * Encodes the specified PreSignedURLs message. Does not implicitly {@link flyteidl.service.PreSignedURLs.verify|verify} messages. + * @function encode + * @memberof flyteidl.service.PreSignedURLs + * @static + * @param {flyteidl.service.IPreSignedURLs} message PreSignedURLs message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + PreSignedURLs.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.signedUrl != null && message.signedUrl.length) + for (var i = 0; i < message.signedUrl.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.signedUrl[i]); + if (message.expiresAt != null && message.hasOwnProperty("expiresAt")) + $root.google.protobuf.Timestamp.encode(message.expiresAt, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Decodes a PreSignedURLs message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.service.PreSignedURLs + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.service.PreSignedURLs} PreSignedURLs + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + PreSignedURLs.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.service.PreSignedURLs(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.signedUrl && message.signedUrl.length)) + message.signedUrl = []; + message.signedUrl.push(reader.string()); + break; + case 2: + message.expiresAt = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a PreSignedURLs message. + * @function verify + * @memberof flyteidl.service.PreSignedURLs + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + PreSignedURLs.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.signedUrl != null && message.hasOwnProperty("signedUrl")) { + if (!Array.isArray(message.signedUrl)) + return "signedUrl: array expected"; + for (var i = 0; i < message.signedUrl.length; ++i) + if (!$util.isString(message.signedUrl[i])) + return "signedUrl: string[] expected"; + } + if (message.expiresAt != null && message.hasOwnProperty("expiresAt")) { + var error = $root.google.protobuf.Timestamp.verify(message.expiresAt); + if (error) + return "expiresAt." + error; + } + return null; + }; + + return PreSignedURLs; + })(); + + service.GetDataRequest = (function() { + + /** + * Properties of a GetDataRequest. + * @memberof flyteidl.service + * @interface IGetDataRequest + * @property {string|null} [flyteUrl] GetDataRequest flyteUrl + */ + + /** + * Constructs a new GetDataRequest. + * @memberof flyteidl.service + * @classdesc Represents a GetDataRequest. + * @implements IGetDataRequest + * @constructor + * @param {flyteidl.service.IGetDataRequest=} [properties] Properties to set + */ + function GetDataRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetDataRequest flyteUrl. + * @member {string} flyteUrl + * @memberof flyteidl.service.GetDataRequest + * @instance + */ + GetDataRequest.prototype.flyteUrl = ""; + + /** + * Creates a new GetDataRequest instance using the specified properties. + * @function create + * @memberof flyteidl.service.GetDataRequest + * @static + * @param {flyteidl.service.IGetDataRequest=} [properties] Properties to set + * @returns {flyteidl.service.GetDataRequest} GetDataRequest instance + */ + GetDataRequest.create = function create(properties) { + return new GetDataRequest(properties); + }; + + /** + * Encodes the specified GetDataRequest message. Does not implicitly {@link flyteidl.service.GetDataRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.service.GetDataRequest + * @static + * @param {flyteidl.service.IGetDataRequest} message GetDataRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.flyteUrl != null && message.hasOwnProperty("flyteUrl")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.flyteUrl); + return writer; + }; + + /** + * Decodes a GetDataRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.service.GetDataRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.service.GetDataRequest} GetDataRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.service.GetDataRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.flyteUrl = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a GetDataRequest message. + * @function verify + * @memberof flyteidl.service.GetDataRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.flyteUrl != null && message.hasOwnProperty("flyteUrl")) + if (!$util.isString(message.flyteUrl)) + return "flyteUrl: string expected"; + return null; + }; + + return GetDataRequest; + })(); + + service.GetDataResponse = (function() { + + /** + * Properties of a GetDataResponse. + * @memberof flyteidl.service + * @interface IGetDataResponse + * @property {flyteidl.core.ILiteralMap|null} [literalMap] GetDataResponse literalMap + * @property {flyteidl.service.IPreSignedURLs|null} [preSignedUrls] GetDataResponse preSignedUrls + */ + + /** + * Constructs a new GetDataResponse. + * @memberof flyteidl.service + * @classdesc Represents a GetDataResponse. + * @implements IGetDataResponse + * @constructor + * @param {flyteidl.service.IGetDataResponse=} [properties] Properties to set + */ + function GetDataResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GetDataResponse literalMap. + * @member {flyteidl.core.ILiteralMap|null|undefined} literalMap + * @memberof flyteidl.service.GetDataResponse + * @instance + */ + GetDataResponse.prototype.literalMap = null; + + /** + * GetDataResponse preSignedUrls. + * @member {flyteidl.service.IPreSignedURLs|null|undefined} preSignedUrls + * @memberof flyteidl.service.GetDataResponse + * @instance + */ + GetDataResponse.prototype.preSignedUrls = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * GetDataResponse data. + * @member {"literalMap"|"preSignedUrls"|undefined} data + * @memberof flyteidl.service.GetDataResponse + * @instance + */ + Object.defineProperty(GetDataResponse.prototype, "data", { + get: $util.oneOfGetter($oneOfFields = ["literalMap", "preSignedUrls"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new GetDataResponse instance using the specified properties. + * @function create + * @memberof flyteidl.service.GetDataResponse + * @static + * @param {flyteidl.service.IGetDataResponse=} [properties] Properties to set + * @returns {flyteidl.service.GetDataResponse} GetDataResponse instance + */ + GetDataResponse.create = function create(properties) { + return new GetDataResponse(properties); + }; + + /** + * Encodes the specified GetDataResponse message. Does not implicitly {@link flyteidl.service.GetDataResponse.verify|verify} messages. + * @function encode + * @memberof flyteidl.service.GetDataResponse + * @static + * @param {flyteidl.service.IGetDataResponse} message GetDataResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GetDataResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.literalMap != null && message.hasOwnProperty("literalMap")) + $root.flyteidl.core.LiteralMap.encode(message.literalMap, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.preSignedUrls != null && message.hasOwnProperty("preSignedUrls")) + $root.flyteidl.service.PreSignedURLs.encode(message.preSignedUrls, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Decodes a GetDataResponse message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.service.GetDataResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.service.GetDataResponse} GetDataResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GetDataResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.service.GetDataResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.literalMap = $root.flyteidl.core.LiteralMap.decode(reader, reader.uint32()); + break; + case 2: + message.preSignedUrls = $root.flyteidl.service.PreSignedURLs.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a GetDataResponse message. + * @function verify + * @memberof flyteidl.service.GetDataResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GetDataResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.literalMap != null && message.hasOwnProperty("literalMap")) { + properties.data = 1; + { + var error = $root.flyteidl.core.LiteralMap.verify(message.literalMap); + if (error) + return "literalMap." + error; + } + } + if (message.preSignedUrls != null && message.hasOwnProperty("preSignedUrls")) { + if (properties.data === 1) + return "data: multiple values"; + properties.data = 1; + { + var error = $root.flyteidl.service.PreSignedURLs.verify(message.preSignedUrls); + if (error) + return "preSignedUrls." + error; + } + } + return null; + }; + + return GetDataResponse; + })(); + service.DataProxyService = (function() { /** @@ -45312,6 +45914,39 @@ * @variation 2 */ + /** + * Callback as used by {@link flyteidl.service.DataProxyService#getData}. + * @memberof flyteidl.service.DataProxyService + * @typedef GetDataCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.service.GetDataResponse} [response] GetDataResponse + */ + + /** + * Calls GetData. + * @function getData + * @memberof flyteidl.service.DataProxyService + * @instance + * @param {flyteidl.service.IGetDataRequest} request GetDataRequest message or plain object + * @param {flyteidl.service.DataProxyService.GetDataCallback} callback Node-style callback called with the error, if any, and GetDataResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(DataProxyService.prototype.getData = function getData(request, callback) { + return this.rpcCall(getData, $root.flyteidl.service.GetDataRequest, $root.flyteidl.service.GetDataResponse, request, callback); + }, "name", { value: "GetData" }); + + /** + * Calls GetData. + * @function getData + * @memberof flyteidl.service.DataProxyService + * @instance + * @param {flyteidl.service.IGetDataRequest} request GetDataRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return DataProxyService; })(); diff --git a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py index d7426d0b6..e71b07217 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/admin/common.proto\x12\x0e\x66lyteidl.admin\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"]\n\x15NamedEntityIdentifier\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\"o\n\x13NamedEntityMetadata\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32 .flyteidl.admin.NamedEntityStateR\x05state\"\xc7\x01\n\x0bNamedEntity\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x82\x01\n\x04Sort\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.Sort.DirectionR\tdirection\"*\n\tDirection\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\xc9\x01\n NamedEntityIdentifierListRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x06 \x01(\tR\x07\x66ilters\"\x81\x02\n\x16NamedEntityListRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x04 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x06 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x07 \x01(\tR\x07\x66ilters\"t\n\x19NamedEntityIdentifierList\x12\x41\n\x08\x65ntities\x18\x01 \x03(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"`\n\x0fNamedEntityList\x12\x37\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x1b.flyteidl.admin.NamedEntityR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x90\x01\n\x15NamedEntityGetRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\"\xd4\x01\n\x18NamedEntityUpdateRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x1b\n\x19NamedEntityUpdateResponse\"=\n\x10ObjectGetRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\"\xc1\x01\n\x13ResourceListRequest\x12\x35\n\x02id\x18\x01 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\">\n\x11\x45mailNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"B\n\x15PagerDutyNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\">\n\x11SlackNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"\x94\x02\n\x0cNotification\x12>\n\x06phases\x18\x01 \x03(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x06phases\x12\x39\n\x05\x65mail\x18\x02 \x01(\x0b\x32!.flyteidl.admin.EmailNotificationH\x00R\x05\x65mail\x12\x46\n\npager_duty\x18\x03 \x01(\x0b\x32%.flyteidl.admin.PagerDutyNotificationH\x00R\tpagerDuty\x12\x39\n\x05slack\x18\x04 \x01(\x0b\x32!.flyteidl.admin.SlackNotificationH\x00R\x05slackB\x06\n\x04type\"5\n\x07UrlBlob\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x03R\x05\x62ytes:\x02\x18\x01\"\x7f\n\x06Labels\x12:\n\x06values\x18\x01 \x03(\x0b\x32\".flyteidl.admin.Labels.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x89\x01\n\x0b\x41nnotations\x12?\n\x06values\x18\x01 \x03(\x0b\x32\'.flyteidl.admin.Annotations.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"z\n\x08\x41uthRole\x12,\n\x12\x61ssumable_iam_role\x18\x01 \x01(\tR\x10\x61ssumableIamRole\x12<\n\x1akubernetes_service_account\x18\x02 \x01(\tR\x18kubernetesServiceAccount:\x02\x18\x01\"K\n\x13RawOutputDataConfig\x12\x34\n\x16output_location_prefix\x18\x01 \x01(\tR\x14outputLocationPrefix*\\\n\x10NamedEntityState\x12\x17\n\x13NAMED_ENTITY_ACTIVE\x10\x00\x12\x19\n\x15NAMED_ENTITY_ARCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\x42\xb1\x01\n\x12\x63om.flyteidl.adminB\x0b\x43ommonProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x66lyteidl/admin/common.proto\x12\x0e\x66lyteidl.admin\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"]\n\x15NamedEntityIdentifier\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\"o\n\x13NamedEntityMetadata\x12 \n\x0b\x64\x65scription\x18\x01 \x01(\tR\x0b\x64\x65scription\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32 .flyteidl.admin.NamedEntityStateR\x05state\"\xc7\x01\n\x0bNamedEntity\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x82\x01\n\x04Sort\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12<\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.flyteidl.admin.Sort.DirectionR\tdirection\"*\n\tDirection\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\xc9\x01\n NamedEntityIdentifierListRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x03 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x04 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x06 \x01(\tR\x07\x66ilters\"\x81\x02\n\x16NamedEntityListRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x18\n\x07project\x18\x02 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x03 \x01(\tR\x06\x64omain\x12\x14\n\x05limit\x18\x04 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x05 \x01(\tR\x05token\x12-\n\x07sort_by\x18\x06 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12\x18\n\x07\x66ilters\x18\x07 \x01(\tR\x07\x66ilters\"t\n\x19NamedEntityIdentifierList\x12\x41\n\x08\x65ntities\x18\x01 \x03(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"`\n\x0fNamedEntityList\x12\x37\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x1b.flyteidl.admin.NamedEntityR\x08\x65ntities\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x90\x01\n\x15NamedEntityGetRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\"\xd4\x01\n\x18NamedEntityUpdateRequest\x12@\n\rresource_type\x18\x01 \x01(\x0e\x32\x1b.flyteidl.core.ResourceTypeR\x0cresourceType\x12\x35\n\x02id\x18\x02 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12?\n\x08metadata\x18\x03 \x01(\x0b\x32#.flyteidl.admin.NamedEntityMetadataR\x08metadata\"\x1b\n\x19NamedEntityUpdateResponse\"=\n\x10ObjectGetRequest\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\"\xc1\x01\n\x13ResourceListRequest\x12\x35\n\x02id\x18\x01 \x01(\x0b\x32%.flyteidl.admin.NamedEntityIdentifierR\x02id\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\">\n\x11\x45mailNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"B\n\x15PagerDutyNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\">\n\x11SlackNotification\x12)\n\x10recipients_email\x18\x01 \x03(\tR\x0frecipientsEmail\"\x94\x02\n\x0cNotification\x12>\n\x06phases\x18\x01 \x03(\x0e\x32&.flyteidl.core.WorkflowExecution.PhaseR\x06phases\x12\x39\n\x05\x65mail\x18\x02 \x01(\x0b\x32!.flyteidl.admin.EmailNotificationH\x00R\x05\x65mail\x12\x46\n\npager_duty\x18\x03 \x01(\x0b\x32%.flyteidl.admin.PagerDutyNotificationH\x00R\tpagerDuty\x12\x39\n\x05slack\x18\x04 \x01(\x0b\x32!.flyteidl.admin.SlackNotificationH\x00R\x05slackB\x06\n\x04type\"5\n\x07UrlBlob\x12\x10\n\x03url\x18\x01 \x01(\tR\x03url\x12\x14\n\x05\x62ytes\x18\x02 \x01(\x03R\x05\x62ytes:\x02\x18\x01\"\x7f\n\x06Labels\x12:\n\x06values\x18\x01 \x03(\x0b\x32\".flyteidl.admin.Labels.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x89\x01\n\x0b\x41nnotations\x12?\n\x06values\x18\x01 \x03(\x0b\x32\'.flyteidl.admin.Annotations.ValuesEntryR\x06values\x1a\x39\n\x0bValuesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"z\n\x08\x41uthRole\x12,\n\x12\x61ssumable_iam_role\x18\x01 \x01(\tR\x10\x61ssumableIamRole\x12<\n\x1akubernetes_service_account\x18\x02 \x01(\tR\x18kubernetesServiceAccount:\x02\x18\x01\"K\n\x13RawOutputDataConfig\x12\x34\n\x16output_location_prefix\x18\x01 \x01(\tR\x14outputLocationPrefix\"Q\n\tFlyteURLs\x12\x16\n\x06inputs\x18\x01 \x01(\tR\x06inputs\x12\x18\n\x07outputs\x18\x02 \x01(\tR\x07outputs\x12\x12\n\x04\x64\x65\x63k\x18\x03 \x01(\tR\x04\x64\x65\x63k*\\\n\x10NamedEntityState\x12\x17\n\x13NAMED_ENTITY_ACTIVE\x10\x00\x12\x19\n\x15NAMED_ENTITY_ARCHIVED\x10\x01\x12\x14\n\x10SYSTEM_GENERATED\x10\x02\x42\xb1\x01\n\x12\x63om.flyteidl.adminB\x0b\x43ommonProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,8 +33,8 @@ _ANNOTATIONS_VALUESENTRY._serialized_options = b'8\001' _AUTHROLE._options = None _AUTHROLE._serialized_options = b'\030\001' - _globals['_NAMEDENTITYSTATE']._serialized_start=3016 - _globals['_NAMEDENTITYSTATE']._serialized_end=3108 + _globals['_NAMEDENTITYSTATE']._serialized_start=3099 + _globals['_NAMEDENTITYSTATE']._serialized_end=3191 _globals['_NAMEDENTITYIDENTIFIER']._serialized_start=143 _globals['_NAMEDENTITYIDENTIFIER']._serialized_end=236 _globals['_NAMEDENTITYMETADATA']._serialized_start=238 @@ -85,4 +85,6 @@ _globals['_AUTHROLE']._serialized_end=2937 _globals['_RAWOUTPUTDATACONFIG']._serialized_start=2939 _globals['_RAWOUTPUTDATACONFIG']._serialized_end=3014 + _globals['_FLYTEURLS']._serialized_start=3016 + _globals['_FLYTEURLS']._serialized_end=3097 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi index 36088add0..4d1f9d117 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/common_pb2.pyi @@ -229,3 +229,13 @@ class RawOutputDataConfig(_message.Message): OUTPUT_LOCATION_PREFIX_FIELD_NUMBER: _ClassVar[int] output_location_prefix: str def __init__(self, output_location_prefix: _Optional[str] = ...) -> None: ... + +class FlyteURLs(_message.Message): + __slots__ = ["inputs", "outputs", "deck"] + INPUTS_FIELD_NUMBER: _ClassVar[int] + OUTPUTS_FIELD_NUMBER: _ClassVar[int] + DECK_FIELD_NUMBER: _ClassVar[int] + inputs: str + outputs: str + deck: str + def __init__(self, inputs: _Optional[str] = ..., outputs: _Optional[str] = ..., deck: _Optional[str] = ...) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.py index 94c94f56b..0eb0b0297 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.py @@ -21,7 +21,7 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/admin/node_execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1b\x66lyteidl/core/catalog.proto\x1a\x1c\x66lyteidl/core/compiler.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"Q\n\x17NodeExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\"\x99\x02\n\x18NodeExecutionListRequest\x12^\n\x15workflow_execution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x13workflowExecutionId\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12(\n\x10unique_parent_id\x18\x06 \x01(\tR\x0euniqueParentId\"\xea\x01\n\x1fNodeExecutionForTaskListRequest\x12R\n\x11task_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x0ftaskExecutionId\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"\xe7\x01\n\rNodeExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\x12\x1b\n\tinput_uri\x18\x02 \x01(\tR\x08inputUri\x12>\n\x07\x63losure\x18\x03 \x01(\x0b\x32$.flyteidl.admin.NodeExecutionClosureR\x07\x63losure\x12\x41\n\x08metadata\x18\x04 \x01(\x0b\x32%.flyteidl.admin.NodeExecutionMetaDataR\x08metadata\"\x9f\x01\n\x15NodeExecutionMetaData\x12\x1f\n\x0bretry_group\x18\x01 \x01(\tR\nretryGroup\x12$\n\x0eis_parent_node\x18\x02 \x01(\x08R\x0cisParentNode\x12 \n\x0cspec_node_id\x18\x03 \x01(\tR\nspecNodeId\x12\x1d\n\nis_dynamic\x18\x04 \x01(\x08R\tisDynamic\"q\n\x11NodeExecutionList\x12\x46\n\x0fnode_executions\x18\x01 \x03(\x0b\x32\x1d.flyteidl.admin.NodeExecutionR\x0enodeExecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\xf6\x05\n\x14NodeExecutionClosure\x12#\n\noutput_uri\x18\x01 \x01(\tB\x02\x18\x01H\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12@\n\x0boutput_data\x18\n \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.NodeExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\\\n\x16workflow_node_metadata\x18\x08 \x01(\x0b\x32$.flyteidl.admin.WorkflowNodeMetadataH\x01R\x14workflowNodeMetadata\x12P\n\x12task_node_metadata\x18\t \x01(\x0b\x32 .flyteidl.admin.TaskNodeMetadataH\x01R\x10taskNodeMetadata\x12\x19\n\x08\x64\x65\x63k_uri\x18\x0b \x01(\tR\x07\x64\x65\x63kUri\x12/\n\x14\x64ynamic_job_spec_uri\x18\x0c \x01(\tR\x11\x64ynamicJobSpecUriB\x0f\n\routput_resultB\x11\n\x0ftarget_metadata\"d\n\x14WorkflowNodeMetadata\x12L\n\x0b\x65xecutionId\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\"\xc0\x01\n\x10TaskNodeMetadata\x12\x44\n\x0c\x63\x61\x63he_status\x18\x01 \x01(\x0e\x32!.flyteidl.core.CatalogCacheStatusR\x0b\x63\x61\x63heStatus\x12?\n\x0b\x63\x61talog_key\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.CatalogMetadataR\ncatalogKey\x12%\n\x0e\x63heckpoint_uri\x18\x04 \x01(\tR\rcheckpointUri\"\xce\x01\n\x1b\x44ynamicWorkflowNodeMetadata\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12S\n\x11\x63ompiled_workflow\x18\x02 \x01(\x0b\x32&.flyteidl.core.CompiledWorkflowClosureR\x10\x63ompiledWorkflow\x12/\n\x14\x64ynamic_job_spec_uri\x18\x03 \x01(\tR\x11\x64ynamicJobSpecUri\"U\n\x1bNodeExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\"\xdc\x02\n\x1cNodeExecutionGetDataResponse\x12\x33\n\x06inputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12\x35\n\x07outputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\x12V\n\x10\x64ynamic_workflow\x18\x10 \x01(\x0b\x32+.flyteidl.admin.DynamicWorkflowNodeMetadataR\x0f\x64ynamicWorkflowB\xb8\x01\n\x12\x63om.flyteidl.adminB\x12NodeExecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/admin/node_execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1b\x66lyteidl/core/catalog.proto\x1a\x1c\x66lyteidl/core/compiler.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"Q\n\x17NodeExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\"\x99\x02\n\x18NodeExecutionListRequest\x12^\n\x15workflow_execution_id\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x13workflowExecutionId\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\x12(\n\x10unique_parent_id\x18\x06 \x01(\tR\x0euniqueParentId\"\xea\x01\n\x1fNodeExecutionForTaskListRequest\x12R\n\x11task_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x0ftaskExecutionId\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"\xe7\x01\n\rNodeExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\x12\x1b\n\tinput_uri\x18\x02 \x01(\tR\x08inputUri\x12>\n\x07\x63losure\x18\x03 \x01(\x0b\x32$.flyteidl.admin.NodeExecutionClosureR\x07\x63losure\x12\x41\n\x08metadata\x18\x04 \x01(\x0b\x32%.flyteidl.admin.NodeExecutionMetaDataR\x08metadata\"\x9f\x01\n\x15NodeExecutionMetaData\x12\x1f\n\x0bretry_group\x18\x01 \x01(\tR\nretryGroup\x12$\n\x0eis_parent_node\x18\x02 \x01(\x08R\x0cisParentNode\x12 \n\x0cspec_node_id\x18\x03 \x01(\tR\nspecNodeId\x12\x1d\n\nis_dynamic\x18\x04 \x01(\x08R\tisDynamic\"q\n\x11NodeExecutionList\x12\x46\n\x0fnode_executions\x18\x01 \x03(\x0b\x32\x1d.flyteidl.admin.NodeExecutionR\x0enodeExecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\xf6\x05\n\x14NodeExecutionClosure\x12#\n\noutput_uri\x18\x01 \x01(\tB\x02\x18\x01H\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12@\n\x0boutput_data\x18\n \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.NodeExecution.PhaseR\x05phase\x12\x39\n\nstarted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\\\n\x16workflow_node_metadata\x18\x08 \x01(\x0b\x32$.flyteidl.admin.WorkflowNodeMetadataH\x01R\x14workflowNodeMetadata\x12P\n\x12task_node_metadata\x18\t \x01(\x0b\x32 .flyteidl.admin.TaskNodeMetadataH\x01R\x10taskNodeMetadata\x12\x19\n\x08\x64\x65\x63k_uri\x18\x0b \x01(\tR\x07\x64\x65\x63kUri\x12/\n\x14\x64ynamic_job_spec_uri\x18\x0c \x01(\tR\x11\x64ynamicJobSpecUriB\x0f\n\routput_resultB\x11\n\x0ftarget_metadata\"d\n\x14WorkflowNodeMetadata\x12L\n\x0b\x65xecutionId\x18\x01 \x01(\x0b\x32*.flyteidl.core.WorkflowExecutionIdentifierR\x0b\x65xecutionId\"\xc0\x01\n\x10TaskNodeMetadata\x12\x44\n\x0c\x63\x61\x63he_status\x18\x01 \x01(\x0e\x32!.flyteidl.core.CatalogCacheStatusR\x0b\x63\x61\x63heStatus\x12?\n\x0b\x63\x61talog_key\x18\x02 \x01(\x0b\x32\x1e.flyteidl.core.CatalogMetadataR\ncatalogKey\x12%\n\x0e\x63heckpoint_uri\x18\x04 \x01(\tR\rcheckpointUri\"\xce\x01\n\x1b\x44ynamicWorkflowNodeMetadata\x12)\n\x02id\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.IdentifierR\x02id\x12S\n\x11\x63ompiled_workflow\x18\x02 \x01(\x0b\x32&.flyteidl.core.CompiledWorkflowClosureR\x10\x63ompiledWorkflow\x12/\n\x14\x64ynamic_job_spec_uri\x18\x03 \x01(\tR\x11\x64ynamicJobSpecUri\"U\n\x1bNodeExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x02id\"\x96\x03\n\x1cNodeExecutionGetDataResponse\x12\x33\n\x06inputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12\x35\n\x07outputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\x12V\n\x10\x64ynamic_workflow\x18\x10 \x01(\x0b\x32+.flyteidl.admin.DynamicWorkflowNodeMetadataR\x0f\x64ynamicWorkflow\x12\x38\n\nflyte_urls\x18\x11 \x01(\x0b\x32\x19.flyteidl.admin.FlyteURLsR\tflyteUrlsB\xb8\x01\n\x12\x63om.flyteidl.adminB\x12NodeExecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -61,5 +61,5 @@ _globals['_NODEEXECUTIONGETDATAREQUEST']._serialized_start=2683 _globals['_NODEEXECUTIONGETDATAREQUEST']._serialized_end=2768 _globals['_NODEEXECUTIONGETDATARESPONSE']._serialized_start=2771 - _globals['_NODEEXECUTIONGETDATARESPONSE']._serialized_end=3119 + _globals['_NODEEXECUTIONGETDATARESPONSE']._serialized_end=3177 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.pyi index 150f8fc24..6bb94b11d 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/node_execution_pb2.pyi @@ -142,15 +142,17 @@ class NodeExecutionGetDataRequest(_message.Message): def __init__(self, id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ...) -> None: ... class NodeExecutionGetDataResponse(_message.Message): - __slots__ = ["inputs", "outputs", "full_inputs", "full_outputs", "dynamic_workflow"] + __slots__ = ["inputs", "outputs", "full_inputs", "full_outputs", "dynamic_workflow", "flyte_urls"] INPUTS_FIELD_NUMBER: _ClassVar[int] OUTPUTS_FIELD_NUMBER: _ClassVar[int] FULL_INPUTS_FIELD_NUMBER: _ClassVar[int] FULL_OUTPUTS_FIELD_NUMBER: _ClassVar[int] DYNAMIC_WORKFLOW_FIELD_NUMBER: _ClassVar[int] + FLYTE_URLS_FIELD_NUMBER: _ClassVar[int] inputs: _common_pb2.UrlBlob outputs: _common_pb2.UrlBlob full_inputs: _literals_pb2.LiteralMap full_outputs: _literals_pb2.LiteralMap dynamic_workflow: DynamicWorkflowNodeMetadata - def __init__(self, inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., dynamic_workflow: _Optional[_Union[DynamicWorkflowNodeMetadata, _Mapping]] = ...) -> None: ... + flyte_urls: _common_pb2.FlyteURLs + def __init__(self, inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., dynamic_workflow: _Optional[_Union[DynamicWorkflowNodeMetadata, _Mapping]] = ..., flyte_urls: _Optional[_Union[_common_pb2.FlyteURLs, _Mapping]] = ...) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.py index 622ac678b..17a1fc991 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.py @@ -21,7 +21,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/admin/task_execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1a\x66lyteidl/event/event.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"Q\n\x17TaskExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"\xe3\x01\n\x18TaskExecutionListRequest\x12R\n\x11node_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x0fnodeExecutionId\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"\xc1\x01\n\rTaskExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\x12\x1b\n\tinput_uri\x18\x02 \x01(\tR\x08inputUri\x12>\n\x07\x63losure\x18\x03 \x01(\x0b\x32$.flyteidl.admin.TaskExecutionClosureR\x07\x63losure\x12\x1b\n\tis_parent\x18\x04 \x01(\x08R\x08isParent\"q\n\x11TaskExecutionList\x12\x46\n\x0ftask_executions\x18\x01 \x03(\x0b\x32\x1d.flyteidl.admin.TaskExecutionR\x0etaskExecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9c\x06\n\x14TaskExecutionClosure\x12#\n\noutput_uri\x18\x01 \x01(\tB\x02\x18\x01H\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12@\n\x0boutput_data\x18\x0c \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.TaskExecution.PhaseR\x05phase\x12*\n\x04logs\x18\x04 \x03(\x0b\x32\x16.flyteidl.core.TaskLogR\x04logs\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x38\n\x0b\x63ustom_info\x18\t \x01(\x0b\x32\x17.google.protobuf.StructR\ncustomInfo\x12\x16\n\x06reason\x18\n \x01(\tR\x06reason\x12\x1b\n\ttask_type\x18\x0b \x01(\tR\x08taskType\x12\x41\n\x08metadata\x18\x10 \x01(\x0b\x32%.flyteidl.event.TaskExecutionMetadataR\x08metadata\x12#\n\revent_version\x18\x11 \x01(\x05R\x0c\x65ventVersion\x12\x30\n\x07reasons\x18\x12 \x03(\x0b\x32\x16.flyteidl.admin.ReasonR\x07reasonsB\x0f\n\routput_result\"_\n\x06Reason\x12;\n\x0boccurred_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"U\n\x1bTaskExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"\x84\x02\n\x1cTaskExecutionGetDataResponse\x12\x33\n\x06inputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12\x35\n\x07outputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputsB\xb8\x01\n\x12\x63om.flyteidl.adminB\x12TaskExecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#flyteidl/admin/task_execution.proto\x12\x0e\x66lyteidl.admin\x1a\x1b\x66lyteidl/admin/common.proto\x1a\x1d\x66lyteidl/core/execution.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\x1a\x1a\x66lyteidl/event/event.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\"Q\n\x17TaskExecutionGetRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"\xe3\x01\n\x18TaskExecutionListRequest\x12R\n\x11node_execution_id\x18\x01 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierR\x0fnodeExecutionId\x12\x14\n\x05limit\x18\x02 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x03 \x01(\tR\x05token\x12\x18\n\x07\x66ilters\x18\x04 \x01(\tR\x07\x66ilters\x12-\n\x07sort_by\x18\x05 \x01(\x0b\x32\x14.flyteidl.admin.SortR\x06sortBy\"\xc1\x01\n\rTaskExecution\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\x12\x1b\n\tinput_uri\x18\x02 \x01(\tR\x08inputUri\x12>\n\x07\x63losure\x18\x03 \x01(\x0b\x32$.flyteidl.admin.TaskExecutionClosureR\x07\x63losure\x12\x1b\n\tis_parent\x18\x04 \x01(\x08R\x08isParent\"q\n\x11TaskExecutionList\x12\x46\n\x0ftask_executions\x18\x01 \x03(\x0b\x32\x1d.flyteidl.admin.TaskExecutionR\x0etaskExecutions\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\"\x9c\x06\n\x14TaskExecutionClosure\x12#\n\noutput_uri\x18\x01 \x01(\tB\x02\x18\x01H\x00R\toutputUri\x12\x35\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x1d.flyteidl.core.ExecutionErrorH\x00R\x05\x65rror\x12@\n\x0boutput_data\x18\x0c \x01(\x0b\x32\x19.flyteidl.core.LiteralMapB\x02\x18\x01H\x00R\noutputData\x12\x38\n\x05phase\x18\x03 \x01(\x0e\x32\".flyteidl.core.TaskExecution.PhaseR\x05phase\x12*\n\x04logs\x18\x04 \x03(\x0b\x32\x16.flyteidl.core.TaskLogR\x04logs\x12\x39\n\nstarted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartedAt\x12\x35\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08\x64uration\x12\x39\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x38\n\x0b\x63ustom_info\x18\t \x01(\x0b\x32\x17.google.protobuf.StructR\ncustomInfo\x12\x16\n\x06reason\x18\n \x01(\tR\x06reason\x12\x1b\n\ttask_type\x18\x0b \x01(\tR\x08taskType\x12\x41\n\x08metadata\x18\x10 \x01(\x0b\x32%.flyteidl.event.TaskExecutionMetadataR\x08metadata\x12#\n\revent_version\x18\x11 \x01(\x05R\x0c\x65ventVersion\x12\x30\n\x07reasons\x18\x12 \x03(\x0b\x32\x16.flyteidl.admin.ReasonR\x07reasonsB\x0f\n\routput_result\"_\n\x06Reason\x12;\n\x0boccurred_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\noccurredAt\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\"U\n\x1bTaskExecutionGetDataRequest\x12\x36\n\x02id\x18\x01 \x01(\x0b\x32&.flyteidl.core.TaskExecutionIdentifierR\x02id\"\xbe\x02\n\x1cTaskExecutionGetDataResponse\x12\x33\n\x06inputs\x18\x01 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x06inputs\x12\x35\n\x07outputs\x18\x02 \x01(\x0b\x32\x17.flyteidl.admin.UrlBlobB\x02\x18\x01R\x07outputs\x12:\n\x0b\x66ull_inputs\x18\x03 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\nfullInputs\x12<\n\x0c\x66ull_outputs\x18\x04 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapR\x0b\x66ullOutputs\x12\x38\n\nflyte_urls\x18\x05 \x01(\x0b\x32\x19.flyteidl.admin.FlyteURLsR\tflyteUrlsB\xb8\x01\n\x12\x63om.flyteidl.adminB\x12TaskExecutionProtoP\x01Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin\xa2\x02\x03\x46\x41X\xaa\x02\x0e\x46lyteidl.Admin\xca\x02\x0e\x46lyteidl\\Admin\xe2\x02\x1a\x46lyteidl\\Admin\\GPBMetadata\xea\x02\x0f\x46lyteidl::Adminb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -53,5 +53,5 @@ _globals['_TASKEXECUTIONGETDATAREQUEST']._serialized_start=1820 _globals['_TASKEXECUTIONGETDATAREQUEST']._serialized_end=1905 _globals['_TASKEXECUTIONGETDATARESPONSE']._serialized_start=1908 - _globals['_TASKEXECUTIONGETDATARESPONSE']._serialized_end=2168 + _globals['_TASKEXECUTIONGETDATARESPONSE']._serialized_end=2226 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.pyi index 0729d1813..7f675cc7d 100644 --- a/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/admin/task_execution_pb2.pyi @@ -102,13 +102,15 @@ class TaskExecutionGetDataRequest(_message.Message): def __init__(self, id: _Optional[_Union[_identifier_pb2.TaskExecutionIdentifier, _Mapping]] = ...) -> None: ... class TaskExecutionGetDataResponse(_message.Message): - __slots__ = ["inputs", "outputs", "full_inputs", "full_outputs"] + __slots__ = ["inputs", "outputs", "full_inputs", "full_outputs", "flyte_urls"] INPUTS_FIELD_NUMBER: _ClassVar[int] OUTPUTS_FIELD_NUMBER: _ClassVar[int] FULL_INPUTS_FIELD_NUMBER: _ClassVar[int] FULL_OUTPUTS_FIELD_NUMBER: _ClassVar[int] + FLYTE_URLS_FIELD_NUMBER: _ClassVar[int] inputs: _common_pb2.UrlBlob outputs: _common_pb2.UrlBlob full_inputs: _literals_pb2.LiteralMap full_outputs: _literals_pb2.LiteralMap - def __init__(self, inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ...) -> None: ... + flyte_urls: _common_pb2.FlyteURLs + def __init__(self, inputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., outputs: _Optional[_Union[_common_pb2.UrlBlob, _Mapping]] = ..., full_inputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., full_outputs: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., flyte_urls: _Optional[_Union[_common_pb2.FlyteURLs, _Mapping]] = ...) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index 042872014..25d26599a 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -27,11 +27,9 @@ from flyteidl.admin import version_pb2 as flyteidl_dot_admin_dot_version__pb2 from flyteidl.admin import common_pb2 as flyteidl_dot_admin_dot_common__pb2 from flyteidl.admin import description_entity_pb2 as flyteidl_dot_admin_dot_description__entity__pb2 -from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 -from flyteidl.core import metrics_pb2 as flyteidl_dot_core_dot_metrics__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\'flyteidl/admin/project_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/description_entity.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1b\x66lyteidl/core/metrics.proto2\x84N\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\x88\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"E\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x97\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"+\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x12\xae\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"b\x82\xd3\xe4\x93\x02\\Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\x94\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x9f\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"/\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xbe\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"j\x82\xd3\xe4\x93\x02\x64Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\x9b\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"L\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa2\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"F\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xa4\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"2\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xc8\x01\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"p\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xb6\x01\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"O\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\x95\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xa4\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"@\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xb9\x01\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\x89\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xad\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"@\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd2\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"v\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xde\x01\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xa5\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb3\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xee\x01\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12q\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\x80\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xa3\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x98\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xb4\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\x9c\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xa8\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xe3\x01\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"U\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\xc1\x01\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xcd\x01\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"?\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xb6\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\":\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\x9f\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xab\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"/\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xe4\x01\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"e\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xb7\x01\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xc3\x01\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"D\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\x9f\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\xa7\x01\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"Q\x82\xd3\xe4\x93\x02K\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xbe\x01\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"T\x82\xd3\xe4\x93\x02N:\x01*\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xc4\x01\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"g\x82\xd3\xe4\x93\x02\x61\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x92\x02\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xa1\x01\x82\xd3\xe4\x93\x02\x9a\x01ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"E\x82\xd3\xe4\x93\x02?\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xbc\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\'flyteidl/admin/project_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a\'flyteidl/admin/description_entity.proto2\x84N\n\x0c\x41\x64minService\x12m\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/api/v1/tasks\x12\x88\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"E\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x97\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"+\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x12\xae\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"b\x82\xd3\xe4\x93\x02\\Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}\x12}\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/workflows\x12\x94\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"I\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x9f\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"/\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x12\xbe\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"j\x82\xd3\xe4\x93\x02\x64Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}\x12\x86\x01\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/launch_plans\x12\x9b\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"L\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\xa2\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"F\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x12\x9c\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"6\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x12\xa4\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"2\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x12\xc8\x01\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"p\x82\xd3\xe4\x93\x02jZ/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}\x12\xb6\x01\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"O\x82\xd3\xe4\x93\x02I:\x01*\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x81\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/api/v1/executions\x12\x8e\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/executions/relaunch\x12\x8b\x01\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v1/executions/recover\x12\x95\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"=\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xa4\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"@\x82\xd3\xe4\x93\x02::\x01*\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xb9\x01\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"B\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x12\x89\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x12\xad\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"@\x82\xd3\xe4\x93\x02::\x01**5/api/v1/executions/{id.project}/{id.domain}/{id.name}\x12\xd2\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"v\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\xde\x01\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x12\xa5\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb3\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}\x12\xee\x01\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"{\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x12\x7f\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/api/v1/projects\x12q\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\" \x82\xd3\xe4\x93\x02\x1a:\x01*\x1a\x15/api/v1/projects/{id}\x12\x66\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x12\x99\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v1/events/workflows\x12\x89\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/nodes\x12\x89\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/api/v1/events/tasks\x12\x80\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xa3\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\x98\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xb4\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}\x12\x9c\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xa8\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}\x12\xe3\x01\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"U\x82\xd3\xe4\x93\x02O:\x01*\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}\x12\xc1\x01\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"<\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x12\xcd\x01\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"?\x82\xd3\xe4\x93\x02\x39:\x01**4/api/v1/project_domain_attributes/{project}/{domain}\x12\xb6\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\":\x82\xd3\xe4\x93\x02\x34:\x01*\x1a//api/v1/project_attributes/{attributes.project}\x12\x9f\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x12\xab\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"/\x82\xd3\xe4\x93\x02):\x01**$/api/v1/project_attributes/{project}\x12\xe4\x01\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"e\x82\xd3\xe4\x93\x02_:\x01*\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}\x12\xb7\x01\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xc3\x01\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"D\x82\xd3\xe4\x93\x02>:\x01**9/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x12\xa0\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x12\x9f\x01\n\x11ListNamedEntities\x12&.flyteidl.admin.NamedEntityListRequest\x1a\x1f.flyteidl.admin.NamedEntityList\"A\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/named_entities/{resource_type}/{project}/{domain}\x12\xa7\x01\n\x0eGetNamedEntity\x12%.flyteidl.admin.NamedEntityGetRequest\x1a\x1b.flyteidl.admin.NamedEntity\"Q\x82\xd3\xe4\x93\x02K\x12I/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xbe\x01\n\x11UpdateNamedEntity\x12(.flyteidl.admin.NamedEntityUpdateRequest\x1a).flyteidl.admin.NamedEntityUpdateResponse\"T\x82\xd3\xe4\x93\x02N:\x01*\x1aI/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12l\n\nGetVersion\x12!.flyteidl.admin.GetVersionRequest\x1a\".flyteidl.admin.GetVersionResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/version\x12\xc4\x01\n\x14GetDescriptionEntity\x12 .flyteidl.admin.ObjectGetRequest\x1a!.flyteidl.admin.DescriptionEntity\"g\x82\xd3\xe4\x93\x02\x61\x12_/api/v1/description_entities/{id.resource_type}/{id.project}/{id.domain}/{id.name}/{id.version}\x12\x92\x02\n\x17ListDescriptionEntities\x12,.flyteidl.admin.DescriptionEntityListRequest\x1a%.flyteidl.admin.DescriptionEntityList\"\xa1\x01\x82\xd3\xe4\x93\x02\x9a\x01ZG\x12\x45/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}\x12O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}\x12\xc5\x01\n\x13GetExecutionMetrics\x12\x32.flyteidl.admin.WorkflowExecutionGetMetricsRequest\x1a\x33.flyteidl.admin.WorkflowExecutionGetMetricsResponse\"E\x82\xd3\xe4\x93\x02?\x12=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}B\xbc\x01\n\x14\x63om.flyteidl.serviceB\nAdminProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -146,6 +144,6 @@ _ADMINSERVICE.methods_by_name['ListDescriptionEntities']._serialized_options = b'\202\323\344\223\002\232\001ZG\022E/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}\022O/api/v1/description_entities/{resource_type}/{id.project}/{id.domain}/{id.name}' _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._options = None _ADMINSERVICE.methods_by_name['GetExecutionMetrics']._serialized_options = b'\202\323\344\223\002?\022=/api/v1/metrics/executions/{id.project}/{id.domain}/{id.name}' - _globals['_ADMINSERVICE']._serialized_start=670 - _globals['_ADMINSERVICE']._serialized_end=10658 + _globals['_ADMINSERVICE']._serialized_start=609 + _globals['_ADMINSERVICE']._serialized_end=10597 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.pyi index 42eb8c5e2..a9028cea2 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.pyi @@ -14,8 +14,6 @@ from flyteidl.admin import task_execution_pb2 as _task_execution_pb2 from flyteidl.admin import version_pb2 as _version_pb2 from flyteidl.admin import common_pb2 as _common_pb2 from flyteidl.admin import description_entity_pb2 as _description_entity_pb2 -from flyteidl.core import identifier_pb2 as _identifier_pb2 -from flyteidl.core import metrics_pb2 as _metrics_pb2 from google.protobuf import descriptor as _descriptor from typing import ClassVar as _ClassVar diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py index f5753b664..b33ed4d1c 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.py @@ -15,9 +15,10 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from flyteidl.core import identifier_pb2 as flyteidl_dot_core_dot_identifier__pb2 +from flyteidl.core import literals_pb2 as flyteidl_dot_core_dot_literals__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\"\x97\x01\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"\xc6\x01\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"v\n\x1a\x43reateDownloadLinkResponse\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\xfc\x03\n\x10\x44\x61taProxyService\x12\xa0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\")\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa6\x01\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\")\x88\x02\x01\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\x9b\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_linkB\xc0\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n flyteidl/service/dataproxy.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1e\x66lyteidl/core/identifier.proto\x1a\x1c\x66lyteidl/core/literals.proto\"\x97\x01\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"\xc6\x01\n\x1b\x43reateUploadLocationRequest\x12\x18\n\x07project\x18\x01 \x01(\tR\x07project\x12\x16\n\x06\x64omain\x18\x02 \x01(\tR\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12\x1f\n\x0b\x63ontent_md5\x18\x05 \x01(\x0cR\ncontentMd5\"|\n\x1d\x43reateDownloadLocationRequest\x12\x1d\n\nnative_url\x18\x01 \x01(\tR\tnativeUrl\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn:\x02\x18\x01\"~\n\x1e\x43reateDownloadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt:\x02\x18\x01\"\xfa\x01\n\x19\x43reateDownloadLinkRequest\x12\x43\n\rartifact_type\x18\x01 \x01(\x0e\x32\x1e.flyteidl.service.ArtifactTypeR\x0c\x61rtifactType\x12\x38\n\nexpires_in\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12T\n\x11node_execution_id\x18\x03 \x01(\x0b\x32&.flyteidl.core.NodeExecutionIdentifierH\x00R\x0fnodeExecutionIdB\x08\n\x06source\"\xc7\x01\n\x1a\x43reateDownloadLinkResponse\x12!\n\nsigned_url\x18\x01 \x03(\tB\x02\x18\x01R\tsignedUrl\x12=\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01R\texpiresAt\x12G\n\x0fpre_signed_urls\x18\x03 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsR\rpreSignedUrls\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"-\n\x0eGetDataRequest\x12\x1b\n\tflyte_url\x18\x01 \x01(\tR\x08\x66lyteUrl\"\xa2\x01\n\x0fGetDataResponse\x12<\n\x0bliteral_map\x18\x01 \x01(\x0b\x32\x19.flyteidl.core.LiteralMapH\x00R\nliteralMap\x12I\n\x0fpre_signed_urls\x18\x02 \x01(\x0b\x32\x1f.flyteidl.service.PreSignedURLsH\x00R\rpreSignedUrlsB\x06\n\x04\x64\x61ta*C\n\x0c\x41rtifactType\x12\x1b\n\x17\x41RTIFACT_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x41RTIFACT_TYPE_DECK\x10\x01\x32\xe2\x04\n\x10\x44\x61taProxyService\x12\xa0\x01\n\x14\x43reateUploadLocation\x12-.flyteidl.service.CreateUploadLocationRequest\x1a..flyteidl.service.CreateUploadLocationResponse\")\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v1/dataproxy/artifact_urn\x12\xa6\x01\n\x16\x43reateDownloadLocation\x12/.flyteidl.service.CreateDownloadLocationRequest\x1a\x30.flyteidl.service.CreateDownloadLocationResponse\")\x88\x02\x01\x82\xd3\xe4\x93\x02 \x12\x1e/api/v1/dataproxy/artifact_urn\x12\x9b\x01\n\x12\x43reateDownloadLink\x12+.flyteidl.service.CreateDownloadLinkRequest\x1a,.flyteidl.service.CreateDownloadLinkResponse\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/dataproxy/artifact_link\x12\x64\n\x07GetData\x12 .flyteidl.service.GetDataRequest\x1a!.flyteidl.service.GetDataResponse\"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/api/v1/dataB\xc0\x01\n\x14\x63om.flyteidl.serviceB\x0e\x44\x61taproxyProtoP\x01Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service\xa2\x02\x03\x46SX\xaa\x02\x10\x46lyteidl.Service\xca\x02\x10\x46lyteidl\\Service\xe2\x02\x1c\x46lyteidl\\Service\\GPBMetadata\xea\x02\x11\x46lyteidl::Serviceb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -30,26 +31,38 @@ _CREATEDOWNLOADLOCATIONREQUEST._serialized_options = b'\030\001' _CREATEDOWNLOADLOCATIONRESPONSE._options = None _CREATEDOWNLOADLOCATIONRESPONSE._serialized_options = b'\030\001' + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['signed_url']._options = None + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['signed_url']._serialized_options = b'\030\001' + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['expires_at']._options = None + _CREATEDOWNLOADLINKRESPONSE.fields_by_name['expires_at']._serialized_options = b'\030\001' _DATAPROXYSERVICE.methods_by_name['CreateUploadLocation']._options = None _DATAPROXYSERVICE.methods_by_name['CreateUploadLocation']._serialized_options = b'\202\323\344\223\002#:\001*\"\036/api/v1/dataproxy/artifact_urn' _DATAPROXYSERVICE.methods_by_name['CreateDownloadLocation']._options = None _DATAPROXYSERVICE.methods_by_name['CreateDownloadLocation']._serialized_options = b'\210\002\001\202\323\344\223\002 \022\036/api/v1/dataproxy/artifact_urn' _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._options = None _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._serialized_options = b'\202\323\344\223\002$:\001*\"\037/api/v1/dataproxy/artifact_link' - _globals['_ARTIFACTTYPE']._serialized_start=1163 - _globals['_ARTIFACTTYPE']._serialized_end=1230 - _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_start=182 - _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_end=333 - _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=336 - _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=534 - _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=536 - _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=660 - _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=662 - _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=788 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=791 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1041 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1043 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1161 - _globals['_DATAPROXYSERVICE']._serialized_start=1233 - _globals['_DATAPROXYSERVICE']._serialized_end=1741 + _DATAPROXYSERVICE.methods_by_name['GetData']._options = None + _DATAPROXYSERVICE.methods_by_name['GetData']._serialized_options = b'\202\323\344\223\002\016\022\014/api/v1/data' + _globals['_ARTIFACTTYPE']._serialized_start=1594 + _globals['_ARTIFACTTYPE']._serialized_end=1661 + _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_start=212 + _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_end=363 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=366 + _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=564 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_start=566 + _globals['_CREATEDOWNLOADLOCATIONREQUEST']._serialized_end=690 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_start=692 + _globals['_CREATEDOWNLOADLOCATIONRESPONSE']._serialized_end=818 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=821 + _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1071 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1074 + _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=1273 + _globals['_PRESIGNEDURLS']._serialized_start=1275 + _globals['_PRESIGNEDURLS']._serialized_end=1380 + _globals['_GETDATAREQUEST']._serialized_start=1382 + _globals['_GETDATAREQUEST']._serialized_end=1427 + _globals['_GETDATARESPONSE']._serialized_start=1430 + _globals['_GETDATARESPONSE']._serialized_end=1592 + _globals['_DATAPROXYSERVICE']._serialized_start=1664 + _globals['_DATAPROXYSERVICE']._serialized_end=2274 # @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi index de6f20450..869524be0 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2.pyi @@ -2,6 +2,7 @@ from google.api import annotations_pb2 as _annotations_pb2 from google.protobuf import duration_pb2 as _duration_pb2 from google.protobuf import timestamp_pb2 as _timestamp_pb2 from flyteidl.core import identifier_pb2 as _identifier_pb2 +from flyteidl.core import literals_pb2 as _literals_pb2 from google.protobuf.internal import containers as _containers from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor @@ -68,9 +69,33 @@ class CreateDownloadLinkRequest(_message.Message): def __init__(self, artifact_type: _Optional[_Union[ArtifactType, str]] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., node_execution_id: _Optional[_Union[_identifier_pb2.NodeExecutionIdentifier, _Mapping]] = ...) -> None: ... class CreateDownloadLinkResponse(_message.Message): + __slots__ = ["signed_url", "expires_at", "pre_signed_urls"] + SIGNED_URL_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + PRE_SIGNED_URLS_FIELD_NUMBER: _ClassVar[int] + signed_url: _containers.RepeatedScalarFieldContainer[str] + expires_at: _timestamp_pb2.Timestamp + pre_signed_urls: PreSignedURLs + def __init__(self, signed_url: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., pre_signed_urls: _Optional[_Union[PreSignedURLs, _Mapping]] = ...) -> None: ... + +class PreSignedURLs(_message.Message): __slots__ = ["signed_url", "expires_at"] SIGNED_URL_FIELD_NUMBER: _ClassVar[int] EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] signed_url: _containers.RepeatedScalarFieldContainer[str] expires_at: _timestamp_pb2.Timestamp def __init__(self, signed_url: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class GetDataRequest(_message.Message): + __slots__ = ["flyte_url"] + FLYTE_URL_FIELD_NUMBER: _ClassVar[int] + flyte_url: str + def __init__(self, flyte_url: _Optional[str] = ...) -> None: ... + +class GetDataResponse(_message.Message): + __slots__ = ["literal_map", "pre_signed_urls"] + LITERAL_MAP_FIELD_NUMBER: _ClassVar[int] + PRE_SIGNED_URLS_FIELD_NUMBER: _ClassVar[int] + literal_map: _literals_pb2.LiteralMap + pre_signed_urls: PreSignedURLs + def __init__(self, literal_map: _Optional[_Union[_literals_pb2.LiteralMap, _Mapping]] = ..., pre_signed_urls: _Optional[_Union[PreSignedURLs, _Mapping]] = ...) -> None: ... diff --git a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2_grpc.py index a93c62b95..601d1cbf5 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2_grpc.py +++ b/flyteidl/gen/pb_python/flyteidl/service/dataproxy_pb2_grpc.py @@ -30,6 +30,11 @@ def __init__(self, channel): request_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkRequest.SerializeToString, response_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkResponse.FromString, ) + self.GetData = channel.unary_unary( + '/flyteidl.service.DataProxyService/GetData', + request_serializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataRequest.SerializeToString, + response_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataResponse.FromString, + ) class DataProxyServiceServicer(object): @@ -57,6 +62,12 @@ def CreateDownloadLink(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def GetData(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_DataProxyServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -75,6 +86,11 @@ def add_DataProxyServiceServicer_to_server(servicer, server): request_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkRequest.FromString, response_serializer=flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkResponse.SerializeToString, ), + 'GetData': grpc.unary_unary_rpc_method_handler( + servicer.GetData, + request_deserializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataRequest.FromString, + response_serializer=flyteidl_dot_service_dot_dataproxy__pb2.GetDataResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'flyteidl.service.DataProxyService', rpc_method_handlers) @@ -136,3 +152,20 @@ def CreateDownloadLink(request, flyteidl_dot_service_dot_dataproxy__pb2.CreateDownloadLinkResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def GetData(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/flyteidl.service.DataProxyService/GetData', + flyteidl_dot_service_dot_dataproxy__pb2.GetDataRequest.SerializeToString, + flyteidl_dot_service_dot_dataproxy__pb2.GetDataResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md index 2e98e2925..2b51921f6 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -163,6 +163,7 @@ Class | Method | HTTP request | Description - [AdminExecutionUpdateResponse](docs/AdminExecutionUpdateResponse.md) - [AdminFixedRate](docs/AdminFixedRate.md) - [AdminFixedRateUnit](docs/AdminFixedRateUnit.md) + - [AdminFlyteURLs](docs/AdminFlyteURLs.md) - [AdminGetVersionResponse](docs/AdminGetVersionResponse.md) - [AdminLabels](docs/AdminLabels.md) - [AdminLaunchPlan](docs/AdminLaunchPlan.md) diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py index 37e126b53..c2aea7e87 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/__init__.py @@ -54,6 +54,7 @@ from flyteadmin.models.admin_execution_update_response import AdminExecutionUpdateResponse from flyteadmin.models.admin_fixed_rate import AdminFixedRate from flyteadmin.models.admin_fixed_rate_unit import AdminFixedRateUnit +from flyteadmin.models.admin_flyte_ur_ls import AdminFlyteURLs from flyteadmin.models.admin_get_version_response import AdminGetVersionResponse from flyteadmin.models.admin_labels import AdminLabels from flyteadmin.models.admin_launch_plan import AdminLaunchPlan diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py index f1bf924e4..51cc35d0f 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py @@ -47,6 +47,7 @@ from flyteadmin.models.admin_execution_update_response import AdminExecutionUpdateResponse from flyteadmin.models.admin_fixed_rate import AdminFixedRate from flyteadmin.models.admin_fixed_rate_unit import AdminFixedRateUnit +from flyteadmin.models.admin_flyte_ur_ls import AdminFlyteURLs from flyteadmin.models.admin_get_version_response import AdminGetVersionResponse from flyteadmin.models.admin_labels import AdminLabels from flyteadmin.models.admin_launch_plan import AdminLaunchPlan diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_flyte_ur_ls.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_flyte_ur_ls.py new file mode 100644 index 000000000..f99e18dc4 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_flyte_ur_ls.py @@ -0,0 +1,167 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + + +class AdminFlyteURLs(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'inputs': 'str', + 'outputs': 'str', + 'deck': 'str' + } + + attribute_map = { + 'inputs': 'inputs', + 'outputs': 'outputs', + 'deck': 'deck' + } + + def __init__(self, inputs=None, outputs=None, deck=None): # noqa: E501 + """AdminFlyteURLs - a model defined in Swagger""" # noqa: E501 + + self._inputs = None + self._outputs = None + self._deck = None + self.discriminator = None + + if inputs is not None: + self.inputs = inputs + if outputs is not None: + self.outputs = outputs + if deck is not None: + self.deck = deck + + @property + def inputs(self): + """Gets the inputs of this AdminFlyteURLs. # noqa: E501 + + + :return: The inputs of this AdminFlyteURLs. # noqa: E501 + :rtype: str + """ + return self._inputs + + @inputs.setter + def inputs(self, inputs): + """Sets the inputs of this AdminFlyteURLs. + + + :param inputs: The inputs of this AdminFlyteURLs. # noqa: E501 + :type: str + """ + + self._inputs = inputs + + @property + def outputs(self): + """Gets the outputs of this AdminFlyteURLs. # noqa: E501 + + + :return: The outputs of this AdminFlyteURLs. # noqa: E501 + :rtype: str + """ + return self._outputs + + @outputs.setter + def outputs(self, outputs): + """Sets the outputs of this AdminFlyteURLs. + + + :param outputs: The outputs of this AdminFlyteURLs. # noqa: E501 + :type: str + """ + + self._outputs = outputs + + @property + def deck(self): + """Gets the deck of this AdminFlyteURLs. # noqa: E501 + + + :return: The deck of this AdminFlyteURLs. # noqa: E501 + :rtype: str + """ + return self._deck + + @deck.setter + def deck(self, deck): + """Sets the deck of this AdminFlyteURLs. + + + :param deck: The deck of this AdminFlyteURLs. # noqa: E501 + :type: str + """ + + self._deck = deck + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminFlyteURLs, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminFlyteURLs): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_node_execution_get_data_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_node_execution_get_data_response.py index 3f6a52845..846033296 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_node_execution_get_data_response.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_node_execution_get_data_response.py @@ -16,6 +16,7 @@ import six +from flyteadmin.models.admin_flyte_ur_ls import AdminFlyteURLs # noqa: F401,E501 from flyteadmin.models.admin_url_blob import AdminUrlBlob # noqa: F401,E501 from flyteadmin.models.core_literal_map import CoreLiteralMap # noqa: F401,E501 from flyteadmin.models.flyteidladmin_dynamic_workflow_node_metadata import FlyteidladminDynamicWorkflowNodeMetadata # noqa: F401,E501 @@ -39,7 +40,8 @@ class AdminNodeExecutionGetDataResponse(object): 'outputs': 'AdminUrlBlob', 'full_inputs': 'CoreLiteralMap', 'full_outputs': 'CoreLiteralMap', - 'dynamic_workflow': 'FlyteidladminDynamicWorkflowNodeMetadata' + 'dynamic_workflow': 'FlyteidladminDynamicWorkflowNodeMetadata', + 'flyte_urls': 'AdminFlyteURLs' } attribute_map = { @@ -47,10 +49,11 @@ class AdminNodeExecutionGetDataResponse(object): 'outputs': 'outputs', 'full_inputs': 'full_inputs', 'full_outputs': 'full_outputs', - 'dynamic_workflow': 'dynamic_workflow' + 'dynamic_workflow': 'dynamic_workflow', + 'flyte_urls': 'flyte_urls' } - def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=None, dynamic_workflow=None): # noqa: E501 + def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=None, dynamic_workflow=None, flyte_urls=None): # noqa: E501 """AdminNodeExecutionGetDataResponse - a model defined in Swagger""" # noqa: E501 self._inputs = None @@ -58,6 +61,7 @@ def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=Non self._full_inputs = None self._full_outputs = None self._dynamic_workflow = None + self._flyte_urls = None self.discriminator = None if inputs is not None: @@ -70,6 +74,8 @@ def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=Non self.full_outputs = full_outputs if dynamic_workflow is not None: self.dynamic_workflow = dynamic_workflow + if flyte_urls is not None: + self.flyte_urls = flyte_urls @property def inputs(self): @@ -186,6 +192,27 @@ def dynamic_workflow(self, dynamic_workflow): self._dynamic_workflow = dynamic_workflow + @property + def flyte_urls(self): + """Gets the flyte_urls of this AdminNodeExecutionGetDataResponse. # noqa: E501 + + + :return: The flyte_urls of this AdminNodeExecutionGetDataResponse. # noqa: E501 + :rtype: AdminFlyteURLs + """ + return self._flyte_urls + + @flyte_urls.setter + def flyte_urls(self, flyte_urls): + """Sets the flyte_urls of this AdminNodeExecutionGetDataResponse. + + + :param flyte_urls: The flyte_urls of this AdminNodeExecutionGetDataResponse. # noqa: E501 + :type: AdminFlyteURLs + """ + + self._flyte_urls = flyte_urls + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_get_data_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_get_data_response.py index cfb7c545a..fb095426c 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_get_data_response.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_task_execution_get_data_response.py @@ -16,6 +16,7 @@ import six +from flyteadmin.models.admin_flyte_ur_ls import AdminFlyteURLs # noqa: F401,E501 from flyteadmin.models.admin_url_blob import AdminUrlBlob # noqa: F401,E501 from flyteadmin.models.core_literal_map import CoreLiteralMap # noqa: F401,E501 @@ -37,23 +38,26 @@ class AdminTaskExecutionGetDataResponse(object): 'inputs': 'AdminUrlBlob', 'outputs': 'AdminUrlBlob', 'full_inputs': 'CoreLiteralMap', - 'full_outputs': 'CoreLiteralMap' + 'full_outputs': 'CoreLiteralMap', + 'flyte_urls': 'AdminFlyteURLs' } attribute_map = { 'inputs': 'inputs', 'outputs': 'outputs', 'full_inputs': 'full_inputs', - 'full_outputs': 'full_outputs' + 'full_outputs': 'full_outputs', + 'flyte_urls': 'flyte_urls' } - def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=None): # noqa: E501 + def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=None, flyte_urls=None): # noqa: E501 """AdminTaskExecutionGetDataResponse - a model defined in Swagger""" # noqa: E501 self._inputs = None self._outputs = None self._full_inputs = None self._full_outputs = None + self._flyte_urls = None self.discriminator = None if inputs is not None: @@ -64,6 +68,8 @@ def __init__(self, inputs=None, outputs=None, full_inputs=None, full_outputs=Non self.full_inputs = full_inputs if full_outputs is not None: self.full_outputs = full_outputs + if flyte_urls is not None: + self.flyte_urls = flyte_urls @property def inputs(self): @@ -157,6 +163,27 @@ def full_outputs(self, full_outputs): self._full_outputs = full_outputs + @property + def flyte_urls(self): + """Gets the flyte_urls of this AdminTaskExecutionGetDataResponse. # noqa: E501 + + + :return: The flyte_urls of this AdminTaskExecutionGetDataResponse. # noqa: E501 + :rtype: AdminFlyteURLs + """ + return self._flyte_urls + + @flyte_urls.setter + def flyte_urls(self, flyte_urls): + """Sets the flyte_urls of this AdminTaskExecutionGetDataResponse. + + + :param flyte_urls: The flyte_urls of this AdminTaskExecutionGetDataResponse. # noqa: E501 + :type: AdminFlyteURLs + """ + + self._flyte_urls = flyte_urls + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_flyte_ur_ls.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_flyte_ur_ls.py new file mode 100644 index 000000000..581bc3833 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_flyte_ur_ls.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_flyte_ur_ls import AdminFlyteURLs # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminFlyteURLs(unittest.TestCase): + """AdminFlyteURLs unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminFlyteURLs(self): + """Test AdminFlyteURLs""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_flyte_ur_ls.AdminFlyteURLs() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_rust/flyteidl.admin.rs b/flyteidl/gen/pb_rust/flyteidl.admin.rs index e9f44aa7f..41718ba4c 100644 --- a/flyteidl/gen/pb_rust/flyteidl.admin.rs +++ b/flyteidl/gen/pb_rust/flyteidl.admin.rs @@ -367,6 +367,17 @@ pub struct RawOutputDataConfig { #[prost(string, tag="1")] pub output_location_prefix: ::prost::alloc::string::String, } +/// These URLs are returned as part of node and task execution data requests. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FlyteUrLs { + #[prost(string, tag="1")] + pub inputs: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub outputs: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub deck: ::prost::alloc::string::String, +} /// The status of the named entity is used to control its visibility in the UI. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] @@ -1950,6 +1961,8 @@ pub struct NodeExecutionGetDataResponse { /// Optional Workflow closure for a dynamically generated workflow, in the case this node yields a dynamic workflow we return its structure here. #[prost(message, optional, tag="16")] pub dynamic_workflow: ::core::option::Option, + #[prost(message, optional, tag="17")] + pub flyte_urls: ::core::option::Option, } /// Represents the Email object that is sent to a publisher/subscriber /// to forward the notification. @@ -2579,6 +2592,10 @@ pub struct TaskExecutionGetDataResponse { /// Full_outputs will only be populated if they are under a configured size threshold. #[prost(message, optional, tag="4")] pub full_outputs: ::core::option::Option, + /// flyte tiny url to fetch a core.LiteralMap of task execution's IO + /// Deck will be empty for task + #[prost(message, optional, tag="5")] + pub flyte_urls: ::core::option::Option, } /// Response for the GetVersion API #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/flyteidl/gen/pb_rust/flyteidl.service.rs b/flyteidl/gen/pb_rust/flyteidl.service.rs index 949620d07..0fee4ddf5 100644 --- a/flyteidl/gen/pb_rust/flyteidl.service.rs +++ b/flyteidl/gen/pb_rust/flyteidl.service.rs @@ -167,11 +167,57 @@ pub mod create_download_link_request { #[derive(Clone, PartialEq, ::prost::Message)] pub struct CreateDownloadLinkResponse { /// SignedUrl specifies the url to use to download content from (e.g. ) + #[deprecated] #[prost(string, repeated, tag="1")] pub signed_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// ExpiresAt defines when will the signed URL expire. + #[deprecated] #[prost(message, optional, tag="2")] pub expires_at: ::core::option::Option<::prost_types::Timestamp>, + /// New wrapper object containing the signed urls and expiration time + #[prost(message, optional, tag="3")] + pub pre_signed_urls: ::core::option::Option, +} +/// Wrapper object since the message is shared across this and the GetDataResponse +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PreSignedUrLs { + /// SignedUrl specifies the url to use to download content from (e.g. ) + #[prost(string, repeated, tag="1")] + pub signed_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// ExpiresAt defines when will the signed URL expire. + #[prost(message, optional, tag="2")] + pub expires_at: ::core::option::Option<::prost_types::Timestamp>, +} +/// General request artifact to retrieve data from a Flyte artifact url. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetDataRequest { + /// A unique identifier in the form of flyte:// that uniquely, for a given Flyte + /// backend, identifies a Flyte artifact (\[i\]nput, \[o\]utput, flyte \[d\]eck, etc.). + /// e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input) + /// flyte://v1/proj/development/execid/n2/i (for node execution input) + #[prost(string, tag="1")] + pub flyte_url: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetDataResponse { + #[prost(oneof="get_data_response::Data", tags="1, 2")] + pub data: ::core::option::Option, +} +/// Nested message and enum types in `GetDataResponse`. +pub mod get_data_response { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Data { + /// literal map data will be returned + #[prost(message, tag="1")] + LiteralMap(super::super::core::LiteralMap), + /// Flyte deck html will be returned as a signed url users can download + #[prost(message, tag="2")] + PreSignedUrls(super::PreSignedUrLs), + } } /// ArtifactType #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] diff --git a/flyteidl/go.mod b/flyteidl/go.mod index 3e67d32e6..33f85552c 100644 --- a/flyteidl/go.mod +++ b/flyteidl/go.mod @@ -6,6 +6,7 @@ require ( github.com/antihax/optional v1.0.0 github.com/flyteorg/flytestdlib v1.0.0 github.com/go-test/deep v1.0.7 + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/protobuf v1.4.3 github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 @@ -18,6 +19,7 @@ require ( github.com/stretchr/testify v1.7.0 golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f golang.org/x/oauth2 v0.0.0-20210126194326-f9ce19ea3013 + google.golang.org/api v0.38.0 google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506 google.golang.org/grpc v1.35.0 k8s.io/apimachinery v0.20.2 @@ -74,7 +76,6 @@ require ( golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect golang.org/x/tools v0.1.10 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/api v0.38.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.25.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/flyteidl/go.sum b/flyteidl/go.sum index 484761370..b2eab61f1 100644 --- a/flyteidl/go.sum +++ b/flyteidl/go.sum @@ -205,6 +205,7 @@ github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= diff --git a/flyteidl/protos/flyteidl/admin/common.proto b/flyteidl/protos/flyteidl/admin/common.proto index a71648916..1d6b2cd30 100644 --- a/flyteidl/protos/flyteidl/admin/common.proto +++ b/flyteidl/protos/flyteidl/admin/common.proto @@ -301,3 +301,10 @@ message RawOutputDataConfig { // e.g. s3://bucket/key or s3://bucket/ string output_location_prefix = 1; } + +// These URLs are returned as part of node and task execution data requests. +message FlyteURLs { + string inputs = 1; + string outputs = 2; + string deck = 3; +} diff --git a/flyteidl/protos/flyteidl/admin/node_execution.proto b/flyteidl/protos/flyteidl/admin/node_execution.proto index 8132598c8..fe71699a8 100644 --- a/flyteidl/protos/flyteidl/admin/node_execution.proto +++ b/flyteidl/protos/flyteidl/admin/node_execution.proto @@ -227,4 +227,7 @@ message NodeExecutionGetDataResponse { // Optional Workflow closure for a dynamically generated workflow, in the case this node yields a dynamic workflow we return its structure here. DynamicWorkflowNodeMetadata dynamic_workflow = 16; + + FlyteURLs flyte_urls = 17; + } diff --git a/flyteidl/protos/flyteidl/admin/task_execution.proto b/flyteidl/protos/flyteidl/admin/task_execution.proto index 46f01e847..6706a1283 100644 --- a/flyteidl/protos/flyteidl/admin/task_execution.proto +++ b/flyteidl/protos/flyteidl/admin/task_execution.proto @@ -161,4 +161,8 @@ message TaskExecutionGetDataResponse { // Full_outputs will only be populated if they are under a configured size threshold. core.LiteralMap full_outputs = 4; + + // flyte tiny url to fetch a core.LiteralMap of task execution's IO + // Deck will be empty for task + FlyteURLs flyte_urls = 5; } diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index 90fcf4efd..a99a9818b 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -19,8 +19,6 @@ import "flyteidl/admin/task_execution.proto"; import "flyteidl/admin/version.proto"; import "flyteidl/admin/common.proto"; import "flyteidl/admin/description_entity.proto"; -import "flyteidl/core/identifier.proto"; -import "flyteidl/core/metrics.proto"; // import "protoc-gen-swagger/options/annotations.proto"; // The following defines an RPC service that is also served over HTTP via grpc-gateway. diff --git a/flyteidl/protos/flyteidl/service/dataproxy.proto b/flyteidl/protos/flyteidl/service/dataproxy.proto index 3b6bab473..1c9dc27bb 100644 --- a/flyteidl/protos/flyteidl/service/dataproxy.proto +++ b/flyteidl/protos/flyteidl/service/dataproxy.proto @@ -8,6 +8,8 @@ import "google/api/annotations.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "flyteidl/core/identifier.proto"; +import "flyteidl/core/literals.proto"; + message CreateUploadLocationResponse { // SignedUrl specifies the url to use to upload content to (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) @@ -95,6 +97,18 @@ message CreateDownloadLinkRequest { // CreateDownloadLinkResponse defines the response for the generated links message CreateDownloadLinkResponse { + // SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) + repeated string signed_url = 1 [deprecated = true]; + + // ExpiresAt defines when will the signed URL expire. + google.protobuf.Timestamp expires_at = 2 [deprecated = true]; + + // New wrapper object containing the signed urls and expiration time + PreSignedURLs pre_signed_urls = 3; +} + +// Wrapper object since the message is shared across this and the GetDataResponse +message PreSignedURLs { // SignedUrl specifies the url to use to download content from (e.g. https://my-bucket.s3.amazonaws.com/randomstring/suffix.tar?X-...) repeated string signed_url = 1; @@ -102,6 +116,25 @@ message CreateDownloadLinkResponse { google.protobuf.Timestamp expires_at = 2; } +// General request artifact to retrieve data from a Flyte artifact url. +message GetDataRequest { + // A unique identifier in the form of flyte:// that uniquely, for a given Flyte + // backend, identifies a Flyte artifact ([i]nput, [o]utput, flyte [d]eck, etc.). + // e.g. flyte://v1/proj/development/execid/n2/0/i (for 0th task execution attempt input) + // flyte://v1/proj/development/execid/n2/i (for node execution input) + string flyte_url = 1; +} + +message GetDataResponse { + oneof data { + // literal map data will be returned + core.LiteralMap literal_map = 1; + + // Flyte deck html will be returned as a signed url users can download + PreSignedURLs pre_signed_urls = 2; + } +} + // DataProxyService defines an RPC Service that allows access to user-data in a controlled manner. service DataProxyService { // CreateUploadLocation creates a signed url to upload artifacts to for a given project/domain. @@ -136,4 +169,11 @@ service DataProxyService { // description: "Creates a read-only http location that is accessible for tasks at runtime." // }; } + + rpc GetData (GetDataRequest) returns (GetDataResponse) { + // Takes an address like flyte://v1/proj/development/execid/n2/0/i and return the actual data + option (google.api.http) = { + get: "/api/v1/data" + }; + } }