From 6147c9bbf5b97d294df4e4c50835d657901aa6cf Mon Sep 17 00:00:00 2001 From: kafkiansky <37590388+kafkiansky@users.noreply.github.com> Date: Mon, 20 Jul 2026 14:53:21 +0000 Subject: [PATCH] chore: regenerate code for protoc-plugin 0.1.21 --- src/BadRequest.php | 2 +- src/BadRequest/FieldViolation.php | 2 +- src/Code.php | 2 +- src/DebugInfo.php | 2 +- src/ErrorInfo.php | 2 +- src/GoogleRpcCodeDescriptorRegistry.php | 4 ++-- src/GoogleRpcErrorDetailsDescriptorRegistry.php | 4 ++-- src/GoogleRpcStatusDescriptorRegistry.php | 2 +- src/Help.php | 2 +- src/Help/Link.php | 2 +- src/LocalizedMessage.php | 2 +- src/PreconditionFailure.php | 2 +- src/PreconditionFailure/Violation.php | 2 +- src/QuotaFailure.php | 2 +- src/QuotaFailure/Violation.php | 2 +- src/RequestInfo.php | 2 +- src/ResourceInfo.php | 2 +- src/RetryInfo.php | 2 +- src/Status.php | 2 +- src/autoload.metadata.php | 2 +- 20 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/BadRequest.php b/src/BadRequest.php index f3ced73..386691d 100644 --- a/src/BadRequest.php +++ b/src/BadRequest.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/BadRequest/FieldViolation.php b/src/BadRequest/FieldViolation.php index 756f099..2e09394 100644 --- a/src/BadRequest/FieldViolation.php +++ b/src/BadRequest/FieldViolation.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/Code.php b/src/Code.php index 92a234d..7816ca3 100644 --- a/src/Code.php +++ b/src/Code.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/code.proto */ diff --git a/src/DebugInfo.php b/src/DebugInfo.php index b64c76b..21c7526 100644 --- a/src/DebugInfo.php +++ b/src/DebugInfo.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/ErrorInfo.php b/src/ErrorInfo.php index e59bffe..1146767 100644 --- a/src/ErrorInfo.php +++ b/src/ErrorInfo.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/GoogleRpcCodeDescriptorRegistry.php b/src/GoogleRpcCodeDescriptorRegistry.php index 2421810..6d4d408 100644 --- a/src/GoogleRpcCodeDescriptorRegistry.php +++ b/src/GoogleRpcCodeDescriptorRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/code.proto */ @@ -21,7 +21,7 @@ */ final readonly class GoogleRpcCodeDescriptorRegistry implements Registry\Registrar { - private const string DESCRIPTOR_BUFFER = 'ChVnb29nbGUvcnBjL2NvZGUucHJvdG8SCmdvb2dsZS5ycGMqtwIKBENvZGUSBgoCT0sQABINCglDQU5DRUxMRUQQARILCgdVTktOT1dOEAISFAoQSU5WQUxJRF9BUkdVTUVOVBADEhUKEURFQURMSU5FX0VYQ0VFREVEEAQSDQoJTk9UX0ZPVU5EEAUSEgoOQUxSRUFEWV9FWElTVFMQBhIVChFQRVJNSVNTSU9OX0RFTklFRBAHEhMKD1VOQVVUSEVOVElDQVRFRBAQEhYKElJFU09VUkNFX0VYSEFVU1RFRBAIEhcKE0ZBSUxFRF9QUkVDT05ESVRJT04QCRILCgdBQk9SVEVEEAoSEAoMT1VUX09GX1JBTkdFEAsSEQoNVU5JTVBMRU1FTlRFRBAMEgwKCElOVEVSTkFMEA0SDwoLVU5BVkFJTEFCTEUQDhINCglEQVRBX0xPU1MQD0JdCg5jb20uZ29vZ2xlLnJwY0IJQ29kZVByb3RvUAFIAVozZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvY29kZTtjb2Rl+AEBogIDUlBDSoA2CgcSBQ4AuQEBCrwECgEMEgMOABIysQQgQ29weXJpZ2h0IDIwMjUgR29vZ2xlIExMQwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCggKAQgSAxIASgoJCgIICxIDEgBKCggKAQgSAxMAIgoJCgIIChIDEwAiCggKAQgSAxQAKgoJCgIICBIDFAAqCggKAQgSAxUAJwoJCgIIARIDFQAnCggKAQgSAxYAIQoJCgIIJBIDFgAhCswCCgIFABIFHwC5AQEavgIgVGhlIGNhbm9uaWNhbCBlcnJvciBjb2RlcyBmb3IgZ1JQQyBBUElzLgoKCiBTb21ldGltZXMgbXVsdGlwbGUgZXJyb3IgY29kZXMgbWF5IGFwcGx5LiAgU2VydmljZXMgc2hvdWxkIHJldHVybgogdGhlIG1vc3Qgc3BlY2lmaWMgZXJyb3IgY29kZSB0aGF0IGFwcGxpZXMuICBGb3IgZXhhbXBsZSwgcHJlZmVyCiBgT1VUX09GX1JBTkdFYCBvdmVyIGBGQUlMRURfUFJFQ09ORElUSU9OYCBpZiBib3RoIGNvZGVzIGFwcGx5LgogU2ltaWxhcmx5IHByZWZlciBgTk9UX0ZPVU5EYCBvciBgQUxSRUFEWV9FWElTVFNgIG92ZXIgYEZBSUxFRF9QUkVDT05ESVRJT05gLgoKCgoDBQABEgMfBQkKSAoEBQACABIDIwIJGjsgTm90IGFuIGVycm9yOyByZXR1cm5lZCBvbiBzdWNjZXNzLgoKIEhUVFAgTWFwcGluZzogMjAwIE9LCgoMCgUFAAIAARIDIwIECgwKBQUAAgACEgMjBwgKbgoEBQACARIDKAIQGmEgVGhlIG9wZXJhdGlvbiB3YXMgY2FuY2VsbGVkLCB0eXBpY2FsbHkgYnkgdGhlIGNhbGxlci4KCiBIVFRQIE1hcHBpbmc6IDQ5OSBDbGllbnQgQ2xvc2VkIFJlcXVlc3QKCgwKBQUAAgEBEgMoAgsKDAoFBQACAQISAygODwraAgoEBQACAhIDMQIOGswCIFVua25vd24gZXJyb3IuICBGb3IgZXhhbXBsZSwgdGhpcyBlcnJvciBtYXkgYmUgcmV0dXJuZWQgd2hlbgogYSBgU3RhdHVzYCB2YWx1ZSByZWNlaXZlZCBmcm9tIGFub3RoZXIgYWRkcmVzcyBzcGFjZSBiZWxvbmdzIHRvCiBhbiBlcnJvciBzcGFjZSB0aGF0IGlzIG5vdCBrbm93biBpbiB0aGlzIGFkZHJlc3Mgc3BhY2UuICBBbHNvCiBlcnJvcnMgcmFpc2VkIGJ5IEFQSXMgdGhhdCBkbyBub3QgcmV0dXJuIGVub3VnaCBlcnJvciBpbmZvcm1hdGlvbgogbWF5IGJlIGNvbnZlcnRlZCB0byB0aGlzIGVycm9yLgoKIEhUVFAgTWFwcGluZzogNTAwIEludGVybmFsIFNlcnZlciBFcnJvcgoKDAoFBQACAgESAzECCQoMCgUFAAICAhIDMQwNCpICCgQFAAIDEgM5AhcahAIgVGhlIGNsaWVudCBzcGVjaWZpZWQgYW4gaW52YWxpZCBhcmd1bWVudC4gIE5vdGUgdGhhdCB0aGlzIGRpZmZlcnMKIGZyb20gYEZBSUxFRF9QUkVDT05ESVRJT05gLiAgYElOVkFMSURfQVJHVU1FTlRgIGluZGljYXRlcyBhcmd1bWVudHMKIHRoYXQgYXJlIHByb2JsZW1hdGljIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXRlIG9mIHRoZSBzeXN0ZW0KIChlLmcuLCBhIG1hbGZvcm1lZCBmaWxlIG5hbWUpLgoKIEhUVFAgTWFwcGluZzogNDAwIEJhZCBSZXF1ZXN0CgoMCgUFAAIDARIDOQISCgwKBQUAAgMCEgM5FRYK5AIKBAUAAgQSA0ICGBrWAiBUaGUgZGVhZGxpbmUgZXhwaXJlZCBiZWZvcmUgdGhlIG9wZXJhdGlvbiBjb3VsZCBjb21wbGV0ZS4gRm9yIG9wZXJhdGlvbnMKIHRoYXQgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtLCB0aGlzIGVycm9yIG1heSBiZSByZXR1cm5lZAogZXZlbiBpZiB0aGUgb3BlcmF0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiAgRm9yIGV4YW1wbGUsIGEKIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIHNlcnZlciBjb3VsZCBoYXZlIGJlZW4gZGVsYXllZCBsb25nCiBlbm91Z2ggZm9yIHRoZSBkZWFkbGluZSB0byBleHBpcmUuCgogSFRUUCBNYXBwaW5nOiA1MDQgR2F0ZXdheSBUaW1lb3V0CgoMCgUFAAIEARIDQgITCgwKBQUAAgQCEgNCFhcKmgMKBAUAAgUSA00CEBqMAyBTb21lIHJlcXVlc3RlZCBlbnRpdHkgKGUuZy4sIGZpbGUgb3IgZGlyZWN0b3J5KSB3YXMgbm90IGZvdW5kLgoKIE5vdGUgdG8gc2VydmVyIGRldmVsb3BlcnM6IGlmIGEgcmVxdWVzdCBpcyBkZW5pZWQgZm9yIGFuIGVudGlyZSBjbGFzcwogb2YgdXNlcnMsIHN1Y2ggYXMgZ3JhZHVhbCBmZWF0dXJlIHJvbGxvdXQgb3IgdW5kb2N1bWVudGVkIGFsbG93bGlzdCwKIGBOT1RfRk9VTkRgIG1heSBiZSB1c2VkLiBJZiBhIHJlcXVlc3QgaXMgZGVuaWVkIGZvciBzb21lIHVzZXJzIHdpdGhpbgogYSBjbGFzcyBvZiB1c2Vycywgc3VjaCBhcyB1c2VyLWJhc2VkIGFjY2VzcyBjb250cm9sLCBgUEVSTUlTU0lPTl9ERU5JRURgCiBtdXN0IGJlIHVzZWQuCgogSFRUUCBNYXBwaW5nOiA0MDQgTm90IEZvdW5kCgoMCgUFAAIFARIDTQILCgwKBQUAAgUCEgNNDg8KgwEKBAUAAgYSA1MCFRp2IFRoZSBlbnRpdHkgdGhhdCBhIGNsaWVudCBhdHRlbXB0ZWQgdG8gY3JlYXRlIChlLmcuLCBmaWxlIG9yIGRpcmVjdG9yeSkKIGFscmVhZHkgZXhpc3RzLgoKIEhUVFAgTWFwcGluZzogNDA5IENvbmZsaWN0CgoMCgUFAAIGARIDUwIQCgwKBQUAAgYCEgNTExQK+QMKBAUAAgcSA18CGBrrAyBUaGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBleGVjdXRlIHRoZSBzcGVjaWZpZWQKIG9wZXJhdGlvbi4gYFBFUk1JU1NJT05fREVOSUVEYCBtdXN0IG5vdCBiZSB1c2VkIGZvciByZWplY3Rpb25zCiBjYXVzZWQgYnkgZXhoYXVzdGluZyBzb21lIHJlc291cmNlICh1c2UgYFJFU09VUkNFX0VYSEFVU1RFRGAKIGluc3RlYWQgZm9yIHRob3NlIGVycm9ycykuIGBQRVJNSVNTSU9OX0RFTklFRGAgbXVzdCBub3QgYmUKIHVzZWQgaWYgdGhlIGNhbGxlciBjYW4gbm90IGJlIGlkZW50aWZpZWQgKHVzZSBgVU5BVVRIRU5USUNBVEVEYAogaW5zdGVhZCBmb3IgdGhvc2UgZXJyb3JzKS4gVGhpcyBlcnJvciBjb2RlIGRvZXMgbm90IGltcGx5IHRoZQogcmVxdWVzdCBpcyB2YWxpZCBvciB0aGUgcmVxdWVzdGVkIGVudGl0eSBleGlzdHMgb3Igc2F0aXNmaWVzCiBvdGhlciBwcmUtY29uZGl0aW9ucy4KCiBIVFRQIE1hcHBpbmc6IDQwMyBGb3JiaWRkZW4KCgwKBQUAAgcBEgNfAhMKDAoFBQACBwISA18WFwp+CgQFAAIIEgNlAhcacSBUaGUgcmVxdWVzdCBkb2VzIG5vdCBoYXZlIHZhbGlkIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGZvciB0aGUKIG9wZXJhdGlvbi4KCiBIVFRQIE1hcHBpbmc6IDQwMSBVbmF1dGhvcml6ZWQKCgwKBQUAAggBEgNlAhEKDAoFBQACCAISA2UUFgqlAQoEBQACCRIDawIZGpcBIFNvbWUgcmVzb3VyY2UgaGFzIGJlZW4gZXhoYXVzdGVkLCBwZXJoYXBzIGEgcGVyLXVzZXIgcXVvdGEsIG9yCiBwZXJoYXBzIHRoZSBlbnRpcmUgZmlsZSBzeXN0ZW0gaXMgb3V0IG9mIHNwYWNlLgoKIEhUVFAgTWFwcGluZzogNDI5IFRvbyBNYW55IFJlcXVlc3RzCgoMCgUFAAIJARIDawIUCgwKBQUAAgkCEgNrFxgK5AcKBAUAAgoSA38CGhrWByBUaGUgb3BlcmF0aW9uIHdhcyByZWplY3RlZCBiZWNhdXNlIHRoZSBzeXN0ZW0gaXMgbm90IGluIGEgc3RhdGUKIHJlcXVpcmVkIGZvciB0aGUgb3BlcmF0aW9uJ3MgZXhlY3V0aW9uLiAgRm9yIGV4YW1wbGUsIHRoZSBkaXJlY3RvcnkKIHRvIGJlIGRlbGV0ZWQgaXMgbm9uLWVtcHR5LCBhbiBybWRpciBvcGVyYXRpb24gaXMgYXBwbGllZCB0bwogYSBub24tZGlyZWN0b3J5LCBldGMuCgogU2VydmljZSBpbXBsZW1lbnRvcnMgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGd1aWRlbGluZXMgdG8gZGVjaWRlCiBiZXR3ZWVuIGBGQUlMRURfUFJFQ09ORElUSU9OYCwgYEFCT1JURURgLCBhbmQgYFVOQVZBSUxBQkxFYDoKICAoYSkgVXNlIGBVTkFWQUlMQUJMRWAgaWYgdGhlIGNsaWVudCBjYW4gcmV0cnkganVzdCB0aGUgZmFpbGluZyBjYWxsLgogIChiKSBVc2UgYEFCT1JURURgIGlmIHRoZSBjbGllbnQgc2hvdWxkIHJldHJ5IGF0IGEgaGlnaGVyIGxldmVsLiBGb3IKICAgICAgZXhhbXBsZSwgd2hlbiBhIGNsaWVudC1zcGVjaWZpZWQgdGVzdC1hbmQtc2V0IGZhaWxzLCBpbmRpY2F0aW5nIHRoZQogICAgICBjbGllbnQgc2hvdWxkIHJlc3RhcnQgYSByZWFkLW1vZGlmeS13cml0ZSBzZXF1ZW5jZS4KICAoYykgVXNlIGBGQUlMRURfUFJFQ09ORElUSU9OYCBpZiB0aGUgY2xpZW50IHNob3VsZCBub3QgcmV0cnkgdW50aWwKICAgICAgdGhlIHN5c3RlbSBzdGF0ZSBoYXMgYmVlbiBleHBsaWNpdGx5IGZpeGVkLiBGb3IgZXhhbXBsZSwgaWYgYW4gInJtZGlyIgogICAgICBmYWlscyBiZWNhdXNlIHRoZSBkaXJlY3RvcnkgaXMgbm9uLWVtcHR5LCBgRkFJTEVEX1BSRUNPTkRJVElPTmAKICAgICAgc2hvdWxkIGJlIHJldHVybmVkIHNpbmNlIHRoZSBjbGllbnQgc2hvdWxkIG5vdCByZXRyeSB1bmxlc3MKICAgICAgdGhlIGZpbGVzIGFyZSBkZWxldGVkIGZyb20gdGhlIGRpcmVjdG9yeS4KCiBIVFRQIE1hcHBpbmc6IDQwMCBCYWQgUmVxdWVzdAoKDAoFBQACCgESA38CFQoMCgUFAAIKAhIDfxgZCowCCgQFAAILEgSIAQIPGv0BIFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQsIHR5cGljYWxseSBkdWUgdG8gYSBjb25jdXJyZW5jeSBpc3N1ZSBzdWNoIGFzCiBhIHNlcXVlbmNlciBjaGVjayBmYWlsdXJlIG9yIHRyYW5zYWN0aW9uIGFib3J0LgoKIFNlZSB0aGUgZ3VpZGVsaW5lcyBhYm92ZSBmb3IgZGVjaWRpbmcgYmV0d2VlbiBgRkFJTEVEX1BSRUNPTkRJVElPTmAsCiBgQUJPUlRFRGAsIGFuZCBgVU5BVkFJTEFCTEVgLgoKIEhUVFAgTWFwcGluZzogNDA5IENvbmZsaWN0CgoNCgUFAAILARIEiAECCQoNCgUFAAILAhIEiAEMDgqFBgoEBQACDBIEmwECFBr2BSBUaGUgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgcGFzdCB0aGUgdmFsaWQgcmFuZ2UuICBFLmcuLCBzZWVraW5nIG9yCiByZWFkaW5nIHBhc3QgZW5kLW9mLWZpbGUuCgogVW5saWtlIGBJTlZBTElEX0FSR1VNRU5UYCwgdGhpcyBlcnJvciBpbmRpY2F0ZXMgYSBwcm9ibGVtIHRoYXQgbWF5CiBiZSBmaXhlZCBpZiB0aGUgc3lzdGVtIHN0YXRlIGNoYW5nZXMuIEZvciBleGFtcGxlLCBhIDMyLWJpdCBmaWxlCiBzeXN0ZW0gd2lsbCBnZW5lcmF0ZSBgSU5WQUxJRF9BUkdVTUVOVGAgaWYgYXNrZWQgdG8gcmVhZCBhdCBhbgogb2Zmc2V0IHRoYXQgaXMgbm90IGluIHRoZSByYW5nZSBbMCwyXjMyLTFdLCBidXQgaXQgd2lsbCBnZW5lcmF0ZQogYE9VVF9PRl9SQU5HRWAgaWYgYXNrZWQgdG8gcmVhZCBmcm9tIGFuIG9mZnNldCBwYXN0IHRoZSBjdXJyZW50CiBmaWxlIHNpemUuCgogVGhlcmUgaXMgYSBmYWlyIGJpdCBvZiBvdmVybGFwIGJldHdlZW4gYEZBSUxFRF9QUkVDT05ESVRJT05gIGFuZAogYE9VVF9PRl9SQU5HRWAuICBXZSByZWNvbW1lbmQgdXNpbmcgYE9VVF9PRl9SQU5HRWAgKHRoZSBtb3JlIHNwZWNpZmljCiBlcnJvcikgd2hlbiBpdCBhcHBsaWVzIHNvIHRoYXQgY2FsbGVycyB3aG8gYXJlIGl0ZXJhdGluZyB0aHJvdWdoCiBhIHNwYWNlIGNhbiBlYXNpbHkgbG9vayBmb3IgYW4gYE9VVF9PRl9SQU5HRWAgZXJyb3IgdG8gZGV0ZWN0IHdoZW4KIHRoZXkgYXJlIGRvbmUuCgogSFRUUCBNYXBwaW5nOiA0MDAgQmFkIFJlcXVlc3QKCg0KBQUAAgwBEgSbAQIOCg0KBQUAAgwCEgSbARETCoIBCgQFAAINEgShAQIVGnQgVGhlIG9wZXJhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgb3IgaXMgbm90IHN1cHBvcnRlZC9lbmFibGVkIGluIHRoaXMKIHNlcnZpY2UuCgogSFRUUCBNYXBwaW5nOiA1MDEgTm90IEltcGxlbWVudGVkCgoNCgUFAAINARIEoQECDwoNCgUFAAINAhIEoQESFArTAQoEBQACDhIEqAECEBrEASBJbnRlcm5hbCBlcnJvcnMuICBUaGlzIG1lYW5zIHRoYXQgc29tZSBpbnZhcmlhbnRzIGV4cGVjdGVkIGJ5IHRoZQogdW5kZXJseWluZyBzeXN0ZW0gaGF2ZSBiZWVuIGJyb2tlbi4gIFRoaXMgZXJyb3IgY29kZSBpcyByZXNlcnZlZAogZm9yIHNlcmlvdXMgZXJyb3JzLgoKIEhUVFAgTWFwcGluZzogNTAwIEludGVybmFsIFNlcnZlciBFcnJvcgoKDQoFBQACDgESBKgBAgoKDQoFBQACDgISBKgBDQ8K6gIKBAUAAg8SBLMBAhMa2wIgVGhlIHNlcnZpY2UgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLiAgVGhpcyBpcyBtb3N0IGxpa2VseSBhCiB0cmFuc2llbnQgY29uZGl0aW9uLCB3aGljaCBjYW4gYmUgY29ycmVjdGVkIGJ5IHJldHJ5aW5nIHdpdGgKIGEgYmFja29mZi4gTm90ZSB0aGF0IGl0IGlzIG5vdCBhbHdheXMgc2FmZSB0byByZXRyeQogbm9uLWlkZW1wb3RlbnQgb3BlcmF0aW9ucy4KCiBTZWUgdGhlIGd1aWRlbGluZXMgYWJvdmUgZm9yIGRlY2lkaW5nIGJldHdlZW4gYEZBSUxFRF9QUkVDT05ESVRJT05gLAogYEFCT1JURURgLCBhbmQgYFVOQVZBSUxBQkxFYC4KCiBIVFRQIE1hcHBpbmc6IDUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlCgoNCgUFAAIPARIEswECDQoNCgUFAAIPAhIEswEQEgpgCgQFAAIQEgS4AQIRGlIgVW5yZWNvdmVyYWJsZSBkYXRhIGxvc3Mgb3IgY29ycnVwdGlvbi4KCiBIVFRQIE1hcHBpbmc6IDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IKCg0KBQUAAhABEgS4AQILCg0KBQUAAhACEgS4AQ4QYgZwcm90bzM='; + private const string DESCRIPTOR_BUFFER = 'ChVnb29nbGUvcnBjL2NvZGUucHJvdG8SCmdvb2dsZS5ycGMqtwIKBENvZGUSBgoCT0sQABINCglDQU5DRUxMRUQQARILCgdVTktOT1dOEAISFAoQSU5WQUxJRF9BUkdVTUVOVBADEhUKEURFQURMSU5FX0VYQ0VFREVEEAQSDQoJTk9UX0ZPVU5EEAUSEgoOQUxSRUFEWV9FWElTVFMQBhIVChFQRVJNSVNTSU9OX0RFTklFRBAHEhMKD1VOQVVUSEVOVElDQVRFRBAQEhYKElJFU09VUkNFX0VYSEFVU1RFRBAIEhcKE0ZBSUxFRF9QUkVDT05ESVRJT04QCRILCgdBQk9SVEVEEAoSEAoMT1VUX09GX1JBTkdFEAsSEQoNVU5JTVBMRU1FTlRFRBAMEgwKCElOVEVSTkFMEA0SDwoLVU5BVkFJTEFCTEUQDhINCglEQVRBX0xPU1MQD0JaCg5jb20uZ29vZ2xlLnJwY0IJQ29kZVByb3RvUAFIAVozZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvY29kZTtjb2RlogIDUlBDSoA2CgcSBQ4AuQEBCrwECgEMEgMOABIysQQgQ29weXJpZ2h0IDIwMjUgR29vZ2xlIExMQwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCggKAQgSAxIASgoJCgIICxIDEgBKCggKAQgSAxMAIgoJCgIIChIDEwAiCggKAQgSAxQAKgoJCgIICBIDFAAqCggKAQgSAxUAJwoJCgIIARIDFQAnCggKAQgSAxYAIQoJCgIIJBIDFgAhCswCCgIFABIFHwC5AQEavgIgVGhlIGNhbm9uaWNhbCBlcnJvciBjb2RlcyBmb3IgZ1JQQyBBUElzLgoKCiBTb21ldGltZXMgbXVsdGlwbGUgZXJyb3IgY29kZXMgbWF5IGFwcGx5LiAgU2VydmljZXMgc2hvdWxkIHJldHVybgogdGhlIG1vc3Qgc3BlY2lmaWMgZXJyb3IgY29kZSB0aGF0IGFwcGxpZXMuICBGb3IgZXhhbXBsZSwgcHJlZmVyCiBgT1VUX09GX1JBTkdFYCBvdmVyIGBGQUlMRURfUFJFQ09ORElUSU9OYCBpZiBib3RoIGNvZGVzIGFwcGx5LgogU2ltaWxhcmx5IHByZWZlciBgTk9UX0ZPVU5EYCBvciBgQUxSRUFEWV9FWElTVFNgIG92ZXIgYEZBSUxFRF9QUkVDT05ESVRJT05gLgoKCgoDBQABEgMfBQkKSAoEBQACABIDIwIJGjsgTm90IGFuIGVycm9yOyByZXR1cm5lZCBvbiBzdWNjZXNzLgoKIEhUVFAgTWFwcGluZzogMjAwIE9LCgoMCgUFAAIAARIDIwIECgwKBQUAAgACEgMjBwgKbgoEBQACARIDKAIQGmEgVGhlIG9wZXJhdGlvbiB3YXMgY2FuY2VsbGVkLCB0eXBpY2FsbHkgYnkgdGhlIGNhbGxlci4KCiBIVFRQIE1hcHBpbmc6IDQ5OSBDbGllbnQgQ2xvc2VkIFJlcXVlc3QKCgwKBQUAAgEBEgMoAgsKDAoFBQACAQISAygODwraAgoEBQACAhIDMQIOGswCIFVua25vd24gZXJyb3IuICBGb3IgZXhhbXBsZSwgdGhpcyBlcnJvciBtYXkgYmUgcmV0dXJuZWQgd2hlbgogYSBgU3RhdHVzYCB2YWx1ZSByZWNlaXZlZCBmcm9tIGFub3RoZXIgYWRkcmVzcyBzcGFjZSBiZWxvbmdzIHRvCiBhbiBlcnJvciBzcGFjZSB0aGF0IGlzIG5vdCBrbm93biBpbiB0aGlzIGFkZHJlc3Mgc3BhY2UuICBBbHNvCiBlcnJvcnMgcmFpc2VkIGJ5IEFQSXMgdGhhdCBkbyBub3QgcmV0dXJuIGVub3VnaCBlcnJvciBpbmZvcm1hdGlvbgogbWF5IGJlIGNvbnZlcnRlZCB0byB0aGlzIGVycm9yLgoKIEhUVFAgTWFwcGluZzogNTAwIEludGVybmFsIFNlcnZlciBFcnJvcgoKDAoFBQACAgESAzECCQoMCgUFAAICAhIDMQwNCpICCgQFAAIDEgM5AhcahAIgVGhlIGNsaWVudCBzcGVjaWZpZWQgYW4gaW52YWxpZCBhcmd1bWVudC4gIE5vdGUgdGhhdCB0aGlzIGRpZmZlcnMKIGZyb20gYEZBSUxFRF9QUkVDT05ESVRJT05gLiAgYElOVkFMSURfQVJHVU1FTlRgIGluZGljYXRlcyBhcmd1bWVudHMKIHRoYXQgYXJlIHByb2JsZW1hdGljIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXRlIG9mIHRoZSBzeXN0ZW0KIChlLmcuLCBhIG1hbGZvcm1lZCBmaWxlIG5hbWUpLgoKIEhUVFAgTWFwcGluZzogNDAwIEJhZCBSZXF1ZXN0CgoMCgUFAAIDARIDOQISCgwKBQUAAgMCEgM5FRYK5AIKBAUAAgQSA0ICGBrWAiBUaGUgZGVhZGxpbmUgZXhwaXJlZCBiZWZvcmUgdGhlIG9wZXJhdGlvbiBjb3VsZCBjb21wbGV0ZS4gRm9yIG9wZXJhdGlvbnMKIHRoYXQgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtLCB0aGlzIGVycm9yIG1heSBiZSByZXR1cm5lZAogZXZlbiBpZiB0aGUgb3BlcmF0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiAgRm9yIGV4YW1wbGUsIGEKIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIHNlcnZlciBjb3VsZCBoYXZlIGJlZW4gZGVsYXllZCBsb25nCiBlbm91Z2ggZm9yIHRoZSBkZWFkbGluZSB0byBleHBpcmUuCgogSFRUUCBNYXBwaW5nOiA1MDQgR2F0ZXdheSBUaW1lb3V0CgoMCgUFAAIEARIDQgITCgwKBQUAAgQCEgNCFhcKmgMKBAUAAgUSA00CEBqMAyBTb21lIHJlcXVlc3RlZCBlbnRpdHkgKGUuZy4sIGZpbGUgb3IgZGlyZWN0b3J5KSB3YXMgbm90IGZvdW5kLgoKIE5vdGUgdG8gc2VydmVyIGRldmVsb3BlcnM6IGlmIGEgcmVxdWVzdCBpcyBkZW5pZWQgZm9yIGFuIGVudGlyZSBjbGFzcwogb2YgdXNlcnMsIHN1Y2ggYXMgZ3JhZHVhbCBmZWF0dXJlIHJvbGxvdXQgb3IgdW5kb2N1bWVudGVkIGFsbG93bGlzdCwKIGBOT1RfRk9VTkRgIG1heSBiZSB1c2VkLiBJZiBhIHJlcXVlc3QgaXMgZGVuaWVkIGZvciBzb21lIHVzZXJzIHdpdGhpbgogYSBjbGFzcyBvZiB1c2Vycywgc3VjaCBhcyB1c2VyLWJhc2VkIGFjY2VzcyBjb250cm9sLCBgUEVSTUlTU0lPTl9ERU5JRURgCiBtdXN0IGJlIHVzZWQuCgogSFRUUCBNYXBwaW5nOiA0MDQgTm90IEZvdW5kCgoMCgUFAAIFARIDTQILCgwKBQUAAgUCEgNNDg8KgwEKBAUAAgYSA1MCFRp2IFRoZSBlbnRpdHkgdGhhdCBhIGNsaWVudCBhdHRlbXB0ZWQgdG8gY3JlYXRlIChlLmcuLCBmaWxlIG9yIGRpcmVjdG9yeSkKIGFscmVhZHkgZXhpc3RzLgoKIEhUVFAgTWFwcGluZzogNDA5IENvbmZsaWN0CgoMCgUFAAIGARIDUwIQCgwKBQUAAgYCEgNTExQK+QMKBAUAAgcSA18CGBrrAyBUaGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBleGVjdXRlIHRoZSBzcGVjaWZpZWQKIG9wZXJhdGlvbi4gYFBFUk1JU1NJT05fREVOSUVEYCBtdXN0IG5vdCBiZSB1c2VkIGZvciByZWplY3Rpb25zCiBjYXVzZWQgYnkgZXhoYXVzdGluZyBzb21lIHJlc291cmNlICh1c2UgYFJFU09VUkNFX0VYSEFVU1RFRGAKIGluc3RlYWQgZm9yIHRob3NlIGVycm9ycykuIGBQRVJNSVNTSU9OX0RFTklFRGAgbXVzdCBub3QgYmUKIHVzZWQgaWYgdGhlIGNhbGxlciBjYW4gbm90IGJlIGlkZW50aWZpZWQgKHVzZSBgVU5BVVRIRU5USUNBVEVEYAogaW5zdGVhZCBmb3IgdGhvc2UgZXJyb3JzKS4gVGhpcyBlcnJvciBjb2RlIGRvZXMgbm90IGltcGx5IHRoZQogcmVxdWVzdCBpcyB2YWxpZCBvciB0aGUgcmVxdWVzdGVkIGVudGl0eSBleGlzdHMgb3Igc2F0aXNmaWVzCiBvdGhlciBwcmUtY29uZGl0aW9ucy4KCiBIVFRQIE1hcHBpbmc6IDQwMyBGb3JiaWRkZW4KCgwKBQUAAgcBEgNfAhMKDAoFBQACBwISA18WFwp+CgQFAAIIEgNlAhcacSBUaGUgcmVxdWVzdCBkb2VzIG5vdCBoYXZlIHZhbGlkIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGZvciB0aGUKIG9wZXJhdGlvbi4KCiBIVFRQIE1hcHBpbmc6IDQwMSBVbmF1dGhvcml6ZWQKCgwKBQUAAggBEgNlAhEKDAoFBQACCAISA2UUFgqlAQoEBQACCRIDawIZGpcBIFNvbWUgcmVzb3VyY2UgaGFzIGJlZW4gZXhoYXVzdGVkLCBwZXJoYXBzIGEgcGVyLXVzZXIgcXVvdGEsIG9yCiBwZXJoYXBzIHRoZSBlbnRpcmUgZmlsZSBzeXN0ZW0gaXMgb3V0IG9mIHNwYWNlLgoKIEhUVFAgTWFwcGluZzogNDI5IFRvbyBNYW55IFJlcXVlc3RzCgoMCgUFAAIJARIDawIUCgwKBQUAAgkCEgNrFxgK5AcKBAUAAgoSA38CGhrWByBUaGUgb3BlcmF0aW9uIHdhcyByZWplY3RlZCBiZWNhdXNlIHRoZSBzeXN0ZW0gaXMgbm90IGluIGEgc3RhdGUKIHJlcXVpcmVkIGZvciB0aGUgb3BlcmF0aW9uJ3MgZXhlY3V0aW9uLiAgRm9yIGV4YW1wbGUsIHRoZSBkaXJlY3RvcnkKIHRvIGJlIGRlbGV0ZWQgaXMgbm9uLWVtcHR5LCBhbiBybWRpciBvcGVyYXRpb24gaXMgYXBwbGllZCB0bwogYSBub24tZGlyZWN0b3J5LCBldGMuCgogU2VydmljZSBpbXBsZW1lbnRvcnMgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGd1aWRlbGluZXMgdG8gZGVjaWRlCiBiZXR3ZWVuIGBGQUlMRURfUFJFQ09ORElUSU9OYCwgYEFCT1JURURgLCBhbmQgYFVOQVZBSUxBQkxFYDoKICAoYSkgVXNlIGBVTkFWQUlMQUJMRWAgaWYgdGhlIGNsaWVudCBjYW4gcmV0cnkganVzdCB0aGUgZmFpbGluZyBjYWxsLgogIChiKSBVc2UgYEFCT1JURURgIGlmIHRoZSBjbGllbnQgc2hvdWxkIHJldHJ5IGF0IGEgaGlnaGVyIGxldmVsLiBGb3IKICAgICAgZXhhbXBsZSwgd2hlbiBhIGNsaWVudC1zcGVjaWZpZWQgdGVzdC1hbmQtc2V0IGZhaWxzLCBpbmRpY2F0aW5nIHRoZQogICAgICBjbGllbnQgc2hvdWxkIHJlc3RhcnQgYSByZWFkLW1vZGlmeS13cml0ZSBzZXF1ZW5jZS4KICAoYykgVXNlIGBGQUlMRURfUFJFQ09ORElUSU9OYCBpZiB0aGUgY2xpZW50IHNob3VsZCBub3QgcmV0cnkgdW50aWwKICAgICAgdGhlIHN5c3RlbSBzdGF0ZSBoYXMgYmVlbiBleHBsaWNpdGx5IGZpeGVkLiBGb3IgZXhhbXBsZSwgaWYgYW4gInJtZGlyIgogICAgICBmYWlscyBiZWNhdXNlIHRoZSBkaXJlY3RvcnkgaXMgbm9uLWVtcHR5LCBgRkFJTEVEX1BSRUNPTkRJVElPTmAKICAgICAgc2hvdWxkIGJlIHJldHVybmVkIHNpbmNlIHRoZSBjbGllbnQgc2hvdWxkIG5vdCByZXRyeSB1bmxlc3MKICAgICAgdGhlIGZpbGVzIGFyZSBkZWxldGVkIGZyb20gdGhlIGRpcmVjdG9yeS4KCiBIVFRQIE1hcHBpbmc6IDQwMCBCYWQgUmVxdWVzdAoKDAoFBQACCgESA38CFQoMCgUFAAIKAhIDfxgZCowCCgQFAAILEgSIAQIPGv0BIFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQsIHR5cGljYWxseSBkdWUgdG8gYSBjb25jdXJyZW5jeSBpc3N1ZSBzdWNoIGFzCiBhIHNlcXVlbmNlciBjaGVjayBmYWlsdXJlIG9yIHRyYW5zYWN0aW9uIGFib3J0LgoKIFNlZSB0aGUgZ3VpZGVsaW5lcyBhYm92ZSBmb3IgZGVjaWRpbmcgYmV0d2VlbiBgRkFJTEVEX1BSRUNPTkRJVElPTmAsCiBgQUJPUlRFRGAsIGFuZCBgVU5BVkFJTEFCTEVgLgoKIEhUVFAgTWFwcGluZzogNDA5IENvbmZsaWN0CgoNCgUFAAILARIEiAECCQoNCgUFAAILAhIEiAEMDgqFBgoEBQACDBIEmwECFBr2BSBUaGUgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgcGFzdCB0aGUgdmFsaWQgcmFuZ2UuICBFLmcuLCBzZWVraW5nIG9yCiByZWFkaW5nIHBhc3QgZW5kLW9mLWZpbGUuCgogVW5saWtlIGBJTlZBTElEX0FSR1VNRU5UYCwgdGhpcyBlcnJvciBpbmRpY2F0ZXMgYSBwcm9ibGVtIHRoYXQgbWF5CiBiZSBmaXhlZCBpZiB0aGUgc3lzdGVtIHN0YXRlIGNoYW5nZXMuIEZvciBleGFtcGxlLCBhIDMyLWJpdCBmaWxlCiBzeXN0ZW0gd2lsbCBnZW5lcmF0ZSBgSU5WQUxJRF9BUkdVTUVOVGAgaWYgYXNrZWQgdG8gcmVhZCBhdCBhbgogb2Zmc2V0IHRoYXQgaXMgbm90IGluIHRoZSByYW5nZSBbMCwyXjMyLTFdLCBidXQgaXQgd2lsbCBnZW5lcmF0ZQogYE9VVF9PRl9SQU5HRWAgaWYgYXNrZWQgdG8gcmVhZCBmcm9tIGFuIG9mZnNldCBwYXN0IHRoZSBjdXJyZW50CiBmaWxlIHNpemUuCgogVGhlcmUgaXMgYSBmYWlyIGJpdCBvZiBvdmVybGFwIGJldHdlZW4gYEZBSUxFRF9QUkVDT05ESVRJT05gIGFuZAogYE9VVF9PRl9SQU5HRWAuICBXZSByZWNvbW1lbmQgdXNpbmcgYE9VVF9PRl9SQU5HRWAgKHRoZSBtb3JlIHNwZWNpZmljCiBlcnJvcikgd2hlbiBpdCBhcHBsaWVzIHNvIHRoYXQgY2FsbGVycyB3aG8gYXJlIGl0ZXJhdGluZyB0aHJvdWdoCiBhIHNwYWNlIGNhbiBlYXNpbHkgbG9vayBmb3IgYW4gYE9VVF9PRl9SQU5HRWAgZXJyb3IgdG8gZGV0ZWN0IHdoZW4KIHRoZXkgYXJlIGRvbmUuCgogSFRUUCBNYXBwaW5nOiA0MDAgQmFkIFJlcXVlc3QKCg0KBQUAAgwBEgSbAQIOCg0KBQUAAgwCEgSbARETCoIBCgQFAAINEgShAQIVGnQgVGhlIG9wZXJhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgb3IgaXMgbm90IHN1cHBvcnRlZC9lbmFibGVkIGluIHRoaXMKIHNlcnZpY2UuCgogSFRUUCBNYXBwaW5nOiA1MDEgTm90IEltcGxlbWVudGVkCgoNCgUFAAINARIEoQECDwoNCgUFAAINAhIEoQESFArTAQoEBQACDhIEqAECEBrEASBJbnRlcm5hbCBlcnJvcnMuICBUaGlzIG1lYW5zIHRoYXQgc29tZSBpbnZhcmlhbnRzIGV4cGVjdGVkIGJ5IHRoZQogdW5kZXJseWluZyBzeXN0ZW0gaGF2ZSBiZWVuIGJyb2tlbi4gIFRoaXMgZXJyb3IgY29kZSBpcyByZXNlcnZlZAogZm9yIHNlcmlvdXMgZXJyb3JzLgoKIEhUVFAgTWFwcGluZzogNTAwIEludGVybmFsIFNlcnZlciBFcnJvcgoKDQoFBQACDgESBKgBAgoKDQoFBQACDgISBKgBDQ8K6gIKBAUAAg8SBLMBAhMa2wIgVGhlIHNlcnZpY2UgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLiAgVGhpcyBpcyBtb3N0IGxpa2VseSBhCiB0cmFuc2llbnQgY29uZGl0aW9uLCB3aGljaCBjYW4gYmUgY29ycmVjdGVkIGJ5IHJldHJ5aW5nIHdpdGgKIGEgYmFja29mZi4gTm90ZSB0aGF0IGl0IGlzIG5vdCBhbHdheXMgc2FmZSB0byByZXRyeQogbm9uLWlkZW1wb3RlbnQgb3BlcmF0aW9ucy4KCiBTZWUgdGhlIGd1aWRlbGluZXMgYWJvdmUgZm9yIGRlY2lkaW5nIGJldHdlZW4gYEZBSUxFRF9QUkVDT05ESVRJT05gLAogYEFCT1JURURgLCBhbmQgYFVOQVZBSUxBQkxFYC4KCiBIVFRQIE1hcHBpbmc6IDUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlCgoNCgUFAAIPARIEswECDQoNCgUFAAIPAhIEswEQEgpgCgQFAAIQEgS4AQIRGlIgVW5yZWNvdmVyYWJsZSBkYXRhIGxvc3Mgb3IgY29ycnVwdGlvbi4KCiBIVFRQIE1hcHBpbmc6IDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IKCg0KBQUAAhABEgS4AQILCg0KBQUAAhACEgS4AQ4QYgZwcm90bzM='; #[Override] public function register(Registry\Pool $pool): void diff --git a/src/GoogleRpcErrorDetailsDescriptorRegistry.php b/src/GoogleRpcErrorDetailsDescriptorRegistry.php index ee53e08..45de922 100644 --- a/src/GoogleRpcErrorDetailsDescriptorRegistry.php +++ b/src/GoogleRpcErrorDetailsDescriptorRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ @@ -21,7 +21,7 @@ */ final readonly class GoogleRpcErrorDetailsDescriptorRegistry implements Registry\Registrar { - private const string DESCRIPTOR_BUFFER = 'Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMaHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90byK5AQoJRXJyb3JJbmZvEhYKBnJlYXNvbhgBIAEoCVIGcmVhc29uEhYKBmRvbWFpbhgCIAEoCVIGZG9tYWluEj8KCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeVIIbWV0YWRhdGEaOwoNTWV0YWRhdGFFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBIkcKCVJldHJ5SW5mbxI6CgtyZXRyeV9kZWxheRgBIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIKcmV0cnlEZWxheSJICglEZWJ1Z0luZm8SIwoNc3RhY2tfZW50cmllcxgBIAMoCVIMc3RhY2tFbnRyaWVzEhYKBmRldGFpbBgCIAEoCVIGZGV0YWlsIo4ECgxRdW90YUZhaWx1cmUSQgoKdmlvbGF0aW9ucxgBIAMoCzIiLmdvb2dsZS5ycGMuUXVvdGFGYWlsdXJlLlZpb2xhdGlvblIKdmlvbGF0aW9ucxq5AwoJVmlvbGF0aW9uEhgKB3N1YmplY3QYASABKAlSB3N1YmplY3QSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rlc2NyaXB0aW9uEh8KC2FwaV9zZXJ2aWNlGAMgASgJUgphcGlTZXJ2aWNlEiEKDHF1b3RhX21ldHJpYxgEIAEoCVILcXVvdGFNZXRyaWMSGQoIcXVvdGFfaWQYBSABKAlSB3F1b3RhSWQSYgoQcXVvdGFfZGltZW5zaW9ucxgGIAMoCzI3Lmdvb2dsZS5ycGMuUXVvdGFGYWlsdXJlLlZpb2xhdGlvbi5RdW90YURpbWVuc2lvbnNFbnRyeVIPcXVvdGFEaW1lbnNpb25zEh8KC3F1b3RhX3ZhbHVlGAcgASgDUgpxdW90YVZhbHVlEjEKEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAUhBmdXR1cmVRdW90YVZhbHVliAEBGkIKFFF1b3RhRGltZW5zaW9uc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSK9AQoTUHJlY29uZGl0aW9uRmFpbHVyZRJJCgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvblIKdmlvbGF0aW9ucxpbCglWaW9sYXRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIYCgdzdWJqZWN0GAIgASgJUgdzdWJqZWN0EiAKC2Rlc2NyaXB0aW9uGAMgASgJUgtkZXNjcmlwdGlvbiKMAgoKQmFkUmVxdWVzdBJQChBmaWVsZF92aW9sYXRpb25zGAEgAygLMiUuZ29vZ2xlLnJwYy5CYWRSZXF1ZXN0LkZpZWxkVmlvbGF0aW9uUg9maWVsZFZpb2xhdGlvbnMaqwEKDkZpZWxkVmlvbGF0aW9uEhQKBWZpZWxkGAEgASgJUgVmaWVsZBIgCgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SFgoGcmVhc29uGAMgASgJUgZyZWFzb24SSQoRbG9jYWxpemVkX21lc3NhZ2UYBCABKAsyHC5nb29nbGUucnBjLkxvY2FsaXplZE1lc3NhZ2VSEGxvY2FsaXplZE1lc3NhZ2UiTwoLUmVxdWVzdEluZm8SHQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEiEKDHNlcnZpbmdfZGF0YRgCIAEoCVILc2VydmluZ0RhdGEikAEKDFJlc291cmNlSW5mbxIjCg1yZXNvdXJjZV90eXBlGAEgASgJUgxyZXNvdXJjZVR5cGUSIwoNcmVzb3VyY2VfbmFtZRgCIAEoCVIMcmVzb3VyY2VOYW1lEhQKBW93bmVyGAMgASgJUgVvd25lchIgCgtkZXNjcmlwdGlvbhgEIAEoCVILZGVzY3JpcHRpb24ibwoESGVscBIrCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rUgVsaW5rcxo6CgRMaW5rEiAKC2Rlc2NyaXB0aW9uGAEgASgJUgtkZXNjcmlwdGlvbhIQCgN1cmwYAiABKAlSA3VybCJEChBMb2NhbGl6ZWRNZXNzYWdlEhYKBmxvY2FsZRgBIAEoCVIGbG9jYWxlEhgKB21lc3NhZ2UYAiABKAlSB21lc3NhZ2VCcQoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFIAVo/Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvZXJyZGV0YWlscztlcnJkZXRhaWxz+AEBogIDUlBDSodzCgcSBQ4A6gIBCrwECgEMEgMOABIysQQgQ29weXJpZ2h0IDIwMjUgR29vZ2xlIExMQwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCgkKAgMAEgMSACgKCAoBCBIDFABWCgkKAggLEgMUAFYKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAyCgkKAggIEgMWADIKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAhCgkKAggkEgMYACEKxQUKAgQAEgQyAEwBGrgFIERlc2NyaWJlcyB0aGUgY2F1c2Ugb2YgdGhlIGVycm9yIHdpdGggc3RydWN0dXJlZCBkZXRhaWxzLgoKIEV4YW1wbGUgb2YgYW4gZXJyb3Igd2hlbiBjb250YWN0aW5nIHRoZSAicHVic3ViLmdvb2dsZWFwaXMuY29tIiBBUEkgd2hlbiBpdAogaXMgbm90IGVuYWJsZWQ6CgogICAgIHsgInJlYXNvbiI6ICJBUElfRElTQUJMRUQiCiAgICAgICAiZG9tYWluIjogImdvb2dsZWFwaXMuY29tIgogICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICAicmVzb3VyY2UiOiAicHJvamVjdHMvMTIzIiwKICAgICAgICAgInNlcnZpY2UiOiAicHVic3ViLmdvb2dsZWFwaXMuY29tIgogICAgICAgfQogICAgIH0KCiBUaGlzIHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRoZSBwdWJzdWIuZ29vZ2xlYXBpcy5jb20gQVBJIGlzIG5vdCBlbmFibGVkLgoKIEV4YW1wbGUgb2YgYW4gZXJyb3IgdGhhdCBpcyByZXR1cm5lZCB3aGVuIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgU3Bhbm5lcgogaW5zdGFuY2UgaW4gYSByZWdpb24gdGhhdCBpcyBvdXQgb2Ygc3RvY2s6CgogICAgIHsgInJlYXNvbiI6ICJTVE9DS09VVCIKICAgICAgICJkb21haW4iOiAic3Bhbm5lci5nb29nbGVhcGlzLmNvbSIsCiAgICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgICJhdmFpbGFibGVSZWdpb25zIjogInVzLWNlbnRyYWwxLHVzLWVhc3QyIgogICAgICAgfQogICAgIH0KCgoKAwQAARIDMggRCrsCCgQEAAIAEgM4AhQarQIgVGhlIHJlYXNvbiBvZiB0aGUgZXJyb3IuIFRoaXMgaXMgYSBjb25zdGFudCB2YWx1ZSB0aGF0IGlkZW50aWZpZXMgdGhlCiBwcm94aW1hdGUgY2F1c2Ugb2YgdGhlIGVycm9yLiBFcnJvciByZWFzb25zIGFyZSB1bmlxdWUgd2l0aGluIGEgcGFydGljdWxhcgogZG9tYWluIG9mIGVycm9ycy4gVGhpcyBzaG91bGQgYmUgYXQgbW9zdCA2MyBjaGFyYWN0ZXJzIGFuZCBtYXRjaCBhCiByZWd1bGFyIGV4cHJlc3Npb24gb2YgYFtBLVpdW0EtWjAtOV9dK1tBLVowLTldYCwgd2hpY2ggcmVwcmVzZW50cwogVVBQRVJfU05BS0VfQ0FTRS4KCgwKBQQAAgAFEgM4AggKDAoFBAACAAESAzgJDwoMCgUEAAIAAxIDOBITCqgDCgQEAAIBEgNAAhQamgMgVGhlIGxvZ2ljYWwgZ3JvdXBpbmcgdG8gd2hpY2ggdGhlICJyZWFzb24iIGJlbG9uZ3MuIFRoZSBlcnJvciBkb21haW4KIGlzIHR5cGljYWxseSB0aGUgcmVnaXN0ZXJlZCBzZXJ2aWNlIG5hbWUgb2YgdGhlIHRvb2wgb3IgcHJvZHVjdCB0aGF0CiBnZW5lcmF0ZXMgdGhlIGVycm9yLiBFeGFtcGxlOiAicHVic3ViLmdvb2dsZWFwaXMuY29tIi4gSWYgdGhlIGVycm9yIGlzCiBnZW5lcmF0ZWQgYnkgc29tZSBjb21tb24gaW5mcmFzdHJ1Y3R1cmUsIHRoZSBlcnJvciBkb21haW4gbXVzdCBiZSBhCiBnbG9iYWxseSB1bmlxdWUgdmFsdWUgdGhhdCBpZGVudGlmaWVzIHRoZSBpbmZyYXN0cnVjdHVyZS4gRm9yIEdvb2dsZSBBUEkKIGluZnJhc3RydWN0dXJlLCB0aGUgZXJyb3IgZG9tYWluIGlzICJnb29nbGVhcGlzLmNvbSIuCgoMCgUEAAIBBRIDQAIICgwKBQQAAgEBEgNACQ8KDAoFBAACAQMSA0ASEwquBAoEBAACAhIDSwIjGqAEIEFkZGl0aW9uYWwgc3RydWN0dXJlZCBkZXRhaWxzIGFib3V0IHRoaXMgZXJyb3IuCgogS2V5cyBtdXN0IG1hdGNoIGEgcmVndWxhciBleHByZXNzaW9uIG9mIGBbYS16XVthLXpBLVowLTktX10rYCBidXQgc2hvdWxkCiBpZGVhbGx5IGJlIGxvd2VyQ2FtZWxDYXNlLiBBbHNvLCB0aGV5IG11c3QgYmUgbGltaXRlZCB0byA2NCBjaGFyYWN0ZXJzIGluCiBsZW5ndGguIFdoZW4gaWRlbnRpZnlpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYW4gZXhjZWVkZWQgbGltaXQsIHRoZSB1bml0cwogc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiB0aGUga2V5LCBub3QgdGhlIHZhbHVlLiAgRm9yIGV4YW1wbGUsIHJhdGhlciB0aGFuCiBgeyJpbnN0YW5jZUxpbWl0IjogIjEwMC9yZXF1ZXN0In1gLCBzaG91bGQgYmUgcmV0dXJuZWQgYXMsCiBgeyJpbnN0YW5jZUxpbWl0UGVyUmVxdWVzdCI6ICIxMDAifWAsIGlmIHRoZSBjbGllbnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mCiBpbnN0YW5jZXMgdGhhdCBjYW4gYmUgY3JlYXRlZCBpbiBhIHNpbmdsZSAoYmF0Y2gpIHJlcXVlc3QuCgoMCgUEAAICBhIDSwIVCgwKBQQAAgIBEgNLFh4KDAoFBAACAgMSA0shIgqLBQoCBAESBFsAXgEa/gQgRGVzY3JpYmVzIHdoZW4gdGhlIGNsaWVudHMgY2FuIHJldHJ5IGEgZmFpbGVkIHJlcXVlc3QuIENsaWVudHMgY291bGQgaWdub3JlCiB0aGUgcmVjb21tZW5kYXRpb24gaGVyZSBvciByZXRyeSB3aGVuIHRoaXMgaW5mb3JtYXRpb24gaXMgbWlzc2luZyBmcm9tIGVycm9yCiByZXNwb25zZXMuCgogSXQncyBhbHdheXMgcmVjb21tZW5kZWQgdGhhdCBjbGllbnRzIHNob3VsZCB1c2UgZXhwb25lbnRpYWwgYmFja29mZiB3aGVuCiByZXRyeWluZy4KCiBDbGllbnRzIHNob3VsZCB3YWl0IHVudGlsIGByZXRyeV9kZWxheWAgYW1vdW50IG9mIHRpbWUgaGFzIHBhc3NlZCBzaW5jZQogcmVjZWl2aW5nIHRoZSBlcnJvciByZXNwb25zZSBiZWZvcmUgcmV0cnlpbmcuICBJZiByZXRyeWluZyByZXF1ZXN0cyBhbHNvCiBmYWlsLCBjbGllbnRzIHNob3VsZCB1c2UgYW4gZXhwb25lbnRpYWwgYmFja29mZiBzY2hlbWUgdG8gZ3JhZHVhbGx5IGluY3JlYXNlCiB0aGUgZGVsYXkgYmV0d2VlbiByZXRyaWVzIGJhc2VkIG9uIGByZXRyeV9kZWxheWAsIHVudGlsIGVpdGhlciBhIG1heGltdW0KIG51bWJlciBvZiByZXRyaWVzIGhhdmUgYmVlbiByZWFjaGVkIG9yIGEgbWF4aW11bSByZXRyeSBkZWxheSBjYXAgaGFzIGJlZW4KIHJlYWNoZWQuCgoKCgMEAQESA1sIEQpYCgQEAQIAEgNdAisaSyBDbGllbnRzIHNob3VsZCB3YWl0IGF0IGxlYXN0IHRoaXMgbG9uZyBiZXR3ZWVuIHJldHJ5aW5nIHRoZSBzYW1lIHJlcXVlc3QuCgoMCgUEAQIABhIDXQIaCgwKBQQBAgABEgNdGyYKDAoFBAECAAMSA10pKgoyCgIEAhIEYQBnARomIERlc2NyaWJlcyBhZGRpdGlvbmFsIGRlYnVnZ2luZyBpbmZvLgoKCgoDBAIBEgNhCBEKSwoEBAICABIDYwIkGj4gVGhlIHN0YWNrIHRyYWNlIGVudHJpZXMgaW5kaWNhdGluZyB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCgoMCgUEAgIABBIDYwIKCgwKBQQCAgAFEgNjCxEKDAoFBAICAAESA2MSHwoMCgUEAgIAAxIDYyIjCkcKBAQCAgESA2YCFBo6IEFkZGl0aW9uYWwgZGVidWdnaW5nIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIuCgoMCgUEAgIBBRIDZgIICgwKBQQCAgEBEgNmCQ8KDAoFBAICAQMSA2YSEwr9AwoCBAMSBXQAygEBGu8DIERlc2NyaWJlcyBob3cgYSBxdW90YSBjaGVjayBmYWlsZWQuCgogRm9yIGV4YW1wbGUgaWYgYSBkYWlseSBsaW1pdCB3YXMgZXhjZWVkZWQgZm9yIHRoZSBjYWxsaW5nIHByb2plY3QsCiBhIHNlcnZpY2UgY291bGQgcmVzcG9uZCB3aXRoIGEgUXVvdGFGYWlsdXJlIGRldGFpbCBjb250YWluaW5nIHRoZSBwcm9qZWN0CiBpZCBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBxdW90YSBsaW1pdCB0aGF0IHdhcyBleGNlZWRlZC4gIElmIHRoZQogY2FsbGluZyBwcm9qZWN0IGhhc24ndCBlbmFibGVkIHRoZSBzZXJ2aWNlIGluIHRoZSBkZXZlbG9wZXIgY29uc29sZSwgdGhlbgogYSBzZXJ2aWNlIGNvdWxkIHJlc3BvbmQgd2l0aCB0aGUgcHJvamVjdCBpZCBhbmQgc2V0IGBzZXJ2aWNlX2Rpc2FibGVkYAogdG8gdHJ1ZS4KCiBBbHNvIHNlZSBSZXRyeUluZm8gYW5kIEhlbHAgdHlwZXMgZm9yIG90aGVyIGRldGFpbHMgYWJvdXQgaGFuZGxpbmcgYQogcXVvdGEgZmFpbHVyZS4KCgoKAwQDARIDdAgUCowBCgQEAwMAEgV3AsYBAxp9IEEgbWVzc2FnZSB0eXBlIHVzZWQgdG8gZGVzY3JpYmUgYSBzaW5nbGUgcXVvdGEgdmlvbGF0aW9uLiAgRm9yIGV4YW1wbGUsIGEKIGRhaWx5IHF1b3RhIG9yIGEgY3VzdG9tIHF1b3RhIHRoYXQgd2FzIGV4Y2VlZGVkLgoKDAoFBAMDAAESA3cKEwqbAQoGBAMDAAIAEgN7BBcaiwEgVGhlIHN1YmplY3Qgb24gd2hpY2ggdGhlIHF1b3RhIGNoZWNrIGZhaWxlZC4KIEZvciBleGFtcGxlLCAiY2xpZW50aXA6PGlwIGFkZHJlc3Mgb2YgY2xpZW50PiIgb3IgInByb2plY3Q6PEdvb2dsZQogZGV2ZWxvcGVyIHByb2plY3QgaWQ+Ii4KCg4KBwQDAwACAAUSA3sECgoOCgcEAwMAAgABEgN7CxIKDgoHBAMDAAIAAxIDexUWCs0CCgYEAwMAAgESBIQBBBsavAIgQSBkZXNjcmlwdGlvbiBvZiBob3cgdGhlIHF1b3RhIGNoZWNrIGZhaWxlZC4gQ2xpZW50cyBjYW4gdXNlIHRoaXMKIGRlc2NyaXB0aW9uIHRvIGZpbmQgbW9yZSBhYm91dCB0aGUgcXVvdGEgY29uZmlndXJhdGlvbiBpbiB0aGUgc2VydmljZSdzCiBwdWJsaWMgZG9jdW1lbnRhdGlvbiwgb3IgZmluZCB0aGUgcmVsZXZhbnQgcXVvdGEgbGltaXQgdG8gYWRqdXN0IHRocm91Z2gKIGRldmVsb3BlciBjb25zb2xlLgoKIEZvciBleGFtcGxlOiAiU2VydmljZSBkaXNhYmxlZCIgb3IgIkRhaWx5IExpbWl0IGZvciByZWFkIG9wZXJhdGlvbnMKIGV4Y2VlZGVkIi4KCg8KBwQDAwACAQUSBIQBBAoKDwoHBAMDAAIBARIEhAELFgoPCgcEAwMAAgEDEgSEARkaCt8FCgYEAwMAAgISBJMBBBsazgUgVGhlIEFQSSBTZXJ2aWNlIGZyb20gd2hpY2ggdGhlIGBRdW90YUZhaWx1cmUuVmlvbGF0aW9uYCBvcmdpbmF0ZXMuIEluCiBzb21lIGNhc2VzLCBRdW90YSBpc3N1ZXMgb3JpZ2luYXRlIGZyb20gYW4gQVBJIFNlcnZpY2Ugb3RoZXIgdGhhbiB0aGUgb25lCiB0aGF0IHdhcyBjYWxsZWQuIEluIG90aGVyIHdvcmRzLCBhIGRlcGVuZGVuY3kgb2YgdGhlIGNhbGxlZCBBUEkgU2VydmljZQogY291bGQgYmUgdGhlIGNhdXNlIG9mIHRoZSBgUXVvdGFGYWlsdXJlYCwgYW5kIHRoaXMgZmllbGQgd291bGQgaGF2ZSB0aGUKIGRlcGVuZGVuY3kgQVBJIHNlcnZpY2UgbmFtZS4KCiBGb3IgZXhhbXBsZSwgaWYgdGhlIGNhbGxlZCBBUEkgaXMgS3ViZXJuZXRlcyBFbmdpbmUgQVBJCiAoY29udGFpbmVyLmdvb2dsZWFwaXMuY29tKSwgYW5kIGEgcXVvdGEgdmlvbGF0aW9uIG9jY3VycyBpbiB0aGUKIEt1YmVybmV0ZXMgRW5naW5lIEFQSSBpdHNlbGYsIHRoaXMgZmllbGQgd291bGQgYmUKICJjb250YWluZXIuZ29vZ2xlYXBpcy5jb20iLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIHF1b3RhIHZpb2xhdGlvbgogb2NjdXJzIHdoZW4gdGhlIEt1YmVybmV0ZXMgRW5naW5lIEFQSSBjcmVhdGVzIFZNcyBpbiB0aGUgQ29tcHV0ZSBFbmdpbmUKIEFQSSAoY29tcHV0ZS5nb29nbGVhcGlzLmNvbSksIHRoaXMgZmllbGQgd291bGQgYmUKICJjb21wdXRlLmdvb2dsZWFwaXMuY29tIi4KCg8KBwQDAwACAgUSBJMBBAoKDwoHBAMDAAICARIEkwELFgoPCgcEAwMAAgIDEgSTARkaCu8CCgYEAwMAAgMSBJwBBBwa3gIgVGhlIG1ldHJpYyBvZiB0aGUgdmlvbGF0ZWQgcXVvdGEuIEEgcXVvdGEgbWV0cmljIGlzIGEgbmFtZWQgY291bnRlciB0bwogbWVhc3VyZSB1c2FnZSwgc3VjaCBhcyBBUEkgcmVxdWVzdHMgb3IgQ1BVcy4gV2hlbiBhbiBhY3Rpdml0eSBvY2N1cnMgaW4gYQogc2VydmljZSwgc3VjaCBhcyBWaXJ0dWFsIE1hY2hpbmUgYWxsb2NhdGlvbiwgb25lIG9yIG1vcmUgcXVvdGEgbWV0cmljcwogbWF5IGJlIGFmZmVjdGVkLgoKIEZvciBleGFtcGxlLCAiY29tcHV0ZS5nb29nbGVhcGlzLmNvbS9jcHVzX3Blcl92bV9mYW1pbHkiLAogInN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vaW50ZXJuZXRfZWdyZXNzX2JhbmR3aWR0aCIuCgoPCgcEAwMAAgMFEgScAQQKCg8KBwQDAwACAwESBJwBCxcKDwoHBAMDAAIDAxIEnAEaGwrPAQoGBAMDAAIEEgSiAQQYGr4BIFRoZSBpZCBvZiB0aGUgdmlvbGF0ZWQgcXVvdGEuIEFsc28ga25vdyBhcyAibGltaXQgbmFtZSIsIHRoaXMgaXMgdGhlCiB1bmlxdWUgaWRlbnRpZmllciBvZiBhIHF1b3RhIGluIHRoZSBjb250ZXh0IG9mIGFuIEFQSSBzZXJ2aWNlLgoKIEZvciBleGFtcGxlLCAiQ1BVUy1QRVItVk0tRkFNSUxZLXBlci1wcm9qZWN0LXJlZ2lvbiIuCgoPCgcEAwMAAgQFEgSiAQQKCg8KBwQDAwACBAESBKIBCxMKDwoHBAMDAAIEAxIEogEWFwqPBQoGBAMDAAIFEgS0AQQtGv4EIFRoZSBkaW1lbnNpb25zIG9mIHRoZSB2aW9sYXRlZCBxdW90YS4gRXZlcnkgbm9uLWdsb2JhbCBxdW90YSBpcyBlbmZvcmNlZAogb24gYSBzZXQgb2YgZGltZW5zaW9ucy4gV2hpbGUgcXVvdGEgbWV0cmljIGRlZmluZXMgd2hhdCB0byBjb3VudCwgdGhlCiBkaW1lbnNpb25zIHNwZWNpZnkgZm9yIHdoYXQgYXNwZWN0cyB0aGUgY291bnRlciBzaG91bGQgYmUgaW5jcmVhc2VkLgoKIEZvciBleGFtcGxlLCB0aGUgcXVvdGEgIkNQVXMgcGVyIHJlZ2lvbiBwZXIgVk0gZmFtaWx5IiBlbmZvcmNlcyBhIGxpbWl0CiBvbiB0aGUgbWV0cmljICJjb21wdXRlLmdvb2dsZWFwaXMuY29tL2NwdXNfcGVyX3ZtX2ZhbWlseSIgb24gZGltZW5zaW9ucwogInJlZ2lvbiIgYW5kICJ2bV9mYW1pbHkiLiBBbmQgaWYgdGhlIHZpb2xhdGlvbiBvY2N1cnJlZCBpbiByZWdpb24KICJ1cy1jZW50cmFsMSIgYW5kIGZvciBWTSBmYW1pbHkgIm4xIiwgdGhlIHF1b3RhX2RpbWVuc2lvbnMgd291bGQgYmUsCgogewogICAicmVnaW9uIjogInVzLWNlbnRyYWwxIiwKICAgInZtX2ZhbWlseSI6ICJuMSIsCiB9CgogV2hlbiBhIHF1b3RhIGlzIGVuZm9yY2VkIGdsb2JhbGx5LCB0aGUgcXVvdGFfZGltZW5zaW9ucyB3b3VsZCBhbHdheXMgYmUKIGVtcHR5LgoKDwoHBAMDAAIFBhIEtAEEFwoPCgcEAwMAAgUBEgS0ARgoCg8KBwQDAwACBQMSBLQBKywK9gEKBgQDAwACBhIEuwEEGhrlASBUaGUgZW5mb3JjZWQgcXVvdGEgdmFsdWUgYXQgdGhlIHRpbWUgb2YgdGhlIGBRdW90YUZhaWx1cmVgLgoKIEZvciBleGFtcGxlLCBpZiB0aGUgZW5mb3JjZWQgcXVvdGEgdmFsdWUgYXQgdGhlIHRpbWUgb2YgdGhlCiBgUXVvdGFGYWlsdXJlYCBvbiB0aGUgbnVtYmVyIG9mIENQVXMgaXMgIjEwIiwgdGhlbiB0aGUgdmFsdWUgb2YgdGhpcwogZmllbGQgd291bGQgcmVmbGVjdCB0aGlzIHF1YW50aXR5LgoKDwoHBAMDAAIGBRIEuwEECQoPCgcEAwMAAgYBEgS7AQoVCg8KBwQDAwACBgMSBLsBGBkKoQMKBgQDAwACBxIExQEEKhqQAyBUaGUgbmV3IHF1b3RhIHZhbHVlIGJlaW5nIHJvbGxlZCBvdXQgYXQgdGhlIHRpbWUgb2YgdGhlIHZpb2xhdGlvbi4gQXQgdGhlCiBjb21wbGV0aW9uIG9mIHRoZSByb2xsb3V0LCB0aGlzIHZhbHVlIHdpbGwgYmUgZW5mb3JjZWQgaW4gcGxhY2Ugb2YKIHF1b3RhX3ZhbHVlLiBJZiBubyByb2xsb3V0IGlzIGluIHByb2dyZXNzIGF0IHRoZSB0aW1lIG9mIHRoZSB2aW9sYXRpb24sCiB0aGlzIGZpZWxkIGlzIG5vdCBzZXQuCgogRm9yIGV4YW1wbGUsIGlmIGF0IHRoZSB0aW1lIG9mIHRoZSB2aW9sYXRpb24gYSByb2xsb3V0IGlzIGluIHByb2dyZXNzCiBjaGFuZ2luZyB0aGUgbnVtYmVyIG9mIENQVXMgcXVvdGEgZnJvbSAxMCB0byAyMCwgMjAgd291bGQgYmUgdGhlIHZhbHVlIG9mCiB0aGlzIGZpZWxkLgoKDwoHBAMDAAIHBBIExQEEDAoPCgcEAwMAAgcFEgTFAQ0SCg8KBwQDAwACBwESBMUBEyUKDwoHBAMDAAIHAxIExQEoKQovCgQEAwIAEgTJAQIkGiEgRGVzY3JpYmVzIGFsbCBxdW90YSB2aW9sYXRpb25zLgoKDQoFBAMCAAQSBMkBAgoKDQoFBAMCAAYSBMkBCxQKDQoFBAMCAAESBMkBFR8KDQoFBAMCAAMSBMkBIiMK6gEKAgQEEgbRAQDnAQEa2wEgRGVzY3JpYmVzIHdoYXQgcHJlY29uZGl0aW9ucyBoYXZlIGZhaWxlZC4KCiBGb3IgZXhhbXBsZSwgaWYgYW4gUlBDIGZhaWxlZCBiZWNhdXNlIGl0IHJlcXVpcmVkIHRoZSBUZXJtcyBvZiBTZXJ2aWNlIHRvIGJlCiBhY2tub3dsZWRnZWQsIGl0IGNvdWxkIGxpc3QgdGhlIHRlcm1zIG9mIHNlcnZpY2UgdmlvbGF0aW9uIGluIHRoZQogUHJlY29uZGl0aW9uRmFpbHVyZSBtZXNzYWdlLgoKCwoDBAQBEgTRAQgbClAKBAQEAwASBtMBAuMBAxpAIEEgbWVzc2FnZSB0eXBlIHVzZWQgdG8gZGVzY3JpYmUgYSBzaW5nbGUgcHJlY29uZGl0aW9uIGZhaWx1cmUuCgoNCgUEBAMAARIE0wEKEwrTAQoGBAQDAAIAEgTXAQQUGsIBIFRoZSB0eXBlIG9mIFByZWNvbmRpdGlvbkZhaWx1cmUuIFdlIHJlY29tbWVuZCB1c2luZyBhIHNlcnZpY2Utc3BlY2lmaWMKIGVudW0gdHlwZSB0byBkZWZpbmUgdGhlIHN1cHBvcnRlZCBwcmVjb25kaXRpb24gdmlvbGF0aW9uIHN1YmplY3RzLiBGb3IKIGV4YW1wbGUsICJUT1MiIGZvciAiVGVybXMgb2YgU2VydmljZSB2aW9sYXRpb24iLgoKDwoHBAQDAAIABRIE1wEECgoPCgcEBAMAAgABEgTXAQsPCg8KBwQEAwACAAMSBNcBEhMKugEKBgQEAwACARIE3AEEFxqpASBUaGUgc3ViamVjdCwgcmVsYXRpdmUgdG8gdGhlIHR5cGUsIHRoYXQgZmFpbGVkLgogRm9yIGV4YW1wbGUsICJnb29nbGUuY29tL2Nsb3VkIiByZWxhdGl2ZSB0byB0aGUgIlRPUyIgdHlwZSB3b3VsZCBpbmRpY2F0ZQogd2hpY2ggdGVybXMgb2Ygc2VydmljZSBpcyBiZWluZyByZWZlcmVuY2VkLgoKDwoHBAQDAAIBBRIE3AEECgoPCgcEBAMAAgEBEgTcAQsSCg8KBwQEAwACAQMSBNwBFRYKuwEKBgQEAwACAhIE4gEEGxqqASBBIGRlc2NyaXB0aW9uIG9mIGhvdyB0aGUgcHJlY29uZGl0aW9uIGZhaWxlZC4gRGV2ZWxvcGVycyBjYW4gdXNlIHRoaXMKIGRlc2NyaXB0aW9uIHRvIHVuZGVyc3RhbmQgaG93IHRvIGZpeCB0aGUgZmFpbHVyZS4KCiBGb3IgZXhhbXBsZTogIlRlcm1zIG9mIHNlcnZpY2Ugbm90IGFjY2VwdGVkIi4KCg8KBwQEAwACAgUSBOIBBAoKDwoHBAQDAAICARIE4gELFgoPCgcEBAMAAgIDEgTiARkaCjYKBAQEAgASBOYBAiQaKCBEZXNjcmliZXMgYWxsIHByZWNvbmRpdGlvbiB2aW9sYXRpb25zLgoKDQoFBAQCAAQSBOYBAgoKDQoFBAQCAAYSBOYBCxQKDQoFBAQCAAESBOYBFR8KDQoFBAQCAAMSBOYBIiMKewoCBAUSBusBAKcCARptIERlc2NyaWJlcyB2aW9sYXRpb25zIGluIGEgY2xpZW50IHJlcXVlc3QuIFRoaXMgZXJyb3IgdHlwZSBmb2N1c2VzIG9uIHRoZQogc3ludGFjdGljIGFzcGVjdHMgb2YgdGhlIHJlcXVlc3QuCgoLCgMEBQESBOsBCBIKTQoEBAUDABIG7QECowIDGj0gQSBtZXNzYWdlIHR5cGUgdXNlZCB0byBkZXNjcmliZSBhIHNpbmdsZSBiYWQgcmVxdWVzdCBmaWVsZC4KCg0KBQQFAwABEgTtAQoYCscJCgYEBQMAAgASBJMCBBUatgkgQSBwYXRoIHRoYXQgbGVhZHMgdG8gYSBmaWVsZCBpbiB0aGUgcmVxdWVzdCBib2R5LiBUaGUgdmFsdWUgd2lsbCBiZSBhCiBzZXF1ZW5jZSBvZiBkb3Qtc2VwYXJhdGVkIGlkZW50aWZpZXJzIHRoYXQgaWRlbnRpZnkgYSBwcm90b2NvbCBidWZmZXIKIGZpZWxkLgoKIENvbnNpZGVyIHRoZSBmb2xsb3dpbmc6CgogICAgIG1lc3NhZ2UgQ3JlYXRlQ29udGFjdFJlcXVlc3QgewogICAgICAgbWVzc2FnZSBFbWFpbEFkZHJlc3MgewogICAgICAgICBlbnVtIFR5cGUgewogICAgICAgICAgIFRZUEVfVU5TUEVDSUZJRUQgPSAwOwogICAgICAgICAgIEhPTUUgPSAxOwogICAgICAgICAgIFdPUksgPSAyOwogICAgICAgICB9CgogICAgICAgICBvcHRpb25hbCBzdHJpbmcgZW1haWwgPSAxOwogICAgICAgICByZXBlYXRlZCBFbWFpbFR5cGUgdHlwZSA9IDI7CiAgICAgICB9CgogICAgICAgc3RyaW5nIGZ1bGxfbmFtZSA9IDE7CiAgICAgICByZXBlYXRlZCBFbWFpbEFkZHJlc3MgZW1haWxfYWRkcmVzc2VzID0gMjsKICAgICB9CgogSW4gdGhpcyBleGFtcGxlLCBpbiBwcm90byBgZmllbGRgIGNvdWxkIHRha2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgoKICogYGZ1bGxfbmFtZWAgZm9yIGEgdmlvbGF0aW9uIGluIHRoZSBgZnVsbF9uYW1lYCB2YWx1ZQogKiBgZW1haWxfYWRkcmVzc2VzWzFdLmVtYWlsYCBmb3IgYSB2aW9sYXRpb24gaW4gdGhlIGBlbWFpbGAgZmllbGQgb2YgdGhlCiAgIGZpcnN0IGBlbWFpbF9hZGRyZXNzZXNgIG1lc3NhZ2UKICogYGVtYWlsX2FkZHJlc3Nlc1szXS50eXBlWzJdYCBmb3IgYSB2aW9sYXRpb24gaW4gdGhlIHNlY29uZCBgdHlwZWAKICAgdmFsdWUgaW4gdGhlIHRoaXJkIGBlbWFpbF9hZGRyZXNzZXNgIG1lc3NhZ2UuCgogSW4gSlNPTiwgdGhlIHNhbWUgdmFsdWVzIGFyZSByZXByZXNlbnRlZCBhczoKCiAqIGBmdWxsTmFtZWAgZm9yIGEgdmlvbGF0aW9uIGluIHRoZSBgZnVsbE5hbWVgIHZhbHVlCiAqIGBlbWFpbEFkZHJlc3Nlc1sxXS5lbWFpbGAgZm9yIGEgdmlvbGF0aW9uIGluIHRoZSBgZW1haWxgIGZpZWxkIG9mIHRoZQogICBmaXJzdCBgZW1haWxBZGRyZXNzZXNgIG1lc3NhZ2UKICogYGVtYWlsQWRkcmVzc2VzWzNdLnR5cGVbMl1gIGZvciBhIHZpb2xhdGlvbiBpbiB0aGUgc2Vjb25kIGB0eXBlYAogICB2YWx1ZSBpbiB0aGUgdGhpcmQgYGVtYWlsQWRkcmVzc2VzYCBtZXNzYWdlLgoKDwoHBAUDAAIABRIEkwIECgoPCgcEBQMAAgABEgSTAgsQCg8KBwQFAwACAAMSBJMCExQKQgoGBAUDAAIBEgSWAgQbGjIgQSBkZXNjcmlwdGlvbiBvZiB3aHkgdGhlIHJlcXVlc3QgZWxlbWVudCBpcyBiYWQuCgoPCgcEBQMAAgEFEgSWAgQKCg8KBwQFAwACAQESBJYCCxYKDwoHBAUDAAIBAxIElgIZGgqIAwoGBAUDAAICEgSeAgQWGvcCIFRoZSByZWFzb24gb2YgdGhlIGZpZWxkLWxldmVsIGVycm9yLiBUaGlzIGlzIGEgY29uc3RhbnQgdmFsdWUgdGhhdAogaWRlbnRpZmllcyB0aGUgcHJveGltYXRlIGNhdXNlIG9mIHRoZSBmaWVsZC1sZXZlbCBlcnJvci4gSXQgc2hvdWxkCiB1bmlxdWVseSBpZGVudGlmeSB0aGUgdHlwZSBvZiB0aGUgRmllbGRWaW9sYXRpb24gd2l0aGluIHRoZSBzY29wZSBvZiB0aGUKIGdvb2dsZS5ycGMuRXJyb3JJbmZvLmRvbWFpbi4gVGhpcyBzaG91bGQgYmUgYXQgbW9zdCA2MwogY2hhcmFjdGVycyBhbmQgbWF0Y2ggYSByZWd1bGFyIGV4cHJlc3Npb24gb2YgYFtBLVpdW0EtWjAtOV9dK1tBLVowLTldYCwKIHdoaWNoIHJlcHJlc2VudHMgVVBQRVJfU05BS0VfQ0FTRS4KCg8KBwQFAwACAgUSBJ4CBAoKDwoHBAUDAAICARIEngILEQoPCgcEBQMAAgIDEgSeAhQVCngKBgQFAwACAxIEogIEKxpoIFByb3ZpZGVzIGEgbG9jYWxpemVkIGVycm9yIG1lc3NhZ2UgZm9yIGZpZWxkLWxldmVsIGVycm9ycyB0aGF0IGlzIHNhZmUgdG8KIHJldHVybiB0byB0aGUgQVBJIGNvbnN1bWVyLgoKDwoHBAUDAAIDBhIEogIEFAoPCgcEBQMAAgMBEgSiAhUmCg8KBwQFAwACAwMSBKICKSoKPQoEBAUCABIEpgICLxovIERlc2NyaWJlcyBhbGwgdmlvbGF0aW9ucyBpbiBhIGNsaWVudCByZXF1ZXN0LgoKDQoFBAUCAAQSBKYCAgoKDQoFBAUCAAYSBKYCCxkKDQoFBAUCAAESBKYCGioKDQoFBAUCAAMSBKYCLS4KhAEKAgQGEgarAgCzAgEadiBDb250YWlucyBtZXRhZGF0YSBhYm91dCB0aGUgcmVxdWVzdCB0aGF0IGNsaWVudHMgY2FuIGF0dGFjaCB3aGVuIGZpbGluZyBhIGJ1Zwogb3IgcHJvdmlkaW5nIG90aGVyIGZvcm1zIG9mIGZlZWRiYWNrLgoKCwoDBAYBEgSrAggTCqgBCgQEBgIAEgSuAgIYGpkBIEFuIG9wYXF1ZSBzdHJpbmcgdGhhdCBzaG91bGQgb25seSBiZSBpbnRlcnByZXRlZCBieSB0aGUgc2VydmljZSBnZW5lcmF0aW5nCiBpdC4gRm9yIGV4YW1wbGUsIGl0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHJlcXVlc3RzIGluIHRoZSBzZXJ2aWNlJ3MgbG9ncy4KCg0KBQQGAgAFEgSuAgIICg0KBQQGAgABEgSuAgkTCg0KBQQGAgADEgSuAhYXCqIBCgQEBgIBEgSyAgIaGpMBIEFueSBkYXRhIHRoYXQgd2FzIHVzZWQgdG8gc2VydmUgdGhpcyByZXF1ZXN0LiBGb3IgZXhhbXBsZSwgYW4gZW5jcnlwdGVkCiBzdGFjayB0cmFjZSB0aGF0IGNhbiBiZSBzZW50IGJhY2sgdG8gdGhlIHNlcnZpY2UgcHJvdmlkZXIgZm9yIGRlYnVnZ2luZy4KCg0KBQQGAgEFEgSyAgIICg0KBQQGAgEBEgSyAgkVCg0KBQQGAgEDEgSyAhgZCj4KAgQHEga2AgDLAgEaMCBEZXNjcmliZXMgdGhlIHJlc291cmNlIHRoYXQgaXMgYmVpbmcgYWNjZXNzZWQuCgoLCgMEBwESBLYCCBQK2wEKBAQHAgASBLoCAhsazAEgQSBuYW1lIGZvciB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyBhY2Nlc3NlZCwgZS5nLiAic3FsIHRhYmxlIiwKICJjbG91ZCBzdG9yYWdlIGJ1Y2tldCIsICJmaWxlIiwgIkdvb2dsZSBjYWxlbmRhciI7IG9yIHRoZSB0eXBlIFVSTAogb2YgdGhlIHJlc291cmNlOiBlLmcuICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wdWJzdWIudjEuVG9waWMiLgoKDQoFBAcCAAUSBLoCAggKDQoFBAcCAAESBLoCCRYKDQoFBAcCAAMSBLoCGRoK9wEKBAQHAgESBMACAhsa6AEgVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJlaW5nIGFjY2Vzc2VkLiAgRm9yIGV4YW1wbGUsIGEgc2hhcmVkIGNhbGVuZGFyCiBuYW1lOiAiZXhhbXBsZS5jb21fNGZnaGRoZ3NyZ2hAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbSIsIGlmIHRoZSBjdXJyZW50CiBlcnJvciBpcwogW2dvb2dsZS5ycGMuQ29kZS5QRVJNSVNTSU9OX0RFTklFRF1bZ29vZ2xlLnJwYy5Db2RlLlBFUk1JU1NJT05fREVOSUVEXS4KCg0KBQQHAgEFEgTAAgIICg0KBQQHAgEBEgTAAgkWCg0KBQQHAgEDEgTAAhkaCoUBCgQEBwICEgTFAgITGncgVGhlIG93bmVyIG9mIHRoZSByZXNvdXJjZSAob3B0aW9uYWwpLgogRm9yIGV4YW1wbGUsICJ1c2VyOjxvd25lciBlbWFpbD4iIG9yICJwcm9qZWN0OjxHb29nbGUgZGV2ZWxvcGVyIHByb2plY3QKIGlkPiIuCgoNCgUEBwICBRIExQICCAoNCgUEBwICARIExQIJDgoNCgUEBwICAxIExQIREgrAAQoEBAcCAxIEygICGRqxASBEZXNjcmliZXMgd2hhdCBlcnJvciBpcyBlbmNvdW50ZXJlZCB3aGVuIGFjY2Vzc2luZyB0aGlzIHJlc291cmNlLgogRm9yIGV4YW1wbGUsIHVwZGF0aW5nIGEgY2xvdWQgcHJvamVjdCBtYXkgcmVxdWlyZSB0aGUgYHdyaXRlcmAgcGVybWlzc2lvbgogb24gdGhlIGRldmVsb3BlciBjb25zb2xlIHByb2plY3QuCgoNCgUEBwIDBRIEygICCAoNCgUEBwIDARIEygIJFAoNCgUEBwIDAxIEygIXGAq6AgoCBAgSBtICAN4CARqrAiBQcm92aWRlcyBsaW5rcyB0byBkb2N1bWVudGF0aW9uIG9yIGZvciBwZXJmb3JtaW5nIGFuIG91dCBvZiBiYW5kIGFjdGlvbi4KCiBGb3IgZXhhbXBsZSwgaWYgYSBxdW90YSBjaGVjayBmYWlsZWQgd2l0aCBhbiBlcnJvciBpbmRpY2F0aW5nIHRoZSBjYWxsaW5nCiBwcm9qZWN0IGhhc24ndCBlbmFibGVkIHRoZSBhY2Nlc3NlZCBzZXJ2aWNlLCB0aGlzIGNhbiBjb250YWluIGEgVVJMIHBvaW50aW5nCiBkaXJlY3RseSB0byB0aGUgcmlnaHQgcGxhY2UgaW4gdGhlIGRldmVsb3BlciBjb25zb2xlIHRvIGZsaXAgdGhlIGJpdC4KCgsKAwQIARIE0gIIDAonCgQECAMAEgbUAgLaAgMaFyBEZXNjcmliZXMgYSBVUkwgbGluay4KCg0KBQQIAwABEgTUAgoOCjEKBgQIAwACABIE1gIEGxohIERlc2NyaWJlcyB3aGF0IHRoZSBsaW5rIG9mZmVycy4KCg8KBwQIAwACAAUSBNYCBAoKDwoHBAgDAAIAARIE1gILFgoPCgcECAMAAgADEgTWAhkaCiYKBgQIAwACARIE2QIEExoWIFRoZSBVUkwgb2YgdGhlIGxpbmsuCgoPCgcECAMAAgEFEgTZAgQKCg8KBwQIAwACAQESBNkCCw4KDwoHBAgDAAIBAxIE2QIREgpYCgQECAIAEgTdAgIaGkogVVJMKHMpIHBvaW50aW5nIHRvIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gaGFuZGxpbmcgdGhlIGN1cnJlbnQgZXJyb3IuCgoNCgUECAIABBIE3QICCgoNCgUECAIABhIE3QILDwoNCgUECAIAARIE3QIQFQoNCgUECAIAAxIE3QIYGQp9CgIECRIG4gIA6gIBGm8gUHJvdmlkZXMgYSBsb2NhbGl6ZWQgZXJyb3IgbWVzc2FnZSB0aGF0IGlzIHNhZmUgdG8gcmV0dXJuIHRvIHRoZSB1c2VyCiB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYW4gUlBDIGVycm9yLgoKCwoDBAkBEgTiAggYCp8BCgQECQIAEgTmAgIUGpABIFRoZSBsb2NhbGUgdXNlZCBmb2xsb3dpbmcgdGhlIHNwZWNpZmljYXRpb24gZGVmaW5lZCBhdAogaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL2JjcC9iY3A0Ny50eHQuCiBFeGFtcGxlcyBhcmU6ICJlbi1VUyIsICJmci1DSCIsICJlcy1NWCIKCg0KBQQJAgAFEgTmAgIICg0KBQQJAgABEgTmAgkPCg0KBQQJAgADEgTmAhITCkAKBAQJAgESBOkCAhUaMiBUaGUgbG9jYWxpemVkIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGFib3ZlIGxvY2FsZS4KCg0KBQQJAgEFEgTpAgIICg0KBQQJAgEBEgTpAgkQCg0KBQQJAgEDEgTpAhMUYgZwcm90bzM='; + private const string DESCRIPTOR_BUFFER = 'Ch5nb29nbGUvcnBjL2Vycm9yX2RldGFpbHMucHJvdG8SCmdvb2dsZS5ycGMaHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90byK5AQoJRXJyb3JJbmZvEhYKBnJlYXNvbhgBIAEoCVIGcmVhc29uEhYKBmRvbWFpbhgCIAEoCVIGZG9tYWluEj8KCG1ldGFkYXRhGAMgAygLMiMuZ29vZ2xlLnJwYy5FcnJvckluZm8uTWV0YWRhdGFFbnRyeVIIbWV0YWRhdGEaOwoNTWV0YWRhdGFFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBIkcKCVJldHJ5SW5mbxI6CgtyZXRyeV9kZWxheRgBIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIKcmV0cnlEZWxheSJICglEZWJ1Z0luZm8SIwoNc3RhY2tfZW50cmllcxgBIAMoCVIMc3RhY2tFbnRyaWVzEhYKBmRldGFpbBgCIAEoCVIGZGV0YWlsIo4ECgxRdW90YUZhaWx1cmUSQgoKdmlvbGF0aW9ucxgBIAMoCzIiLmdvb2dsZS5ycGMuUXVvdGFGYWlsdXJlLlZpb2xhdGlvblIKdmlvbGF0aW9ucxq5AwoJVmlvbGF0aW9uEhgKB3N1YmplY3QYASABKAlSB3N1YmplY3QSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rlc2NyaXB0aW9uEh8KC2FwaV9zZXJ2aWNlGAMgASgJUgphcGlTZXJ2aWNlEiEKDHF1b3RhX21ldHJpYxgEIAEoCVILcXVvdGFNZXRyaWMSGQoIcXVvdGFfaWQYBSABKAlSB3F1b3RhSWQSYgoQcXVvdGFfZGltZW5zaW9ucxgGIAMoCzI3Lmdvb2dsZS5ycGMuUXVvdGFGYWlsdXJlLlZpb2xhdGlvbi5RdW90YURpbWVuc2lvbnNFbnRyeVIPcXVvdGFEaW1lbnNpb25zEh8KC3F1b3RhX3ZhbHVlGAcgASgDUgpxdW90YVZhbHVlEjEKEmZ1dHVyZV9xdW90YV92YWx1ZRgIIAEoA0gAUhBmdXR1cmVRdW90YVZhbHVliAEBGkIKFFF1b3RhRGltZW5zaW9uc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAFCFQoTX2Z1dHVyZV9xdW90YV92YWx1ZSK9AQoTUHJlY29uZGl0aW9uRmFpbHVyZRJJCgp2aW9sYXRpb25zGAEgAygLMikuZ29vZ2xlLnJwYy5QcmVjb25kaXRpb25GYWlsdXJlLlZpb2xhdGlvblIKdmlvbGF0aW9ucxpbCglWaW9sYXRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIYCgdzdWJqZWN0GAIgASgJUgdzdWJqZWN0EiAKC2Rlc2NyaXB0aW9uGAMgASgJUgtkZXNjcmlwdGlvbiKMAgoKQmFkUmVxdWVzdBJQChBmaWVsZF92aW9sYXRpb25zGAEgAygLMiUuZ29vZ2xlLnJwYy5CYWRSZXF1ZXN0LkZpZWxkVmlvbGF0aW9uUg9maWVsZFZpb2xhdGlvbnMaqwEKDkZpZWxkVmlvbGF0aW9uEhQKBWZpZWxkGAEgASgJUgVmaWVsZBIgCgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SFgoGcmVhc29uGAMgASgJUgZyZWFzb24SSQoRbG9jYWxpemVkX21lc3NhZ2UYBCABKAsyHC5nb29nbGUucnBjLkxvY2FsaXplZE1lc3NhZ2VSEGxvY2FsaXplZE1lc3NhZ2UiTwoLUmVxdWVzdEluZm8SHQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEiEKDHNlcnZpbmdfZGF0YRgCIAEoCVILc2VydmluZ0RhdGEikAEKDFJlc291cmNlSW5mbxIjCg1yZXNvdXJjZV90eXBlGAEgASgJUgxyZXNvdXJjZVR5cGUSIwoNcmVzb3VyY2VfbmFtZRgCIAEoCVIMcmVzb3VyY2VOYW1lEhQKBW93bmVyGAMgASgJUgVvd25lchIgCgtkZXNjcmlwdGlvbhgEIAEoCVILZGVzY3JpcHRpb24ibwoESGVscBIrCgVsaW5rcxgBIAMoCzIVLmdvb2dsZS5ycGMuSGVscC5MaW5rUgVsaW5rcxo6CgRMaW5rEiAKC2Rlc2NyaXB0aW9uGAEgASgJUgtkZXNjcmlwdGlvbhIQCgN1cmwYAiABKAlSA3VybCJEChBMb2NhbGl6ZWRNZXNzYWdlEhYKBmxvY2FsZRgBIAEoCVIGbG9jYWxlEhgKB21lc3NhZ2UYAiABKAlSB21lc3NhZ2VCbgoOY29tLmdvb2dsZS5ycGNCEUVycm9yRGV0YWlsc1Byb3RvUAFIAVo/Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvZXJyZGV0YWlscztlcnJkZXRhaWxzogIDUlBDSodzCgcSBQ4A6gIBCrwECgEMEgMOABIysQQgQ29weXJpZ2h0IDIwMjUgR29vZ2xlIExMQwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCgkKAgMAEgMSACgKCAoBCBIDFABWCgkKAggLEgMUAFYKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAyCgkKAggIEgMWADIKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAhCgkKAggkEgMYACEKxQUKAgQAEgQyAEwBGrgFIERlc2NyaWJlcyB0aGUgY2F1c2Ugb2YgdGhlIGVycm9yIHdpdGggc3RydWN0dXJlZCBkZXRhaWxzLgoKIEV4YW1wbGUgb2YgYW4gZXJyb3Igd2hlbiBjb250YWN0aW5nIHRoZSAicHVic3ViLmdvb2dsZWFwaXMuY29tIiBBUEkgd2hlbiBpdAogaXMgbm90IGVuYWJsZWQ6CgogICAgIHsgInJlYXNvbiI6ICJBUElfRElTQUJMRUQiCiAgICAgICAiZG9tYWluIjogImdvb2dsZWFwaXMuY29tIgogICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICAicmVzb3VyY2UiOiAicHJvamVjdHMvMTIzIiwKICAgICAgICAgInNlcnZpY2UiOiAicHVic3ViLmdvb2dsZWFwaXMuY29tIgogICAgICAgfQogICAgIH0KCiBUaGlzIHJlc3BvbnNlIGluZGljYXRlcyB0aGF0IHRoZSBwdWJzdWIuZ29vZ2xlYXBpcy5jb20gQVBJIGlzIG5vdCBlbmFibGVkLgoKIEV4YW1wbGUgb2YgYW4gZXJyb3IgdGhhdCBpcyByZXR1cm5lZCB3aGVuIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgU3Bhbm5lcgogaW5zdGFuY2UgaW4gYSByZWdpb24gdGhhdCBpcyBvdXQgb2Ygc3RvY2s6CgogICAgIHsgInJlYXNvbiI6ICJTVE9DS09VVCIKICAgICAgICJkb21haW4iOiAic3Bhbm5lci5nb29nbGVhcGlzLmNvbSIsCiAgICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgICJhdmFpbGFibGVSZWdpb25zIjogInVzLWNlbnRyYWwxLHVzLWVhc3QyIgogICAgICAgfQogICAgIH0KCgoKAwQAARIDMggRCrsCCgQEAAIAEgM4AhQarQIgVGhlIHJlYXNvbiBvZiB0aGUgZXJyb3IuIFRoaXMgaXMgYSBjb25zdGFudCB2YWx1ZSB0aGF0IGlkZW50aWZpZXMgdGhlCiBwcm94aW1hdGUgY2F1c2Ugb2YgdGhlIGVycm9yLiBFcnJvciByZWFzb25zIGFyZSB1bmlxdWUgd2l0aGluIGEgcGFydGljdWxhcgogZG9tYWluIG9mIGVycm9ycy4gVGhpcyBzaG91bGQgYmUgYXQgbW9zdCA2MyBjaGFyYWN0ZXJzIGFuZCBtYXRjaCBhCiByZWd1bGFyIGV4cHJlc3Npb24gb2YgYFtBLVpdW0EtWjAtOV9dK1tBLVowLTldYCwgd2hpY2ggcmVwcmVzZW50cwogVVBQRVJfU05BS0VfQ0FTRS4KCgwKBQQAAgAFEgM4AggKDAoFBAACAAESAzgJDwoMCgUEAAIAAxIDOBITCqgDCgQEAAIBEgNAAhQamgMgVGhlIGxvZ2ljYWwgZ3JvdXBpbmcgdG8gd2hpY2ggdGhlICJyZWFzb24iIGJlbG9uZ3MuIFRoZSBlcnJvciBkb21haW4KIGlzIHR5cGljYWxseSB0aGUgcmVnaXN0ZXJlZCBzZXJ2aWNlIG5hbWUgb2YgdGhlIHRvb2wgb3IgcHJvZHVjdCB0aGF0CiBnZW5lcmF0ZXMgdGhlIGVycm9yLiBFeGFtcGxlOiAicHVic3ViLmdvb2dsZWFwaXMuY29tIi4gSWYgdGhlIGVycm9yIGlzCiBnZW5lcmF0ZWQgYnkgc29tZSBjb21tb24gaW5mcmFzdHJ1Y3R1cmUsIHRoZSBlcnJvciBkb21haW4gbXVzdCBiZSBhCiBnbG9iYWxseSB1bmlxdWUgdmFsdWUgdGhhdCBpZGVudGlmaWVzIHRoZSBpbmZyYXN0cnVjdHVyZS4gRm9yIEdvb2dsZSBBUEkKIGluZnJhc3RydWN0dXJlLCB0aGUgZXJyb3IgZG9tYWluIGlzICJnb29nbGVhcGlzLmNvbSIuCgoMCgUEAAIBBRIDQAIICgwKBQQAAgEBEgNACQ8KDAoFBAACAQMSA0ASEwquBAoEBAACAhIDSwIjGqAEIEFkZGl0aW9uYWwgc3RydWN0dXJlZCBkZXRhaWxzIGFib3V0IHRoaXMgZXJyb3IuCgogS2V5cyBtdXN0IG1hdGNoIGEgcmVndWxhciBleHByZXNzaW9uIG9mIGBbYS16XVthLXpBLVowLTktX10rYCBidXQgc2hvdWxkCiBpZGVhbGx5IGJlIGxvd2VyQ2FtZWxDYXNlLiBBbHNvLCB0aGV5IG11c3QgYmUgbGltaXRlZCB0byA2NCBjaGFyYWN0ZXJzIGluCiBsZW5ndGguIFdoZW4gaWRlbnRpZnlpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYW4gZXhjZWVkZWQgbGltaXQsIHRoZSB1bml0cwogc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiB0aGUga2V5LCBub3QgdGhlIHZhbHVlLiAgRm9yIGV4YW1wbGUsIHJhdGhlciB0aGFuCiBgeyJpbnN0YW5jZUxpbWl0IjogIjEwMC9yZXF1ZXN0In1gLCBzaG91bGQgYmUgcmV0dXJuZWQgYXMsCiBgeyJpbnN0YW5jZUxpbWl0UGVyUmVxdWVzdCI6ICIxMDAifWAsIGlmIHRoZSBjbGllbnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mCiBpbnN0YW5jZXMgdGhhdCBjYW4gYmUgY3JlYXRlZCBpbiBhIHNpbmdsZSAoYmF0Y2gpIHJlcXVlc3QuCgoMCgUEAAICBhIDSwIVCgwKBQQAAgIBEgNLFh4KDAoFBAACAgMSA0shIgqLBQoCBAESBFsAXgEa/gQgRGVzY3JpYmVzIHdoZW4gdGhlIGNsaWVudHMgY2FuIHJldHJ5IGEgZmFpbGVkIHJlcXVlc3QuIENsaWVudHMgY291bGQgaWdub3JlCiB0aGUgcmVjb21tZW5kYXRpb24gaGVyZSBvciByZXRyeSB3aGVuIHRoaXMgaW5mb3JtYXRpb24gaXMgbWlzc2luZyBmcm9tIGVycm9yCiByZXNwb25zZXMuCgogSXQncyBhbHdheXMgcmVjb21tZW5kZWQgdGhhdCBjbGllbnRzIHNob3VsZCB1c2UgZXhwb25lbnRpYWwgYmFja29mZiB3aGVuCiByZXRyeWluZy4KCiBDbGllbnRzIHNob3VsZCB3YWl0IHVudGlsIGByZXRyeV9kZWxheWAgYW1vdW50IG9mIHRpbWUgaGFzIHBhc3NlZCBzaW5jZQogcmVjZWl2aW5nIHRoZSBlcnJvciByZXNwb25zZSBiZWZvcmUgcmV0cnlpbmcuICBJZiByZXRyeWluZyByZXF1ZXN0cyBhbHNvCiBmYWlsLCBjbGllbnRzIHNob3VsZCB1c2UgYW4gZXhwb25lbnRpYWwgYmFja29mZiBzY2hlbWUgdG8gZ3JhZHVhbGx5IGluY3JlYXNlCiB0aGUgZGVsYXkgYmV0d2VlbiByZXRyaWVzIGJhc2VkIG9uIGByZXRyeV9kZWxheWAsIHVudGlsIGVpdGhlciBhIG1heGltdW0KIG51bWJlciBvZiByZXRyaWVzIGhhdmUgYmVlbiByZWFjaGVkIG9yIGEgbWF4aW11bSByZXRyeSBkZWxheSBjYXAgaGFzIGJlZW4KIHJlYWNoZWQuCgoKCgMEAQESA1sIEQpYCgQEAQIAEgNdAisaSyBDbGllbnRzIHNob3VsZCB3YWl0IGF0IGxlYXN0IHRoaXMgbG9uZyBiZXR3ZWVuIHJldHJ5aW5nIHRoZSBzYW1lIHJlcXVlc3QuCgoMCgUEAQIABhIDXQIaCgwKBQQBAgABEgNdGyYKDAoFBAECAAMSA10pKgoyCgIEAhIEYQBnARomIERlc2NyaWJlcyBhZGRpdGlvbmFsIGRlYnVnZ2luZyBpbmZvLgoKCgoDBAIBEgNhCBEKSwoEBAICABIDYwIkGj4gVGhlIHN0YWNrIHRyYWNlIGVudHJpZXMgaW5kaWNhdGluZyB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCgoMCgUEAgIABBIDYwIKCgwKBQQCAgAFEgNjCxEKDAoFBAICAAESA2MSHwoMCgUEAgIAAxIDYyIjCkcKBAQCAgESA2YCFBo6IEFkZGl0aW9uYWwgZGVidWdnaW5nIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIuCgoMCgUEAgIBBRIDZgIICgwKBQQCAgEBEgNmCQ8KDAoFBAICAQMSA2YSEwr9AwoCBAMSBXQAygEBGu8DIERlc2NyaWJlcyBob3cgYSBxdW90YSBjaGVjayBmYWlsZWQuCgogRm9yIGV4YW1wbGUgaWYgYSBkYWlseSBsaW1pdCB3YXMgZXhjZWVkZWQgZm9yIHRoZSBjYWxsaW5nIHByb2plY3QsCiBhIHNlcnZpY2UgY291bGQgcmVzcG9uZCB3aXRoIGEgUXVvdGFGYWlsdXJlIGRldGFpbCBjb250YWluaW5nIHRoZSBwcm9qZWN0CiBpZCBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBxdW90YSBsaW1pdCB0aGF0IHdhcyBleGNlZWRlZC4gIElmIHRoZQogY2FsbGluZyBwcm9qZWN0IGhhc24ndCBlbmFibGVkIHRoZSBzZXJ2aWNlIGluIHRoZSBkZXZlbG9wZXIgY29uc29sZSwgdGhlbgogYSBzZXJ2aWNlIGNvdWxkIHJlc3BvbmQgd2l0aCB0aGUgcHJvamVjdCBpZCBhbmQgc2V0IGBzZXJ2aWNlX2Rpc2FibGVkYAogdG8gdHJ1ZS4KCiBBbHNvIHNlZSBSZXRyeUluZm8gYW5kIEhlbHAgdHlwZXMgZm9yIG90aGVyIGRldGFpbHMgYWJvdXQgaGFuZGxpbmcgYQogcXVvdGEgZmFpbHVyZS4KCgoKAwQDARIDdAgUCowBCgQEAwMAEgV3AsYBAxp9IEEgbWVzc2FnZSB0eXBlIHVzZWQgdG8gZGVzY3JpYmUgYSBzaW5nbGUgcXVvdGEgdmlvbGF0aW9uLiAgRm9yIGV4YW1wbGUsIGEKIGRhaWx5IHF1b3RhIG9yIGEgY3VzdG9tIHF1b3RhIHRoYXQgd2FzIGV4Y2VlZGVkLgoKDAoFBAMDAAESA3cKEwqbAQoGBAMDAAIAEgN7BBcaiwEgVGhlIHN1YmplY3Qgb24gd2hpY2ggdGhlIHF1b3RhIGNoZWNrIGZhaWxlZC4KIEZvciBleGFtcGxlLCAiY2xpZW50aXA6PGlwIGFkZHJlc3Mgb2YgY2xpZW50PiIgb3IgInByb2plY3Q6PEdvb2dsZQogZGV2ZWxvcGVyIHByb2plY3QgaWQ+Ii4KCg4KBwQDAwACAAUSA3sECgoOCgcEAwMAAgABEgN7CxIKDgoHBAMDAAIAAxIDexUWCs0CCgYEAwMAAgESBIQBBBsavAIgQSBkZXNjcmlwdGlvbiBvZiBob3cgdGhlIHF1b3RhIGNoZWNrIGZhaWxlZC4gQ2xpZW50cyBjYW4gdXNlIHRoaXMKIGRlc2NyaXB0aW9uIHRvIGZpbmQgbW9yZSBhYm91dCB0aGUgcXVvdGEgY29uZmlndXJhdGlvbiBpbiB0aGUgc2VydmljZSdzCiBwdWJsaWMgZG9jdW1lbnRhdGlvbiwgb3IgZmluZCB0aGUgcmVsZXZhbnQgcXVvdGEgbGltaXQgdG8gYWRqdXN0IHRocm91Z2gKIGRldmVsb3BlciBjb25zb2xlLgoKIEZvciBleGFtcGxlOiAiU2VydmljZSBkaXNhYmxlZCIgb3IgIkRhaWx5IExpbWl0IGZvciByZWFkIG9wZXJhdGlvbnMKIGV4Y2VlZGVkIi4KCg8KBwQDAwACAQUSBIQBBAoKDwoHBAMDAAIBARIEhAELFgoPCgcEAwMAAgEDEgSEARkaCt8FCgYEAwMAAgISBJMBBBsazgUgVGhlIEFQSSBTZXJ2aWNlIGZyb20gd2hpY2ggdGhlIGBRdW90YUZhaWx1cmUuVmlvbGF0aW9uYCBvcmdpbmF0ZXMuIEluCiBzb21lIGNhc2VzLCBRdW90YSBpc3N1ZXMgb3JpZ2luYXRlIGZyb20gYW4gQVBJIFNlcnZpY2Ugb3RoZXIgdGhhbiB0aGUgb25lCiB0aGF0IHdhcyBjYWxsZWQuIEluIG90aGVyIHdvcmRzLCBhIGRlcGVuZGVuY3kgb2YgdGhlIGNhbGxlZCBBUEkgU2VydmljZQogY291bGQgYmUgdGhlIGNhdXNlIG9mIHRoZSBgUXVvdGFGYWlsdXJlYCwgYW5kIHRoaXMgZmllbGQgd291bGQgaGF2ZSB0aGUKIGRlcGVuZGVuY3kgQVBJIHNlcnZpY2UgbmFtZS4KCiBGb3IgZXhhbXBsZSwgaWYgdGhlIGNhbGxlZCBBUEkgaXMgS3ViZXJuZXRlcyBFbmdpbmUgQVBJCiAoY29udGFpbmVyLmdvb2dsZWFwaXMuY29tKSwgYW5kIGEgcXVvdGEgdmlvbGF0aW9uIG9jY3VycyBpbiB0aGUKIEt1YmVybmV0ZXMgRW5naW5lIEFQSSBpdHNlbGYsIHRoaXMgZmllbGQgd291bGQgYmUKICJjb250YWluZXIuZ29vZ2xlYXBpcy5jb20iLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlIHF1b3RhIHZpb2xhdGlvbgogb2NjdXJzIHdoZW4gdGhlIEt1YmVybmV0ZXMgRW5naW5lIEFQSSBjcmVhdGVzIFZNcyBpbiB0aGUgQ29tcHV0ZSBFbmdpbmUKIEFQSSAoY29tcHV0ZS5nb29nbGVhcGlzLmNvbSksIHRoaXMgZmllbGQgd291bGQgYmUKICJjb21wdXRlLmdvb2dsZWFwaXMuY29tIi4KCg8KBwQDAwACAgUSBJMBBAoKDwoHBAMDAAICARIEkwELFgoPCgcEAwMAAgIDEgSTARkaCu8CCgYEAwMAAgMSBJwBBBwa3gIgVGhlIG1ldHJpYyBvZiB0aGUgdmlvbGF0ZWQgcXVvdGEuIEEgcXVvdGEgbWV0cmljIGlzIGEgbmFtZWQgY291bnRlciB0bwogbWVhc3VyZSB1c2FnZSwgc3VjaCBhcyBBUEkgcmVxdWVzdHMgb3IgQ1BVcy4gV2hlbiBhbiBhY3Rpdml0eSBvY2N1cnMgaW4gYQogc2VydmljZSwgc3VjaCBhcyBWaXJ0dWFsIE1hY2hpbmUgYWxsb2NhdGlvbiwgb25lIG9yIG1vcmUgcXVvdGEgbWV0cmljcwogbWF5IGJlIGFmZmVjdGVkLgoKIEZvciBleGFtcGxlLCAiY29tcHV0ZS5nb29nbGVhcGlzLmNvbS9jcHVzX3Blcl92bV9mYW1pbHkiLAogInN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vaW50ZXJuZXRfZWdyZXNzX2JhbmR3aWR0aCIuCgoPCgcEAwMAAgMFEgScAQQKCg8KBwQDAwACAwESBJwBCxcKDwoHBAMDAAIDAxIEnAEaGwrPAQoGBAMDAAIEEgSiAQQYGr4BIFRoZSBpZCBvZiB0aGUgdmlvbGF0ZWQgcXVvdGEuIEFsc28ga25vdyBhcyAibGltaXQgbmFtZSIsIHRoaXMgaXMgdGhlCiB1bmlxdWUgaWRlbnRpZmllciBvZiBhIHF1b3RhIGluIHRoZSBjb250ZXh0IG9mIGFuIEFQSSBzZXJ2aWNlLgoKIEZvciBleGFtcGxlLCAiQ1BVUy1QRVItVk0tRkFNSUxZLXBlci1wcm9qZWN0LXJlZ2lvbiIuCgoPCgcEAwMAAgQFEgSiAQQKCg8KBwQDAwACBAESBKIBCxMKDwoHBAMDAAIEAxIEogEWFwqPBQoGBAMDAAIFEgS0AQQtGv4EIFRoZSBkaW1lbnNpb25zIG9mIHRoZSB2aW9sYXRlZCBxdW90YS4gRXZlcnkgbm9uLWdsb2JhbCBxdW90YSBpcyBlbmZvcmNlZAogb24gYSBzZXQgb2YgZGltZW5zaW9ucy4gV2hpbGUgcXVvdGEgbWV0cmljIGRlZmluZXMgd2hhdCB0byBjb3VudCwgdGhlCiBkaW1lbnNpb25zIHNwZWNpZnkgZm9yIHdoYXQgYXNwZWN0cyB0aGUgY291bnRlciBzaG91bGQgYmUgaW5jcmVhc2VkLgoKIEZvciBleGFtcGxlLCB0aGUgcXVvdGEgIkNQVXMgcGVyIHJlZ2lvbiBwZXIgVk0gZmFtaWx5IiBlbmZvcmNlcyBhIGxpbWl0CiBvbiB0aGUgbWV0cmljICJjb21wdXRlLmdvb2dsZWFwaXMuY29tL2Nw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CgYEBQMAAgASBJMCBBUatgkgQSBwYXRoIHRoYXQgbGVhZHMgdG8gYSBmaWVsZCBpbiB0aGUgcmVxdWVzdCBib2R5LiBUaGUgdmFsdWUgd2lsbCBiZSBhCiBzZXF1ZW5jZSBvZiBkb3Qtc2VwYXJhdGVkIGlkZW50aWZpZXJzIHRoYXQgaWRlbnRpZnkgYSBwcm90b2NvbCBidWZmZXIKIGZpZWxkLgoKIENvbnNpZGVyIHRoZSBmb2xsb3dpbmc6CgogICAgIG1lc3NhZ2UgQ3JlYXRlQ29udGFjdFJlcXVlc3QgewogICAgICAgbWVzc2FnZSBFbWFpbEFkZHJlc3MgewogICAgICAgICBlbnVtIFR5cGUgewogICAgICAgICAgIFRZUEVfVU5TUEVDSUZJRUQgPSAwOwogICAgICAgICAgIEhPTUUgPSAxOwogICAgICAgICAgIFdPUksgPSAyOwogICAgICAgICB9CgogICAgICAgICBvcHRpb25hbCBzdHJpbmcgZW1haWwgPSAxOwogICAgICAgICByZXBlYXRlZCBFbWFpbFR5cGUgdHlwZSA9IDI7CiAgICAgICB9CgogICAgICAgc3RyaW5nIGZ1bGxfbmFtZSA9IDE7CiAgICAgICByZXBlYXRlZCBFbWFpbEFkZHJlc3MgZW1haWxfYWRkcmVzc2VzID0gMjsKICAgICB9CgogSW4gdGhpcyBleGFtcGxlLCBpbiBwcm90byBgZmllbGRgIGNvdWxkIHRha2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgoKICogYGZ1bGxfbmFtZWAgZm9yIGEgdmlvbGF0aW9uIGluIHRoZSBgZnVsbF9uYW1lYCB2YWx1ZQogKiBgZW1haWxfYWRkcmVzc2VzWzFdLmVtYWlsYCBmb3IgYSB2aW9sYXRpb24gaW4gdGhlIGBlbWFpbGAgZmllbGQgb2YgdGhlCiAgIGZpcnN0IGBlbWFpbF9hZGRyZXNzZXNgIG1lc3NhZ2UKICogYGVtYWlsX2FkZHJlc3Nlc1szXS50eXBlWzJdYCBmb3IgYSB2aW9sYXRpb24gaW4gdGhlIHNlY29uZCBgdHlwZWAKICAgdmFsdWUgaW4gdGhlIHRoaXJkIGBlbWFpbF9hZGRyZXNzZXNgIG1lc3NhZ2UuCgogSW4gSlNPTiwgdGhlIHNhbWUgdmFsdWVzIGFyZSByZXByZXNlbnRlZCBhczoKCiAqIGBmdWxsTmFtZWAgZm9yIGEgdmlvbGF0aW9uIGluIHRoZSBgZnVsbE5hbWVgIHZhbHVlCiAqIGBlbWFpbEFkZHJlc3Nlc1sxXS5lbWFpbGAgZm9yIGEgdmlvbGF0aW9uIGluIHRoZSBgZW1haWxgIGZpZWxkIG9mIHRoZQogICBmaXJzdCBgZW1haWxBZGRyZXNzZXNgIG1lc3NhZ2UKICogYGVtYWlsQWRkcmVzc2VzWzNdLnR5cGVbMl1gIGZvciBhIHZpb2xhdGlvbiBpbiB0aGUgc2Vjb25kIGB0eXBlYAogICB2YWx1ZSBpbiB0aGUgdGhpcmQgYGVtYWlsQWRkcmVzc2VzYCBtZXNzYWdlLgoKDwoHBAUDAAIABRIEkwIECgoPCgcEBQMAAgABEgSTAgsQCg8KBwQFAwACAAMSBJMCExQKQgoGBAUDAAIBEgSWAgQbGjIgQSBkZXNjcmlwdGlvbiBvZiB3aHkgdGhlIHJlcXVlc3QgZWxlbWVudCBpcyBiYWQuCgoPCgcEBQMAAgEFEgSWAgQKCg8KBwQFAwACAQESBJYCCxYKDwoHBAUDAAIBAxIElgIZGgqIAwoGBAUDAAICEgSeAgQWGvcCIFRoZSByZWFzb24gb2YgdGhlIGZpZWxkLWxldmVsIGVycm9yLiBUaGlzIGlzIGEgY29uc3RhbnQgdmFsdWUgdGhhdAogaWRlbnRpZmllcyB0aGUgcHJveGltYXRlIGNhdXNlIG9mIHRoZSBmaWVsZC1sZXZlbCBlcnJvci4gSXQgc2hvdWxkCiB1bmlxdWVseSBpZGVudGlmeSB0aGUgdHlwZSBvZiB0aGUgRmllbGRWaW9sYXRpb24gd2l0aGluIHRoZSBzY29wZSBvZiB0aGUKIGdvb2dsZS5ycGMuRXJyb3JJbmZvLmRvbWFpbi4gVGhpcyBzaG91bGQgYmUgYXQgbW9zdCA2MwogY2hhcmFjdGVycyBhbmQgbWF0Y2ggYSByZWd1bGFyIGV4cHJlc3Npb24gb2YgYFtBLVpdW0EtWjAtOV9dK1tBLVowLTldYCwKIHdoaWNoIHJlcHJlc2VudHMgVVBQRVJfU05BS0VfQ0FTRS4KCg8KBwQFAwACAgUSBJ4CBAoKDwoHBAUDAAICARIEngILEQoPCgcEBQMAAgIDEgSeAhQVCngKBgQFAwACAxIEogIEKxpoIFByb3ZpZGVzIGEgbG9jYWxpemVkIGVycm9yIG1lc3NhZ2UgZm9yIGZpZWxkLWxldmVsIGVycm9ycyB0aGF0IGlzIHNhZmUgdG8KIHJldHVybiB0byB0aGUgQVBJIGNvbnN1bWVyLgoKDwoHBAUDAAIDBhIEogIEFAoPCgcEBQMAAgMBEgSiAhUmCg8KBwQFAwACAwMSBKICKSoKPQoEBAUCABIEpgICLxovIERlc2NyaWJlcyBhbGwgdmlvbGF0aW9ucyBpbiBhIGNsaWVudCByZXF1ZXN0LgoKDQoFBAUCAAQSBKYCAgoKDQoFBAUCAAYSBKYCCxkKDQoFBAUCAAESBKYCGioKDQoFBAUCAAMSBKYCLS4KhAEKAgQGEgarAgCzAgEadiBDb250YWlucyBtZXRhZGF0YSBhYm91dCB0aGUgcmVxdWVzdCB0aGF0IGNsaWVudHMgY2FuIGF0dGFjaCB3aGVuIGZpbGluZyBhIGJ1Zwogb3IgcHJvdmlkaW5nIG90aGVyIGZvcm1zIG9mIGZlZWRiYWNrLgoKCwoDBAYBEgSrAggTCqgBCgQEBgIAEgSuAgIYGpkBIEFuIG9wYXF1ZSBzdHJpbmcgdGhhdCBzaG91bGQgb25seSBiZSBpbnRlcnByZXRlZCBieSB0aGUgc2VydmljZSBnZW5lcmF0aW5nCiBpdC4gRm9yIGV4YW1wbGUsIGl0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHJlcXVlc3RzIGluIHRoZSBzZXJ2aWNlJ3MgbG9ncy4KCg0KBQQGAgAFEgSuAgIICg0KBQQGAgABEgSuAgkTCg0KBQQGAgADEgSuAhYXCqIBCgQEBgIBEgSyAgIaGpMBIEFueSBkYXRhIHRoYXQgd2FzIHVzZWQgdG8gc2VydmUgdGhpcyByZXF1ZXN0LiBGb3IgZXhhbXBsZSwgYW4gZW5jcnlwdGVkCiBzdGFjayB0cmFjZSB0aGF0IGNhbiBiZSBzZW50IGJhY2sgdG8gdGhlIHNlcnZpY2UgcHJvdmlkZXIgZm9yIGRlYnVnZ2luZy4KCg0KBQQGAgEFEgSyAgIICg0KBQQGAgEBEgSyAgkVCg0KBQQGAgEDEgSyAhgZCj4KAgQHEga2AgDLAgEaMCBEZXNjcmliZXMgdGhlIHJlc291cmNlIHRoYXQgaXMgYmVpbmcgYWNjZXNzZWQuCgoLCgMEBwESBLYCCBQK2wEKBAQHAgASBLoCAhsazAEgQSBuYW1lIGZvciB0aGUgdHlwZSBvZiByZXNvdXJjZSBiZWluZyBhY2Nlc3NlZCwgZS5nLiAic3FsIHRhYmxlIiwKICJjbG91ZCBzdG9yYWdlIGJ1Y2tldCIsICJmaWxlIiwgIkdvb2dsZSBjYWxlbmRhciI7IG9yIHRoZSB0eXBlIFVSTAogb2YgdGhlIHJlc291cmNlOiBlLmcuICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wdWJzdWIudjEuVG9waWMiLgoKDQoFBAcCAAUSBLoCAggKDQoFBAcCAAESBLoCCRYKDQoFBAcCAAMSBLoCGRoK9wEKBAQHAgESBMACAhsa6AEgVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJlaW5nIGFjY2Vzc2VkLiAgRm9yIGV4YW1wbGUsIGEgc2hhcmVkIGNhbGVuZGFyCiBuYW1lOiAiZXhhbXBsZS5jb21fNGZnaGRoZ3NyZ2hAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbSIsIGlmIHRoZSBjdXJyZW50CiBlcnJvciBpcwogW2dvb2dsZS5ycGMuQ29kZS5QRVJNSVNTSU9OX0RFTklFRF1bZ29vZ2xlLnJwYy5Db2RlLlBFUk1JU1NJT05fREVOSUVEXS4KCg0KBQQHAgEFEgTAAgIICg0KBQQHAgEBEgTAAgkWCg0KBQQHAgEDEgTAAhkaCoUBCgQEBwICEgTFAgITGncgVGhlIG93bmVyIG9mIHRoZSByZXNvdXJjZSAob3B0aW9uYWwpLgogRm9yIGV4YW1wbGUsICJ1c2VyOjxvd25lciBlbWFpbD4iIG9yICJwcm9qZWN0OjxHb29nbGUgZGV2ZWxvcGVyIHByb2plY3QKIGlkPiIuCgoNCgUEBwICBRIExQICCAoNCgUEBwICARIExQIJDgoNCgUEBwICAxIExQIREgrAAQoEBAcCAxIEygICGRqxASBEZXNjcmliZXMgd2hhdCBlcnJvciBpcyBlbmNvdW50ZXJlZCB3aGVuIGFjY2Vzc2luZyB0aGlzIHJlc291cmNlLgogRm9yIGV4YW1wbGUsIHVwZGF0aW5nIGEgY2xvdWQgcHJvamVjdCBtYXkgcmVxdWlyZSB0aGUgYHdyaXRlcmAgcGVybWlzc2lvbgogb24gdGhlIGRldmVsb3BlciBjb25zb2xlIHByb2plY3QuCgoNCgUEBwIDBRIEygICCAoNCgUEBwIDARIEygIJFAoNCgUEBwIDAxIEygIXGAq6AgoCBAgSBtICAN4CARqrAiBQcm92aWRlcyBsaW5rcyB0byBkb2N1bWVudGF0aW9uIG9yIGZvciBwZXJmb3JtaW5nIGFuIG91dCBvZiBiYW5kIGFjdGlvbi4KCiBGb3IgZXhhbXBsZSwgaWYgYSBxdW90YSBjaGVjayBmYWlsZWQgd2l0aCBhbiBlcnJvciBpbmRpY2F0aW5nIHRoZSBjYWxsaW5nCiBwcm9qZWN0IGhhc24ndCBlbmFibGVkIHRoZSBhY2Nlc3NlZCBzZXJ2aWNlLCB0aGlzIGNhbiBjb250YWluIGEgVVJMIHBvaW50aW5nCiBkaXJlY3RseSB0byB0aGUgcmlnaHQgcGxhY2UgaW4gdGhlIGRldmVsb3BlciBjb25zb2xlIHRvIGZsaXAgdGhlIGJpdC4KCgsKAwQIARIE0gIIDAonCgQECAMAEgbUAgLaAgMaFyBEZXNjcmliZXMgYSBVUkwgbGluay4KCg0KBQQIAwABEgTUAgoOCjEKBgQIAwACABIE1gIEGxohIERlc2NyaWJlcyB3aGF0IHRoZSBsaW5rIG9mZmVycy4KCg8KBwQIAwACAAUSBNYCBAoKDwoHBAgDAAIAARIE1gILFgoPCgcECAMAAgADEgTWAhkaCiYKBgQIAwACARIE2QIEExoWIFRoZSBVUkwgb2YgdGhlIGxpbmsuCgoPCgcECAMAAgEFEgTZAgQKCg8KBwQIAwACAQESBNkCCw4KDwoHBAgDAAIBAxIE2QIREgpYCgQECAIAEgTdAgIaGkogVVJMKHMpIHBvaW50aW5nIHRvIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gaGFuZGxpbmcgdGhlIGN1cnJlbnQgZXJyb3IuCgoNCgUECAIABBIE3QICCgoNCgUECAIABhIE3QILDwoNCgUECAIAARIE3QIQFQoNCgUECAIAAxIE3QIYGQp9CgIECRIG4gIA6gIBGm8gUHJvdmlkZXMgYSBsb2NhbGl6ZWQgZXJyb3IgbWVzc2FnZSB0aGF0IGlzIHNhZmUgdG8gcmV0dXJuIHRvIHRoZSB1c2VyCiB3aGljaCBjYW4gYmUgYXR0YWNoZWQgdG8gYW4gUlBDIGVycm9yLgoKCwoDBAkBEgTiAggYCp8BCgQECQIAEgTmAgIUGpABIFRoZSBsb2NhbGUgdXNlZCBmb2xsb3dpbmcgdGhlIHNwZWNpZmljYXRpb24gZGVmaW5lZCBhdAogaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL2JjcC9iY3A0Ny50eHQuCiBFeGFtcGxlcyBhcmU6ICJlbi1VUyIsICJmci1DSCIsICJlcy1NWCIKCg0KBQQJAgAFEgTmAgIICg0KBQQJAgABEgTmAgkPCg0KBQQJAgADEgTmAhITCkAKBAQJAgESBOkCAhUaMiBUaGUgbG9jYWxpemVkIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGFib3ZlIGxvY2FsZS4KCg0KBQQJAgEFEgTpAgIICg0KBQQJAgEBEgTpAgkQCg0KBQQJAgEDEgTpAhMUYgZwcm90bzM='; #[Override] public function register(Registry\Pool $pool): void diff --git a/src/GoogleRpcStatusDescriptorRegistry.php b/src/GoogleRpcStatusDescriptorRegistry.php index a6e5e92..916edd5 100644 --- a/src/GoogleRpcStatusDescriptorRegistry.php +++ b/src/GoogleRpcStatusDescriptorRegistry.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/status.proto */ diff --git a/src/Help.php b/src/Help.php index 23610a3..18f8d59 100644 --- a/src/Help.php +++ b/src/Help.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/Help/Link.php b/src/Help/Link.php index 5059bfe..5fae1da 100644 --- a/src/Help/Link.php +++ b/src/Help/Link.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/LocalizedMessage.php b/src/LocalizedMessage.php index 0e8bbf7..385230a 100644 --- a/src/LocalizedMessage.php +++ b/src/LocalizedMessage.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/PreconditionFailure.php b/src/PreconditionFailure.php index 1547078..a0218a7 100644 --- a/src/PreconditionFailure.php +++ b/src/PreconditionFailure.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/PreconditionFailure/Violation.php b/src/PreconditionFailure/Violation.php index 7b4a4a7..06cd257 100644 --- a/src/PreconditionFailure/Violation.php +++ b/src/PreconditionFailure/Violation.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/QuotaFailure.php b/src/QuotaFailure.php index a4c56ee..f81a111 100644 --- a/src/QuotaFailure.php +++ b/src/QuotaFailure.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/QuotaFailure/Violation.php b/src/QuotaFailure/Violation.php index 302e111..ff8f8f7 100644 --- a/src/QuotaFailure/Violation.php +++ b/src/QuotaFailure/Violation.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/RequestInfo.php b/src/RequestInfo.php index d9e6a97..f510518 100644 --- a/src/RequestInfo.php +++ b/src/RequestInfo.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/ResourceInfo.php b/src/ResourceInfo.php index 08878c5..4fc09a8 100644 --- a/src/ResourceInfo.php +++ b/src/ResourceInfo.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/RetryInfo.php b/src/RetryInfo.php index 27ab7ac..68eeaf9 100644 --- a/src/RetryInfo.php +++ b/src/RetryInfo.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/error_details.proto */ diff --git a/src/Status.php b/src/Status.php index 76965f6..711e4f3 100644 --- a/src/Status.php +++ b/src/Status.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 * Source: google/rpc/status.proto */ diff --git a/src/autoload.metadata.php b/src/autoload.metadata.php index 47919e5..85d9d51 100644 --- a/src/autoload.metadata.php +++ b/src/autoload.metadata.php @@ -3,7 +3,7 @@ /** * Code generated by thesis/protoc-plugin. DO NOT EDIT. * Versions: - * thesis/protoc-plugin — v0.1.20 + * thesis/protoc-plugin — v0.1.21 * protoc — v6.33.5 */