VQ0NCgAAAADLuIxjYRcAAOMAAAAAAAAAAAAAAAAAAAAABAAAAEAAAABzPgAAAGQAZAFsAG0BWgEBAGQCZANsAm0DWgMBAGQCZARsBG0FWgUBAGQFZwFaBkcAZAZkBYQAZAVlB4MDWghkB1MAKQjpAAAAACkB2g9hYnNvbHV0ZV9pbXBvcnTpAQAAACkB2hllbmNvZGVfbXVsdGlwYXJ0X2Zvcm1kYXRhKQHaCXVybGVuY29kZdoOUmVxdWVzdE1ldGhvZHNjAAAAAAAAAAAAAAAAAAAAAAQAAABAAAAAc04AAABlAFoBZABaAmQBWgNkAmQDZARkBWgEWgRkEmQHZAiEAVoFZBNkCmQLhAFaBmQUZAxkDYQBWgdkFWQOZA+EAVoIZBZkEGQRhAFaCWQGUwApF3IGAAAAYbcDAAAKICAgIENvbnZlbmllbmNlIG1peGluIGZvciBjbGFzc2VzIHdobyBpbXBsZW1lbnQgYSA6bWV0aDpgdXJsb3BlbmAgbWV0aG9kLCBzdWNoCiAgICBhcyA6Y2xhc3M6YHVybGxpYjMuSFRUUENvbm5lY3Rpb25Qb29sYCBhbmQKICAgIDpjbGFzczpgdXJsbGliMy5Qb29sTWFuYWdlcmAuCgogICAgUHJvdmlkZXMgYmVoYXZpb3IgZm9yIG1ha2luZyBjb21tb24gdHlwZXMgb2YgSFRUUCByZXF1ZXN0IG1ldGhvZHMgYW5kCiAgICBkZWNpZGVzIHdoaWNoIHR5cGUgb2YgcmVxdWVzdCBmaWVsZCBlbmNvZGluZyB0byB1c2UuCgogICAgU3BlY2lmaWNhbGx5LAoKICAgIDptZXRoOmAucmVxdWVzdF9lbmNvZGVfdXJsYCBpcyBmb3Igc2VuZGluZyByZXF1ZXN0cyB3aG9zZSBmaWVsZHMgYXJlCiAgICBlbmNvZGVkIGluIHRoZSBVUkwgKHN1Y2ggYXMgR0VULCBIRUFELCBERUxFVEUpLgoKICAgIDptZXRoOmAucmVxdWVzdF9lbmNvZGVfYm9keWAgaXMgZm9yIHNlbmRpbmcgcmVxdWVzdHMgd2hvc2UgZmllbGRzIGFyZQogICAgZW5jb2RlZCBpbiB0aGUgKmJvZHkqIG9mIHRoZSByZXF1ZXN0IHVzaW5nIG11bHRpcGFydCBvciB3d3ctZm9ybS11cmxlbmNvZGVkCiAgICAoc3VjaCBhcyBmb3IgUE9TVCwgUFVULCBQQVRDSCkuCgogICAgOm1ldGg6YC5yZXF1ZXN0YCBpcyBmb3IgbWFraW5nIGFueSBraW5kIG9mIHJlcXVlc3QsIGl0IHdpbGwgbG9vayB1cCB0aGUKICAgIGFwcHJvcHJpYXRlIGVuY29kaW5nIGZvcm1hdCBhbmQgdXNlIG9uZSBvZiB0aGUgYWJvdmUgdHdvIG1ldGhvZHMgdG8gbWFrZQogICAgdGhlIHJlcXVlc3QuCgogICAgSW5pdGlhbGl6ZXIgcGFyYW1ldGVyczoKCiAgICA6cGFyYW0gaGVhZGVyczoKICAgICAgICBIZWFkZXJzIHRvIGluY2x1ZGUgd2l0aCBhbGwgcmVxdWVzdHMsIHVubGVzcyBvdGhlciBoZWFkZXJzIGFyZSBnaXZlbgogICAgICAgIGV4cGxpY2l0bHkuCiAgICDaBkRFTEVURdoDR0VU2gRIRUFE2gdPUFRJT05TTmMCAAAAAAAAAAAAAAACAAAAAgAAAEMAAABzDgAAAHwBcAZpAHwAXwBkAFMAKQFOKQHaB2hlYWRlcnMpAtoEc2VsZnILAAAAqQByDQAAAPo/L3RtcC9waXAtdW5wYWNrZWQtd2hlZWwtaWt2dHFzeTEvcGlwL192ZW5kb3IvdXJsbGliMy9yZXF1ZXN0LnB52ghfX2luaXRfXygAAABzAgAAAAABehdSZXF1ZXN0TWV0aG9kcy5fX2luaXRfX1RjBwAAAAAAAAAAAAAACAAAAAIAAABLAAAAcwwAAAB0AGQBgwGCAWQAUwApAk56TUNsYXNzZXMgZXh0ZW5kaW5nIFJlcXVlc3RNZXRob2RzIG11c3QgaW1wbGVtZW50IHRoZWlyIG93biBgYHVybG9wZW5gYCBtZXRob2QuKQHaE05vdEltcGxlbWVudGVkRXJyb3IpCHIMAAAA2gZtZXRob2TaA3VybNoEYm9keXILAAAA2hBlbmNvZGVfbXVsdGlwYXJ02hJtdWx0aXBhcnRfYm91bmRhcnnaAmt3cg0AAAByDQAAAHIOAAAA2gd1cmxvcGVuKwAAAHMGAAAAAAoCAQL/ehZSZXF1ZXN0TWV0aG9kcy51cmxvcGVuYwUAAAAAAAAAAAAAAAYAAAAFAAAASwAAAHNSAAAA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aXRoIHRoZQogICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIGNvbnRlbnQgdHlwZS4KCiAgICAgICAgTXVsdGlwYXJ0IGVuY29kaW5nIG11c3QgYmUgdXNlZCB3aGVuIHBvc3RpbmcgZmlsZXMsIGFuZCBpdCdzIHJlYXNvbmFibHkKICAgICAgICBzYWZlIHRvIHVzZSBpdCBpbiBvdGhlciB0aW1lcyB0b28uIEhvd2V2ZXIsIGl0IG1heSBicmVhayByZXF1ZXN0CiAgICAgICAgc2lnbmluZywgc3VjaCBhcyB3aXRoIE9BdXRoLgoKICAgICAgICBTdXBwb3J0cyBhbiBvcHRpb25hbCBgYGZpZWxkc2BgIHBhcmFtZXRlciBvZiBrZXkvdmFsdWUgc3RyaW5ncyBBTkQKICAgICAgICBrZXkvZmlsZXR1cGxlLiBBIGZpbGV0dXBsZSBpcyBhIChmaWxlbmFtZSwgZGF0YSwgTUlNRSB0eXBlKSB0dXBsZSB3aGVyZQogICAgICAgIHRoZSBNSU1FIHR5cGUgaXMgb3B0aW9uYWwuIEZvciBleGFtcGxlOjoKCiAgICAgICAgICAgIGZpZWxkcyA9IHsKICAgICAgICAgICAgICAgICdmb28nOiAnYmFyJywKICAgICAgICAgICAgICAgICdmYWtlZmlsZSc6ICgnZm9vZmlsZS50eHQnLCAnY29udGVudHMgb2YgZm9vZmlsZScpLAogICAgICAgICAgICAgICAgJ3JlYWxmaWxlJzogKCdiYXJmaWxlLnR4dCcsIG9wZW4oJ3JlYWxmaWxlJykucmVhZCgpKSwKICAgICAgICAgICAgICAgICd0eXBlZGZpbGUnOiAoJ2JhemZpbGUuYmluJywgb3BlbignYmF6ZmlsZScpLnJlYWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltYWdlL2pwZWcnKSwKICAgICAgICAgICAgICAgICdub25hbWVmaWxlJzogJ2NvbnRlbnRzIG9mIG5vbmFtZWZpbGUgZmllbGQnLAogICAgICAgICAgICB9CgogICAgICAgIFdoZW4gdXBsb2FkaW5nIGEgZmlsZSwgcHJvdmlkaW5nIGEgZmlsZW5hbWUgKHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgdGhlCiAgICAgICAgdHVwbGUpIGlzIG9wdGlvbmFsIGJ1dCByZWNvbW1lbmRlZCB0byBiZXN0IG1pbWljIGJlaGF2aW9yIG9mIGJyb3dzZXJzLgoKICAgICAgICBOb3RlIHRoYXQgaWYgYGBoZWFkZXJzYGAgYXJlIHN1cHBsaWVkLCB0aGUgJ0NvbnRlbnQtVHlwZScgaGVhZGVyIHdpbGwKICAgICAgICBiZSBvdmVyd3JpdHRlbiBiZWNhdXNlIGl0IGRlcGVuZHMgb24gdGhlIGR5bmFtaWMgcmFuZG9tIGJvdW5kYXJ5IHN0cmluZwogICAgICAgIHdoaWNoIGlzIHVzZWQgdG8gY29tcG9zZSB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdC4gVGhlIHJhbmRvbSBib3VuZGFyeQogICAgICAgIHN0cmluZyBjYW4gYmUgZXhwbGljaXRseSBzZXQgd2l0aCB0aGUgYGBtdWx0aXBhcnRfYm91bmRhcnlgYCBwYXJhbWV0ZXIuCiAgICAgICAgTnILAAAAchMAAAB6RnJlcXVlc3QgZ290IHZhbHVlcyBmb3IgYm90aCAnZmllbGRzJyBhbmQgJ2JvZHknLCBjYW4gb25seSBzcGVjaWZ5IG9uZS4pAdoIYm91bmRhcnl6IWFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZHoMQ29udGVudC1UeXBlKQZyCwAAANoJVHlwZUVycm9ycgQAAAByBQAAAHIhAAAAchcAAAApC3IMAAAAchEAAAByEgAAAHIZAAAAcgsAAAByFAAAAHIVAAAAch4AAAByIgAAAHITAAAA2gxjb250ZW50X3R5cGVyDQAAAHINAAAAcg4AAAByHQAAAGIAAABzKgAAAAAtCAEGAggCBAEIAQIBAv8EBAQBAgECAAL/DAUGAQL+BgUIAQwCDgEKAnoiUmVxdWVzdE1ldGhvZHMucmVxdWVzdF9lbmNvZGVfYm9keSkBTikETk5UTikCTk4pAk5OKQROTlROKQraCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX19yGwAAAHIPAAAAchcAAAByHwAAAHIcAAAAch0AAAByDQAAAHINAAAAcg0AAAByDgAAAHIGAAAACQAAAHMeAAAACAEEHAwCCgcAAQABAAEA+QoPChgKFAABAAEAAQD5TikJ2gpfX2Z1dHVyZV9fcgIAAADaCGZpbGVwb3N0cgQAAABaH3BhY2thZ2VzLnNpeC5tb3Zlcy51cmxsaWIucGFyc2VyBQAAANoHX19hbGxfX9oGb2JqZWN0cgYAAAByDQAAAHINAAAAcg0AAAByDgAAANoIPG1vZHVsZT4BAAAAcwgAAAAMAgwBDAIGAw==