[ 
https://issues.apache.org/jira/browse/BEAM-4276?focusedWorklogId=103201&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-103201
 ]

ASF GitHub Bot logged work on BEAM-4276:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 18/May/18 01:39
            Start Date: 18/May/18 01:39
    Worklog Time Spent: 10m 
      Work Description: jasonkuster closed pull request #5405: [BEAM-4276] 
Update generated Go SDK protobuf files.
URL: https://github.com/apache/beam/pull/5405
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/sdks/go/pkg/beam/core/runtime/harness/session/session.pb.go 
b/sdks/go/pkg/beam/core/runtime/harness/session/session.pb.go
index 80487530a00..f697df8b123 100644
--- a/sdks/go/pkg/beam/core/runtime/harness/session/session.pb.go
+++ b/sdks/go/pkg/beam/core/runtime/harness/session/session.pb.go
@@ -152,9 +152,7 @@ func (m *Entry) String() string            { return 
proto.CompactTextString(m) }
 func (*Entry) ProtoMessage()               {}
 func (*Entry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
 
-type isEntry_Msg interface {
-       isEntry_Msg()
-}
+type isEntry_Msg interface{ isEntry_Msg() }
 
 type Entry_InstReq struct {
        InstReq *org_apache_beam_model_fn_execution_v1.InstructionRequest 
`protobuf:"bytes,1000,opt,name=inst_req,json=instReq,oneof"`
diff --git a/sdks/go/pkg/beam/model/fnexecution_v1/beam_fn_api.pb.go 
b/sdks/go/pkg/beam/model/fnexecution_v1/beam_fn_api.pb.go
index 8e5b5bab25e..e3147f5e031 100644
--- a/sdks/go/pkg/beam/model/fnexecution_v1/beam_fn_api.pb.go
+++ b/sdks/go/pkg/beam/model/fnexecution_v1/beam_fn_api.pb.go
@@ -48,8 +48,8 @@ import fmt "fmt"
 import math "math"
 import org_apache_beam_model_pipeline_v1 
"github.com/apache/beam/sdks/go/pkg/beam/model/pipeline_v1"
 import org_apache_beam_model_pipeline_v11 
"github.com/apache/beam/sdks/go/pkg/beam/model/pipeline_v1"
-import google_protobuf1 "github.com/golang/protobuf/ptypes/timestamp"
-import google_protobuf2 "github.com/golang/protobuf/ptypes/wrappers"
+import google_protobuf2 "github.com/golang/protobuf/ptypes/timestamp"
+import google_protobuf3 "github.com/golang/protobuf/ptypes/wrappers"
 
 import (
        context "golang.org/x/net/context"
@@ -218,9 +218,7 @@ func (m *InstructionRequest) String() string            { 
return proto.CompactTe
 func (*InstructionRequest) ProtoMessage()               {}
 func (*InstructionRequest) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{2} }
 
-type isInstructionRequest_Request interface {
-       isInstructionRequest_Request()
-}
+type isInstructionRequest_Request interface{ isInstructionRequest_Request() }
 
 type InstructionRequest_Register struct {
        Register *RegisterRequest 
`protobuf:"bytes,1000,opt,name=register,oneof"`
@@ -421,9 +419,7 @@ func (m *InstructionResponse) String() string            { 
return proto.CompactT
 func (*InstructionResponse) ProtoMessage()               {}
 func (*InstructionResponse) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{3} }
 
-type isInstructionResponse_Response interface {
-       isInstructionResponse_Response()
-}
+type isInstructionResponse_Response interface{ 
isInstructionResponse_Response() }
 
 type InstructionResponse_Register struct {
        Register *RegisterResponse 
`protobuf:"bytes,1000,opt,name=register,oneof"`
@@ -761,7 +757,7 @@ type BundleSplit_Application struct {
        // represented by invoking this Application and its downstream 
applications.
        // The sum of fraction_of_work between all primary_roots and 
residual_roots
        // must add up to approximately 1.0.
-       FractionOfWork *google_protobuf2.DoubleValue 
`protobuf:"bytes,5,opt,name=fraction_of_work,json=fractionOfWork" 
json:"fraction_of_work,omitempty"`
+       FractionOfWork *google_protobuf3.DoubleValue 
`protobuf:"bytes,5,opt,name=fraction_of_work,json=fractionOfWork" 
json:"fraction_of_work,omitempty"`
 }
 
 func (m *BundleSplit_Application) Reset()                    { *m = 
BundleSplit_Application{} }
@@ -797,7 +793,7 @@ func (m *BundleSplit_Application) GetOutputWatermarks() 
map[string]int64 {
        return nil
 }
 
-func (m *BundleSplit_Application) GetFractionOfWork() 
*google_protobuf2.DoubleValue {
+func (m *BundleSplit_Application) GetFractionOfWork() 
*google_protobuf3.DoubleValue {
        if m != nil {
                return m.FractionOfWork
        }
@@ -1081,9 +1077,7 @@ func (m *Metrics_User) String() string            { 
return proto.CompactTextStri
 func (*Metrics_User) ProtoMessage()               {}
 func (*Metrics_User) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{11, 1} }
 
-type isMetrics_User_Data interface {
-       isMetrics_User_Data()
-}
+type isMetrics_User_Data interface{ isMetrics_User_Data() }
 
 type Metrics_User_CounterData_ struct {
        CounterData *Metrics_User_CounterData 
`protobuf:"bytes,1001,opt,name=counter_data,json=counterData,oneof"`
@@ -1317,7 +1311,7 @@ func (m *Metrics_User_DistributionData) GetMax() int64 {
 // Data associated with a Gauge metric.
 type Metrics_User_GaugeData struct {
        Value     int64                       
`protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
-       Timestamp *google_protobuf1.Timestamp 
`protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
+       Timestamp *google_protobuf2.Timestamp 
`protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
 }
 
 func (m *Metrics_User_GaugeData) Reset()                    { *m = 
Metrics_User_GaugeData{} }
@@ -1332,7 +1326,7 @@ func (m *Metrics_User_GaugeData) GetValue() int64 {
        return 0
 }
 
-func (m *Metrics_User_GaugeData) GetTimestamp() *google_protobuf1.Timestamp {
+func (m *Metrics_User_GaugeData) GetTimestamp() *google_protobuf2.Timestamp {
        if m != nil {
                return m.Timestamp
        }
@@ -1381,7 +1375,7 @@ type ProcessBundleSplitRequest struct {
        // This is a hint and the value is approximate.
        //
        // The value is relative to the current scope of work of the bundle.
-       FractionOfRemainder *google_protobuf2.DoubleValue 
`protobuf:"bytes,2,opt,name=fraction_of_remainder,json=fractionOfRemainder" 
json:"fraction_of_remainder,omitempty"`
+       FractionOfRemainder *google_protobuf3.DoubleValue 
`protobuf:"bytes,2,opt,name=fraction_of_remainder,json=fractionOfRemainder" 
json:"fraction_of_remainder,omitempty"`
 }
 
 func (m *ProcessBundleSplitRequest) Reset()                    { *m = 
ProcessBundleSplitRequest{} }
@@ -1396,7 +1390,7 @@ func (m *ProcessBundleSplitRequest) 
GetInstructionReference() string {
        return ""
 }
 
-func (m *ProcessBundleSplitRequest) GetFractionOfRemainder() 
*google_protobuf2.DoubleValue {
+func (m *ProcessBundleSplitRequest) GetFractionOfRemainder() 
*google_protobuf3.DoubleValue {
        if m != nil {
                return m.FractionOfRemainder
        }
@@ -1506,9 +1500,7 @@ func (m *StateRequest) String() string            { 
return proto.CompactTextStri
 func (*StateRequest) ProtoMessage()               {}
 func (*StateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{16} }
 
-type isStateRequest_Request interface {
-       isStateRequest_Request()
-}
+type isStateRequest_Request interface{ isStateRequest_Request() }
 
 type StateRequest_Get struct {
        Get *StateGetRequest `protobuf:"bytes,1000,opt,name=get,oneof"`
@@ -1692,9 +1684,7 @@ func (m *StateResponse) String() string            { 
return proto.CompactTextStr
 func (*StateResponse) ProtoMessage()               {}
 func (*StateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{17} }
 
-type isStateResponse_Response interface {
-       isStateResponse_Response()
-}
+type isStateResponse_Response interface{ isStateResponse_Response() }
 
 type StateResponse_Get struct {
        Get *StateGetResponse `protobuf:"bytes,1000,opt,name=get,oneof"`
@@ -1867,9 +1857,7 @@ func (m *StateKey) String() string            { return 
proto.CompactTextString(m
 func (*StateKey) ProtoMessage()               {}
 func (*StateKey) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{18} }
 
-type isStateKey_Type interface {
-       isStateKey_Type()
-}
+type isStateKey_Type interface{ isStateKey_Type() }
 
 type StateKey_Runner_ struct {
        Runner *StateKey_Runner `protobuf:"bytes,1,opt,name=runner,oneof"`
@@ -2220,7 +2208,7 @@ type LogEntry struct {
        // (Required) The severity of the log statement.
        Severity LogEntry_Severity_Enum 
`protobuf:"varint,1,opt,name=severity,enum=org.apache.beam.model.fn_execution.v1.LogEntry_Severity_Enum"
 json:"severity,omitempty"`
        // (Required) The time at which this log statement occurred.
-       Timestamp *google_protobuf1.Timestamp 
`protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
+       Timestamp *google_protobuf2.Timestamp 
`protobuf:"bytes,2,opt,name=timestamp" json:"timestamp,omitempty"`
        // (Required) A human readable message.
        Message string `protobuf:"bytes,3,opt,name=message" 
json:"message,omitempty"`
        // (Optional) An optional trace of the functions involved. For example, 
in
@@ -2256,7 +2244,7 @@ func (m *LogEntry) GetSeverity() LogEntry_Severity_Enum {
        return LogEntry_Severity_UNSPECIFIED
 }
 
-func (m *LogEntry) GetTimestamp() *google_protobuf1.Timestamp {
+func (m *LogEntry) GetTimestamp() *google_protobuf2.Timestamp {
        if m != nil {
                return m.Timestamp
        }
diff --git a/sdks/go/pkg/beam/model/fnexecution_v1/beam_provision_api.pb.go 
b/sdks/go/pkg/beam/model/fnexecution_v1/beam_provision_api.pb.go
index 138737856dc..fd7e0bdc655 100644
--- a/sdks/go/pkg/beam/model/fnexecution_v1/beam_provision_api.pb.go
+++ b/sdks/go/pkg/beam/model/fnexecution_v1/beam_provision_api.pb.go
@@ -6,7 +6,7 @@ package fnexecution_v1
 import proto "github.com/golang/protobuf/proto"
 import fmt "fmt"
 import math "math"
-import google_protobuf3 "github.com/golang/protobuf/ptypes/struct"
+import google_protobuf4 "github.com/golang/protobuf/ptypes/struct"
 
 import (
        context "golang.org/x/net/context"
@@ -55,7 +55,7 @@ type ProvisionInfo struct {
        WorkerId string `protobuf:"bytes,5,opt,name=worker_id,json=workerId" 
json:"worker_id,omitempty"`
        // (required) Pipeline options. For non-template jobs, the options are
        // identical to what is passed to job submission.
-       PipelineOptions *google_protobuf3.Struct 
`protobuf:"bytes,3,opt,name=pipeline_options,json=pipelineOptions" 
json:"pipeline_options,omitempty"`
+       PipelineOptions *google_protobuf4.Struct 
`protobuf:"bytes,3,opt,name=pipeline_options,json=pipelineOptions" 
json:"pipeline_options,omitempty"`
        // (optional) Resource limits that the SDK harness worker should 
respect.
        // Runners may -- but are not required to -- enforce any limits 
provided.
        ResourceLimits *Resources 
`protobuf:"bytes,4,opt,name=resource_limits,json=resourceLimits" 
json:"resource_limits,omitempty"`
@@ -87,7 +87,7 @@ func (m *ProvisionInfo) GetWorkerId() string {
        return ""
 }
 
-func (m *ProvisionInfo) GetPipelineOptions() *google_protobuf3.Struct {
+func (m *ProvisionInfo) GetPipelineOptions() *google_protobuf4.Struct {
        if m != nil {
                return m.PipelineOptions
        }
diff --git a/sdks/go/pkg/beam/model/jobmanagement_v1/beam_artifact_api.pb.go 
b/sdks/go/pkg/beam/model/jobmanagement_v1/beam_artifact_api.pb.go
index 3a4940e00fd..677fc29939c 100644
--- a/sdks/go/pkg/beam/model/jobmanagement_v1/beam_artifact_api.pb.go
+++ b/sdks/go/pkg/beam/model/jobmanagement_v1/beam_artifact_api.pb.go
@@ -196,9 +196,7 @@ func (m *PutArtifactRequest) String() string            { 
return proto.CompactTe
 func (*PutArtifactRequest) ProtoMessage()               {}
 func (*PutArtifactRequest) Descriptor() ([]byte, []int) { return 
fileDescriptor1, []int{7} }
 
-type isPutArtifactRequest_Content interface {
-       isPutArtifactRequest_Content()
-}
+type isPutArtifactRequest_Content interface{ isPutArtifactRequest_Content() }
 
 type PutArtifactRequest_Metadata struct {
        Metadata *ArtifactMetadata `protobuf:"bytes,1,opt,name=metadata,oneof"`
diff --git a/sdks/go/pkg/beam/model/jobmanagement_v1/beam_job_api.pb.go 
b/sdks/go/pkg/beam/model/jobmanagement_v1/beam_job_api.pb.go
index 575dbd9df06..bc3a02bb5a4 100644
--- a/sdks/go/pkg/beam/model/jobmanagement_v1/beam_job_api.pb.go
+++ b/sdks/go/pkg/beam/model/jobmanagement_v1/beam_job_api.pb.go
@@ -40,7 +40,7 @@ import fmt "fmt"
 import math "math"
 import org_apache_beam_model_pipeline_v1 
"github.com/apache/beam/sdks/go/pkg/beam/model/pipeline_v1"
 import org_apache_beam_model_pipeline_v11 
"github.com/apache/beam/sdks/go/pkg/beam/model/pipeline_v1"
-import google_protobuf1 "github.com/golang/protobuf/ptypes/struct"
+import google_protobuf2 "github.com/golang/protobuf/ptypes/struct"
 
 import (
        context "golang.org/x/net/context"
@@ -147,7 +147,7 @@ func (JobState_Enum) EnumDescriptor() ([]byte, []int) { 
return fileDescriptor0,
 // Throws error UNKNOWN for all other issues
 type PrepareJobRequest struct {
        Pipeline        *org_apache_beam_model_pipeline_v1.Pipeline 
`protobuf:"bytes,1,opt,name=pipeline" json:"pipeline,omitempty"`
-       PipelineOptions *google_protobuf1.Struct                    
`protobuf:"bytes,2,opt,name=pipeline_options,json=pipelineOptions" 
json:"pipeline_options,omitempty"`
+       PipelineOptions *google_protobuf2.Struct                    
`protobuf:"bytes,2,opt,name=pipeline_options,json=pipelineOptions" 
json:"pipeline_options,omitempty"`
        JobName         string                                      
`protobuf:"bytes,3,opt,name=job_name,json=jobName" json:"job_name,omitempty"`
 }
 
@@ -163,7 +163,7 @@ func (m *PrepareJobRequest) GetPipeline() 
*org_apache_beam_model_pipeline_v1.Pip
        return nil
 }
 
-func (m *PrepareJobRequest) GetPipelineOptions() *google_protobuf1.Struct {
+func (m *PrepareJobRequest) GetPipelineOptions() *google_protobuf2.Struct {
        if m != nil {
                return m.PipelineOptions
        }
@@ -396,9 +396,7 @@ func (m *JobMessagesResponse) String() string            { 
return proto.CompactT
 func (*JobMessagesResponse) ProtoMessage()               {}
 func (*JobMessagesResponse) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{10} }
 
-type isJobMessagesResponse_Response interface {
-       isJobMessagesResponse_Response()
-}
+type isJobMessagesResponse_Response interface{ 
isJobMessagesResponse_Response() }
 
 type JobMessagesResponse_MessageResponse struct {
        MessageResponse *JobMessage 
`protobuf:"bytes,1,opt,name=message_response,json=messageResponse,oneof"`
diff --git a/sdks/go/pkg/beam/model/pipeline_v1/beam_runner_api.pb.go 
b/sdks/go/pkg/beam/model/pipeline_v1/beam_runner_api.pb.go
index 997cf9d45e1..580aa61f92b 100644
--- a/sdks/go/pkg/beam/model/pipeline_v1/beam_runner_api.pb.go
+++ b/sdks/go/pkg/beam/model/pipeline_v1/beam_runner_api.pb.go
@@ -14,6 +14,8 @@ It has these top-level messages:
        MessageWithComponents
        Pipeline
        PTransform
+       StandardPTransforms
+       StandardSideInputTypes
        PCollection
        ExecutableStagePayload
        ParDoPayload
@@ -32,6 +34,7 @@ It has these top-level messages:
        TestStreamPayload
        WriteFilesPayload
        Coder
+       StandardCoders
        WindowingStrategy
        MergeStatus
        AccumulationMode
@@ -48,6 +51,7 @@ It has these top-level messages:
        DisplayData
        ApiServiceDescriptor
        OAuth2ClientCredentialsGrant
+       GlobalWindowsPayload
        FixedWindowsPayload
        SlidingWindowsPayload
        SessionsPayload
@@ -58,6 +62,7 @@ import proto "github.com/golang/protobuf/proto"
 import fmt "fmt"
 import math "math"
 import google_protobuf "github.com/golang/protobuf/ptypes/any"
+import google_protobuf1 "github.com/golang/protobuf/protoc-gen-go/descriptor"
 
 // Reference imports to suppress errors if they are not otherwise used.
 var _ = proto.Marshal
@@ -70,6 +75,208 @@ var _ = math.Inf
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 
+type StandardPTransforms_Primitives int32
+
+const (
+       // Represents Beam's parallel do operation.
+       // Payload: ParDoPayload.
+       // TODO(BEAM-3595): Change this to beam:transform:pardo:v1.
+       StandardPTransforms_PAR_DO StandardPTransforms_Primitives = 0
+       // Represents Beam's flatten operation.
+       // Payload: None.
+       StandardPTransforms_FLATTEN StandardPTransforms_Primitives = 1
+       // Represents Beam's group-by-key operation.
+       // Payload: None
+       StandardPTransforms_GROUP_BY_KEY StandardPTransforms_Primitives = 2
+       // Represents the operation generating a single empty element.
+       StandardPTransforms_IMPULSE StandardPTransforms_Primitives = 3
+       // Represents the Window.into() operation.
+       // Payload: WindowIntoPayload.
+       StandardPTransforms_ASSIGN_WINDOWS StandardPTransforms_Primitives = 4
+       // Represents the TestStream.
+       // Payload: TestStreamPayload
+       StandardPTransforms_TEST_STREAM StandardPTransforms_Primitives = 5
+       // Represents mapping of main input window into side input window.
+       // Payload: serialized WindowMappingFn.
+       StandardPTransforms_MAP_WINDOWS StandardPTransforms_Primitives = 6
+)
+
+var StandardPTransforms_Primitives_name = map[int32]string{
+       0: "PAR_DO",
+       1: "FLATTEN",
+       2: "GROUP_BY_KEY",
+       3: "IMPULSE",
+       4: "ASSIGN_WINDOWS",
+       5: "TEST_STREAM",
+       6: "MAP_WINDOWS",
+}
+var StandardPTransforms_Primitives_value = map[string]int32{
+       "PAR_DO":         0,
+       "FLATTEN":        1,
+       "GROUP_BY_KEY":   2,
+       "IMPULSE":        3,
+       "ASSIGN_WINDOWS": 4,
+       "TEST_STREAM":    5,
+       "MAP_WINDOWS":    6,
+}
+
+func (x StandardPTransforms_Primitives) String() string {
+       return proto.EnumName(StandardPTransforms_Primitives_name, int32(x))
+}
+func (StandardPTransforms_Primitives) EnumDescriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{4, 0}
+}
+
+type StandardPTransforms_DeprecatedPrimitives int32
+
+const (
+       // Represents the operation to read a Bounded or Unbounded source.
+       // Payload: ReadPayload.
+       StandardPTransforms_READ StandardPTransforms_DeprecatedPrimitives = 0
+       // Runners should move away from translating `CreatePCollectionView` 
and treat this as
+       // part of the translation for a `ParDo` side input.
+       StandardPTransforms_CREATE_VIEW 
StandardPTransforms_DeprecatedPrimitives = 1
+)
+
+var StandardPTransforms_DeprecatedPrimitives_name = map[int32]string{
+       0: "READ",
+       1: "CREATE_VIEW",
+}
+var StandardPTransforms_DeprecatedPrimitives_value = map[string]int32{
+       "READ":        0,
+       "CREATE_VIEW": 1,
+}
+
+func (x StandardPTransforms_DeprecatedPrimitives) String() string {
+       return proto.EnumName(StandardPTransforms_DeprecatedPrimitives_name, 
int32(x))
+}
+func (StandardPTransforms_DeprecatedPrimitives) EnumDescriptor() ([]byte, 
[]int) {
+       return fileDescriptor0, []int{4, 1}
+}
+
+type StandardPTransforms_Composites int32
+
+const (
+       // Represents the Combine.perKey() operation.
+       // If this is produced by an SDK, it is assumed that the SDK understands
+       // each of CombineComponents.
+       // Payload: CombinePayload
+       StandardPTransforms_COMBINE_PER_KEY StandardPTransforms_Composites = 0
+       // Represents the Combine.globally() operation.
+       // If this is produced by an SDK, it is assumed that the SDK understands
+       // each of CombineComponents.
+       // Payload: CombinePayload
+       StandardPTransforms_COMBINE_GLOBALLY StandardPTransforms_Composites = 1
+       // Represents the Combine.groupedValues() operation.
+       // If this is produced by an SDK, it is assumed that the SDK understands
+       // each of CombineComponents.
+       // Payload: CombinePayload
+       StandardPTransforms_COMBINE_GROUPED_VALUES 
StandardPTransforms_Composites = 2
+       // Represents the Reshuffle operation.
+       StandardPTransforms_RESHUFFLE StandardPTransforms_Composites = 3
+       // Less well-known. Payload: WriteFilesPayload.
+       StandardPTransforms_WRITE_FILES StandardPTransforms_Composites = 4
+)
+
+var StandardPTransforms_Composites_name = map[int32]string{
+       0: "COMBINE_PER_KEY",
+       1: "COMBINE_GLOBALLY",
+       2: "COMBINE_GROUPED_VALUES",
+       3: "RESHUFFLE",
+       4: "WRITE_FILES",
+}
+var StandardPTransforms_Composites_value = map[string]int32{
+       "COMBINE_PER_KEY":        0,
+       "COMBINE_GLOBALLY":       1,
+       "COMBINE_GROUPED_VALUES": 2,
+       "RESHUFFLE":              3,
+       "WRITE_FILES":            4,
+}
+
+func (x StandardPTransforms_Composites) String() string {
+       return proto.EnumName(StandardPTransforms_Composites_name, int32(x))
+}
+func (StandardPTransforms_Composites) EnumDescriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{4, 2}
+}
+
+// Payload for all of these: CombinePayload
+type StandardPTransforms_CombineComponents int32
+
+const (
+       StandardPTransforms_COMBINE_PGBKCV             
StandardPTransforms_CombineComponents = 0
+       StandardPTransforms_COMBINE_MERGE_ACCUMULATORS 
StandardPTransforms_CombineComponents = 1
+       StandardPTransforms_COMBINE_EXTRACT_OUTPUTS    
StandardPTransforms_CombineComponents = 2
+)
+
+var StandardPTransforms_CombineComponents_name = map[int32]string{
+       0: "COMBINE_PGBKCV",
+       1: "COMBINE_MERGE_ACCUMULATORS",
+       2: "COMBINE_EXTRACT_OUTPUTS",
+}
+var StandardPTransforms_CombineComponents_value = map[string]int32{
+       "COMBINE_PGBKCV":             0,
+       "COMBINE_MERGE_ACCUMULATORS": 1,
+       "COMBINE_EXTRACT_OUTPUTS":    2,
+}
+
+func (x StandardPTransforms_CombineComponents) String() string {
+       return proto.EnumName(StandardPTransforms_CombineComponents_name, 
int32(x))
+}
+func (StandardPTransforms_CombineComponents) EnumDescriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{4, 3}
+}
+
+// Payload for all of these: ParDoPayload containing the user's SDF
+type StandardPTransforms_SplittableParDoComponents int32
+
+const (
+       StandardPTransforms_PAIR_WITH_RESTRICTION  
StandardPTransforms_SplittableParDoComponents = 0
+       StandardPTransforms_SPLIT_RESTRICTION      
StandardPTransforms_SplittableParDoComponents = 1
+       StandardPTransforms_PROCESS_KEYED_ELEMENTS 
StandardPTransforms_SplittableParDoComponents = 2
+)
+
+var StandardPTransforms_SplittableParDoComponents_name = map[int32]string{
+       0: "PAIR_WITH_RESTRICTION",
+       1: "SPLIT_RESTRICTION",
+       2: "PROCESS_KEYED_ELEMENTS",
+}
+var StandardPTransforms_SplittableParDoComponents_value = map[string]int32{
+       "PAIR_WITH_RESTRICTION":  0,
+       "SPLIT_RESTRICTION":      1,
+       "PROCESS_KEYED_ELEMENTS": 2,
+}
+
+func (x StandardPTransforms_SplittableParDoComponents) String() string {
+       return 
proto.EnumName(StandardPTransforms_SplittableParDoComponents_name, int32(x))
+}
+func (StandardPTransforms_SplittableParDoComponents) EnumDescriptor() ([]byte, 
[]int) {
+       return fileDescriptor0, []int{4, 4}
+}
+
+type StandardSideInputTypes_Enum int32
+
+const (
+       StandardSideInputTypes_ITERABLE StandardSideInputTypes_Enum = 0
+       StandardSideInputTypes_MULTIMAP StandardSideInputTypes_Enum = 1
+)
+
+var StandardSideInputTypes_Enum_name = map[int32]string{
+       0: "ITERABLE",
+       1: "MULTIMAP",
+}
+var StandardSideInputTypes_Enum_value = map[string]int32{
+       "ITERABLE": 0,
+       "MULTIMAP": 1,
+}
+
+func (x StandardSideInputTypes_Enum) String() string {
+       return proto.EnumName(StandardSideInputTypes_Enum_name, int32(x))
+}
+func (StandardSideInputTypes_Enum) EnumDescriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{5, 0}
+}
+
 type Parameter_Type_Enum int32
 
 const (
@@ -95,7 +302,7 @@ var Parameter_Type_Enum_value = map[string]int32{
 func (x Parameter_Type_Enum) String() string {
        return proto.EnumName(Parameter_Type_Enum_name, int32(x))
 }
-func (Parameter_Type_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{7, 0, 0} }
+func (Parameter_Type_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{9, 0, 0} }
 
 type IsBounded_Enum int32
 
@@ -119,7 +326,61 @@ var IsBounded_Enum_value = map[string]int32{
 func (x IsBounded_Enum) String() string {
        return proto.EnumName(IsBounded_Enum_name, int32(x))
 }
-func (IsBounded_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{15, 0} }
+func (IsBounded_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{17, 0} }
+
+type StandardCoders_Enum int32
+
+const (
+       // Components: None
+       StandardCoders_BYTES StandardCoders_Enum = 0
+       // Components: The key and value coder, in that order.
+       StandardCoders_KV StandardCoders_Enum = 1
+       // Components: None
+       StandardCoders_VARINT StandardCoders_Enum = 2
+       // Encodes an iterable of elements.
+       // Components: Coder for a single element.
+       StandardCoders_ITERABLE StandardCoders_Enum = 3
+       // Components: None
+       StandardCoders_TIMESTAMP StandardCoders_Enum = 4
+       // Components: None
+       StandardCoders_INTERVAL_WINDOW StandardCoders_Enum = 5
+       // Components: The coder to attach a length prefix to
+       StandardCoders_LENGTH_PREFIX StandardCoders_Enum = 6
+       // Components: None
+       StandardCoders_GLOBAL_WINDOW StandardCoders_Enum = 7
+       // Encodes an element, the window the value is in, the timestamp of the 
element, and the pane
+       // of the element
+       // Components: The element coder and the window coder, in that order
+       StandardCoders_WINDOWED_VALUE StandardCoders_Enum = 8
+)
+
+var StandardCoders_Enum_name = map[int32]string{
+       0: "BYTES",
+       1: "KV",
+       2: "VARINT",
+       3: "ITERABLE",
+       4: "TIMESTAMP",
+       5: "INTERVAL_WINDOW",
+       6: "LENGTH_PREFIX",
+       7: "GLOBAL_WINDOW",
+       8: "WINDOWED_VALUE",
+}
+var StandardCoders_Enum_value = map[string]int32{
+       "BYTES":           0,
+       "KV":              1,
+       "VARINT":          2,
+       "ITERABLE":        3,
+       "TIMESTAMP":       4,
+       "INTERVAL_WINDOW": 5,
+       "LENGTH_PREFIX":   6,
+       "GLOBAL_WINDOW":   7,
+       "WINDOWED_VALUE":  8,
+}
+
+func (x StandardCoders_Enum) String() string {
+       return proto.EnumName(StandardCoders_Enum_name, int32(x))
+}
+func (StandardCoders_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{24, 0} }
 
 type MergeStatus_Enum int32
 
@@ -154,7 +415,7 @@ var MergeStatus_Enum_value = map[string]int32{
 func (x MergeStatus_Enum) String() string {
        return proto.EnumName(MergeStatus_Enum_name, int32(x))
 }
-func (MergeStatus_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{23, 0} }
+func (MergeStatus_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{26, 0} }
 
 type AccumulationMode_Enum int32
 
@@ -180,7 +441,7 @@ var AccumulationMode_Enum_value = map[string]int32{
 func (x AccumulationMode_Enum) String() string {
        return proto.EnumName(AccumulationMode_Enum_name, int32(x))
 }
-func (AccumulationMode_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{24, 0} }
+func (AccumulationMode_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{27, 0} }
 
 type ClosingBehavior_Enum int32
 
@@ -207,7 +468,7 @@ var ClosingBehavior_Enum_value = map[string]int32{
 func (x ClosingBehavior_Enum) String() string {
        return proto.EnumName(ClosingBehavior_Enum_name, int32(x))
 }
-func (ClosingBehavior_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{25, 0} }
+func (ClosingBehavior_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{28, 0} }
 
 type OnTimeBehavior_Enum int32
 
@@ -234,7 +495,7 @@ var OnTimeBehavior_Enum_value = map[string]int32{
 func (x OnTimeBehavior_Enum) String() string {
        return proto.EnumName(OnTimeBehavior_Enum_name, int32(x))
 }
-func (OnTimeBehavior_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{26, 0} }
+func (OnTimeBehavior_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 0} }
 
 type OutputTime_Enum int32
 
@@ -266,7 +527,7 @@ var OutputTime_Enum_value = map[string]int32{
 func (x OutputTime_Enum) String() string {
        return proto.EnumName(OutputTime_Enum_name, int32(x))
 }
-func (OutputTime_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{27, 0} }
+func (OutputTime_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{30, 0} }
 
 type TimeDomain_Enum int32
 
@@ -301,7 +562,7 @@ var TimeDomain_Enum_value = map[string]int32{
 func (x TimeDomain_Enum) String() string {
        return proto.EnumName(TimeDomain_Enum_name, int32(x))
 }
-func (TimeDomain_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{28, 0} }
+func (TimeDomain_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{31, 0} }
 
 type DisplayData_Type_Enum int32
 
@@ -340,7 +601,7 @@ var DisplayData_Type_Enum_value = map[string]int32{
 func (x DisplayData_Type_Enum) String() string {
        return proto.EnumName(DisplayData_Type_Enum_name, int32(x))
 }
-func (DisplayData_Type_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{35, 2, 0} }
+func (DisplayData_Type_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor0, []int{38, 2, 0} }
 
 // A set of mappings from id to message. This is included as an optional field
 // on any proto message that may contain references needing resolution.
@@ -429,9 +690,7 @@ func (m *MessageWithComponents) String() string            
{ return proto.Compac
 func (*MessageWithComponents) ProtoMessage()               {}
 func (*MessageWithComponents) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{1} }
 
-type isMessageWithComponents_Root interface {
-       isMessageWithComponents_Root()
-}
+type isMessageWithComponents_Root interface{ isMessageWithComponents_Root() }
 
 type MessageWithComponents_Coder struct {
        Coder *Coder `protobuf:"bytes,2,opt,name=coder,oneof"`
@@ -976,6 +1235,22 @@ func (m *PTransform) GetDisplayData() *DisplayData {
        return nil
 }
 
+type StandardPTransforms struct {
+}
+
+func (m *StandardPTransforms) Reset()                    { *m = 
StandardPTransforms{} }
+func (m *StandardPTransforms) String() string            { return 
proto.CompactTextString(m) }
+func (*StandardPTransforms) ProtoMessage()               {}
+func (*StandardPTransforms) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{4} }
+
+type StandardSideInputTypes struct {
+}
+
+func (m *StandardSideInputTypes) Reset()                    { *m = 
StandardSideInputTypes{} }
+func (m *StandardSideInputTypes) String() string            { return 
proto.CompactTextString(m) }
+func (*StandardSideInputTypes) ProtoMessage()               {}
+func (*StandardSideInputTypes) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{5} }
+
 // A PCollection!
 type PCollection struct {
        // (Required) A unique name for the PCollection.
@@ -1002,7 +1277,7 @@ type PCollection struct {
 func (m *PCollection) Reset()                    { *m = PCollection{} }
 func (m *PCollection) String() string            { return 
proto.CompactTextString(m) }
 func (*PCollection) ProtoMessage()               {}
-func (*PCollection) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{4} }
+func (*PCollection) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{6} }
 
 func (m *PCollection) GetUniqueName() string {
        if m != nil {
@@ -1042,23 +1317,32 @@ func (m *PCollection) GetDisplayData() *DisplayData {
 // The payload for an executable stage. This will eventually be passed to an 
SDK in the form of a
 // ProcessBundleDescriptor.
 type ExecutableStagePayload struct {
-       // Environment in which this stage executes. We use an environment 
rather than environment id
+       // (Required) Environment in which this stage executes.
+       //
+       // We use an environment rather than environment id
        // because ExecutableStages use environments directly. This may change 
in the future.
        Environment *Environment `protobuf:"bytes,1,opt,name=environment" 
json:"environment,omitempty"`
-       // Input PCollection id.
+       // (Required) Input PCollection id. This must be present as a value in 
the inputs of any
+       // PTransform the ExecutableStagePayload is the payload of.
        Input string `protobuf:"bytes,2,opt,name=input" json:"input,omitempty"`
-       // Side Input PCollection ids.
-       SideInputs []string 
`protobuf:"bytes,3,rep,name=side_inputs,json=sideInputs" 
json:"side_inputs,omitempty"`
-       // PTransform ids contained within this executable stage.
+       // The side inputs required for this executable stage. Each Side Input 
of each PTransform within
+       // this ExecutableStagePayload must be represented within this field.
+       SideInputs []*ExecutableStagePayload_SideInputId 
`protobuf:"bytes,3,rep,name=side_inputs,json=sideInputs" 
json:"side_inputs,omitempty"`
+       // PTransform ids contained within this executable stage. This must 
contain at least one
+       // PTransform id.
        Transforms []string `protobuf:"bytes,4,rep,name=transforms" 
json:"transforms,omitempty"`
-       // Output PCollection ids.
+       // Output PCollection ids. This must be equal to the values of the 
outputs of any
+       // PTransform the ExecutableStagePayload is the payload of.
        Outputs []string `protobuf:"bytes,5,rep,name=outputs" 
json:"outputs,omitempty"`
+       // (Required) The components for the Executable Stage. This must 
contain all of the Transforms
+       // in transforms, and the closure of all of the components they 
recognize.
+       Components *Components `protobuf:"bytes,6,opt,name=components" 
json:"components,omitempty"`
 }
 
 func (m *ExecutableStagePayload) Reset()                    { *m = 
ExecutableStagePayload{} }
 func (m *ExecutableStagePayload) String() string            { return 
proto.CompactTextString(m) }
 func (*ExecutableStagePayload) ProtoMessage()               {}
-func (*ExecutableStagePayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{5} }
+func (*ExecutableStagePayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{7} }
 
 func (m *ExecutableStagePayload) GetEnvironment() *Environment {
        if m != nil {
@@ -1074,7 +1358,7 @@ func (m *ExecutableStagePayload) GetInput() string {
        return ""
 }
 
-func (m *ExecutableStagePayload) GetSideInputs() []string {
+func (m *ExecutableStagePayload) GetSideInputs() 
[]*ExecutableStagePayload_SideInputId {
        if m != nil {
                return m.SideInputs
        }
@@ -1095,6 +1379,43 @@ func (m *ExecutableStagePayload) GetOutputs() []string {
        return nil
 }
 
+func (m *ExecutableStagePayload) GetComponents() *Components {
+       if m != nil {
+               return m.Components
+       }
+       return nil
+}
+
+// A reference to a side input. Side inputs are uniquely identified by 
PTransform id and
+// local name.
+type ExecutableStagePayload_SideInputId struct {
+       // (Required) The id of the PTransform that references this side input.
+       TransformId string 
`protobuf:"bytes,1,opt,name=transform_id,json=transformId" 
json:"transform_id,omitempty"`
+       // (Required) The local name of this side input from the PTransform 
that references it.
+       LocalName string `protobuf:"bytes,2,opt,name=local_name,json=localName" 
json:"local_name,omitempty"`
+}
+
+func (m *ExecutableStagePayload_SideInputId) Reset()         { *m = 
ExecutableStagePayload_SideInputId{} }
+func (m *ExecutableStagePayload_SideInputId) String() string { return 
proto.CompactTextString(m) }
+func (*ExecutableStagePayload_SideInputId) ProtoMessage()    {}
+func (*ExecutableStagePayload_SideInputId) Descriptor() ([]byte, []int) {
+       return fileDescriptor0, []int{7, 0}
+}
+
+func (m *ExecutableStagePayload_SideInputId) GetTransformId() string {
+       if m != nil {
+               return m.TransformId
+       }
+       return ""
+}
+
+func (m *ExecutableStagePayload_SideInputId) GetLocalName() string {
+       if m != nil {
+               return m.LocalName
+       }
+       return ""
+}
+
 // The payload for the primitive ParDo transform.
 type ParDoPayload struct {
        // (Required) The SdkFunctionSpec of the DoFn.
@@ -1112,12 +1433,14 @@ type ParDoPayload struct {
        TimerSpecs map[string]*TimerSpec 
`protobuf:"bytes,5,rep,name=timer_specs,json=timerSpecs" 
json:"timer_specs,omitempty" protobuf_key:"bytes,1,opt,name=key" 
protobuf_val:"bytes,2,opt,name=value"`
        // Whether the DoFn is splittable
        Splittable bool `protobuf:"varint,6,opt,name=splittable" 
json:"splittable,omitempty"`
+       // (Required if splittable == true) Id of the restriction coder.
+       RestrictionCoderId string 
`protobuf:"bytes,7,opt,name=restriction_coder_id,json=restrictionCoderId" 
json:"restriction_coder_id,omitempty"`
 }
 
 func (m *ParDoPayload) Reset()                    { *m = ParDoPayload{} }
 func (m *ParDoPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*ParDoPayload) ProtoMessage()               {}
-func (*ParDoPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{6} }
+func (*ParDoPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{8} }
 
 func (m *ParDoPayload) GetDoFn() *SdkFunctionSpec {
        if m != nil {
@@ -1161,6 +1484,13 @@ func (m *ParDoPayload) GetSplittable() bool {
        return false
 }
 
+func (m *ParDoPayload) GetRestrictionCoderId() string {
+       if m != nil {
+               return m.RestrictionCoderId
+       }
+       return ""
+}
+
 // Parameters that a UDF might require.
 //
 // The details of how a runner sends these parameters to the SDK harness
@@ -1182,7 +1512,7 @@ type Parameter struct {
 func (m *Parameter) Reset()                    { *m = Parameter{} }
 func (m *Parameter) String() string            { return 
proto.CompactTextString(m) }
 func (*Parameter) ProtoMessage()               {}
-func (*Parameter) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{7} }
+func (*Parameter) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{9} }
 
 func (m *Parameter) GetType() Parameter_Type_Enum {
        if m != nil {
@@ -1197,7 +1527,7 @@ type Parameter_Type struct {
 func (m *Parameter_Type) Reset()                    { *m = Parameter_Type{} }
 func (m *Parameter_Type) String() string            { return 
proto.CompactTextString(m) }
 func (*Parameter_Type) ProtoMessage()               {}
-func (*Parameter_Type) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{7, 0} }
+func (*Parameter_Type) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{9, 0} }
 
 type StateSpec struct {
        // Types that are valid to be assigned to Spec:
@@ -1212,11 +1542,9 @@ type StateSpec struct {
 func (m *StateSpec) Reset()                    { *m = StateSpec{} }
 func (m *StateSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*StateSpec) ProtoMessage()               {}
-func (*StateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{8} }
+func (*StateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{10} }
 
-type isStateSpec_Spec interface {
-       isStateSpec_Spec()
-}
+type isStateSpec_Spec interface{ isStateSpec_Spec() }
 
 type StateSpec_ValueSpec struct {
        ValueSpec *ValueStateSpec 
`protobuf:"bytes,1,opt,name=value_spec,json=valueSpec,oneof"`
@@ -1420,7 +1748,7 @@ type ValueStateSpec struct {
 func (m *ValueStateSpec) Reset()                    { *m = ValueStateSpec{} }
 func (m *ValueStateSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*ValueStateSpec) ProtoMessage()               {}
-func (*ValueStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{9} }
+func (*ValueStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{11} }
 
 func (m *ValueStateSpec) GetCoderId() string {
        if m != nil {
@@ -1436,7 +1764,7 @@ type BagStateSpec struct {
 func (m *BagStateSpec) Reset()                    { *m = BagStateSpec{} }
 func (m *BagStateSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*BagStateSpec) ProtoMessage()               {}
-func (*BagStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{10} }
+func (*BagStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{12} }
 
 func (m *BagStateSpec) GetElementCoderId() string {
        if m != nil {
@@ -1453,7 +1781,7 @@ type CombiningStateSpec struct {
 func (m *CombiningStateSpec) Reset()                    { *m = 
CombiningStateSpec{} }
 func (m *CombiningStateSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*CombiningStateSpec) ProtoMessage()               {}
-func (*CombiningStateSpec) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{11} }
+func (*CombiningStateSpec) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{13} }
 
 func (m *CombiningStateSpec) GetAccumulatorCoderId() string {
        if m != nil {
@@ -1477,7 +1805,7 @@ type MapStateSpec struct {
 func (m *MapStateSpec) Reset()                    { *m = MapStateSpec{} }
 func (m *MapStateSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*MapStateSpec) ProtoMessage()               {}
-func (*MapStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{12} }
+func (*MapStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{14} }
 
 func (m *MapStateSpec) GetKeyCoderId() string {
        if m != nil {
@@ -1500,7 +1828,7 @@ type SetStateSpec struct {
 func (m *SetStateSpec) Reset()                    { *m = SetStateSpec{} }
 func (m *SetStateSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*SetStateSpec) ProtoMessage()               {}
-func (*SetStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{13} }
+func (*SetStateSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{15} }
 
 func (m *SetStateSpec) GetElementCoderId() string {
        if m != nil {
@@ -1516,7 +1844,7 @@ type TimerSpec struct {
 func (m *TimerSpec) Reset()                    { *m = TimerSpec{} }
 func (m *TimerSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*TimerSpec) ProtoMessage()               {}
-func (*TimerSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{14} }
+func (*TimerSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{16} }
 
 func (m *TimerSpec) GetTimeDomain() TimeDomain_Enum {
        if m != nil {
@@ -1531,7 +1859,7 @@ type IsBounded struct {
 func (m *IsBounded) Reset()                    { *m = IsBounded{} }
 func (m *IsBounded) String() string            { return 
proto.CompactTextString(m) }
 func (*IsBounded) ProtoMessage()               {}
-func (*IsBounded) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{15} }
+func (*IsBounded) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{17} }
 
 // The payload for the primitive Read transform.
 type ReadPayload struct {
@@ -1544,7 +1872,7 @@ type ReadPayload struct {
 func (m *ReadPayload) Reset()                    { *m = ReadPayload{} }
 func (m *ReadPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*ReadPayload) ProtoMessage()               {}
-func (*ReadPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{16} }
+func (*ReadPayload) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{18} }
 
 func (m *ReadPayload) GetSource() *SdkFunctionSpec {
        if m != nil {
@@ -1569,7 +1897,7 @@ type WindowIntoPayload struct {
 func (m *WindowIntoPayload) Reset()                    { *m = 
WindowIntoPayload{} }
 func (m *WindowIntoPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*WindowIntoPayload) ProtoMessage()               {}
-func (*WindowIntoPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{17} }
+func (*WindowIntoPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{19} }
 
 func (m *WindowIntoPayload) GetWindowFn() *SdkFunctionSpec {
        if m != nil {
@@ -1584,19 +1912,12 @@ type CombinePayload struct {
        CombineFn *SdkFunctionSpec 
`protobuf:"bytes,1,opt,name=combine_fn,json=combineFn" 
json:"combine_fn,omitempty"`
        // (Required) A reference to the Coder to use for accumulators of the 
CombineFn
        AccumulatorCoderId string 
`protobuf:"bytes,2,opt,name=accumulator_coder_id,json=accumulatorCoderId" 
json:"accumulator_coder_id,omitempty"`
-       // (Required) Additional pieces of context the DoFn may require that
-       // are not otherwise represented in the payload.
-       // (may force runners to execute the ParDo differently)
-       Parameters []*Parameter `protobuf:"bytes,3,rep,name=parameters" 
json:"parameters,omitempty"`
-       // (Optional) A mapping of local input names to side inputs, describing
-       // the expected access pattern.
-       SideInputs map[string]*SideInput 
`protobuf:"bytes,4,rep,name=side_inputs,json=sideInputs" 
json:"side_inputs,omitempty" protobuf_key:"bytes,1,opt,name=key" 
protobuf_val:"bytes,2,opt,name=value"`
 }
 
 func (m *CombinePayload) Reset()                    { *m = CombinePayload{} }
 func (m *CombinePayload) String() string            { return 
proto.CompactTextString(m) }
 func (*CombinePayload) ProtoMessage()               {}
-func (*CombinePayload) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{18} }
+func (*CombinePayload) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{20} }
 
 func (m *CombinePayload) GetCombineFn() *SdkFunctionSpec {
        if m != nil {
@@ -1612,20 +1933,6 @@ func (m *CombinePayload) GetAccumulatorCoderId() string {
        return ""
 }
 
-func (m *CombinePayload) GetParameters() []*Parameter {
-       if m != nil {
-               return m.Parameters
-       }
-       return nil
-}
-
-func (m *CombinePayload) GetSideInputs() map[string]*SideInput {
-       if m != nil {
-               return m.SideInputs
-       }
-       return nil
-}
-
 // The payload for the test-only primitive TestStream
 type TestStreamPayload struct {
        // (Required) the coder for elements in the TestStream events
@@ -1636,7 +1943,7 @@ type TestStreamPayload struct {
 func (m *TestStreamPayload) Reset()                    { *m = 
TestStreamPayload{} }
 func (m *TestStreamPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*TestStreamPayload) ProtoMessage()               {}
-func (*TestStreamPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{19} }
+func (*TestStreamPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{21} }
 
 func (m *TestStreamPayload) GetCoderId() string {
        if m != nil {
@@ -1663,11 +1970,9 @@ type TestStreamPayload_Event struct {
 func (m *TestStreamPayload_Event) Reset()                    { *m = 
TestStreamPayload_Event{} }
 func (m *TestStreamPayload_Event) String() string            { return 
proto.CompactTextString(m) }
 func (*TestStreamPayload_Event) ProtoMessage()               {}
-func (*TestStreamPayload_Event) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{19, 0} }
+func (*TestStreamPayload_Event) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{21, 0} }
 
-type isTestStreamPayload_Event_Event interface {
-       isTestStreamPayload_Event_Event()
-}
+type isTestStreamPayload_Event_Event interface{ 
isTestStreamPayload_Event_Event() }
 
 type TestStreamPayload_Event_WatermarkEvent struct {
        WatermarkEvent *TestStreamPayload_Event_AdvanceWatermark 
`protobuf:"bytes,1,opt,name=watermark_event,json=watermarkEvent,oneof"`
@@ -1814,7 +2119,7 @@ func (m *TestStreamPayload_Event_AdvanceWatermark) 
Reset() {
 func (m *TestStreamPayload_Event_AdvanceWatermark) String() string { return 
proto.CompactTextString(m) }
 func (*TestStreamPayload_Event_AdvanceWatermark) ProtoMessage()    {}
 func (*TestStreamPayload_Event_AdvanceWatermark) Descriptor() ([]byte, []int) {
-       return fileDescriptor0, []int{19, 0, 0}
+       return fileDescriptor0, []int{21, 0, 0}
 }
 
 func (m *TestStreamPayload_Event_AdvanceWatermark) GetNewWatermark() int64 {
@@ -1836,7 +2141,7 @@ func (m *TestStreamPayload_Event_AdvanceProcessingTime) 
String() string {
 }
 func (*TestStreamPayload_Event_AdvanceProcessingTime) ProtoMessage() {}
 func (*TestStreamPayload_Event_AdvanceProcessingTime) Descriptor() ([]byte, 
[]int) {
-       return fileDescriptor0, []int{19, 0, 1}
+       return fileDescriptor0, []int{21, 0, 1}
 }
 
 func (m *TestStreamPayload_Event_AdvanceProcessingTime) GetAdvanceDuration() 
int64 {
@@ -1854,7 +2159,7 @@ func (m *TestStreamPayload_Event_AddElements) Reset()     
    { *m = TestStreamP
 func (m *TestStreamPayload_Event_AddElements) String() string { return 
proto.CompactTextString(m) }
 func (*TestStreamPayload_Event_AddElements) ProtoMessage()    {}
 func (*TestStreamPayload_Event_AddElements) Descriptor() ([]byte, []int) {
-       return fileDescriptor0, []int{19, 0, 2}
+       return fileDescriptor0, []int{21, 0, 2}
 }
 
 func (m *TestStreamPayload_Event_AddElements) GetElements() 
[]*TestStreamPayload_TimestampedElement {
@@ -1873,7 +2178,7 @@ func (m *TestStreamPayload_TimestampedElement) Reset()    
     { *m = TestStream
 func (m *TestStreamPayload_TimestampedElement) String() string { return 
proto.CompactTextString(m) }
 func (*TestStreamPayload_TimestampedElement) ProtoMessage()    {}
 func (*TestStreamPayload_TimestampedElement) Descriptor() ([]byte, []int) {
-       return fileDescriptor0, []int{19, 1}
+       return fileDescriptor0, []int{21, 1}
 }
 
 func (m *TestStreamPayload_TimestampedElement) GetEncodedElement() []byte {
@@ -1904,7 +2209,7 @@ type WriteFilesPayload struct {
 func (m *WriteFilesPayload) Reset()                    { *m = 
WriteFilesPayload{} }
 func (m *WriteFilesPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*WriteFilesPayload) ProtoMessage()               {}
-func (*WriteFilesPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{20} }
+func (*WriteFilesPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{22} }
 
 func (m *WriteFilesPayload) GetSink() *SdkFunctionSpec {
        if m != nil {
@@ -1959,7 +2264,7 @@ type Coder struct {
 func (m *Coder) Reset()                    { *m = Coder{} }
 func (m *Coder) String() string            { return proto.CompactTextString(m) 
}
 func (*Coder) ProtoMessage()               {}
-func (*Coder) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} 
}
+func (*Coder) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} 
}
 
 func (m *Coder) GetSpec() *SdkFunctionSpec {
        if m != nil {
@@ -1975,6 +2280,14 @@ func (m *Coder) GetComponentCoderIds() []string {
        return nil
 }
 
+type StandardCoders struct {
+}
+
+func (m *StandardCoders) Reset()                    { *m = StandardCoders{} }
+func (m *StandardCoders) String() string            { return 
proto.CompactTextString(m) }
+func (*StandardCoders) ProtoMessage()               {}
+func (*StandardCoders) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{24} }
+
 // A windowing strategy describes the window function, triggering, allowed
 // lateness, and accumulation mode for a PCollection.
 //
@@ -2012,7 +2325,7 @@ type WindowingStrategy struct {
        // which the window becomes droppable.
        AllowedLateness int64 
`protobuf:"varint,8,opt,name=allowed_lateness,json=allowedLateness" 
json:"allowed_lateness,omitempty"`
        // (Required) Indicate whether empty on-time panes should be omitted.
-       OnTimeBehavior OnTimeBehavior_Enum 
`protobuf:"varint,9,opt,name=OnTimeBehavior,json=onTimeBehavior,enum=org.apache.beam.model.pipeline.v1.OnTimeBehavior_Enum"
 json:"OnTimeBehavior,omitempty"`
+       OnTimeBehavior OnTimeBehavior_Enum 
`protobuf:"varint,9,opt,name=OnTimeBehavior,enum=org.apache.beam.model.pipeline.v1.OnTimeBehavior_Enum"
 json:"OnTimeBehavior,omitempty"`
        // (Required) Whether or not the window fn assigns inputs to exactly 
one window
        //
        // This knowledge is required for some optimizations
@@ -2022,7 +2335,7 @@ type WindowingStrategy struct {
 func (m *WindowingStrategy) Reset()                    { *m = 
WindowingStrategy{} }
 func (m *WindowingStrategy) String() string            { return 
proto.CompactTextString(m) }
 func (*WindowingStrategy) ProtoMessage()               {}
-func (*WindowingStrategy) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{22} }
+func (*WindowingStrategy) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{25} }
 
 func (m *WindowingStrategy) GetWindowFn() *SdkFunctionSpec {
        if m != nil {
@@ -2103,7 +2416,7 @@ type MergeStatus struct {
 func (m *MergeStatus) Reset()                    { *m = MergeStatus{} }
 func (m *MergeStatus) String() string            { return 
proto.CompactTextString(m) }
 func (*MergeStatus) ProtoMessage()               {}
-func (*MergeStatus) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{23} }
+func (*MergeStatus) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{26} }
 
 // Whether or not subsequent outputs of aggregations should be entire
 // replacement values or just the aggregation of inputs received since
@@ -2114,7 +2427,7 @@ type AccumulationMode struct {
 func (m *AccumulationMode) Reset()                    { *m = 
AccumulationMode{} }
 func (m *AccumulationMode) String() string            { return 
proto.CompactTextString(m) }
 func (*AccumulationMode) ProtoMessage()               {}
-func (*AccumulationMode) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{24} }
+func (*AccumulationMode) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{27} }
 
 // Controls whether or not an aggregating transform should output data
 // when a window expires.
@@ -2124,7 +2437,7 @@ type ClosingBehavior struct {
 func (m *ClosingBehavior) Reset()                    { *m = ClosingBehavior{} }
 func (m *ClosingBehavior) String() string            { return 
proto.CompactTextString(m) }
 func (*ClosingBehavior) ProtoMessage()               {}
-func (*ClosingBehavior) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{25} }
+func (*ClosingBehavior) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{28} }
 
 // Controls whether or not an aggregating transform should output data
 // when an on-time pane is empty.
@@ -2134,7 +2447,7 @@ type OnTimeBehavior struct {
 func (m *OnTimeBehavior) Reset()                    { *m = OnTimeBehavior{} }
 func (m *OnTimeBehavior) String() string            { return 
proto.CompactTextString(m) }
 func (*OnTimeBehavior) ProtoMessage()               {}
-func (*OnTimeBehavior) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{26} }
+func (*OnTimeBehavior) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{29} }
 
 // When a number of windowed, timestamped inputs are aggregated, the timestamp
 // for the resulting output.
@@ -2144,7 +2457,7 @@ type OutputTime struct {
 func (m *OutputTime) Reset()                    { *m = OutputTime{} }
 func (m *OutputTime) String() string            { return 
proto.CompactTextString(m) }
 func (*OutputTime) ProtoMessage()               {}
-func (*OutputTime) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{27} }
+func (*OutputTime) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{30} }
 
 // The different time domains in the Beam model.
 type TimeDomain struct {
@@ -2153,7 +2466,7 @@ type TimeDomain struct {
 func (m *TimeDomain) Reset()                    { *m = TimeDomain{} }
 func (m *TimeDomain) String() string            { return 
proto.CompactTextString(m) }
 func (*TimeDomain) ProtoMessage()               {}
-func (*TimeDomain) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{28} }
+func (*TimeDomain) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{31} }
 
 // A small DSL for expressing when to emit new aggregations
 // from a GroupByKey or CombinePerKey
@@ -2181,11 +2494,9 @@ type Trigger struct {
 func (m *Trigger) Reset()                    { *m = Trigger{} }
 func (m *Trigger) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger) ProtoMessage()               {}
-func (*Trigger) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{29} }
+func (*Trigger) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{32} }
 
-type isTrigger_Trigger interface {
-       isTrigger_Trigger()
-}
+type isTrigger_Trigger interface{ isTrigger_Trigger() }
 
 type Trigger_AfterAll_ struct {
        AfterAll *Trigger_AfterAll 
`protobuf:"bytes,1,opt,name=after_all,json=afterAll,oneof"`
@@ -2600,7 +2911,7 @@ type Trigger_AfterAll struct {
 func (m *Trigger_AfterAll) Reset()                    { *m = 
Trigger_AfterAll{} }
 func (m *Trigger_AfterAll) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_AfterAll) ProtoMessage()               {}
-func (*Trigger_AfterAll) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 0} }
+func (*Trigger_AfterAll) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 0} }
 
 func (m *Trigger_AfterAll) GetSubtriggers() []*Trigger {
        if m != nil {
@@ -2617,7 +2928,7 @@ type Trigger_AfterAny struct {
 func (m *Trigger_AfterAny) Reset()                    { *m = 
Trigger_AfterAny{} }
 func (m *Trigger_AfterAny) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_AfterAny) ProtoMessage()               {}
-func (*Trigger_AfterAny) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 1} }
+func (*Trigger_AfterAny) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 1} }
 
 func (m *Trigger_AfterAny) GetSubtriggers() []*Trigger {
        if m != nil {
@@ -2635,7 +2946,7 @@ type Trigger_AfterEach struct {
 func (m *Trigger_AfterEach) Reset()                    { *m = 
Trigger_AfterEach{} }
 func (m *Trigger_AfterEach) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_AfterEach) ProtoMessage()               {}
-func (*Trigger_AfterEach) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 2} }
+func (*Trigger_AfterEach) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 2} }
 
 func (m *Trigger_AfterEach) GetSubtriggers() []*Trigger {
        if m != nil {
@@ -2659,7 +2970,7 @@ type Trigger_AfterEndOfWindow struct {
 func (m *Trigger_AfterEndOfWindow) Reset()                    { *m = 
Trigger_AfterEndOfWindow{} }
 func (m *Trigger_AfterEndOfWindow) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_AfterEndOfWindow) ProtoMessage()               {}
-func (*Trigger_AfterEndOfWindow) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 3} }
+func (*Trigger_AfterEndOfWindow) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 3} }
 
 func (m *Trigger_AfterEndOfWindow) GetEarlyFirings() *Trigger {
        if m != nil {
@@ -2685,7 +2996,7 @@ type Trigger_AfterProcessingTime struct {
 func (m *Trigger_AfterProcessingTime) Reset()                    { *m = 
Trigger_AfterProcessingTime{} }
 func (m *Trigger_AfterProcessingTime) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_AfterProcessingTime) ProtoMessage()               {}
-func (*Trigger_AfterProcessingTime) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 4} }
+func (*Trigger_AfterProcessingTime) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 4} }
 
 func (m *Trigger_AfterProcessingTime) GetTimestampTransforms() 
[]*TimestampTransform {
        if m != nil {
@@ -2705,7 +3016,7 @@ func (m *Trigger_AfterSynchronizedProcessingTime) Reset() 
{
 func (m *Trigger_AfterSynchronizedProcessingTime) String() string { return 
proto.CompactTextString(m) }
 func (*Trigger_AfterSynchronizedProcessingTime) ProtoMessage()    {}
 func (*Trigger_AfterSynchronizedProcessingTime) Descriptor() ([]byte, []int) {
-       return fileDescriptor0, []int{29, 5}
+       return fileDescriptor0, []int{32, 5}
 }
 
 // The default trigger. Equivalent to Repeat { AfterEndOfWindow } but
@@ -2716,7 +3027,7 @@ type Trigger_Default struct {
 func (m *Trigger_Default) Reset()                    { *m = Trigger_Default{} }
 func (m *Trigger_Default) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_Default) ProtoMessage()               {}
-func (*Trigger_Default) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{29, 6} }
+func (*Trigger_Default) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{32, 6} }
 
 // Ready whenever the requisite number of input elements have arrived
 type Trigger_ElementCount struct {
@@ -2726,7 +3037,7 @@ type Trigger_ElementCount struct {
 func (m *Trigger_ElementCount) Reset()                    { *m = 
Trigger_ElementCount{} }
 func (m *Trigger_ElementCount) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_ElementCount) ProtoMessage()               {}
-func (*Trigger_ElementCount) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 7} }
+func (*Trigger_ElementCount) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 7} }
 
 func (m *Trigger_ElementCount) GetElementCount() int32 {
        if m != nil {
@@ -2743,7 +3054,7 @@ type Trigger_Never struct {
 func (m *Trigger_Never) Reset()                    { *m = Trigger_Never{} }
 func (m *Trigger_Never) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_Never) ProtoMessage()               {}
-func (*Trigger_Never) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{29, 8} }
+func (*Trigger_Never) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{32, 8} }
 
 // Always ready. This can also be expressed as ElementCount(1) but
 // is more explicit.
@@ -2753,7 +3064,7 @@ type Trigger_Always struct {
 func (m *Trigger_Always) Reset()                    { *m = Trigger_Always{} }
 func (m *Trigger_Always) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_Always) ProtoMessage()               {}
-func (*Trigger_Always) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{29, 9} }
+func (*Trigger_Always) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{32, 9} }
 
 // Ready whenever either of its subtriggers are ready, but finishes output
 // when the finally subtrigger fires.
@@ -2767,7 +3078,7 @@ type Trigger_OrFinally struct {
 func (m *Trigger_OrFinally) Reset()                    { *m = 
Trigger_OrFinally{} }
 func (m *Trigger_OrFinally) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_OrFinally) ProtoMessage()               {}
-func (*Trigger_OrFinally) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{29, 10} }
+func (*Trigger_OrFinally) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{32, 10} }
 
 func (m *Trigger_OrFinally) GetMain() *Trigger {
        if m != nil {
@@ -2793,7 +3104,7 @@ type Trigger_Repeat struct {
 func (m *Trigger_Repeat) Reset()                    { *m = Trigger_Repeat{} }
 func (m *Trigger_Repeat) String() string            { return 
proto.CompactTextString(m) }
 func (*Trigger_Repeat) ProtoMessage()               {}
-func (*Trigger_Repeat) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{29, 11} }
+func (*Trigger_Repeat) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{32, 11} }
 
 func (m *Trigger_Repeat) GetSubtrigger() *Trigger {
        if m != nil {
@@ -2816,11 +3127,9 @@ type TimestampTransform struct {
 func (m *TimestampTransform) Reset()                    { *m = 
TimestampTransform{} }
 func (m *TimestampTransform) String() string            { return 
proto.CompactTextString(m) }
 func (*TimestampTransform) ProtoMessage()               {}
-func (*TimestampTransform) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{30} }
+func (*TimestampTransform) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{33} }
 
-type isTimestampTransform_TimestampTransform interface {
-       isTimestampTransform_TimestampTransform()
-}
+type isTimestampTransform_TimestampTransform interface{ 
isTimestampTransform_TimestampTransform() }
 
 type TimestampTransform_Delay_ struct {
        Delay *TimestampTransform_Delay 
`protobuf:"bytes,1,opt,name=delay,oneof"`
@@ -2935,7 +3244,7 @@ type TimestampTransform_Delay struct {
 func (m *TimestampTransform_Delay) Reset()                    { *m = 
TimestampTransform_Delay{} }
 func (m *TimestampTransform_Delay) String() string            { return 
proto.CompactTextString(m) }
 func (*TimestampTransform_Delay) ProtoMessage()               {}
-func (*TimestampTransform_Delay) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{30, 0} }
+func (*TimestampTransform_Delay) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{33, 0} }
 
 func (m *TimestampTransform_Delay) GetDelayMillis() int64 {
        if m != nil {
@@ -2956,7 +3265,7 @@ type TimestampTransform_AlignTo struct {
 func (m *TimestampTransform_AlignTo) Reset()                    { *m = 
TimestampTransform_AlignTo{} }
 func (m *TimestampTransform_AlignTo) String() string            { return 
proto.CompactTextString(m) }
 func (*TimestampTransform_AlignTo) ProtoMessage()               {}
-func (*TimestampTransform_AlignTo) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{30, 1} }
+func (*TimestampTransform_AlignTo) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{33, 1} }
 
 func (m *TimestampTransform_AlignTo) GetPeriod() int64 {
        if m != nil {
@@ -3002,7 +3311,7 @@ type SideInput struct {
 func (m *SideInput) Reset()                    { *m = SideInput{} }
 func (m *SideInput) String() string            { return 
proto.CompactTextString(m) }
 func (*SideInput) ProtoMessage()               {}
-func (*SideInput) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{31} }
+func (*SideInput) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{34} }
 
 func (m *SideInput) GetAccessPattern() *FunctionSpec {
        if m != nil {
@@ -3039,7 +3348,7 @@ type Environment struct {
 func (m *Environment) Reset()                    { *m = Environment{} }
 func (m *Environment) String() string            { return 
proto.CompactTextString(m) }
 func (*Environment) ProtoMessage()               {}
-func (*Environment) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{32} }
+func (*Environment) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{35} }
 
 func (m *Environment) GetUrl() string {
        if m != nil {
@@ -3061,7 +3370,7 @@ type SdkFunctionSpec struct {
 func (m *SdkFunctionSpec) Reset()                    { *m = SdkFunctionSpec{} }
 func (m *SdkFunctionSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*SdkFunctionSpec) ProtoMessage()               {}
-func (*SdkFunctionSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{33} }
+func (*SdkFunctionSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{36} }
 
 func (m *SdkFunctionSpec) GetSpec() *FunctionSpec {
        if m != nil {
@@ -3118,7 +3427,7 @@ type FunctionSpec struct {
 func (m *FunctionSpec) Reset()                    { *m = FunctionSpec{} }
 func (m *FunctionSpec) String() string            { return 
proto.CompactTextString(m) }
 func (*FunctionSpec) ProtoMessage()               {}
-func (*FunctionSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{34} }
+func (*FunctionSpec) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{37} }
 
 func (m *FunctionSpec) GetUrn() string {
        if m != nil {
@@ -3143,7 +3452,7 @@ type DisplayData struct {
 func (m *DisplayData) Reset()                    { *m = DisplayData{} }
 func (m *DisplayData) String() string            { return 
proto.CompactTextString(m) }
 func (*DisplayData) ProtoMessage()               {}
-func (*DisplayData) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{35} }
+func (*DisplayData) Descriptor() ([]byte, []int) { return fileDescriptor0, 
[]int{38} }
 
 func (m *DisplayData) GetItems() []*DisplayData_Item {
        if m != nil {
@@ -3165,7 +3474,7 @@ type DisplayData_Identifier struct {
 func (m *DisplayData_Identifier) Reset()                    { *m = 
DisplayData_Identifier{} }
 func (m *DisplayData_Identifier) String() string            { return 
proto.CompactTextString(m) }
 func (*DisplayData_Identifier) ProtoMessage()               {}
-func (*DisplayData_Identifier) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{35, 0} }
+func (*DisplayData_Identifier) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{38, 0} }
 
 func (m *DisplayData_Identifier) GetTransformId() string {
        if m != nil {
@@ -3207,7 +3516,7 @@ type DisplayData_Item struct {
 func (m *DisplayData_Item) Reset()                    { *m = 
DisplayData_Item{} }
 func (m *DisplayData_Item) String() string            { return 
proto.CompactTextString(m) }
 func (*DisplayData_Item) ProtoMessage()               {}
-func (*DisplayData_Item) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{35, 1} }
+func (*DisplayData_Item) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{38, 1} }
 
 func (m *DisplayData_Item) GetId() *DisplayData_Identifier {
        if m != nil {
@@ -3257,15 +3566,27 @@ type DisplayData_Type struct {
 func (m *DisplayData_Type) Reset()                    { *m = 
DisplayData_Type{} }
 func (m *DisplayData_Type) String() string            { return 
proto.CompactTextString(m) }
 func (*DisplayData_Type) ProtoMessage()               {}
-func (*DisplayData_Type) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{35, 2} }
+func (*DisplayData_Type) Descriptor() ([]byte, []int) { return 
fileDescriptor0, []int{38, 2} }
+
+var E_BeamUrn = &proto.ExtensionDesc{
+       ExtendedType:  (*google_protobuf1.EnumValueOptions)(nil),
+       ExtensionType: (*string)(nil),
+       Field:         185324356,
+       Name:          "org.apache.beam.model.pipeline.v1.beam_urn",
+       Tag:           "bytes,185324356,opt,name=beam_urn,json=beamUrn",
+       Filename:      "beam_runner_api.proto",
+}
 
 func init() {
        proto.RegisterType((*Components)(nil), 
"org.apache.beam.model.pipeline.v1.Components")
        proto.RegisterType((*MessageWithComponents)(nil), 
"org.apache.beam.model.pipeline.v1.MessageWithComponents")
        proto.RegisterType((*Pipeline)(nil), 
"org.apache.beam.model.pipeline.v1.Pipeline")
        proto.RegisterType((*PTransform)(nil), 
"org.apache.beam.model.pipeline.v1.PTransform")
+       proto.RegisterType((*StandardPTransforms)(nil), 
"org.apache.beam.model.pipeline.v1.StandardPTransforms")
+       proto.RegisterType((*StandardSideInputTypes)(nil), 
"org.apache.beam.model.pipeline.v1.StandardSideInputTypes")
        proto.RegisterType((*PCollection)(nil), 
"org.apache.beam.model.pipeline.v1.PCollection")
        proto.RegisterType((*ExecutableStagePayload)(nil), 
"org.apache.beam.model.pipeline.v1.ExecutableStagePayload")
+       proto.RegisterType((*ExecutableStagePayload_SideInputId)(nil), 
"org.apache.beam.model.pipeline.v1.ExecutableStagePayload.SideInputId")
        proto.RegisterType((*ParDoPayload)(nil), 
"org.apache.beam.model.pipeline.v1.ParDoPayload")
        proto.RegisterType((*Parameter)(nil), 
"org.apache.beam.model.pipeline.v1.Parameter")
        proto.RegisterType((*Parameter_Type)(nil), 
"org.apache.beam.model.pipeline.v1.Parameter.Type")
@@ -3288,6 +3609,7 @@ func init() {
        proto.RegisterType((*TestStreamPayload_TimestampedElement)(nil), 
"org.apache.beam.model.pipeline.v1.TestStreamPayload.TimestampedElement")
        proto.RegisterType((*WriteFilesPayload)(nil), 
"org.apache.beam.model.pipeline.v1.WriteFilesPayload")
        proto.RegisterType((*Coder)(nil), 
"org.apache.beam.model.pipeline.v1.Coder")
+       proto.RegisterType((*StandardCoders)(nil), 
"org.apache.beam.model.pipeline.v1.StandardCoders")
        proto.RegisterType((*WindowingStrategy)(nil), 
"org.apache.beam.model.pipeline.v1.WindowingStrategy")
        proto.RegisterType((*MergeStatus)(nil), 
"org.apache.beam.model.pipeline.v1.MergeStatus")
        proto.RegisterType((*AccumulationMode)(nil), 
"org.apache.beam.model.pipeline.v1.AccumulationMode")
@@ -3319,8 +3641,15 @@ func init() {
        proto.RegisterType((*DisplayData_Identifier)(nil), 
"org.apache.beam.model.pipeline.v1.DisplayData.Identifier")
        proto.RegisterType((*DisplayData_Item)(nil), 
"org.apache.beam.model.pipeline.v1.DisplayData.Item")
        proto.RegisterType((*DisplayData_Type)(nil), 
"org.apache.beam.model.pipeline.v1.DisplayData.Type")
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardPTransforms_Primitives",
 StandardPTransforms_Primitives_name, StandardPTransforms_Primitives_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardPTransforms_DeprecatedPrimitives",
 StandardPTransforms_DeprecatedPrimitives_name, 
StandardPTransforms_DeprecatedPrimitives_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardPTransforms_Composites",
 StandardPTransforms_Composites_name, StandardPTransforms_Composites_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardPTransforms_CombineComponents",
 StandardPTransforms_CombineComponents_name, 
StandardPTransforms_CombineComponents_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardPTransforms_SplittableParDoComponents",
 StandardPTransforms_SplittableParDoComponents_name, 
StandardPTransforms_SplittableParDoComponents_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardSideInputTypes_Enum",
 StandardSideInputTypes_Enum_name, StandardSideInputTypes_Enum_value)
        
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.Parameter_Type_Enum", 
Parameter_Type_Enum_name, Parameter_Type_Enum_value)
        proto.RegisterEnum("org.apache.beam.model.pipeline.v1.IsBounded_Enum", 
IsBounded_Enum_name, IsBounded_Enum_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.StandardCoders_Enum", 
StandardCoders_Enum_name, StandardCoders_Enum_value)
        
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.MergeStatus_Enum", 
MergeStatus_Enum_name, MergeStatus_Enum_value)
        
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.AccumulationMode_Enum", 
AccumulationMode_Enum_name, AccumulationMode_Enum_value)
        
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.ClosingBehavior_Enum", 
ClosingBehavior_Enum_name, ClosingBehavior_Enum_value)
@@ -3328,226 +3657,288 @@ func init() {
        proto.RegisterEnum("org.apache.beam.model.pipeline.v1.OutputTime_Enum", 
OutputTime_Enum_name, OutputTime_Enum_value)
        proto.RegisterEnum("org.apache.beam.model.pipeline.v1.TimeDomain_Enum", 
TimeDomain_Enum_name, TimeDomain_Enum_value)
        
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.DisplayData_Type_Enum", 
DisplayData_Type_Enum_name, DisplayData_Type_Enum_value)
+       proto.RegisterExtension(E_BeamUrn)
 }
 
 func init() { proto.RegisterFile("beam_runner_api.proto", fileDescriptor0) }
 
 var fileDescriptor0 = []byte{
-       // 3456 bytes of a gzipped FileDescriptorProto
-       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 
0xcd, 0x73, 0x23, 0x49,
-       0x56, 0xd7, 0xf7, 0xc7, 0x93, 0x2c, 0xcb, 0xe9, 0xee, 0x45, 0xa3, 0xd8, 
0x60, 0x7a, 0x8a, 0x05,
-       0x9a, 0x61, 0xd0, 0x6c, 0xbb, 0x77, 0x98, 0xe9, 0x19, 0x76, 0x58, 0x59, 
0x2a, 0xb5, 0xd4, 0x63,
-       0x4b, 0x9a, 0x92, 0xdc, 0xa6, 0x67, 0x97, 0xae, 0x49, 0xab, 0x52, 0x72, 
0x85, 0x4b, 0x59, 0xa2,
-       0xaa, 0x64, 0x23, 0x82, 0x8d, 0xbd, 0x11, 0x44, 0x70, 0x81, 0xe3, 0x5e, 
0xe1, 0xc8, 0x89, 0x5d,
-       0x82, 0x08, 0xce, 0xfc, 0x09, 0xdc, 0xe0, 0xaf, 0x20, 0x08, 0xee, 0x44, 
0x7e, 0x54, 0xa9, 0x24,
-       0xd9, 0x3d, 0x25, 0xd9, 0x41, 0x70, 0x53, 0xbe, 0xaa, 0xf7, 0x7b, 0xaf, 
0x5e, 0xbe, 0x7c, 0x1f,
-       0x99, 0x29, 0x78, 0x7c, 0x41, 0xf0, 0x54, 0x77, 0xe6, 0x94, 0x12, 0x47, 
0xc7, 0x33, 0xb3, 0x36,
-       0x73, 0x6c, 0xcf, 0x46, 0x1f, 0xd8, 0xce, 0xa4, 0x86, 0x67, 0x78, 0x74, 
0x49, 0x6a, 0xec, 0x8d,
-       0xda, 0xd4, 0x36, 0x88, 0x55, 0x9b, 0x99, 0x33, 0x62, 0x99, 0x94, 0xd4, 
0xae, 0x9f, 0x55, 0xdf,
-       0x9b, 0xd8, 0xf6, 0xc4, 0x22, 0x1f, 0x73, 0x86, 0x8b, 0xf9, 0xf8, 0x63, 
0x4c, 0x17, 0x82, 0x5b,
-       0xf9, 0x97, 0x1c, 0x40, 0xc3, 0x9e, 0xce, 0x6c, 0x4a, 0xa8, 0xe7, 0xa2, 
0x3f, 0x05, 0xf0, 0x1c,
-       0x4c, 0xdd, 0xb1, 0xed, 0x4c, 0xdd, 0x4a, 0xfc, 0x49, 0xf2, 0x69, 0xe1, 
0xe8, 0xc7, 0xb5, 0xef,
-       0x94, 0x50, 0x5b, 0x42, 0xd4, 0x86, 0x01, 0xbf, 0x4a, 0x3d, 0x67, 0xa1, 
0x85, 0x00, 0xd1, 0x08,
-       0x8a, 0xb3, 0x91, 0x6d, 0x59, 0x64, 0xe4, 0x99, 0x36, 0x75, 0x2b, 0x09, 
0x2e, 0xe0, 0x8f, 0xb7,
-       0x13, 0xd0, 0x0f, 0x21, 0x08, 0x11, 0x2b, 0xa0, 0x68, 0x01, 0x8f, 0x6e, 
0x4c, 0x6a, 0xd8, 0x37,
-       0x26, 0x9d, 0xe8, 0xae, 0xe7, 0x60, 0x8f, 0x4c, 0x4c, 0xe2, 0x56, 0x92, 
0x5c, 0x58, 0x6b, 0x3b,
-       0x61, 0xe7, 0x3e, 0xd2, 0x20, 0x00, 0x12, 0x32, 0x0f, 0x6f, 0x36, 0x9f, 
0xa0, 0xaf, 0x21, 0x33,
-       0xb2, 0x0d, 0xe2, 0xb8, 0x95, 0x14, 0x17, 0xf6, 0x62, 0x3b, 0x61, 0x0d, 
0xce, 0x2b, 0xf0, 0x25,
-       0x10, 0x33, 0x19, 0xa1, 0xd7, 0xa6, 0x63, 0xd3, 0x29, 0x7b, 0xa7, 0x92, 
0xde, 0xc5, 0x64, 0x6a,
-       0x08, 0x41, 0x9a, 0x2c, 0x0c, 0x5a, 0xb5, 0x60, 0x7f, 0x6d, 0xda, 0x50, 
0x19, 0x92, 0x57, 0x64,
-       0x51, 0x89, 0x3f, 0x89, 0x3f, 0xcd, 0x6b, 0xec, 0x27, 0x6a, 0x40, 0xfa, 
0x1a, 0x5b, 0x73, 0x52,
-       0x49, 0x3c, 0x89, 0x3f, 0x2d, 0x1c, 0xfd, 0x41, 0x04, 0x15, 0xfa, 0x01, 
0xaa, 0x26, 0x78, 0x3f,
-       0x4f, 0x7c, 0x16, 0xaf, 0xda, 0x70, 0xb0, 0x31, 0x87, 0xb7, 0xc8, 0x6b, 
0xae, 0xca, 0xab, 0x45,
-       0x91, 0xd7, 0x08, 0x60, 0xc3, 0x02, 0xff, 0x12, 0x2a, 0x77, 0xcd, 0xe3, 
0x2d, 0x72, 0x5f, 0xad,
-       0xca, 0xfd, 0x51, 0x04, 0xb9, 0xeb, 0xe8, 0x8b, 0xb0, 0xf4, 0x11, 0x14, 
0x42, 0x13, 0x7b, 0x8b,
-       0xc0, 0x2f, 0x57, 0x05, 0x3e, 0x8d, 0x34, 0xb7, 0x06, 0x71, 0xd6, 0x6c, 
0xba, 0x31, 0xc9, 0x0f,
-       0x63, 0xd3, 0x10, 0x6c, 0x48, 0xa0, 0xf2, 0xaf, 0x39, 0x78, 0x7c, 0x4a, 
0x5c, 0x17, 0x4f, 0xc8,
-       0xb9, 0xe9, 0x5d, 0x86, 0x62, 0xc8, 0x29, 0xc0, 0x28, 0x18, 0x71, 0xe1, 
0xd1, 0x9c, 0x65, 0x09,
-       0xa1, 0x85, 0x00, 0xd0, 0x4f, 0x20, 0xcd, 0x97, 0xc2, 0xb6, 0xd6, 0x69, 
0xc7, 0x34, 0xc1, 0x88,
-       0x7e, 0x06, 0xfb, 0x23, 0x7b, 0x7a, 0x61, 0x52, 0xa2, 0xcf, 0xf0, 0xc2, 
0xb2, 0xb1, 0x51, 0x49,
-       0x72, 0xac, 0x67, 0xd1, 0xb4, 0x62, 0x9c, 0x7d, 0xc1, 0xd8, 0x8e, 0x69, 
0xa5, 0xd1, 0x0a, 0x05,
-       0x7d, 0x0b, 0x07, 0xae, 0x71, 0xa5, 0x8f, 0xe7, 0x94, 0xfb, 0x9d, 0xee, 
0xce, 0xc8, 0xa8, 0x92,
-       0xe2, 0xf8, 0x47, 0x11, 0xf0, 0x07, 0xc6, 0x55, 0x4b, 0xb2, 0x0e, 0x66, 
0x64, 0xd4, 0x8e, 0x69,
-       0xfb, 0xee, 0x2a, 0x09, 0x9d, 0x43, 0x69, 0x86, 0x1d, 0xdd, 0xb0, 0x03, 
0xf5, 0x33, 0x1c, 0xfe,
-       0xe3, 0x28, 0x2b, 0x02, 0x3b, 0x4d, 0x7b, 0xa9, 0x7c, 0x71, 0x16, 0x1a, 
0xa3, 0x1e, 0xc0, 0x2c,
-       0x88, 0xce, 0x95, 0xec, 0x0e, 0xcb, 0xba, 0x1d, 0xd3, 0x42, 0x10, 0x48, 
0x83, 0x42, 0x28, 0x14,
-       0x57, 0x72, 0xbb, 0x2c, 0xdc, 0x76, 0x4c, 0x0b, 0x83, 0xa0, 0x01, 0x14, 
0x1d, 0x82, 0x8d, 0xe0,
-       0xdb, 0xf3, 0x91, 0x41, 0x35, 0x82, 0x8d, 0xe5, 0xa7, 0x17, 0x9c, 0xe5, 
0x90, 0xf9, 0xa8, 0x6b,
-       0x1a, 0x44, 0x37, 0xe9, 0x6c, 0xee, 0x55, 0x0a, 0x1c, 0xf2, 0xa3, 0x28, 
0xb3, 0x65, 0x1a, 0xa4,
-       0xc3, 0x78, 0xda, 0x31, 0x2d, 0xef, 0xfa, 0x03, 0x34, 0x06, 0x99, 0x0e, 
0x74, 0x93, 0x7a, 0xcb,
-       0x69, 0x2a, 0x6e, 0x19, 0x40, 0x3a, 0xd4, 0x0b, 0xcd, 0xd5, 0xc1, 0xcd, 
0x3a, 0x11, 0x11, 0x40,
-       0x1b, 0xa9, 0x6d, 0x51, 0xd9, 0xdb, 0x3d, 0x4e, 0x2d, 0xc5, 0x84, 0x88, 
0xe8, 0x35, 0xec, 0xad,
-       0xba, 0x73, 0x29, 0xb2, 0xbf, 0xad, 0xf9, 0x72, 0x71, 0x1c, 0x1a, 0x1f, 
0x67, 0x20, 0xe5, 0xd8,
-       0xb6, 0xa7, 0xfc, 0x47, 0x1c, 0x72, 0x7d, 0xc9, 0xf4, 0xd0, 0xe1, 0xe2, 
0x23, 0x40, 0x4c, 0x86,
-       0x1e, 0x38, 0xa5, 0x6e, 0x1a, 0xa2, 0xd0, 0xc8, 0x6b, 0x65, 0xf6, 0x24, 
0xf0, 0xdd, 0x8e, 0xc1,
-       0x12, 0x76, 0xd1, 0x30, 0xdd, 0x99, 0x85, 0x17, 0xba, 0x81, 0x3d, 0x2c, 
0xe3, 0x42, 0x14, 0xe7,
-       0x6a, 0x0a, 0xb6, 0x26, 0xf6, 0xb0, 0x56, 0x30, 0x96, 0x03, 0xe5, 0x6f, 
0x52, 0x00, 0xcb, 0x05,
-       0x82, 0xde, 0x87, 0xc2, 0x9c, 0x9a, 0x7f, 0x36, 0x27, 0x3a, 0xc5, 0x53, 
0x52, 0x49, 0xf3, 0x58,
-       0x0c, 0x82, 0xd4, 0xc5, 0x53, 0x82, 0x1a, 0x90, 0xe2, 0x36, 0x8e, 0xef, 
0x64, 0x63, 0x8d, 0x33,
-       0xa3, 0x1f, 0xc0, 0x9e, 0x3b, 0xbf, 0x08, 0x95, 0x6e, 0xe2, 0x83, 0x57, 
0x89, 0xac, 0x3c, 0xe1,
-       0x0e, 0xef, 0xd7, 0x42, 0x2f, 0xb6, 0x5a, 0xeb, 0x35, 0xee, 0xeb, 0x7e, 
0x79, 0x22, 0x80, 0xd0,
-       0x10, 0xb2, 0xf6, 0xdc, 0xe3, 0x98, 0xa2, 0xe4, 0xf9, 0x7c, 0x3b, 0xcc, 
0x9e, 0x60, 0x16, 0xa0,
-       0x3e, 0xd4, 0xc6, 0xb4, 0x64, 0xee, 0x3d, 0x2d, 0xd5, 0x17, 0x50, 0x08, 
0xe9, 0x7f, 0x4b, 0x6a,
-       0x7c, 0x14, 0x4e, 0x8d, 0xf9, 0x70, 0x6e, 0xfd, 0x1c, 0x8a, 0x61, 0x35, 
0xb7, 0xe1, 0x55, 0xfe,
-       0x3e, 0x01, 0x85, 0x50, 0x70, 0x5b, 0x77, 0x87, 0xf8, 0x86, 0x3b, 0xbc, 
0x07, 0x39, 0x9e, 0xb5,
-       0x74, 0xd3, 0x90, 0x68, 0x59, 0x3e, 0xee, 0x18, 0xa8, 0x0f, 0x60, 0xba, 
0xfa, 0x85, 0x3d, 0xa7,
-       0x06, 0x11, 0x29, 0xac, 0x14, 0x29, 0x85, 0x75, 0xdc, 0x63, 0xc1, 0x53, 
0x53, 0xe9, 0x7c, 0xaa,
-       0xe5, 0x4d, 0x7f, 0x8c, 0x8e, 0xe0, 0xf1, 0x66, 0x3c, 0x61, 0x92, 0x53, 
0x5c, 0xf2, 0x46, 0x8d,
-       0xbb, 0xe8, 0x18, 0x1b, 0x73, 0x93, 0xbe, 0xff, 0x92, 0xf9, 0xcf, 0x38, 
0x7c, 0x4f, 0xfd, 0x73,
-       0x32, 0x9a, 0x7b, 0xf8, 0xc2, 0x22, 0x03, 0x0f, 0x4f, 0x82, 0xec, 0xda, 
0x87, 0x42, 0xa8, 0x52,
-       0x95, 0x8b, 0x64, 0xdb, 0xb2, 0x25, 0x0c, 0xc1, 0xe6, 0x4a, 0x44, 0x7d, 
0x39, 0x57, 0x7c, 0xc0,
-       0xe6, 0x65, 0x99, 0x10, 0xc4, 0xfa, 0xc8, 0x6b, 0x10, 0x44, 0x78, 0x17, 
0xfd, 0xe6, 0x4a, 0x67,
-       0x94, 0x12, 0xcf, 0x43, 0x6b, 0xab, 0xb2, 0x5c, 0x08, 0x69, 0xfe, 0xd0, 
0x1f, 0x2a, 0xbf, 0xca,
-       0x40, 0x31, 0x9c, 0x86, 0xd1, 0x4b, 0x48, 0x1b, 0xb6, 0x3e, 0xa6, 0xf2, 
0x6b, 0x76, 0xa8, 0x12,
-       0xb4, 0x94, 0x61, 0xb7, 0x28, 0x3a, 0x01, 0x98, 0x61, 0x07, 0x4f, 0x89, 
0xc7, 0x5a, 0x0e, 0xd1,
-       0x4c, 0x7d, 0x14, 0xad, 0x28, 0x10, 0x4c, 0x5a, 0x88, 0x1f, 0x7d, 0xbb, 
0x69, 0x82, 0x68, 0x8d,
-       0x46, 0xf8, 0xe3, 0x96, 0x19, 0xd2, 0x6f, 0xff, 0x42, 0x36, 0x64, 0x12, 
0x3c, 0xec, 0x11, 0x9e,
-       0x54, 0xfc, 0x80, 0xb1, 0xbd, 0x04, 0x06, 0xc1, 0xac, 0x10, 0x48, 0x08, 
0x08, 0x4c, 0x82, 0x67,
-       0x4e, 0x89, 0x23, 0x25, 0xa4, 0x77, 0x93, 0x30, 0x64, 0x10, 0x61, 0x09, 
0x5e, 0x40, 0x60, 0x7e,
-       0xe0, 0xce, 0x2c, 0xd3, 0xe3, 0xae, 0xca, 0x03, 0x53, 0x4e, 0x0b, 0x51, 
0xaa, 0x57, 0xb0, 0xbf,
-       0x66, 0x82, 0x5b, 0xe2, 0xc5, 0xf1, 0x6a, 0x19, 0xbe, 0x55, 0xe5, 0x11, 
0x8e, 0x4c, 0x4c, 0xd8,
-       0xaa, 0x35, 0x1e, 0x48, 0x98, 0x0f, 0xba, 0x26, 0x6c, 0xcd, 0x30, 0x0f, 
0x23, 0x2c, 0x00, 0x0d,
-       0xc7, 0xcd, 0x5f, 0xc7, 0x21, 0x1f, 0xb8, 0x29, 0x7a, 0x05, 0x29, 0x6f, 
0x31, 0x13, 0xe1, 0xb2,
-       0x74, 0xf4, 0x87, 0xdb, 0xb8, 0x78, 0x6d, 0xb8, 0x98, 0x11, 0x11, 0xf8, 
0x38, 0x46, 0xf5, 0x1b,
-       0x48, 0x31, 0x92, 0xa2, 0x41, 0x8a, 0x51, 0xd1, 0x3e, 0x14, 0xce, 0xba, 
0x83, 0xbe, 0xda, 0xe8,
-       0xb4, 0x3a, 0x6a, 0xb3, 0x1c, 0x43, 0x00, 0x99, 0xf3, 0x4e, 0xb7, 0xd9, 
0x3b, 0x2f, 0xc7, 0xd1,
-       0x23, 0x28, 0xf7, 0x3b, 0x7d, 0xf5, 0xa4, 0xd3, 0x55, 0xf5, 0x5e, 0x7f, 
0xd8, 0xe9, 0x75, 0x07,
-       0xe5, 0x04, 0xfa, 0x0d, 0x38, 0xd4, 0xd4, 0xc1, 0x50, 0xeb, 0x34, 0x18, 
0x45, 0x1f, 0x6a, 0xf5,
-       0xc6, 0x57, 0xaa, 0x56, 0x4e, 0x2a, 0xff, 0x94, 0x84, 0x7c, 0x60, 0x3b, 
0xa4, 0x01, 0xf0, 0x0f,
-       0xd2, 0x43, 0xf9, 0x3d, 0x4a, 0xbc, 0x7e, 0xcd, 0x98, 0x02, 0x18, 0x56, 
0x69, 0x72, 0x18, 0x8e,
-       0x79, 0x02, 0xb9, 0x0b, 0x3c, 0x11, 0x88, 0x89, 0xc8, 0x15, 0xc3, 0x31, 
0x9e, 0x84, 0xf1, 0xb2,
-       0x17, 0x78, 0xc2, 0xd1, 0xde, 0x82, 0xec, 0x66, 0x78, 0xfc, 0x67, 0x98, 
0xa2, 0x00, 0xfa, 0x24,
-       0x72, 0x63, 0xc4, 0x73, 0xc3, 0x12, 0x79, 0x2f, 0x80, 0xf3, 0xb5, 0x9d, 
0xe2, 0x59, 0xb8, 0x25,
-       0x8a, 0xa2, 0xed, 0x29, 0x9e, 0xad, 0x68, 0x3b, 0xc5, 0x33, 0x1f, 0xcd, 
0x25, 0x9e, 0x40, 0x4b,
-       0x47, 0x46, 0x1b, 0x10, 0x6f, 0x05, 0xcd, 0x25, 0x9e, 0x5f, 0x8c, 0x32, 
0x24, 0xe5, 0xf7, 0xa1,
-       0xb4, 0x6a, 0xf0, 0x95, 0x14, 0x1c, 0x5f, 0x49, 0xc1, 0xca, 0x67, 0x50, 
0x0c, 0xdb, 0x12, 0x3d,
-       0x85, 0x32, 0xb1, 0x08, 0xcb, 0x2b, 0xfa, 0x1a, 0x4b, 0x49, 0xd2, 0x1b, 
0x92, 0xf3, 0x97, 0x71,
-       0x40, 0x9b, 0x26, 0x43, 0x3f, 0x84, 0x47, 0x78, 0x34, 0x9a, 0x4f, 0xe7, 
0x16, 0xf6, 0x6c, 0x67,
-       0x1d, 0x04, 0x85, 0x9e, 0x49, 0x20, 0xf4, 0x35, 0xaf, 0x97, 0x79, 0x37, 
0x3b, 0xa6, 0xd2, 0x07,
-       0x76, 0x49, 0x21, 0x79, 0x89, 0xd2, 0xa2, 0xca, 0x6b, 0x28, 0x86, 0x6d, 
0x8e, 0x9e, 0x40, 0xf1,
-       0x8a, 0x2c, 0xd6, 0x95, 0x81, 0x2b, 0xb2, 0xf0, 0x95, 0xf8, 0x01, 0x94, 
0x84, 0x6b, 0xaf, 0xd5,
-       0x2a, 0x45, 0x4e, 0x6d, 0x2c, 0xad, 0x15, 0xb6, 0xfe, 0x16, 0xd6, 0xfa, 
0x16, 0xf2, 0x41, 0x58,
-       0x40, 0x03, 0x11, 0xd4, 0x75, 0xc3, 0x9e, 0x62, 0x93, 0xca, 0x20, 0x70, 
0x14, 0x31, 0xb2, 0x34,
-       0x39, 0x93, 0x08, 0x00, 0x3c, 0x8e, 0x0b, 0x82, 0xf2, 0x13, 0xc8, 0x07, 
0x75, 0x91, 0xf2, 0xfc,
-       0xae, 0x58, 0xb0, 0x07, 0xf9, 0xb3, 0xee, 0x71, 0xef, 0xac, 0xdb, 0x54, 
0x9b, 0xe5, 0x38, 0x2a,
-       0x40, 0xd6, 0x1f, 0x24, 0x94, 0x7f, 0x8c, 0x43, 0x21, 0xd4, 0x62, 0xa2, 
0x57, 0x90, 0x71, 0xed,
-       0xb9, 0x33, 0x22, 0xf7, 0xc8, 0xeb, 0x12, 0x61, 0xad, 0xd4, 0x4b, 0xdc, 
0xbf, 0xd4, 0x53, 0x0c,
-       0x38, 0xd8, 0x68, 0x32, 0x51, 0x0f, 0xf2, 0xb2, 0x6f, 0xbd, 0x57, 0x35, 
0x92, 0x13, 0x20, 0x2d,
-       0xaa, 0xfc, 0x73, 0x12, 0x4a, 0xab, 0x3b, 0x26, 0x6b, 0xfe, 0x1a, 0x7f, 
0x00, 0x7f, 0xbd, 0x73,
-       0xd1, 0x24, 0xee, 0x5c, 0x34, 0xab, 0x95, 0x52, 0xf2, 0x9e, 0x95, 0xd2, 
0xc5, 0x6a, 0xa5, 0x24,
-       0xea, 0x98, 0xfa, 0xd6, 0x9b, 0x49, 0xef, 0xaa, 0x95, 0xfe, 0x4f, 0xeb, 
0x08, 0xe5, 0xdf, 0x33,
-       0x70, 0x30, 0x24, 0xae, 0x37, 0xf0, 0x1c, 0x82, 0xa7, 0xfe, 0xcc, 0xdd, 
0x1d, 0x07, 0x91, 0x06,
-       0x19, 0x72, 0xcd, 0x1b, 0xf6, 0x44, 0xe4, 0xae, 0x6f, 0x43, 0x40, 0x4d, 
0x65, 0x10, 0x9a, 0x44,
-       0xaa, 0xfe, 0x57, 0x0a, 0xd2, 0x9c, 0x82, 0xae, 0x61, 0xff, 0x06, 0x7b, 
0xc4, 0x99, 0x62, 0xe7,
-       0x4a, 0xe7, 0x4f, 0xa5, 0xdf, 0x7c, 0xb5, 0xbb, 0x98, 0x5a, 0xdd, 0xb8, 
0xc6, 0x74, 0x44, 0xce,
-       0x7d, 0xe0, 0x76, 0x4c, 0x2b, 0x05, 0x52, 0x84, 0xdc, 0xbf, 0x8a, 0xc3, 
0xe3, 0x99, 0x63, 0x8f,
-       0x88, 0xeb, 0xb2, 0x84, 0xc8, 0x83, 0x8e, 0x10, 0x2f, 0xec, 0xdb, 0xbf, 
0xbf, 0xf8, 0x7e, 0x00,
-       0xcf, 0x82, 0x53, 0x3b, 0xa6, 0x1d, 0xce, 0x56, 0x28, 0x42, 0x91, 0x29, 
0xec, 0xf9, 0x81, 0x52,
-       0xc8, 0x17, 0x69, 0xb9, 0x75, 0x2f, 0xf9, 0x86, 0x2a, 0x20, 0xdd, 0x76, 
0x4c, 0x2b, 0x4a, 0x78,
-       0xfe, 0xac, 0xfa, 0x29, 0x94, 0xd7, 0xad, 0x83, 0x7e, 0x0b, 0xf6, 0x28, 
0xb9, 0xd1, 0x03, 0x0b,
-       0xf1, 0x19, 0x48, 0x6a, 0x45, 0x4a, 0x6e, 0x82, 0x97, 0xaa, 0xc7, 0xf0, 
0xf8, 0xd6, 0xef, 0x42,
-       0xbf, 0x07, 0x65, 0x2c, 0x1e, 0xe8, 0xc6, 0xdc, 0xc1, 0x7c, 0x37, 0x50, 
0x00, 0xec, 0x4b, 0x7a,
-       0x53, 0x92, 0xab, 0x0e, 0x14, 0x42, 0xba, 0xa1, 0x11, 0xe4, 0xa4, 0x6e, 
0xfe, 0xf9, 0xd3, 0xcb,
-       0x9d, 0xbe, 0x9a, 0xa9, 0xe1, 0x7a, 0x78, 0x3a, 0x23, 0x3e, 0xb6, 0x16, 
0x00, 0x1f, 0x67, 0x21,
-       0xcd, 0xed, 0x5a, 0xfd, 0x29, 0xa0, 0xcd, 0x17, 0xd1, 0xef, 0xc2, 0x3e, 
0xa1, 0xcc, 0xd5, 0x0d,
-       0x5d, 0xb2, 0x70, 0xe5, 0x8b, 0x5a, 0x49, 0x92, 0xfd, 0x17, 0xbf, 0x0f, 
0x79, 0xcf, 0x67, 0xe7,
-       0x3e, 0x92, 0xd4, 0x96, 0x04, 0xe5, 0xbf, 0x93, 0x70, 0x70, 0xee, 0x98, 
0x1e, 0x69, 0x99, 0x16,
-       0x71, 0xfd, 0x55, 0xd5, 0x82, 0x94, 0x6b, 0xd2, 0xab, 0xfb, 0x34, 0x7f, 
0x8c, 0x1f, 0xfd, 0x14,
-       0xf6, 0x59, 0xe7, 0x89, 0xbd, 0x60, 0xeb, 0xf9, 0x1e, 0xc5, 0x40, 0x49, 
0x40, 0xf9, 0x34, 0x66,
-       0x01, 0x11, 0xd3, 0x89, 0xa1, 0xdf, 0xb0, 0x4f, 0x70, 0xb9, 0x0b, 0xe6, 
0xb4, 0x92, 0x4f, 0xe6,
-       0x1f, 0xe6, 0xa2, 0x3f, 0x82, 0xaa, 0x3c, 0x91, 0x34, 0x58, 0x6c, 0x9c, 
0x9a, 0x94, 0x18, 0xba,
-       0x7b, 0x89, 0x1d, 0xc3, 0xa4, 0x13, 0x5e, 0xf3, 0xe5, 0xb4, 0x8a, 0x78, 
0xa3, 0x19, 0xbc, 0x30,
-       0x90, 0xcf, 0x11, 0x59, 0x0d, 0xa4, 0xa2, 0x5d, 0x6b, 0x46, 0xd9, 0xc8, 
0x5c, 0x37, 0xeb, 0xff,
-       0x9f, 0x58, 0xfa, 0x0b, 0x48, 0xf3, 0xac, 0xc3, 0x27, 0x7a, 0x59, 0xf8, 
0xef, 0x36, 0xd1, 0xac,
-       0xfc, 0xa9, 0xc1, 0x61, 0xb0, 0xbf, 0x19, 0xe4, 0x3a, 0x7f, 0x87, 0xef, 
0x20, 0x78, 0x24, 0x53,
-       0x9d, 0xab, 0xfc, 0x75, 0xc6, 0x4f, 0xf5, 0xe1, 0x3d, 0xdd, 0x87, 0x4e, 
0xf5, 0xe8, 0x35, 0x14,
-       0xa7, 0xc4, 0x99, 0x10, 0x9d, 0xb5, 0xdf, 0x73, 0x57, 0x16, 0x29, 0xcf, 
0xa3, 0xd4, 0xf7, 0x8c,
-       0x6d, 0xc0, 0xb9, 0x44, 0x99, 0x52, 0x98, 0x2e, 0x29, 0xe8, 0x77, 0x7c, 
0xd7, 0x5b, 0xe6, 0xf5,
-       0x24, 0x9f, 0xa5, 0x3d, 0x41, 0xf6, 0x53, 0x7a, 0x13, 0xb2, 0x9e, 0x63, 
0x4e, 0x26, 0xc4, 0x91,
-       0xad, 0xc5, 0x87, 0x51, 0xe2, 0x84, 0xe0, 0xd0, 0x7c, 0x56, 0x44, 0xe0, 
0x20, 0x28, 0x17, 0x4c,
-       0x9b, 0xea, 0x8c, 0x85, 0x37, 0x17, 0xa5, 0xa3, 0xcf, 0x22, 0xe0, 0xd5, 
0x43, 0xbc, 0xa7, 0xb6,
-       0x21, 0x1b, 0xcd, 0x32, 0x5e, 0x23, 0xb3, 0x12, 0x56, 0x6c, 0x07, 0xf1, 
0xa4, 0xc2, 0xb7, 0x0d,
-       0xa2, 0x95, 0xb0, 0x62, 0xe3, 0x91, 0xc5, 0x28, 0x59, 0xc2, 0xda, 0x01, 
0x01, 0x5d, 0x40, 0x79,
-       0x64, 0xd9, 0x3c, 0x55, 0x5d, 0x90, 0x4b, 0x7c, 0x6d, 0xda, 0x0e, 0x3f, 
0xc4, 0x29, 0x1d, 0x7d,
-       0x1a, 0xa5, 0x16, 0x11, 0xac, 0xc7, 0x92, 0x53, 0xc0, 0xef, 0x8f, 0x56, 
0xa9, 0x3c, 0x90, 0x5b,
-       0x16, 0x8f, 0x03, 0x16, 0xf6, 0x08, 0x25, 0xae, 0xcb, 0x8f, 0x75, 0x58, 
0x20, 0x17, 0xf4, 0x13,
-       0x49, 0x66, 0xcd, 0x64, 0x8f, 0x32, 0xc5, 0x7c, 0x66, 0x7e, 0x54, 0x13, 
0xad, 0x5d, 0x5f, 0x65,
-       0x14, 0xba, 0x94, 0xec, 0x15, 0x22, 0x7a, 0x06, 0x8f, 0xb1, 0xeb, 0x9a, 
0x13, 0xea, 0xea, 0x9e,
-       0xad, 0xdb, 0x94, 0xe8, 0xc2, 0x21, 0x2a, 0xc0, 0xa3, 0x0c, 0x92, 0x0f, 
0x87, 0x76, 0x8f, 0x12,
-       0xe1, 0xff, 0xca, 0xcf, 0xa0, 0x10, 0x72, 0x36, 0xe5, 0xf4, 0xae, 0x32, 
0x7f, 0x1f, 0x0a, 0xdd,
-       0x5e, 0x57, 0x3f, 0x55, 0xb5, 0x97, 0x9d, 0xee, 0xcb, 0x72, 0x9c, 0x13, 
0x54, 0xb5, 0x39, 0xe0,
-       0x24, 0xb5, 0x9c, 0x40, 0x08, 0x4a, 0xf5, 0x13, 0x4d, 0xad, 0x37, 0xdf, 
0x08, 0x52, 0xb3, 0x9c,
-       0x54, 0x4e, 0xa1, 0xbc, 0x3e, 0xff, 0xca, 0x8b, 0xbb, 0x44, 0x94, 0x00, 
0x9a, 0x9d, 0x41, 0xa3,
-       0xae, 0x35, 0x85, 0x84, 0x32, 0x14, 0xeb, 0x8d, 0xc6, 0xd9, 0xe9, 0xd9, 
0x49, 0x7d, 0xc8, 0x28,
-       0x09, 0xe5, 0x6b, 0xd8, 0x5f, 0x9b, 0x13, 0xe5, 0xcb, 0x77, 0x28, 0xac, 
0x9e, 0x76, 0x86, 0x7a,
-       0xfd, 0xe4, 0xbc, 0xfe, 0x66, 0x20, 0x36, 0x2a, 0x38, 0xa1, 0xd3, 0xd2, 
0xbb, 0xbd, 0xae, 0x7a,
-       0xda, 0x1f, 0xbe, 0x29, 0x27, 0x94, 0xfe, 0xfa, 0x94, 0xbc, 0x13, 0xb1, 
0xd5, 0xd1, 0xd4, 0x15,
-       0x44, 0x4e, 0x58, 0x45, 0xbc, 0x00, 0x58, 0xba, 0xa4, 0x32, 0xbc, 0x0b, 
0xed, 0x00, 0xf6, 0xd4,
-       0x6e, 0x53, 0xef, 0xb5, 0xf4, 0x60, 0x2b, 0x05, 0x41, 0xe9, 0xa4, 0x3e, 
0x54, 0x07, 0x43, 0xbd,
-       0xd3, 0xd5, 0xfb, 0xf5, 0x2e, 0xb3, 0x2a, 0xd3, 0xba, 0xae, 0x9d, 0x74, 
0xc2, 0xd4, 0xa4, 0x62,
-       0x01, 0x2c, 0x3b, 0x37, 0xe5, 0xed, 0x3b, 0x2c, 0xaa, 0xbe, 0x56, 0xbb, 
0x43, 0x7d, 0xd8, 0x39,
-       0x55, 0xcb, 0x71, 0x74, 0x08, 0xfb, 0x7d, 0xad, 0xd7, 0x50, 0x07, 0x83, 
0x4e, 0xf7, 0xa5, 0x20,
-       0x26, 0xd0, 0x13, 0xf8, 0xfe, 0xe0, 0x4d, 0xb7, 0xd1, 0xd6, 0x7a, 0xdd, 
0xce, 0x37, 0x6a, 0x53,
-       0x5f, 0x7f, 0x23, 0xa9, 0xfc, 0x43, 0x19, 0xb2, 0x32, 0x2c, 0x20, 0x0d, 
0xf2, 0x78, 0xec, 0x11,
-       0x47, 0xc7, 0x96, 0x25, 0x83, 0xe4, 0xf3, 0xe8, 0x51, 0xa5, 0x56, 0x67, 
0xbc, 0x75, 0xcb, 0x6a,
-       0xc7, 0xb4, 0x1c, 0x96, 0xbf, 0x43, 0x98, 0x74, 0x21, 0x73, 0xcb, 0xf6, 
0x98, 0x74, 0xb1, 0xc4,
-       0xa4, 0x0b, 0x74, 0x06, 0x20, 0x30, 0x09, 0x1e, 0x5d, 0xca, 0xe2, 0xf0, 
0x47, 0xdb, 0x82, 0xaa,
-       0x78, 0x74, 0xd9, 0x8e, 0x69, 0x42, 0x3b, 0x36, 0x40, 0x16, 0x1c, 0x4a, 
0x58, 0x6a, 0xe8, 0xf6,
-       0xd8, 0x5f, 0x5f, 0x22, 0xbc, 0x7e, 0xb1, 0x35, 0x3e, 0x35, 0x7a, 0x63, 
0xb1, 0x10, 0xdb, 0x31,
-       0xad, 0x8c, 0xd7, 0x68, 0xc8, 0x83, 0xc7, 0x42, 0xda, 0x5a, 0xc9, 0x2d, 
0xf7, 0x76, 0xbe, 0xdc,
-       0x56, 0xde, 0x66, 0x69, 0x8d, 0x37, 0xc9, 0xe8, 0x97, 0x71, 0x50, 0x84, 
0x58, 0x77, 0x41, 0x47,
-       0x97, 0x8e, 0x4d, 0xcd, 0xbf, 0x20, 0xc6, 0x86, 0x0e, 0xe2, 0xc4, 0xe9, 
0xd5, 0xb6, 0x3a, 0x0c,
-       0x42, 0x98, 0x1b, 0xfa, 0xbc, 0x8f, 0xdf, 0xfd, 0x0a, 0xfa, 0x0a, 0x32, 
0xd8, 0xba, 0xc1, 0x0b,
-       0x57, 0x9e, 0x1c, 0x3f, 0xdb, 0x46, 0x3c, 0x67, 0x6c, 0xc7, 0x34, 0x09, 
0x81, 0xba, 0x90, 0x35,
-       0xc8, 0x18, 0xcf, 0x2d, 0x4f, 0x9e, 0xec, 0x1f, 0x6d, 0x81, 0xd6, 0x14, 
0x9c, 0xed, 0x98, 0xe6,
-       0x83, 0xa0, 0xb7, 0xcb, 0x9e, 0x64, 0x64, 0xcf, 0xa9, 0x27, 0x4f, 0xf7, 
0x3f, 0xdd, 0x02, 0x55,
-       0xf5, 0x37, 0x79, 0xe6, 0xd4, 0x0b, 0x35, 0x21, 0x7c, 0x8c, 0xda, 0x90, 
0xa6, 0xe4, 0x9a, 0x38,
-       0xf2, 0x80, 0xff, 0x87, 0x5b, 0xe0, 0x76, 0x19, 0x5f, 0x3b, 0xa6, 0x09, 
0x00, 0xb6, 0x3a, 0x6c,
-       0x47, 0x1f, 0x9b, 0x14, 0x5b, 0xd6, 0x82, 0x67, 0x87, 0xed, 0x56, 0x47, 
0xcf, 0x69, 0x09, 0x5e,
-       0xb6, 0x3a, 0x6c, 0x7f, 0xc0, 0x66, 0xc7, 0x21, 0x33, 0x82, 0xfd, 0xfb, 
0x02, 0xdb, 0xcc, 0x8e,
-       0xc6, 0x19, 0xd9, 0xec, 0x08, 0x88, 0xea, 0x9f, 0x40, 0xce, 0x8f, 0x16, 
0xe8, 0x04, 0x0a, 0xfc,
-       0x9c, 0x96, 0xbf, 0xea, 0x77, 0x3d, 0xdb, 0x54, 0x33, 0x61, 0xf6, 0x25, 
0x32, 0x5d, 0x3c, 0x30,
-       0xf2, 0x1b, 0xc8, 0x07, 0x81, 0xe3, 0x81, 0xa1, 0x7f, 0x15, 0x87, 0xf2, 
0x7a, 0xd0, 0x40, 0x3d,
-       0xd8, 0x23, 0xd8, 0xb1, 0x16, 0xfa, 0xd8, 0x74, 0x4c, 0x3a, 0xf1, 0x2f, 
0x07, 0x6c, 0x23, 0xa4,
-       0xc8, 0x01, 0x5a, 0x82, 0x1f, 0x9d, 0x42, 0x91, 0x15, 0x31, 0x01, 0x5e, 
0x62, 0x6b, 0xbc, 0x02,
-       0xe3, 0x97, 0x70, 0xd5, 0x5f, 0xc0, 0xe1, 0x2d, 0x81, 0x07, 0x5d, 0xc2, 
0xa3, 0xa0, 0x07, 0xd4,
-       0x37, 0x6e, 0x53, 0x7e, 0x12, 0x71, 0xdf, 0x92, 0xb3, 0x2f, 0xaf, 0xcf, 
0x1d, 0x7a, 0x1b, 0x34,
-       0xb7, 0xfa, 0x01, 0xbc, 0xff, 0x1d, 0x51, 0xa7, 0x9a, 0x87, 0xac, 0x5c, 
0xcb, 0xd5, 0xe7, 0x50,
-       0x0c, 0x2f, 0x40, 0xd6, 0xe1, 0xaf, 0x2e, 0x68, 0x66, 0xde, 0xf4, 0xea, 
0xaa, 0xac, 0x66, 0x21,
-       0xcd, 0x57, 0x57, 0x35, 0x07, 0x19, 0x11, 0x62, 0xaa, 0x7f, 0x17, 0x87, 
0x7c, 0xb0, 0x44, 0xd0,
-       0x97, 0x90, 0x0a, 0x76, 0x65, 0xb7, 0xb3, 0x25, 0xe7, 0x63, 0x65, 0xbc, 
0xbf, 0x52, 0xb7, 0x9f,
-       0x0e, 0x9f, 0xb5, 0x3a, 0x84, 0x8c, 0x58, 0x62, 0xe8, 0x15, 0xc0, 0xd2, 
0xb1, 0x76, 0xd0, 0x2a,
-       0xc4, 0x7d, 0x9c, 0x0f, 0x5a, 0x0c, 0xe5, 0xdf, 0x12, 0xa1, 0x9d, 0x82, 
0xe5, 0xed, 0x8e, 0x01,
-       0xa4, 0x0d, 0x62, 0xe1, 0x85, 0x14, 0xf4, 0xc5, 0x4e, 0x93, 0x5b, 0x6b, 
0x32, 0x08, 0x16, 0xbf,
-       0x38, 0x16, 0xfa, 0x06, 0x72, 0xd8, 0x32, 0x27, 0x54, 0xf7, 0x6c, 0x69, 
0x93, 0x1f, 0xef, 0x86,
-       0x5b, 0x67, 0x28, 0x43, 0x9b, 0x45, 0x71, 0x2c, 0x7e, 0x56, 0x3f, 0x84, 
0x34, 0x97, 0x86, 0x3e,
-       0x80, 0x22, 0x97, 0xa6, 0x4f, 0x4d, 0xcb, 0x32, 0x5d, 0xb9, 0x3b, 0x53, 
0xe0, 0xb4, 0x53, 0x4e,
-       0xaa, 0xbe, 0x80, 0xac, 0x44, 0x40, 0xdf, 0x83, 0xcc, 0x8c, 0x38, 0xa6, 
0x2d, 0x7a, 0xb1, 0xa4,
-       0x26, 0x47, 0x8c, 0x6e, 0x8f, 0xc7, 0x2e, 0xf1, 0x78, 0x91, 0x90, 0xd4, 
0xe4, 0xe8, 0xf8, 0x31,
-       0x1c, 0xde, 0xb2, 0x06, 0x94, 0xbf, 0x4d, 0x40, 0x3e, 0x68, 0x9a, 0xd1, 
0x6b, 0x28, 0xe1, 0x11,
-       0x73, 0x56, 0x7d, 0x86, 0x3d, 0x8f, 0x38, 0x74, 0xd7, 0x3b, 0x30, 0x7b, 
0x02, 0xa6, 0x2f, 0x50,
-       0xd0, 0x57, 0x90, 0xbd, 0x36, 0xc9, 0xcd, 0xfd, 0x8e, 0x47, 0x32, 0x0c, 
0xa2, 0x45, 0xd1, 0x5b,
-       0x90, 0x17, 0xa4, 0xf4, 0x29, 0x9e, 0xcd, 0x58, 0x7d, 0x30, 0xa6, 0xb2, 
0xe2, 0xda, 0x05, 0x56,
-       0xf6, 0xb6, 0xa7, 0x02, 0xab, 0x45, 0x95, 0xf7, 0xa1, 0x10, 0xba, 0xaa, 
0x80, 0xca, 0x90, 0x9c,
-       0x3b, 0x96, 0xbf, 0x2f, 0x31, 0x77, 0x2c, 0xe5, 0xe7, 0xb0, 0xbf, 0x06, 
0xf2, 0x30, 0x57, 0x86,
-       0x7e, 0x1b, 0x4a, 0xa1, 0x6b, 0x11, 0xcb, 0xed, 0xf3, 0xbd, 0x10, 0xb5, 
0x63, 0x28, 0x9f, 0x43,
-       0x71, 0x45, 0x36, 0x57, 0x90, 0x2e, 0x15, 0xa4, 0xa8, 0x02, 0xd9, 0xf0, 
0xb5, 0xca, 0xa2, 0xe6,
-       0x0f, 0x95, 0xff, 0x49, 0x41, 0x21, 0x74, 0xe9, 0x03, 0x75, 0x20, 0x6d, 
0x7a, 0x24, 0x08, 0x85,
-       0xcf, 0xb7, 0xbb, 0x33, 0x52, 0xeb, 0x78, 0x64, 0xaa, 0x09, 0x84, 0xea, 
0x18, 0xa0, 0x63, 0x10,
-       0xea, 0x99, 0x63, 0x93, 0x38, 0xcc, 0x99, 0xc3, 0xf7, 0xbd, 0xa4, 0x76, 
0x05, 0x6f, 0x79, 0xd5,
-       0x8b, 0x45, 0xbb, 0xe5, 0x2b, 0xec, 0x0b, 0xe4, 0x81, 0x55, 0x40, 0x3c, 
0x73, 0xa8, 0xbf, 0x2b,
-       0x94, 0x0c, 0x76, 0x85, 0xaa, 0xbf, 0x4e, 0x40, 0x8a, 0xc9, 0x45, 0x1d, 
0x48, 0x48, 0xe0, 0x68,
-       0xf7, 0xa6, 0x56, 0x14, 0x0f, 0x34, 0xd5, 0x12, 0xa6, 0x81, 0x4e, 0xe4, 
0x69, 0x76, 0x22, 0xf2,
-       0x36, 0x43, 0x18, 0x6c, 0xed, 0x3c, 0x1b, 0x7d, 0xe8, 0xef, 0x5b, 0x09, 
0xa7, 0x7c, 0x54, 0x13,
-       0x97, 0xfd, 0x6b, 0xfe, 0x65, 0xff, 0x5a, 0x9d, 0xfa, 0xd7, 0x91, 0xd1, 
0x27, 0x50, 0x70, 0x2f,
-       0x6d, 0xc7, 0xd3, 0x05, 0x47, 0xea, 0x1d, 0x1c, 0xc0, 0x5f, 0xe4, 0x27, 
0xa3, 0xe8, 0x11, 0xa4,
-       0x2d, 0x7c, 0x41, 0x2c, 0x79, 0x7b, 0x4d, 0x0c, 0xd0, 0x7b, 0x90, 0xb3, 
0x4c, 0x7a, 0xa5, 0x33,
-       0x7f, 0xcd, 0x88, 0xe3, 0x01, 0x36, 0x3e, 0x73, 0xac, 0xea, 0xcf, 0xe5, 
0x19, 0xfb, 0xfc, 0x1d,
-       0x67, 0xec, 0x83, 0xa1, 0x26, 0x3a, 0xe1, 0x02, 0x64, 0x3b, 0xdd, 0xa1, 
0xfa, 0x52, 0xd5, 0xca,
-       0x09, 0x94, 0x87, 0x74, 0xeb, 0xa4, 0x57, 0x1f, 0x96, 0x93, 0xe2, 0xb0, 
0xad, 0x77, 0xa2, 0xd6,
-       0xbb, 0xe5, 0x14, 0xda, 0x83, 0x3c, 0xeb, 0xd7, 0x06, 0xc3, 0xfa, 0x69, 
0xbf, 0x9c, 0x46, 0x45,
-       0xc8, 0x35, 0xcf, 0xb4, 0xfa, 0xb0, 0xd3, 0xeb, 0x96, 0x33, 0xac, 0x13, 
0x7c, 0x55, 0x7f, 0x5d,
-       0xd7, 0x1b, 0x27, 0xf5, 0xc1, 0xa0, 0x9c, 0x3d, 0xfe, 0x02, 0xbe, 0xfb, 
0x4f, 0x11, 0xc7, 0x79,
-       0x8d, 0xef, 0x4a, 0xd6, 0x67, 0xe6, 0x37, 0x05, 0x9f, 0xae, 0x5f, 0x3f, 
0xbb, 0xc8, 0x70, 0x33,
-       0x3c, 0xff, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x52, 0xef, 0xb7, 
0x6f, 0x31, 0x00, 0x00,
+       // 4432 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5b, 
0xcd, 0x6f, 0xe3, 0x58,
+       0x72, 0xd7, 0xb7, 0xa5, 0x92, 0x2c, 0xd3, 0xcf, 0xdd, 0xbd, 0x6e, 0x66, 
0x3e, 0xba, 0x39, 0x93,
+       0x99, 0xde, 0xd9, 0x1e, 0xf5, 0xb4, 0x7b, 0x3e, 0x3d, 0xbb, 0x33, 0x2b, 
0x5b, 0x94, 0xc5, 0x6e,
+       0x7d, 0x0d, 0x25, 0xdb, 0xd3, 0xb3, 0x9b, 0xe1, 0xd0, 0xe2, 0x93, 0x4c, 
0x98, 0x22, 0x15, 0x92,
+       0xb2, 0x47, 0x41, 0x16, 0x0b, 0xe4, 0x10, 0x04, 0xc8, 0x25, 0x39, 0xe4, 
0xb0, 0xd7, 0x0d, 0x90,
+       0x4b, 0x02, 0x04, 0xc9, 0x06, 0x01, 0x02, 0x04, 0x09, 0xb0, 0xc9, 0x7f, 
0x90, 0x5b, 0xce, 0xf9,
+       0x07, 0x16, 0x41, 0x10, 0x20, 0x97, 0x04, 0xef, 0x83, 0x14, 0x25, 0xd9, 
0x3d, 0x92, 0xdd, 0xc8,
+       0x4d, 0x2c, 0xbe, 0xfa, 0x55, 0xb1, 0x5e, 0xbd, 0x7a, 0x55, 0xf5, 0x9e, 
0xe0, 0xf6, 0x09, 0xd6,
+       0x87, 0x9a, 0x3b, 0xb6, 0x6d, 0xec, 0x6a, 0xfa, 0xc8, 0x2c, 0x8d, 0x5c, 
0xc7, 0x77, 0xd0, 0x7d,
+       0xc7, 0x1d, 0x94, 0xf4, 0x91, 0xde, 0x3b, 0xc5, 0x25, 0x32, 0xa2, 0x34, 
0x74, 0x0c, 0x6c, 0x95,
+       0x46, 0xe6, 0x08, 0x5b, 0xa6, 0x8d, 0x4b, 0xe7, 0x8f, 0xc5, 0xbb, 0x03, 
0xc7, 0x19, 0x58, 0xf8,
+       0x11, 0x65, 0x38, 0x19, 0xf7, 0x1f, 0xe9, 0xf6, 0x84, 0x71, 0x8b, 0xf7, 
0xe6, 0x5f, 0x19, 0xd8,
+       0xeb, 0xb9, 0xe6, 0xc8, 0x77, 0x5c, 0x36, 0x42, 0xfa, 0xfb, 0x2c, 0xc0, 
0xbe, 0x33, 0x1c, 0x39,
+       0x36, 0xb6, 0x7d, 0x0f, 0xfd, 0x0e, 0x80, 0xef, 0xea, 0xb6, 0xd7, 0x77, 
0xdc, 0xa1, 0xb7, 0x1d,
+       0xbf, 0x97, 0x7c, 0x90, 0xdf, 0xf9, 0x51, 0xe9, 0x3b, 0x75, 0x28, 0x4d, 
0x21, 0x4a, 0xdd, 0x90,
+       0x5f, 0xb6, 0x7d, 0x77, 0xa2, 0x46, 0x00, 0x51, 0x0f, 0x0a, 0xa3, 0x9e, 
0x63, 0x59, 0xb8, 0xe7,
+       0x9b, 0x8e, 0xed, 0x6d, 0x27, 0xa8, 0x80, 0xcf, 0x57, 0x13, 0xd0, 0x8e, 
0x20, 0x30, 0x11, 0x33,
+       0xa0, 0x68, 0x02, 0xb7, 0x2e, 0x4c, 0xdb, 0x70, 0x2e, 0x4c, 0x7b, 0xa0, 
0x79, 0xbe, 0xab, 0xfb,
+       0x78, 0x60, 0x62, 0x6f, 0x3b, 0x49, 0x85, 0x55, 0x57, 0x13, 0x76, 0x1c, 
0x20, 0x75, 0x42, 0x20,
+       0x26, 0x73, 0xeb, 0x62, 0xf1, 0x0d, 0xfa, 0x02, 0x32, 0x3d, 0xc7, 0xc0, 
0xae, 0xb7, 0x9d, 0xa2,
+       0xc2, 0x3e, 0x59, 0x4d, 0xd8, 0x3e, 0xe5, 0x65, 0xf8, 0x1c, 0x88, 0x98, 
0x0c, 0xdb, 0xe7, 0xa6,
+       0xeb, 0xd8, 0x43, 0x32, 0x66, 0x3b, 0x7d, 0x1d, 0x93, 0xc9, 0x11, 0x04, 
0x6e, 0xb2, 0x28, 0xa8,
+       0x68, 0xc1, 0xc6, 0xdc, 0xb4, 0x21, 0x01, 0x92, 0x67, 0x78, 0xb2, 0x1d, 
0xbf, 0x17, 0x7f, 0x90,
+       0x53, 0xc9, 0x4f, 0xb4, 0x0f, 0xe9, 0x73, 0xdd, 0x1a, 0xe3, 0xed, 0xc4, 
0xbd, 0xf8, 0x83, 0xfc,
+       0xce, 0xbb, 0x4b, 0xa8, 0xd0, 0x0e, 0x51, 0x55, 0xc6, 0xbb, 0x9b, 0xf8, 
0x38, 0x2e, 0x3a, 0xb0,
+       0xb9, 0x30, 0x87, 0x97, 0xc8, 0xab, 0xcc, 0xca, 0x2b, 0x2d, 0x23, 0x6f, 
0x3f, 0x84, 0x8d, 0x0a,
+       0xfc, 0x7d, 0xd8, 0xbe, 0x6a, 0x1e, 0x2f, 0x91, 0xfb, 0x74, 0x56, 0xee, 
0xfb, 0x4b, 0xc8, 0x9d,
+       0x47, 0x9f, 0x44, 0xa5, 0xf7, 0x20, 0x1f, 0x99, 0xd8, 0x4b, 0x04, 0x7e, 
0x36, 0x2b, 0xf0, 0xc1,
+       0x52, 0x73, 0x6b, 0x60, 0x77, 0xce, 0xa6, 0x0b, 0x93, 0xfc, 0x72, 0x6c, 
0x1a, 0x81, 0x8d, 0x08,
+       0x94, 0xfe, 0x21, 0x0b, 0xb7, 0x1b, 0xd8, 0xf3, 0xf4, 0x01, 0x3e, 0x36, 
0xfd, 0xd3, 0x48, 0x0c,
+       0x69, 0x00, 0xf4, 0xc2, 0x27, 0x2a, 0x7c, 0x39, 0x67, 0x99, 0x42, 0xa8, 
0x11, 0x00, 0xf4, 0x63,
+       0x48, 0xd3, 0xa5, 0xb0, 0xaa, 0x75, 0x6a, 0x31, 0x95, 0x31, 0xa2, 0x9f, 
0xc2, 0x46, 0xcf, 0x19,
+       0x9e, 0x98, 0x36, 0xd6, 0x46, 0xfa, 0xc4, 0x72, 0x74, 0x63, 0x3b, 0x49, 
0xb1, 0x1e, 0x2f, 0xa7,
+       0x15, 0xe1, 0x6c, 0x33, 0xc6, 0x5a, 0x4c, 0x2d, 0xf6, 0x66, 0x28, 0xe8, 
0x1b, 0xd8, 0xf4, 0x8c,
+       0x33, 0xad, 0x3f, 0xb6, 0xa9, 0xdf, 0x69, 0xde, 0x08, 0xf7, 0xb6, 0x53, 
0x14, 0x7f, 0x67, 0x09,
+       0xfc, 0x8e, 0x71, 0x56, 0xe5, 0xac, 0x9d, 0x11, 0xee, 0xd5, 0x62, 0xea, 
0x86, 0x37, 0x4b, 0x42,
+       0xc7, 0x50, 0x1c, 0xe9, 0xae, 0x66, 0x38, 0xa1, 0xfa, 0x19, 0x0a, 0xff, 
0x68, 0x99, 0x15, 0xa1,
+       0xbb, 0x15, 0x67, 0xaa, 0x7c, 0x61, 0x14, 0x79, 0x46, 0x2d, 0x80, 0x51, 
0x18, 0x9d, 0xb7, 0xd7,
+       0xae, 0xb1, 0xac, 0x6b, 0x31, 0x35, 0x02, 0x81, 0x54, 0xc8, 0x47, 0x42, 
0xf1, 0x76, 0xf6, 0x3a,
+       0x0b, 0xb7, 0x16, 0x53, 0xa3, 0x20, 0xa8, 0x03, 0x05, 0x17, 0xeb, 0x46, 
0xf8, 0xed, 0xb9, 0xa5,
+       0x41, 0x55, 0xac, 0x1b, 0xd3, 0x4f, 0xcf, 0xbb, 0xd3, 0x47, 0xe2, 0xa3, 
0x9e, 0x69, 0x60, 0xcd,
+       0xb4, 0x47, 0x63, 0x7f, 0x3b, 0x4f, 0x21, 0x1f, 0x2e, 0x33, 0x5b, 0xa6, 
0x81, 0x15, 0xc2, 0x53,
+       0x8b, 0xa9, 0x39, 0x2f, 0x78, 0x40, 0x7d, 0xe0, 0xdb, 0x81, 0x66, 0xda, 
0xfe, 0x74, 0x9a, 0x0a,
+       0x2b, 0x06, 0x10, 0xc5, 0xf6, 0x23, 0x73, 0xb5, 0x79, 0x31, 0x4f, 0x44, 
0x18, 0xd0, 0xc2, 0xd6,
+       0x36, 0xd9, 0x5e, 0xbf, 0x7e, 0x9c, 0x9a, 0x8a, 0x89, 0x10, 0xd1, 0x11, 
0xac, 0xcf, 0xba, 0x73,
+       0x71, 0x69, 0x7f, 0x9b, 0xf3, 0xe5, 0x42, 0x3f, 0xf2, 0xbc, 0x97, 0x81, 
0x94, 0xeb, 0x38, 0xbe,
+       0xf4, 0xef, 0x71, 0xc8, 0xb6, 0x39, 0xd3, 0xcb, 0x0e, 0x17, 0x0f, 0x01, 
0x11, 0x19, 0x5a, 0xe8,
+       0x94, 0x9a, 0x69, 0xb0, 0x44, 0x23, 0xa7, 0x0a, 0xe4, 0x4d, 0xe8, 0xbb, 
0x8a, 0x41, 0x36, 0xec,
+       0x82, 0x61, 0x7a, 0x23, 0x4b, 0x9f, 0x68, 0x86, 0xee, 0xeb, 0x3c, 0x2e, 
0x2c, 0xe3, 0x5c, 0x15,
+       0xc6, 0x56, 0xd1, 0x7d, 0x5d, 0xcd, 0x1b, 0xd3, 0x07, 0xe9, 0x8f, 0x53, 
0x00, 0xd3, 0x05, 0x82,
+       0x5e, 0x87, 0xfc, 0xd8, 0x36, 0x7f, 0x77, 0x8c, 0x35, 0x5b, 0x1f, 0xe2, 
0xed, 0x34, 0x8d, 0xc5,
+       0xc0, 0x48, 0x4d, 0x7d, 0x88, 0xd1, 0x3e, 0xa4, 0xa8, 0x8d, 0xe3, 0xd7, 
0xb2, 0xb1, 0x4a, 0x99,
+       0xd1, 0x9b, 0xb0, 0xee, 0x8d, 0x4f, 0x22, 0xa9, 0x1b, 0xfb, 0xe0, 0x59, 
0x22, 0x49, 0x4f, 0xa8,
+       0xc3, 0x07, 0xb9, 0xd0, 0x27, 0x2b, 0xad, 0xf5, 0x12, 0xf5, 0xf5, 0x20, 
0x3d, 0x61, 0x40, 0xa8,
+       0x0b, 0x6b, 0xce, 0xd8, 0xa7, 0x98, 0x2c, 0xe5, 0xd9, 0x5d, 0x0d, 0xb3, 
0xc5, 0x98, 0x19, 0x68,
+       0x00, 0xb5, 0x30, 0x2d, 0x99, 0x1b, 0x4f, 0x8b, 0xf8, 0x09, 0xe4, 0x23, 
0xfa, 0x5f, 0xb2, 0x35,
+       0xde, 0x8a, 0x6e, 0x8d, 0xb9, 0xe8, 0xde, 0xba, 0x0b, 0x85, 0xa8, 0x9a, 
0xab, 0xf0, 0x4a, 0xff,
+       0x08, 0xb0, 0xd5, 0xf1, 0x75, 0xdb, 0xd0, 0x5d, 0x63, 0xfa, 0xd9, 0x9e, 
0xf4, 0xdf, 0x09, 0x80,
+       0xb6, 0x6b, 0x0e, 0x4d, 0xdf, 0x3c, 0xc7, 0x1e, 0x7a, 0x17, 0x32, 0xed, 
0xb2, 0xaa, 0x55, 0x5a,
+       0x42, 0x4c, 0xbc, 0xff, 0xcb, 0xbf, 0xfb, 0x9f, 0x5f, 0xa7, 0x7f, 0x6b, 
0xec, 0xda, 0xbb, 0xe4,
+       0x23, 0x77, 0xc3, 0x09, 0xdc, 0x1d, 0xe9, 0xae, 0xe1, 0xec, 0x9e, 0x3f, 
0x46, 0x0f, 0x61, 0xad,
+       0x5a, 0x2f, 0x77, 0xbb, 0x72, 0x53, 0x88, 0x8b, 0xaf, 0xd3, 0xf1, 0x77, 
0xe7, 0xc6, 0xf6, 0x2d,
+       0xdd, 0xf7, 0xb1, 0x4d, 0x46, 0x7f, 0x08, 0x85, 0x03, 0xb5, 0x75, 0xd8, 
0xd6, 0xf6, 0x9e, 0x6b,
+       0xcf, 0xe4, 0xe7, 0x42, 0x42, 0x7c, 0x93, 0xb2, 0xbc, 0x36, 0xc7, 0x32, 
0x70, 0x9d, 0xf1, 0x48,
+       0x3b, 0x99, 0x68, 0x67, 0x78, 0xc2, 0xa5, 0x28, 0x8d, 0xf6, 0x61, 0xbd, 
0x23, 0x0b, 0xc9, 0x2b,
+       0xa4, 0x98, 0xc3, 0xd1, 0xd8, 0xf2, 0x30, 0x19, 0xfd, 0x11, 0x14, 0xcb, 
0x9d, 0x8e, 0x72, 0xd0,
+       0xd4, 0x8e, 0x95, 0x66, 0xa5, 0x75, 0xdc, 0x11, 0x52, 0xe2, 0x1b, 0x94, 
0xe9, 0xd5, 0x39, 0xa6,
+       0x48, 0xa8, 0x64, 0x8c, 0xf9, 0xae, 0xdc, 0xe9, 0x6a, 0x9d, 0xae, 0x2a, 
0x97, 0x1b, 0x42, 0x5a,
+       0x7c, 0x8b, 0x72, 0xdd, 0xbb, 0xc4, 0x00, 0x3e, 0xf6, 0x7c, 0xcf, 0x77, 
0x09, 0xf1, 0xfc, 0x31,
+       0x7a, 0x1f, 0xf2, 0x8d, 0x72, 0x3b, 0x14, 0x97, 0xb9, 0x42, 0xdc, 0x50, 
0x1f, 0x69, 0x4c, 0xa4,
+       0xb7, 0x7b, 0xfe, 0x58, 0xf2, 0xe1, 0x56, 0x05, 0x8f, 0x5c, 0xdc, 0xd3, 
0x7d, 0x6c, 0x44, 0xa6,
+       0xe0, 0x2d, 0x48, 0xa9, 0x72, 0xb9, 0x22, 0xc4, 0xc4, 0x57, 0x28, 0xcc, 
0x9d, 0x39, 0x18, 0xb2,
+       0x7d, 0x70, 0xa9, 0xfb, 0xaa, 0x5c, 0xee, 0xca, 0xda, 0x91, 0x22, 0x1f, 
0x0b, 0xf1, 0x2b, 0xa4,
+       0xf6, 0x5c, 0xac, 0xfb, 0x58, 0x3b, 0x37, 0xf1, 0x05, 0x91, 0xfa, 0x4f, 
0x09, 0x5e, 0x67, 0x79,
+       0xa6, 0x8f, 0x3d, 0xf4, 0x43, 0xd8, 0xd8, 0x6f, 0x35, 0xf6, 0x94, 0xa6, 
0xac, 0xb5, 0x65, 0x95,
+       0xce, 0x4a, 0x4c, 0x7c, 0x9b, 0x02, 0xdd, 0x9f, 0x07, 0x0a, 0x52, 0x17, 
0xec, 0x06, 0x13, 0xf3,
+       0x19, 0x08, 0x01, 0xf7, 0x41, 0xbd, 0xb5, 0x57, 0xae, 0xd7, 0x9f, 0x0b, 
0x71, 0xf1, 0x01, 0x65,
+       0x97, 0xae, 0x60, 0x1f, 0x58, 0xce, 0x89, 0x6e, 0x59, 0x94, 0xff, 0x29, 
0xdc, 0x09, 0xf9, 0x89,
+       0x63, 0xc8, 0x15, 0xed, 0xa8, 0x5c, 0x3f, 0x94, 0x3b, 0x42, 0x42, 0x2c, 
0x51, 0x94, 0x07, 0x57,
+       0xa1, 0x10, 0x17, 0xc1, 0x86, 0x46, 0x1d, 0x9c, 0x98, 0x13, 0xbd, 0x07, 
0x39, 0x55, 0xee, 0xd4,
+       0x0e, 0xab, 0xd5, 0x3a, 0x71, 0x13, 0xee, 0xbc, 0x0b, 0xb6, 0xf3, 0x4e, 
0xc7, 0xfd, 0xbe, 0x85,
+       0xb9, 0x01, 0x8f, 0x55, 0xa5, 0x2b, 0x6b, 0x55, 0xa5, 0x2e, 0xbf, 0xc0, 
0x4b, 0x5c, 0xd3, 0xc7,
+       0x5a, 0xdf, 0xb4, 0xa8, 0x1c, 0xe9, 0x37, 0x71, 0xd8, 0xe4, 0xb9, 0x58, 
0x24, 0xd7, 0xdc, 0x85,
+       0x62, 0x68, 0xc7, 0x83, 0xbd, 0x67, 0xfb, 0x47, 0x42, 0x2c, 0x70, 0x9f, 
0xab, 0xcc, 0x38, 0x38,
+       0x39, 0xeb, 0x9d, 0x13, 0x3d, 0x54, 0x10, 0x03, 0xde, 0x86, 0xac, 0x1e, 
0xc8, 0x5a, 0x79, 0x7f,
+       0xff, 0xb0, 0x71, 0x58, 0x2f, 0x77, 0x5b, 0x6a, 0x47, 0x88, 0x8b, 0x3b, 
0x14, 0xe7, 0xe1, 0x15,
+       0x38, 0x43, 0xec, 0x0e, 0xb0, 0xa6, 0xf7, 0x7a, 0xe3, 0xe1, 0xd8, 0xd2, 
0x7d, 0xc7, 0xa5, 0xd6,
+       0xa8, 0xc3, 0xf7, 0x02, 0x4c, 0xf9, 0xcb, 0xae, 0x5a, 0xde, 0xef, 0x6a, 
0xad, 0xc3, 0x6e, 0xfb,
+       0xb0, 0x4b, 0x4c, 0xfb, 0x88, 0x02, 0x7e, 0xff, 0x0a, 0x40, 0xfc, 0xad, 
0xef, 0xea, 0x3d, 0x5f,
+       0xe3, 0x31, 0x90, 0x7c, 0xf3, 0xff, 0xc6, 0xe1, 0x6e, 0x67, 0x64, 0x99, 
0xbe, 0xaf, 0x9f, 0x58,
+       0x98, 0xa6, 0x72, 0x91, 0x6f, 0xaf, 0xc3, 0xed, 0x76, 0x59, 0x51, 0xb5, 
0x63, 0xa5, 0x5b, 0xd3,
+       0x54, 0xb9, 0xd3, 0x55, 0x95, 0xfd, 0xae, 0xd2, 0x6a, 0x0a, 0x31, 0xf1, 
0x31, 0x95, 0xf4, 0x83,
+       0x39, 0x49, 0x9e, 0xd1, 0xd7, 0x46, 0xba, 0xe9, 0x6a, 0x17, 0xa6, 0x7f, 
0xaa, 0xb9, 0xd8, 0xf3,
+       0x5d, 0x93, 0x6e, 0x24, 0x44, 0xf3, 0x0a, 0x6c, 0x76, 0xda, 0x75, 0xa5, 
0x3b, 0x83, 0x14, 0x17,
+       0xdf, 0xa5, 0x48, 0x6f, 0x5f, 0x82, 0xe4, 0x11, 0xc5, 0xe6, 0x51, 0x9a, 
0x70, 0xa7, 0xad, 0xb6,
+       0xf6, 0xe5, 0x4e, 0x87, 0xf8, 0xb4, 0x5c, 0xd1, 0xe4, 0xba, 0xdc, 0x90, 
0x9b, 0xf4, 0xf3, 0x2f,
+       0xb7, 0x27, 0x55, 0xca, 0x75, 0x7a, 0xd8, 0xf3, 0x88, 0x7b, 0x63, 0x43, 
0xc3, 0x16, 0xa6, 0x35,
+       0x0c, 0xb1, 0xc0, 0x1f, 0xc4, 0xe1, 0x4e, 0x10, 0x3e, 0xc3, 0xdc, 0xab, 
0x3b, 0x19, 0x61, 0x4f,
+       0x3a, 0x85, 0x94, 0x6c, 0x8f, 0x87, 0xe8, 0x11, 0x64, 0x95, 0xae, 0xac, 
0x96, 0xf7, 0xea, 0xf2,
+       0x34, 0x78, 0x52, 0x21, 0xd3, 0x0c, 0x6f, 0xd7, 0xf4, 0xb1, 0x4b, 0x6c, 
0x48, 0x74, 0x7c, 0x04,
+       0xd9, 0xc6, 0x61, 0xbd, 0xab, 0x34, 0xca, 0x6d, 0x21, 0x7e, 0x15, 0xc3, 
0x70, 0x6c, 0xf9, 0xe6,
+       0x50, 0x1f, 0x11, 0x25, 0x7e, 0x99, 0x80, 0x7c, 0x24, 0x41, 0x9d, 0xdf, 
0xd2, 0xe3, 0x0b, 0x5b,
+       0xfa, 0x5d, 0xc8, 0xd2, 0xca, 0x43, 0x33, 0x0d, 0xbe, 0x23, 0xac, 0xd1, 
0x67, 0xc5, 0x40, 0x6d,
+       0x00, 0xd3, 0xd3, 0x4e, 0x9c, 0xb1, 0x6d, 0x60, 0x56, 0x86, 0x14, 0x97, 
0x2a, 0x43, 0x14, 0x6f,
+       0x8f, 0xf1, 0x94, 0xc8, 0x47, 0xab, 0x39, 0x33, 0x78, 0x46, 0x3b, 0x70, 
0x7b, 0x31, 0x27, 0x24,
+       0x92, 0x53, 0x54, 0xf2, 0x42, 0x9f, 0x62, 0xa2, 0x18, 0x0b, 0xfb, 0x6b, 
0xfa, 0xe6, 0x69, 0xcf,
+       0xaf, 0x93, 0x70, 0x47, 0xfe, 0x16, 0xf7, 0xc6, 0xd4, 0x57, 0x3b, 0xbe, 
0x3e, 0x08, 0x2b, 0xa4,
+       0x36, 0xe4, 0x23, 0xdd, 0x06, 0x9e, 0xe8, 0xac, 0x5a, 0x7a, 0x46, 0x21, 
0xc8, 0x7e, 0xcb, 0x32,
+       0x77, 0xbe, 0xdf, 0x9a, 0x3c, 0x0b, 0xcf, 0x4f, 0x67, 0x30, 0xc8, 0x71, 
0xe4, 0x65, 0xe4, 0x5c,
+       0xaa, 0xf7, 0x34, 0xd9, 0x57, 0x0c, 0x15, 0xc2, 0x64, 0xdf, 0x43, 0xaf, 
0xcd, 0x34, 0xc9, 0x52,
+       0x34, 0xd3, 0x8a, 0x76, 0xb9, 0xb6, 0xa7, 0x39, 0x51, 0x9a, 0xbe, 0x0c, 
0xf3, 0x9a, 0xd9, 0x5c,
+       0x37, 0x73, 0xc3, 0x5c, 0x57, 0x6c, 0x41, 0x3e, 0xa2, 0x23, 0xba, 0x0f, 
0x85, 0x68, 0xd6, 0xcb,
+       0x1d, 0x33, 0xef, 0x4f, 0x13, 0x5e, 0xf4, 0x2a, 0x80, 0xe5, 0xf4, 0x74, 
0x8b, 0x79, 0x2e, 0xb3,
+       0x5e, 0x8e, 0x52, 0x88, 0xe3, 0x4a, 0xff, 0x91, 0x81, 0x42, 0xb4, 0x62, 
0x44, 0x07, 0x90, 0x36,
+       0x1c, 0xad, 0x6f, 0xf3, 0x49, 0xbb, 0x46, 0x41, 0xab, 0xa6, 0x0c, 0xa7, 
0x6a, 0xa3, 0x3a, 0xc0,
+       0x48, 0x77, 0xf5, 0x21, 0xf6, 0xb1, 0x1b, 0xf4, 0xfd, 0x1e, 0x2e, 0x57, 
0xbf, 0x32, 0x26, 0x35,
+       0xc2, 0x8f, 0xbe, 0xb9, 0x6c, 0xa6, 0x3f, 0x5f, 0xb1, 0x1c, 0x9e, 0xce, 
0x6f, 0xd0, 0xa9, 0x8c,
+       0xcc, 0x31, 0x91, 0xe0, 0x93, 0x0d, 0x9c, 0xa4, 0xd7, 0x41, 0x6e, 0xbb, 
0xba, 0x04, 0x02, 0x41,
+       0xac, 0x10, 0x4a, 0x08, 0x09, 0x44, 0x82, 0x6f, 0x0e, 0xb1, 0xcb, 0x25, 
0xa4, 0xaf, 0x27, 0xa1,
+       0x4b, 0x20, 0xa2, 0x12, 0xfc, 0x90, 0x40, 0xfc, 0xd4, 0x0b, 0x77, 0x0f, 
0xea, 0x6d, 0x59, 0x35,
+       0x42, 0x41, 0xef, 0xc1, 0xad, 0x48, 0xf8, 0xd6, 0xc2, 0x90, 0xb5, 0x46, 
0xdd, 0x02, 0x45, 0xde,
+       0xed, 0xb3, 0xe8, 0x25, 0x9e, 0xc1, 0xc6, 0x9c, 0xd1, 0x2e, 0x49, 0x86, 
0xf7, 0x66, 0x7b, 0x4c,
+       0x2b, 0x95, 0xd5, 0xd1, 0xb4, 0x9b, 0x08, 0x9b, 0xb5, 0xdf, 0x4b, 0x12, 
0x16, 0x80, 0xce, 0x09,
+       0x9b, 0x33, 0xe5, 0xcb, 0x11, 0x16, 0x82, 0x46, 0x8b, 0x82, 0x5f, 0xc5, 
0x21, 0x17, 0x3a, 0x36,
+       0x7a, 0x0a, 0x29, 0x7f, 0x32, 0x62, 0xfb, 0x48, 0x71, 0xe7, 0xc3, 0x55, 
0x16, 0x45, 0x89, 0x6c,
+       0x85, 0x6c, 0x47, 0xa0, 0x18, 0xe2, 0x57, 0x90, 0x22, 0x24, 0x49, 0xe5, 
0x9b, 0xe3, 0x06, 0xe4,
+       0x0f, 0x9b, 0x9d, 0xb6, 0xbc, 0xaf, 0x54, 0x15, 0xb9, 0x22, 0xc4, 0x10, 
0x40, 0x86, 0xe5, 0xcb,
+       0x42, 0x1c, 0xdd, 0x02, 0xa1, 0xad, 0xb4, 0xe5, 0x3a, 0xc9, 0x56, 0x5a, 
0x6d, 0xb2, 0xe1, 0x77,
+       0x84, 0x04, 0xfa, 0x1e, 0x6c, 0x45, 0x52, 0x00, 0x8d, 0x24, 0x31, 0xcf, 
0x64, 0x55, 0x48, 0x4a,
+       0x7f, 0x93, 0x84, 0x5c, 0x68, 0x3b, 0xa4, 0x02, 0xd0, 0x0f, 0xd2, 0x22, 
0xc5, 0xeb, 0x32, 0x1b,
+       0xd9, 0x11, 0x61, 0x0a, 0x61, 0x6a, 0x31, 0x35, 0x47, 0x61, 0x28, 0x66, 
0x1d, 0xb2, 0x27, 0xfa,
+       0x80, 0x21, 0x26, 0x96, 0x2e, 0x87, 0xf7, 0xf4, 0x41, 0x14, 0x6f, 0xed, 
0x44, 0x1f, 0x50, 0xb4,
+       0xaf, 0x81, 0xb7, 0xea, 0xe8, 0xc6, 0x48, 0x30, 0x59, 0x75, 0xff, 0xc1, 
0xd2, 0x5d, 0x3f, 0xba,
+       0x69, 0x4e, 0x91, 0xd7, 0x43, 0xb8, 0x40, 0x5b, 0x52, 0x5a, 0x44, 0xfa, 
0x7d, 0xcb, 0x68, 0xdb,
+       0xd0, 0x47, 0x33, 0xda, 0x0e, 0xf5, 0x51, 0x80, 0xe6, 0x61, 0x9f, 0xa1, 
0xa5, 0x97, 0x46, 0xeb,
+       0x60, 0x7f, 0x06, 0xcd, 0xc3, 0x7e, 0xd0, 0x69, 0x21, 0x48, 0xd2, 0x0f, 
0xa0, 0x38, 0x6b, 0xf0,
+       0x99, 0xdc, 0x24, 0x3e, 0x93, 0x9b, 0x48, 0x1f, 0x43, 0x21, 0x6a, 0x4b, 
0xf4, 0x00, 0x04, 0x9e,
+       0x8b, 0x69, 0x73, 0x2c, 0x45, 0x4e, 0xe7, 0x71, 0x41, 0xfa, 0x45, 0x1c, 
0xd0, 0xa2, 0xc9, 0x48,
+       0x80, 0x89, 0x24, 0xc8, 0xf3, 0x20, 0x28, 0xf2, 0x8e, 0x03, 0xa1, 0x2f, 
0xe8, 0x06, 0x49, 0xf3,
+       0xe1, 0xbe, 0xcd, 0x7d, 0xe0, 0x3a, 0x9b, 0x4e, 0x8e, 0xa3, 0x54, 0x6d, 
0xe9, 0x08, 0x0a, 0x51,
+       0x9b, 0xa3, 0x7b, 0x50, 0x38, 0xc3, 0x93, 0x79, 0x65, 0xe0, 0x0c, 0x4f, 
0x02, 0x25, 0xde, 0x84,
+       0x22, 0x73, 0xed, 0xb9, 0x24, 0xae, 0x40, 0xa9, 0xfb, 0x53, 0x6b, 0x45, 
0xad, 0xbf, 0x82, 0xb5,
+       0xbe, 0x81, 0x5c, 0x18, 0x16, 0x50, 0x87, 0x6d, 0x03, 0x9a, 0xe1, 0x0c, 
0x75, 0xd3, 0xe6, 0x41,
+       0x60, 0x67, 0xc9, 0xc8, 0x52, 0xa1, 0x4c, 0x2c, 0x00, 0xd0, 0xc8, 0xcf, 
0x08, 0xd2, 0x8f, 0x21,
+       0x17, 0x26, 0x8c, 0xd2, 0x93, 0xab, 0x62, 0xc1, 0x3a, 0xe4, 0x0e, 0x9b, 
0x7b, 0xad, 0xc3, 0x66,
+       0x45, 0xae, 0x08, 0x71, 0x94, 0x87, 0xb5, 0xe0, 0x21, 0x21, 0xfd, 0x65, 
0x1c, 0xf2, 0x91, 0xfe,
+       0x29, 0x7a, 0x0a, 0x19, 0xcf, 0x19, 0xbb, 0x3d, 0x7c, 0x83, 0x4c, 0x80, 
0x23, 0xcc, 0xe5, 0xc0,
+       0x89, 0x9b, 0xe7, 0xc0, 0x92, 0x01, 0x9b, 0x0b, 0x1d, 0x54, 0xd4, 0x82, 
0x1c, 0xef, 0x34, 0xdc,
+       0x28, 0x7f, 0xc9, 0x32, 0x90, 0xaa, 0x2d, 0xfd, 0x59, 0x1c, 0x8a, 0xb3, 
0xc7, 0x01, 0x73, 0xfe,
+       0x1a, 0x7f, 0x09, 0xfe, 0x7a, 0xe5, 0xa2, 0x49, 0x5c, 0xb5, 0x68, 0xa4, 
0x7f, 0xcb, 0xc0, 0x66,
+       0x17, 0x7b, 0x7e, 0x87, 0x76, 0x46, 0x02, 0xd5, 0xae, 0x5e, 0xe8, 0x48, 
0x85, 0x0c, 0x3e, 0xa7,
+       0x29, 0x68, 0x62, 0xe9, 0x9e, 0xdd, 0x82, 0x80, 0x92, 0x4c, 0x20, 0x54, 
0x8e, 0x24, 0xfe, 0x26,
+       0x05, 0x69, 0x4a, 0x41, 0xe7, 0xb0, 0x71, 0xa1, 0xfb, 0xd8, 0x1d, 0xea, 
0xee, 0x99, 0x46, 0xdf,
+       0x72, 0xc3, 0x3c, 0xbb, 0xbe, 0x98, 0x52, 0xd9, 0x38, 0xd7, 0xed, 0x1e, 
0x3e, 0x0e, 0x80, 0x6b,
+       0x31, 0xb5, 0x18, 0x4a, 0x61, 0x72, 0xff, 0x30, 0x0e, 0xb7, 0x79, 0x25, 
0x49, 0x22, 0x3e, 0x5d,
+       0x55, 0x4c, 0x3c, 0x8b, 0x23, 0xed, 0x9b, 0x8b, 0x6f, 0x87, 0xf0, 0x64, 
0xf5, 0xd5, 0x62, 0xea,
+       0xd6, 0x68, 0x86, 0xc2, 0x14, 0x19, 0xc2, 0x7a, 0x10, 0x09, 0x98, 0x7c, 
0xb6, 0xef, 0x54, 0x6f,
+       0x24, 0xdf, 0x90, 0x79, 0x59, 0x5c, 0x8b, 0xa9, 0x05, 0x0e, 0x4f, 0xdf, 
0x89, 0x1f, 0x81, 0x30,
+       0x6f, 0x1d, 0xf4, 0x06, 0xac, 0xdb, 0xf8, 0x42, 0x0b, 0x2d, 0x44, 0x67, 
0x20, 0xa9, 0x16, 0x6c,
+       0x7c, 0x11, 0x0e, 0x12, 0xf7, 0xe0, 0xf6, 0xa5, 0xdf, 0x85, 0xbe, 0x0f, 
0x82, 0xce, 0x5e, 0x68,
+       0xc6, 0xd8, 0xd5, 0xe9, 0x59, 0x0e, 0x03, 0xd8, 0xe0, 0xf4, 0x0a, 0x27, 
0x8b, 0x2e, 0xe4, 0x23,
+       0xba, 0xa1, 0x1e, 0x64, 0x83, 0xf2, 0x9d, 0xdf, 0x1e, 0x38, 0xb8, 0xd6, 
0x57, 0x13, 0x35, 0x3c,
+       0x5f, 0x1f, 0x8e, 0x70, 0x80, 0xad, 0x86, 0xc0, 0x7b, 0x6b, 0x90, 0xa6, 
0x76, 0x15, 0x7f, 0x02,
+       0x68, 0x71, 0x20, 0x7a, 0x1b, 0x36, 0xb0, 0x4d, 0x5c, 0x3d, 0x6c, 0x25, 
0x50, 0xe5, 0x0b, 0x6a,
+       0x91, 0x93, 0x83, 0x81, 0xaf, 0x40, 0xce, 0x0f, 0xd8, 0xa9, 0x8f, 0x24, 
0xd5, 0x29, 0x41, 0xfa,
+       0xcf, 0x24, 0x6c, 0x1e, 0xbb, 0xa6, 0x8f, 0xab, 0xa6, 0x85, 0xbd, 0x60, 
0x55, 0x55, 0x21, 0xe5,
+       0x99, 0xf6, 0xd9, 0x4d, 0xea, 0x21, 0xc2, 0x8f, 0x7e, 0x02, 0x1b, 0xa4, 
0x24, 0xd3, 0xfd, 0xf0,
+       0xe0, 0xf0, 0x06, 0xbb, 0x5d, 0x91, 0x41, 0x05, 0x34, 0x62, 0x01, 0x16, 
0xb4, 0xb0, 0xa1, 0xd1,
+       0x36, 0x9a, 0x47, 0x5d, 0x30, 0xab, 0x16, 0x03, 0x32, 0xfd, 0x30, 0x0f, 
0xfd, 0x10, 0x44, 0x7e,
+       0xe3, 0xc4, 0x20, 0xe9, 0xe4, 0xd0, 0xb4, 0xb1, 0xa1, 0x79, 0xa7, 0xba, 
0x6b, 0x98, 0xf6, 0x80,
+       0x26, 0x35, 0x59, 0x75, 0x9b, 0x8d, 0xa8, 0x84, 0x03, 0x3a, 0xfc, 0x3d, 
0xc2, 0xb3, 0x55, 0x18,
+       0xab, 0x60, 0x2a, 0xcb, 0x1c, 0x43, 0xcd, 0x9b, 0xf5, 0x45, 0xa5, 0xd8, 
0xff, 0x6b, 0xd1, 0x21,
+       0xfd, 0x1c, 0xd2, 0x34, 0xac, 0xd2, 0x89, 0x9e, 0x66, 0xb6, 0xd7, 0x9b, 
0x68, 0xb2, 0xbf, 0x97,
+       0x60, 0x2b, 0xac, 0xd8, 0xc3, 0x60, 0x1e, 0x9c, 0xcf, 0x6c, 0x86, 0xaf, 
0x78, 0x2c, 0xf7, 0xa4,
+       0x7f, 0x4e, 0x42, 0x31, 0xe8, 0x78, 0xb1, 0x6b, 0x03, 0xd2, 0x5f, 0x25, 
0xf9, 0x0e, 0xfe, 0x26,
+       0xa4, 0xf7, 0x9e, 0x77, 0xe5, 0x8e, 0x10, 0x13, 0xef, 0xd2, 0xb6, 0xd5, 
0x16, 0x6d, 0x5b, 0x51,
+       0xd4, 0xdd, 0x93, 0x89, 0xcf, 0x3a, 0xb2, 0xaf, 0x41, 0xe2, 0xd9, 0x91, 
0x10, 0x17, 0xef, 0xd0,
+       0x21, 0x42, 0x64, 0xc8, 0x19, 0xed, 0x7b, 0xbe, 0x05, 0x99, 0xa3, 0xb2, 
0xaa, 0x34, 0xbb, 0x42,
+       0x42, 0x14, 0xe9, 0x98, 0x5b, 0x91, 0x31, 0xe7, 0xba, 0x6b, 0xda, 0x3e, 
0x19, 0xf7, 0x4e, 0xa4,
+       0xb1, 0x96, 0x9c, 0x69, 0x8a, 0xb3, 0x91, 0xd1, 0x9e, 0xda, 0x43, 0xc8, 
0x75, 0x95, 0x86, 0xdc,
+       0xe9, 0x96, 0x1b, 0x6d, 0x21, 0x25, 0xbe, 0x4a, 0x07, 0x7f, 0x2f, 0x32, 
0x38, 0x5c, 0x57, 0x64,
+       0xf4, 0xc7, 0xb0, 0xa1, 0x34, 0xbb, 0xb2, 0x7a, 0x54, 0xae, 0xf3, 0xee, 
0xbd, 0x90, 0x9e, 0xe9,
+       0x02, 0x73, 0x01, 0xb6, 0x8f, 0xdd, 0x73, 0xdd, 0xe2, 0xdd, 0x7b, 0xd6, 
0x3b, 0x5e, 0xaf, 0xcb,
+       0xcd, 0x83, 0x6e, 0x4d, 0x6b, 0xab, 0x72, 0x55, 0xf9, 0x52, 0xc8, 0xcc, 
0x34, 0xf0, 0x18, 0x9f,
+       0x85, 0xed, 0x81, 0x7f, 0xaa, 0x8d, 0x5c, 0xdc, 0x37, 0xbf, 0xe5, 0x5c, 
0xac, 0x4f, 0x1e, 0x48,
+       0x5b, 0xbb, 0x84, 0x8b, 0x35, 0xc8, 0x23, 0xb2, 0x3e, 0x84, 0x22, 0x1b, 
0x1e, 0xb4, 0xc7, 0x85,
+       0xac, 0x28, 0x51, 0xb6, 0x57, 0x22, 0x6c, 0xe1, 0x42, 0x63, 0x3e, 0x74, 
0xfe, 0x58, 0xfa, 0xa3,
+       0x4c, 0x90, 0x8d, 0x44, 0xcf, 0x54, 0x5f, 0x76, 0x36, 0x82, 0x8e, 0xa0, 
0xc0, 0x7a, 0xd0, 0x9e,
+       0xaf, 0xfb, 0x63, 0x8f, 0xe7, 0x51, 0x4f, 0x96, 0x29, 0x41, 0x08, 0x5b, 
0x87, 0x72, 0xb1, 0x4c,
+       0x2a, 0x3f, 0x9c, 0x52, 0xd0, 0x5b, 0x41, 0xf0, 0x98, 0xa6, 0x1e, 0x49, 
0xba, 0xce, 0xd6, 0x19,
+       0x39, 0xc8, 0x92, 0x2b, 0xb0, 0xe6, 0xbb, 0xe6, 0x60, 0x80, 0x5d, 0x5e, 
0xfd, 0xbc, 0xb3, 0x4c,
+       0xa4, 0x67, 0x1c, 0x6a, 0xc0, 0x8a, 0x30, 0x6c, 0x86, 0x19, 0x8d, 0xe9, 
0xd8, 0x1a, 0x61, 0xa1,
+       0xf5, 0x4f, 0x71, 0xe7, 0xe3, 0x25, 0xf0, 0xca, 0x11, 0xde, 0x86, 0x63, 
0xf0, 0x5a, 0x58, 0xd0,
+       0xe7, 0xc8, 0x24, 0xcb, 0x66, 0x3d, 0x38, 0x9a, 0x16, 0xd0, 0x5e, 0xc8, 
0x72, 0x59, 0x36, 0x3b,
+       0xf8, 0x23, 0xbb, 0x0c, 0xcf, 0xb2, 0x9d, 0x90, 0x80, 0x4e, 0x40, 0xe8, 
0x59, 0x0e, 0x4d, 0x36,
+       0x4e, 0xf0, 0xa9, 0x7e, 0x6e, 0x3a, 0x2e, 0xed, 0x9d, 0x14, 0x77, 0x3e, 
0x5a, 0xa6, 0xc4, 0x64,
+       0xac, 0x7b, 0x9c, 0x93, 0xc1, 0x6f, 0xf4, 0x66, 0xa9, 0x74, 0x2b, 0xb6, 
0x2c, 0xea, 0x60, 0x96,
+       0xee, 0x63, 0x1b, 0x7b, 0x1e, 0xbd, 0x56, 0x41, 0xb6, 0x62, 0x46, 0xaf, 
0x73, 0x32, 0xa9, 0x77,
+       0x5b, 0x36, 0x51, 0x2c, 0x60, 0xa6, 0x57, 0x25, 0x96, 0xeb, 0x28, 0xcc, 
0x32, 0x32, 0x5d, 0xe6,
+       0xd0, 0xd0, 0x63, 0xb8, 0xad, 0x7b, 0x9e, 0x39, 0xb0, 0x3d, 0xcd, 0x77, 
0x34, 0xc7, 0xc6, 0x7c,
+       0xad, 0x6c, 0x03, 0xdd, 0x27, 0x10, 0x7f, 0xd9, 0x75, 0x5a, 0x36, 0x66, 
0xfe, 0x2f, 0xfd, 0x14,
+       0xf2, 0x11, 0x67, 0x93, 0x1a, 0x57, 0x55, 0x22, 0x1b, 0x90, 0x6f, 0xb6, 
0x9a, 0xf4, 0x18, 0x46,
+       0x69, 0x1e, 0x08, 0x71, 0x4a, 0x90, 0xe5, 0x4a, 0x87, 0x9d, 0xcc, 0x08, 
0x09, 0x84, 0xa0, 0x58,
+       0xae, 0xab, 0x72, 0xb9, 0xf2, 0x9c, 0x91, 0x2a, 0x42, 0x52, 0x6a, 0x80, 
0x30, 0x3f, 0xff, 0xd2,
+       0x27, 0x57, 0x89, 0x28, 0x02, 0x54, 0x94, 0xce, 0x7e, 0x59, 0xad, 0x30, 
0x09, 0x02, 0x14, 0xc2,
+       0xf3, 0x1e, 0x42, 0x49, 0x48, 0x5f, 0xc0, 0xc6, 0xdc, 0x9c, 0x48, 0x9f, 
0xbd, 0x40, 0x61, 0xb9,
+       0xa1, 0x74, 0xb5, 0x72, 0xfd, 0xb8, 0xfc, 0xbc, 0xc3, 0x7a, 0x29, 0x94, 
0xa0, 0x54, 0xb5, 0x66,
+       0xab, 0x29, 0x37, 0xda, 0xdd, 0xe7, 0x42, 0x42, 0x6a, 0xcf, 0x4f, 0xc9, 
0x0b, 0x11, 0xab, 0x8a,
+       0x2a, 0xcf, 0x20, 0x52, 0xc2, 0x2c, 0xe2, 0x09, 0xc0, 0xd4, 0x25, 0xa5, 
0xee, 0x55, 0x68, 0x9b,
+       0xb0, 0x2e, 0x37, 0x2b, 0x5a, 0xab, 0xaa, 0x85, 0xdd, 0x1e, 0x04, 0xc5, 
0x7a, 0x99, 0x1e, 0xb4,
+       0x2a, 0x4d, 0xad, 0x5d, 0x6e, 0x12, 0xab, 0x12, 0xad, 0xcb, 0x6a, 0x5d, 
0x89, 0x52, 0x93, 0x92,
+       0x05, 0x30, 0x2d, 0x2e, 0xa5, 0xaf, 0x5f, 0x60, 0x51, 0xf9, 0x48, 0x6e, 
0x76, 0x35, 0x12, 0xf9,
+       0x85, 0x38, 0xda, 0x82, 0x0d, 0x7e, 0xf6, 0xa3, 0x34, 0x0f, 0x18, 0x31, 
0x81, 0xee, 0xc1, 0x2b,
+       0x9d, 0xe7, 0xcd, 0xfd, 0x9a, 0xda, 0x6a, 0x2a, 0x5f, 0xc9, 0x15, 0x6d, 
0x7e, 0x44, 0x52, 0xfa,
+       0x73, 0x01, 0xd6, 0x78, 0x58, 0x40, 0x2a, 0xe4, 0xf4, 0xbe, 0x8f, 0x5d, 
0x4d, 0xb7, 0x2c, 0x1e,
+       0x24, 0x9f, 0x2c, 0x1f, 0x55, 0x4a, 0x65, 0xc2, 0x5b, 0xb6, 0xac, 0x5a, 
0x4c, 0xcd, 0xea, 0xfc,
+       0x77, 0x04, 0xd3, 0x9e, 0xf0, 0xec, 0x60, 0x75, 0x4c, 0x7b, 0x32, 0xc5, 
0xb4, 0x27, 0xe8, 0x10,
+       0x80, 0x61, 0x62, 0xbd, 0x77, 0xca, 0xd3, 0xfb, 0xf7, 0x57, 0x05, 0x95, 
0xf5, 0xde, 0x69, 0x2d,
+       0xa6, 0x32, 0xed, 0xc8, 0x03, 0xb2, 0x60, 0x8b, 0xc3, 0xda, 0x86, 0xe6, 
0xf4, 0x83, 0xf5, 0xc5,
+       0xc2, 0xeb, 0xa7, 0x2b, 0xe3, 0xdb, 0x46, 0xab, 0xcf, 0x16, 0x62, 0x2d, 
0xa6, 0x0a, 0xfa, 0x1c,
+       0x0d, 0xf9, 0x70, 0x9b, 0x49, 0x9b, 0x2b, 0x9a, 0x78, 0xfb, 0xe9, 0xb3, 
0x55, 0xe5, 0x2d, 0x16,
+       0x47, 0xfa, 0x22, 0x19, 0xfd, 0x22, 0x0e, 0x12, 0x13, 0xeb, 0x4d, 0xec, 
0xde, 0xa9, 0xeb, 0xd8,
+       0xe6, 0xef, 0x61, 0x63, 0x41, 0x07, 0x76, 0x36, 0xf2, 0x74, 0x55, 0x1d, 
0x3a, 0x11, 0xcc, 0x05,
+       0x7d, 0x5e, 0xd7, 0x5f, 0x3c, 0x04, 0x3d, 0x83, 0x8c, 0x6e, 0x5d, 0xe8, 
0x13, 0x8f, 0xdf, 0xdc,
+       0x7a, 0xbc, 0x8a, 0x78, 0xca, 0x58, 0x8b, 0xa9, 0x1c, 0x02, 0x35, 0x61, 
0xcd, 0xc0, 0x7d, 0x7d,
+       0x6c, 0xf9, 0xfc, 0x66, 0xdd, 0xce, 0x0a, 0x68, 0x15, 0xc6, 0x59, 0x8b, 
0xa9, 0x01, 0x08, 0xfa,
+       0x7a, 0x5a, 0x55, 0xf6, 0x9c, 0xb1, 0xed, 0xf3, 0xdb, 0x75, 0x1f, 0xad, 
0x80, 0x2a, 0x07, 0x7d,
+       0xa8, 0xb1, 0xed, 0x47, 0xca, 0x48, 0xfa, 0x8c, 0x6a, 0x90, 0xb6, 0xf1, 
0x39, 0x76, 0xf9, 0x05,
+       0xbb, 0xf7, 0x56, 0xc0, 0x6d, 0x12, 0xbe, 0x5a, 0x4c, 0x65, 0x00, 0x64, 
0x75, 0x38, 0xae, 0xd6,
+       0x37, 0x6d, 0xdd, 0xb2, 0x26, 0x74, 0x77, 0x58, 0x6d, 0x75, 0xb4, 0xdc, 
0x2a, 0xe3, 0x25, 0xab,
+       0xc3, 0x09, 0x1e, 0xc8, 0xec, 0xb8, 0x78, 0x84, 0xf5, 0xe0, 0xbe, 0xde, 
0x2a, 0xb3, 0xa3, 0x52,
+       0x46, 0x32, 0x3b, 0x0c, 0x42, 0xfc, 0x12, 0xb2, 0x41, 0xb4, 0x40, 0x75, 
0xc8, 0xd3, 0x7b, 0x52,
+       0x74, 0x68, 0x50, 0xb7, 0xae, 0x92, 0xcd, 0x44, 0xd9, 0xa7, 0xc8, 0xf6, 
0xe4, 0x25, 0x23, 0x3f,
+       0x87, 0x5c, 0x18, 0x38, 0x5e, 0x32, 0xf4, 0xdf, 0xc6, 0x41, 0x98, 0x0f, 
0x1a, 0xa8, 0x05, 0xeb,
+       0x58, 0x77, 0xad, 0x89, 0xd6, 0x37, 0x5d, 0xd3, 0x1e, 0x04, 0x97, 0xf3, 
0x56, 0x11, 0x52, 0xa0,
+       0x00, 0x55, 0xc6, 0x8f, 0x1a, 0x50, 0x20, 0x49, 0x4c, 0x88, 0x97, 0x58, 
0x19, 0x2f, 0x4f, 0xf8,
+       0x39, 0x9c, 0xf8, 0x73, 0xd8, 0xba, 0x24, 0xf0, 0xa0, 0x53, 0xb8, 0x15, 
0x56, 0x1b, 0xda, 0xc2,
+       0xbf, 0x19, 0x3e, 0x58, 0xb2, 0xb5, 0x4a, 0xd9, 0xa7, 0xd7, 0xd7, 0xb7, 
0xfc, 0x05, 0x9a, 0x27,
+       0xde, 0x87, 0xd7, 0xbf, 0x23, 0xea, 0x88, 0x39, 0x58, 0xe3, 0x6b, 0x59, 
0x7c, 0x02, 0x85, 0xe8,
+       0x02, 0x44, 0x6f, 0xcc, 0x2f, 0x68, 0x62, 0xde, 0xf4, 0xec, 0xaa, 0x14, 
0xd7, 0x20, 0x4d, 0x57,
+       0x97, 0x98, 0x85, 0x0c, 0x0b, 0x31, 0xe2, 0x9f, 0xc6, 0x21, 0x17, 0x2e, 
0x11, 0xf4, 0x19, 0xa4,
+       0xc2, 0xc6, 0xf1, 0x6a, 0xb6, 0xa4, 0x7c, 0x24, 0x8d, 0x0f, 0x56, 0xea, 
0xea, 0xd3, 0x11, 0xb0,
+       0x8a, 0x5d, 0xc8, 0xb0, 0x25, 0x86, 0x9e, 0x02, 0x4c, 0x1d, 0xeb, 0x1a, 
0x5a, 0x45, 0xb8, 0xf7,
+       0x72, 0x61, 0x89, 0x21, 0xfd, 0x4b, 0x22, 0xd2, 0xeb, 0x99, 0xde, 0xae, 
0xec, 0x40, 0xda, 0xc0,
+       0x96, 0x3e, 0xe1, 0x82, 0x3e, 0xbd, 0xd6, 0xe4, 0x96, 0x2a, 0x04, 0x82, 
0xc4, 0x2f, 0x8a, 0x85,
+       0xbe, 0x82, 0xac, 0x6e, 0x99, 0x03, 0x5b, 0xf3, 0x1d, 0x6e, 0x93, 0x1f, 
0x5d, 0x0f, 0xb7, 0x4c,
+       0x50, 0xba, 0x0e, 0x89, 0xe2, 0x3a, 0xfb, 0x29, 0xbe, 0x03, 0x69, 0x2a, 
0x0d, 0xdd, 0x87, 0x02,
+       0x95, 0xa6, 0x0d, 0x4d, 0xcb, 0x32, 0x3d, 0xde, 0x5f, 0xcb, 0x53, 0x5a, 
0x83, 0x92, 0xc4, 0x4f,
+       0x60, 0x8d, 0x23, 0xa0, 0x3b, 0x90, 0x19, 0x61, 0xd7, 0x74, 0x58, 0x2d, 
0x96, 0x54, 0xf9, 0x13,
+       0xa1, 0x3b, 0xfd, 0xbe, 0x87, 0x7d, 0x9a, 0x24, 0x24, 0x55, 0xfe, 0xb4, 
0x77, 0x1b, 0xb6, 0x2e,
+       0x59, 0x03, 0xd2, 0x9f, 0x24, 0x20, 0x17, 0xb6, 0x3d, 0xd0, 0x11, 0x14, 
0xf5, 0x1e, 0xbd, 0x78,
+       0x33, 0xd2, 0x7d, 0x1f, 0xbb, 0xf6, 0x75, 0xef, 0xa0, 0xae, 0x33, 0x98, 
0x36, 0x43, 0x41, 0xcf,
+       0x60, 0xed, 0xdc, 0xc4, 0x17, 0x37, 0x3b, 0xc1, 0xc9, 0x10, 0x88, 0xaa, 
0x8d, 0xbe, 0x06, 0x7e,
+       0x41, 0x59, 0x1b, 0xea, 0xa3, 0x11, 0xc9, 0x0f, 0xfa, 0x36, 0xcf, 0xb8, 
0xae, 0x03, 0xcb, 0x6b,
+       0xdb, 0x06, 0xc3, 0xaa, 0xda, 0xd2, 0xeb, 0x90, 0x8f, 0x5c, 0x33, 0x41, 
0x02, 0x24, 0xc7, 0xae,
+       0x15, 0x74, 0x96, 0xc6, 0xae, 0x25, 0xfd, 0x0c, 0x36, 0xe6, 0x40, 0x5e, 
0xce, 0x95, 0xdd, 0xdf,
+       0x86, 0x62, 0xe4, 0x4a, 0xcb, 0xb4, 0xc3, 0xbf, 0x1e, 0xa1, 0x2a, 0x86, 
0xb4, 0x0b, 0x85, 0x19,
+       0xd9, 0x54, 0x41, 0x7b, 0xaa, 0xa0, 0x8d, 0xb6, 0x61, 0x2d, 0xfa, 0xb7, 
0x86, 0x82, 0x1a, 0x3c,
+       0x4a, 0xff, 0x95, 0x82, 0x7c, 0xe4, 0xc2, 0x0e, 0x52, 0x20, 0x6d, 0xfa, 
0x38, 0x0c, 0x85, 0x4f,
+       0x56, 0xbb, 0xef, 0x53, 0x52, 0x7c, 0x3c, 0x54, 0x19, 0x82, 0xd8, 0x07, 
0x50, 0x0c, 0x6c, 0xfb,
+       0x66, 0xdf, 0xc4, 0xee, 0x32, 0x37, 0x4f, 0xde, 0x80, 0xf5, 0xe9, 0x10, 
0xf2, 0x05, 0xfc, 0x4c,
+       0x2d, 0x24, 0x1e, 0xba, 0x76, 0xd0, 0xd7, 0x4b, 0x86, 0x7d, 0x3d, 0xf1, 
0x57, 0x09, 0x48, 0x11,
+       0xb9, 0x48, 0x81, 0x04, 0x07, 0x5e, 0xee, 0xde, 0xf2, 0x8c, 0xe2, 0xa1, 
0xa6, 0x6a, 0xc2, 0x34,
+       0x50, 0x9d, 0x1f, 0xb8, 0x27, 0x96, 0x6e, 0x33, 0x44, 0xc1, 0xe6, 0x8e, 
0xdc, 0xd1, 0x3b, 0x41,
+       0xe7, 0x91, 0x39, 0xe5, 0xad, 0x12, 0xfb, 0xcf, 0x5d, 0x29, 0xf8, 0xcf, 
0x5d, 0xa9, 0x6c, 0x07,
+       0x7f, 0x07, 0x42, 0x1f, 0x40, 0xde, 0x3b, 0x75, 0x5c, 0x9f, 0x35, 0x8b, 
0x78, 0x62, 0x7f, 0x39,
+       0x07, 0xd0, 0x81, 0xf4, 0xf0, 0x16, 0xdd, 0x82, 0xb4, 0xa5, 0x9f, 0x60, 
0x8b, 0xdf, 0x1e, 0x67,
+       0x0f, 0xe8, 0x2e, 0x64, 0x2d, 0xd3, 0x3e, 0xd3, 0x88, 0xbf, 0x66, 0xd8, 
0x01, 0x0f, 0x79, 0x3e,
+       0x74, 0x2d, 0xf1, 0x67, 0xfc, 0x1a, 0xc0, 0xf8, 0x05, 0xd7, 0x00, 0x3a, 
0x5d, 0x95, 0x55, 0xc2,
+       0x79, 0x58, 0x53, 0x9a, 0x5d, 0xf9, 0x40, 0x56, 0x85, 0x04, 0xca, 0x41, 
0xba, 0x5a, 0x6f, 0x95,
+       0xbb, 0x42, 0x92, 0x9d, 0x07, 0xb6, 0xea, 0x72, 0xb9, 0x29, 0xa4, 0xd0, 
0x7a, 0xb4, 0xc1, 0x97,
+       0x46, 0x05, 0xc8, 0x56, 0x0e, 0xd5, 0x32, 0xbd, 0x24, 0x98, 0x21, 0x95, 
0xe0, 0xd3, 0xf2, 0x51,
+       0x59, 0xdb, 0xaf, 0x97, 0x3b, 0x1d, 0x61, 0x6d, 0xf7, 0x73, 0xc8, 0xd2, 
0x7f, 0x33, 0x12, 0xef,
+       0xbc, 0xbf, 0xf0, 0x75, 0x44, 0x23, 0xfa, 0x5d, 0xad, 0x11, 0xfb, 0x17, 
0xe0, 0xbf, 0xfe, 0xc5,
+       0x5f, 0x7f, 0xc9, 0xf4, 0x27, 0x5c, 0x87, 0xae, 0xbd, 0xf7, 0x29, 0x7c, 
0xf7, 0xff, 0x1e, 0xf7,
+       0x72, 0x2a, 0x6d, 0x4c, 0x97, 0x47, 0xe6, 0x57, 0xf9, 0x80, 0xae, 0x9d, 
0x3f, 0x3e, 0xc9, 0x50,
+       0x49, 0x4f, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xb2, 0xe6, 0x6e, 0x98, 
0x52, 0x39, 0x00, 0x00,
 }
diff --git a/sdks/go/pkg/beam/model/pipeline_v1/endpoints.pb.go 
b/sdks/go/pkg/beam/model/pipeline_v1/endpoints.pb.go
index 72a230d5e8b..d19e9daaef0 100644
--- a/sdks/go/pkg/beam/model/pipeline_v1/endpoints.pb.go
+++ b/sdks/go/pkg/beam/model/pipeline_v1/endpoints.pb.go
@@ -29,9 +29,7 @@ func (m *ApiServiceDescriptor) String() string            { 
return proto.Compact
 func (*ApiServiceDescriptor) ProtoMessage()               {}
 func (*ApiServiceDescriptor) Descriptor() ([]byte, []int) { return 
fileDescriptor1, []int{0} }
 
-type isApiServiceDescriptor_Authentication interface {
-       isApiServiceDescriptor_Authentication()
-}
+type isApiServiceDescriptor_Authentication interface{ 
isApiServiceDescriptor_Authentication() }
 
 type ApiServiceDescriptor_Oauth2ClientCredentialsGrant struct {
        Oauth2ClientCredentialsGrant *OAuth2ClientCredentialsGrant 
`protobuf:"bytes,3,opt,name=oauth2_client_credentials_grant,json=oauth2ClientCredentialsGrant,oneof"`
diff --git a/sdks/go/pkg/beam/model/pipeline_v1/standard_window_fns.pb.go 
b/sdks/go/pkg/beam/model/pipeline_v1/standard_window_fns.pb.go
index 082724d1e9e..c2773437538 100644
--- a/sdks/go/pkg/beam/model/pipeline_v1/standard_window_fns.pb.go
+++ b/sdks/go/pkg/beam/model/pipeline_v1/standard_window_fns.pb.go
@@ -6,83 +6,166 @@ package pipeline_v1
 import proto "github.com/golang/protobuf/proto"
 import fmt "fmt"
 import math "math"
-import google_protobuf1 "github.com/golang/protobuf/ptypes/duration"
-import google_protobuf2 "github.com/golang/protobuf/ptypes/timestamp"
+import google_protobuf2 "github.com/golang/protobuf/ptypes/duration"
+import google_protobuf3 "github.com/golang/protobuf/ptypes/timestamp"
 
 // Reference imports to suppress errors if they are not otherwise used.
 var _ = proto.Marshal
 var _ = fmt.Errorf
 var _ = math.Inf
 
-// beam:windowfn:fixed_windows:v0.1
+type GlobalWindowsPayload_Enum int32
+
+const (
+       // TODO(BEAM-3595): Change this to beam:windowfn:global_windows:v1
+       GlobalWindowsPayload_PROPERTIES GlobalWindowsPayload_Enum = 0
+)
+
+var GlobalWindowsPayload_Enum_name = map[int32]string{
+       0: "PROPERTIES",
+}
+var GlobalWindowsPayload_Enum_value = map[string]int32{
+       "PROPERTIES": 0,
+}
+
+func (x GlobalWindowsPayload_Enum) String() string {
+       return proto.EnumName(GlobalWindowsPayload_Enum_name, int32(x))
+}
+func (GlobalWindowsPayload_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor2, []int{0, 0} }
+
+type FixedWindowsPayload_Enum int32
+
+const (
+       // TODO(BEAM-3595): Change this to beam:windowfn:fixed_windows:v1
+       FixedWindowsPayload_PROPERTIES FixedWindowsPayload_Enum = 0
+)
+
+var FixedWindowsPayload_Enum_name = map[int32]string{
+       0: "PROPERTIES",
+}
+var FixedWindowsPayload_Enum_value = map[string]int32{
+       "PROPERTIES": 0,
+}
+
+func (x FixedWindowsPayload_Enum) String() string {
+       return proto.EnumName(FixedWindowsPayload_Enum_name, int32(x))
+}
+func (FixedWindowsPayload_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor2, []int{1, 0} }
+
+type SlidingWindowsPayload_Enum int32
+
+const (
+       // TODO(BEAM-3595): Change this to beam:windowfn:sliding_windows:v1
+       SlidingWindowsPayload_PROPERTIES SlidingWindowsPayload_Enum = 0
+)
+
+var SlidingWindowsPayload_Enum_name = map[int32]string{
+       0: "PROPERTIES",
+}
+var SlidingWindowsPayload_Enum_value = map[string]int32{
+       "PROPERTIES": 0,
+}
+
+func (x SlidingWindowsPayload_Enum) String() string {
+       return proto.EnumName(SlidingWindowsPayload_Enum_name, int32(x))
+}
+func (SlidingWindowsPayload_Enum) EnumDescriptor() ([]byte, []int) {
+       return fileDescriptor2, []int{2, 0}
+}
+
+type SessionsPayload_Enum int32
+
+const (
+       // TODO(BEAM-3595): Change this to beam:windowfn:session_windows:v1
+       SessionsPayload_PROPERTIES SessionsPayload_Enum = 0
+)
+
+var SessionsPayload_Enum_name = map[int32]string{
+       0: "PROPERTIES",
+}
+var SessionsPayload_Enum_value = map[string]int32{
+       "PROPERTIES": 0,
+}
+
+func (x SessionsPayload_Enum) String() string {
+       return proto.EnumName(SessionsPayload_Enum_name, int32(x))
+}
+func (SessionsPayload_Enum) EnumDescriptor() ([]byte, []int) { return 
fileDescriptor2, []int{3, 0} }
+
+type GlobalWindowsPayload struct {
+}
+
+func (m *GlobalWindowsPayload) Reset()                    { *m = 
GlobalWindowsPayload{} }
+func (m *GlobalWindowsPayload) String() string            { return 
proto.CompactTextString(m) }
+func (*GlobalWindowsPayload) ProtoMessage()               {}
+func (*GlobalWindowsPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{0} }
+
 type FixedWindowsPayload struct {
-       Size   *google_protobuf1.Duration  `protobuf:"bytes,1,opt,name=size" 
json:"size,omitempty"`
-       Offset *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=offset" 
json:"offset,omitempty"`
+       Size   *google_protobuf2.Duration  `protobuf:"bytes,1,opt,name=size" 
json:"size,omitempty"`
+       Offset *google_protobuf3.Timestamp `protobuf:"bytes,2,opt,name=offset" 
json:"offset,omitempty"`
 }
 
 func (m *FixedWindowsPayload) Reset()                    { *m = 
FixedWindowsPayload{} }
 func (m *FixedWindowsPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*FixedWindowsPayload) ProtoMessage()               {}
-func (*FixedWindowsPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{0} }
+func (*FixedWindowsPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{1} }
 
-func (m *FixedWindowsPayload) GetSize() *google_protobuf1.Duration {
+func (m *FixedWindowsPayload) GetSize() *google_protobuf2.Duration {
        if m != nil {
                return m.Size
        }
        return nil
 }
 
-func (m *FixedWindowsPayload) GetOffset() *google_protobuf2.Timestamp {
+func (m *FixedWindowsPayload) GetOffset() *google_protobuf3.Timestamp {
        if m != nil {
                return m.Offset
        }
        return nil
 }
 
-// beam:windowfn:sliding_windows:v0.1
 type SlidingWindowsPayload struct {
-       Size   *google_protobuf1.Duration  `protobuf:"bytes,1,opt,name=size" 
json:"size,omitempty"`
-       Offset *google_protobuf2.Timestamp `protobuf:"bytes,2,opt,name=offset" 
json:"offset,omitempty"`
-       Period *google_protobuf1.Duration  `protobuf:"bytes,3,opt,name=period" 
json:"period,omitempty"`
+       Size   *google_protobuf2.Duration  `protobuf:"bytes,1,opt,name=size" 
json:"size,omitempty"`
+       Offset *google_protobuf3.Timestamp `protobuf:"bytes,2,opt,name=offset" 
json:"offset,omitempty"`
+       Period *google_protobuf2.Duration  `protobuf:"bytes,3,opt,name=period" 
json:"period,omitempty"`
 }
 
 func (m *SlidingWindowsPayload) Reset()                    { *m = 
SlidingWindowsPayload{} }
 func (m *SlidingWindowsPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*SlidingWindowsPayload) ProtoMessage()               {}
-func (*SlidingWindowsPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{1} }
+func (*SlidingWindowsPayload) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{2} }
 
-func (m *SlidingWindowsPayload) GetSize() *google_protobuf1.Duration {
+func (m *SlidingWindowsPayload) GetSize() *google_protobuf2.Duration {
        if m != nil {
                return m.Size
        }
        return nil
 }
 
-func (m *SlidingWindowsPayload) GetOffset() *google_protobuf2.Timestamp {
+func (m *SlidingWindowsPayload) GetOffset() *google_protobuf3.Timestamp {
        if m != nil {
                return m.Offset
        }
        return nil
 }
 
-func (m *SlidingWindowsPayload) GetPeriod() *google_protobuf1.Duration {
+func (m *SlidingWindowsPayload) GetPeriod() *google_protobuf2.Duration {
        if m != nil {
                return m.Period
        }
        return nil
 }
 
-// beam:windowfn:session_windows:v0.1
 type SessionsPayload struct {
-       GapSize *google_protobuf1.Duration 
`protobuf:"bytes,1,opt,name=gap_size,json=gapSize" json:"gap_size,omitempty"`
+       GapSize *google_protobuf2.Duration 
`protobuf:"bytes,1,opt,name=gap_size,json=gapSize" json:"gap_size,omitempty"`
 }
 
 func (m *SessionsPayload) Reset()                    { *m = SessionsPayload{} }
 func (m *SessionsPayload) String() string            { return 
proto.CompactTextString(m) }
 func (*SessionsPayload) ProtoMessage()               {}
-func (*SessionsPayload) Descriptor() ([]byte, []int) { return fileDescriptor2, 
[]int{2} }
+func (*SessionsPayload) Descriptor() ([]byte, []int) { return fileDescriptor2, 
[]int{3} }
 
-func (m *SessionsPayload) GetGapSize() *google_protobuf1.Duration {
+func (m *SessionsPayload) GetGapSize() *google_protobuf2.Duration {
        if m != nil {
                return m.GapSize
        }
@@ -90,31 +173,44 @@ func (m *SessionsPayload) GetGapSize() 
*google_protobuf1.Duration {
 }
 
 func init() {
+       proto.RegisterType((*GlobalWindowsPayload)(nil), 
"org.apache.beam.model.pipeline.v1.GlobalWindowsPayload")
        proto.RegisterType((*FixedWindowsPayload)(nil), 
"org.apache.beam.model.pipeline.v1.FixedWindowsPayload")
        proto.RegisterType((*SlidingWindowsPayload)(nil), 
"org.apache.beam.model.pipeline.v1.SlidingWindowsPayload")
        proto.RegisterType((*SessionsPayload)(nil), 
"org.apache.beam.model.pipeline.v1.SessionsPayload")
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.GlobalWindowsPayload_Enum",
 GlobalWindowsPayload_Enum_name, GlobalWindowsPayload_Enum_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.FixedWindowsPayload_Enum",
 FixedWindowsPayload_Enum_name, FixedWindowsPayload_Enum_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.SlidingWindowsPayload_Enum",
 SlidingWindowsPayload_Enum_name, SlidingWindowsPayload_Enum_value)
+       
proto.RegisterEnum("org.apache.beam.model.pipeline.v1.SessionsPayload_Enum", 
SessionsPayload_Enum_name, SessionsPayload_Enum_value)
 }
 
 func init() { proto.RegisterFile("standard_window_fns.proto", fileDescriptor2) 
}
 
 var fileDescriptor2 = []byte{
-       // 277 bytes of a gzipped FileDescriptorProto
-       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x92, 
0x4d, 0x4b, 0xc3, 0x40,
-       0x10, 0x86, 0xa9, 0x4a, 0x95, 0xed, 0x41, 0x8c, 0x08, 0x69, 0x0e, 0x7e, 
0xe4, 0xe4, 0xc5, 0x2d,
-       0xa9, 0xfe, 0x82, 0x2a, 0xf5, 0x2a, 0x8d, 0x20, 0x78, 0x09, 0x13, 0x77, 
0xb2, 0x0e, 0x24, 0x3b,
-       0x4b, 0x76, 0xfb, 0x61, 0xff, 0x93, 0xff, 0x51, 0xc8, 0x87, 0x07, 0x3d, 
0xd4, 0x93, 0xe7, 0x79,
-       0xde, 0xf7, 0x19, 0x76, 0x47, 0x8c, 0x9d, 0x07, 0xa3, 0xa0, 0x56, 0xd9, 
0x9a, 0x8c, 0xe2, 0x75,
-       0x56, 0x18, 0x27, 0x6d, 0xcd, 0x9e, 0x83, 0x2b, 0xae, 0xb5, 0x04, 0x0b, 
0x6f, 0xef, 0x28, 0x73,
-       0x84, 0x4a, 0x56, 0xac, 0xb0, 0x94, 0x96, 0x2c, 0x96, 0x64, 0x50, 0xae, 
0x92, 0xe8, 0x5c, 0x33,
-       0xeb, 0x12, 0x27, 0x4d, 0x20, 0x5f, 0x16, 0x13, 0xb5, 0xac, 0xc1, 0x13, 
0x9b, 0xb6, 0x22, 0xba,
-       0xf8, 0x39, 0xf7, 0x54, 0xa1, 0xf3, 0x50, 0xd9, 0x16, 0x88, 0x37, 0xe2, 
0x74, 0x4e, 0x1b, 0x54,
-       0x2f, 0x8d, 0xdc, 0x3d, 0xc1, 0x47, 0xc9, 0xa0, 0x82, 0x1b, 0x71, 0xe0, 
0x68, 0x8b, 0xe1, 0xe0,
-       0x72, 0x70, 0x3d, 0x9a, 0x8e, 0x65, 0x5b, 0x23, 0xfb, 0x1a, 0xf9, 0xd0, 
0x69, 0x16, 0x0d, 0x16,
-       0x4c, 0xc5, 0x90, 0x8b, 0xc2, 0xa1, 0x0f, 0xf7, 0x9a, 0x40, 0xf4, 0x2b, 
0xf0, 0xdc, 0x7b, 0x17,
-       0x1d, 0x19, 0x7f, 0x0e, 0xc4, 0x59, 0x5a, 0x92, 0x22, 0xa3, 0xff, 0x5d, 
0x1e, 0x24, 0x62, 0x68,
-       0xb1, 0x26, 0x56, 0xe1, 0xfe, 0x2e, 0x49, 0x07, 0xc6, 0x8f, 0xe2, 0x38, 
0x45, 0xe7, 0x88, 0xcd,
-       0xf7, 0xa2, 0x77, 0xe2, 0x48, 0x83, 0xcd, 0xfe, 0xb6, 0xec, 0xa1, 0x06, 
0x9b, 0xd2, 0x16, 0x67,
-       0xf7, 0x62, 0xf7, 0xc7, 0xce, 0x4e, 0xd2, 0xee, 0x2c, 0xda, 0xb7, 0x99, 
0x1b, 0xf7, 0x3a, 0xea,
-       0xe7, 0xd9, 0x2a, 0xc9, 0x87, 0x8d, 0xe0, 0xf6, 0x2b, 0x00, 0x00, 0xff, 
0xff, 0x82, 0x58, 0x88,
-       0x91, 0x3f, 0x02, 0x00, 0x00,
+       // 407 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 
0x31, 0x4f, 0xdb, 0x40,
+       0x14, 0xc7, 0xeb, 0x36, 0x4d, 0xab, 0xcb, 0xd0, 0xd6, 0x6d, 0xa4, 0xc4, 
0x43, 0x9b, 0x78, 0x68,
+       0xb3, 0xf4, 0x52, 0xa7, 0x55, 0x41, 0x19, 0x00, 0x05, 0x12, 0xc4, 0x44, 
0x64, 0x47, 0x8a, 0xc4,
+       0x62, 0x9d, 0xb9, 0xb3, 0x39, 0xc9, 0xbe, 0x3b, 0xf9, 0xec, 0x04, 0xf2, 
0x0d, 0xf8, 0x1a, 0x7c,
+       0x06, 0x06, 0x66, 0xbe, 0x10, 0x3b, 0x13, 0xca, 0xf9, 0x82, 0xe4, 0x30, 
0x04, 0x16, 0x46, 0xfb,
+       0xfd, 0xdf, 0x7b, 0xbf, 0x9f, 0x4e, 0x0f, 0x34, 0x65, 0x86, 0x18, 0x46, 
0x29, 0xf6, 0xe7, 0x94,
+       0x61, 0x3e, 0xf7, 0x43, 0x26, 0xa1, 0x48, 0x79, 0xc6, 0xcd, 0x36, 0x4f, 
0x23, 0x88, 0x04, 0x3a,
+       0x3d, 0x23, 0x30, 0x20, 0x28, 0x81, 0x09, 0xc7, 0x24, 0x86, 0x82, 0x0a, 
0x12, 0x53, 0x46, 0xe0,
+       0xcc, 0xb1, 0xea, 0xcb, 0xff, 0x7e, 0x9a, 0x33, 0x46, 0x52, 0x1f, 0x09, 
0x5a, 0x74, 0x5a, 0xdf,
+       0x23, 0xce, 0xa3, 0x98, 0x74, 0xd5, 0x57, 0x90, 0x87, 0x5d, 0x9c, 0xa7, 
0x28, 0xa3, 0x9c, 0xe9,
+       0xfa, 0x8f, 0xf5, 0x7a, 0x46, 0x13, 0x22, 0x33, 0x94, 0x88, 0x22, 0x60, 
0x4f, 0xc1, 0xb7, 0xc3,
+       0x98, 0x07, 0x28, 0x9e, 0x2a, 0x28, 0x39, 0x46, 0x17, 0x31, 0x47, 0xd8, 
0xde, 0x05, 0x95, 0x21,
+       0xcb, 0x13, 0x73, 0x0b, 0x80, 0xb1, 0x7b, 0x3c, 0x1e, 0xba, 0x93, 0xa3, 
0xa1, 0xf7, 0xf9, 0x8d,
+       0xf5, 0xeb, 0xea, 0xfa, 0xfe, 0xf6, 0x7d, 0x7b, 0x49, 0xd3, 0x2f, 0x3c, 
0x42, 0xd6, 0x8f, 0xd4,
+       0x04, 0xed, 0x25, 0xfb, 0xb3, 0x3f, 0xd0, 0xb1, 0x6f, 0x0c, 0xf0, 0x75, 
0x44, 0xcf, 0x09, 0x2e,
+       0x0f, 0x36, 0x7f, 0x83, 0x8a, 0xa4, 0x0b, 0xd2, 0x30, 0x5a, 0x46, 0xa7, 
0xd6, 0x6b, 0xc2, 0x02,
+       0x10, 0xae, 0x00, 0xe1, 0x81, 0x16, 0x70, 0x55, 0xcc, 0xec, 0x81, 0x2a, 
0x0f, 0x43, 0x49, 0xb2,
+       0xc6, 0x5b, 0xd5, 0x60, 0x3d, 0x69, 0x98, 0xac, 0x8c, 0x5c, 0x9d, 0xb4, 
0x77, 0x34, 0xfb, 0xff,
+       0x35, 0xf6, 0x9f, 0x8a, 0xbd, 0x55, 0x66, 0x0f, 0x97, 0x8c, 0x65, 0xf4, 
0x3b, 0x03, 0xd4, 0xbd,
+       0x98, 0x62, 0xca, 0xa2, 0x57, 0x87, 0x37, 0x1d, 0x50, 0x15, 0x24, 0xa5, 
0x1c, 0x37, 0xde, 0x6d,
+       0x5a, 0xa2, 0x83, 0xf6, 0x9e, 0xf6, 0xdd, 0x5e, 0xf3, 0xed, 0x28, 0x5f, 
0xbb, 0xec, 0x2b, 0x0b,
+       0xb1, 0xb2, 0xf1, 0xa5, 0x01, 0x3e, 0x79, 0x44, 0x4a, 0xca, 0xd9, 0xa3, 
0xeb, 0x3f, 0xf0, 0x31,
+       0x42, 0xc2, 0x7f, 0x9e, 0xef, 0x87, 0x08, 0x09, 0x8f, 0x2e, 0xc8, 0x0b, 
0x59, 0x8a, 0x95, 0x25,
+       0x96, 0xc1, 0x3e, 0xd8, 0x7c, 0x0e, 0x83, 0x2f, 0x9e, 0x3e, 0xa6, 0xe2, 
0x81, 0x46, 0x4c, 0x9e,
+       0xd4, 0x56, 0x75, 0x7f, 0xe6, 0x04, 0x55, 0x85, 0xf8, 0xf7, 0x21, 0x00, 
0x00, 0xff, 0xff, 0x00,
+       0x17, 0x94, 0x23, 0x75, 0x03, 0x00, 0x00,
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 103201)
    Time Spent: 2h  (was: 1h 50m)

> Implement the portable lifted Combiner transforms in Go SDK
> -----------------------------------------------------------
>
>                 Key: BEAM-4276
>                 URL: https://issues.apache.org/jira/browse/BEAM-4276
>             Project: Beam
>          Issue Type: Sub-task
>          Components: sdk-go
>            Reporter: Henning Rohde
>            Assignee: Robert Burke
>            Priority: Major
>          Time Spent: 2h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to