@decentro-dev/polkadot-sufficient-assets 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +60 -0
- package/package.json +99 -0
- package/packages/client/README.md +333 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.mjs +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/index.d.mts +106 -0
- package/packages/client/dist/index.d.ts +106 -0
- package/packages/client/dist/index.js +2 -0
- package/packages/client/dist/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/index.d.mts +14 -0
- package/packages/client/dist/smoldot/index.d.ts +14 -0
- package/packages/client/dist/smoldot/index.js +2 -0
- package/packages/client/dist/smoldot/index.mjs +2 -0
- package/packages/client/dist/smoldot/worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/worker/index.js +2 -0
- package/packages/client/dist/smoldot/worker/index.mjs +2 -0
- package/packages/core/.papi/descriptors/dist/common-types.d.ts +21274 -0
- package/packages/core/.papi/descriptors/dist/descriptors-EQXQJ7SL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/descriptors.d.ts +11 -0
- package/packages/core/.papi/descriptors/dist/hdx.d.ts +366 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata-XH2Y6EGQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/index.d.mts +24579 -0
- package/packages/core/.papi/descriptors/dist/index.d.ts +23 -0
- package/packages/core/.papi/descriptors/dist/index.js +1 -0
- package/packages/core/.papi/descriptors/dist/index.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata-OCBL5LAN.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/kusama.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata-TGJ43LLG.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes-MIM6CGSL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/pah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata-JG7F7QDO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata-5VVMOYKO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseoah.d.ts +242 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata-KVQKFE5R.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/polkadot.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata-ASE5745E.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata-FL7L2MWD.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rococo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata-CHYQZIV5.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/wah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata-M2H6IX7C.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/westend.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata-IAM3KHRQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/package.json +24 -0
- package/packages/core/.papi/metadata/hdx.scale +0 -0
- package/packages/core/.papi/metadata/kah.scale +0 -0
- package/packages/core/.papi/metadata/kusama.scale +0 -0
- package/packages/core/.papi/metadata/pah.scale +0 -0
- package/packages/core/.papi/metadata/paseo.scale +0 -0
- package/packages/core/.papi/metadata/paseoah.scale +0 -0
- package/packages/core/.papi/metadata/polkadot.scale +0 -0
- package/packages/core/.papi/metadata/rah.scale +0 -0
- package/packages/core/.papi/metadata/rococo.scale +0 -0
- package/packages/core/.papi/metadata/wah.scale +0 -0
- package/packages/core/.papi/metadata/westend.scale +0 -0
- package/packages/core/.papi/polkadot-api.json +50 -0
- package/packages/core/dist/index.d.mts +676 -0
- package/packages/core/dist/index.d.ts +676 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.mjs +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A="bWV0YQ+5DgAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAgwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEQLEFjY291bnREYXRhARQAFAEUbm9uY2UQARROb25jZQABJGNvbnN1bWVycxABIFJlZkNvdW50AAEkcHJvdmlkZXJzEAEgUmVmQ291bnQAASxzdWZmaWNpZW50cxABIFJlZkNvdW50AAEQZGF0YRQBLEFjY291bnREYXRhAAAQAAAFBQAUDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBGAAQARBmcmVlGAEcQmFsYW5jZQABIHJlc2VydmVkGAEcQmFsYW5jZQABGGZyb3plbhgBHEJhbGFuY2UAARRmbGFncxwBKEV4dHJhRmxhZ3MAABgAAAUHABwMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEABgBEHUxMjgAACAAAAUAACQMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAAoDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1lLAEMdTY0AAEocHJvb2Zfc2l6ZSwBDHU2NAAALAAABjAAMAAABQYANAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQABAEgW3U4OyAzMl0AADgAAAIIADwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QYRGlnZXN0AAAEARBsb2dzQAE8VmVjPERpZ2VzdEl0ZW0+AABAAAACRABEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgASAFEQ29uc2Vuc3VzRW5naW5lSWQAADgBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAEABBTZWFsCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAFABRPdGhlcgQAOAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAEgAAAMEAAAACABMAAACUABQCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBVARUATQADAEUcGhhc2VVBwEUUGhhc2UAARRldmVudFQBBEUAARh0b3BpY3ONAwEYVmVjPFQ+AABUCDhyb2NvY29fcnVudGltZTBSdW50aW1lRXZlbnQAAbwYU3lzdGVtBABYAXBmcmFtZV9zeXN0ZW06OkV2ZW50PFJ1bnRpbWU+AAAAHEluZGljZXMEAHwBeHBhbGxldF9pbmRpY2VzOjpFdmVudDxSdW50aW1lPgADACBCYWxhbmNlcwQAgAF8cGFsbGV0X2JhbGFuY2VzOjpFdmVudDxSdW50aW1lPgAEAChQYXJhbWV0ZXJzBACIAYRwYWxsZXRfcGFyYW1ldGVyczo6RXZlbnQ8UnVudGltZT4ABgBIVHJhbnNhY3Rpb25QYXltZW50BAC8AahwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudDo6RXZlbnQ8UnVudGltZT4AIQAgT2ZmZW5jZXMEAMABWHBhbGxldF9vZmZlbmNlczo6RXZlbnQABwAcU2Vzc2lvbgQAyAFUcGFsbGV0X3Nlc3Npb246OkV2ZW50AAgAHEdyYW5kcGEEAMwBVHBhbGxldF9ncmFuZHBhOjpFdmVudAAKACBUcmVhc3VyeQQA3AF8cGFsbGV0X3RyZWFzdXJ5OjpFdmVudDxSdW50aW1lPgASAEBDb252aWN0aW9uVm90aW5nBABpAQGgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nOjpFdmVudDxSdW50aW1lPgAUACRSZWZlcmVuZGEEAHUBAYBwYWxsZXRfcmVmZXJlbmRhOjpFdmVudDxSdW50aW1lPgAVAFBGZWxsb3dzaGlwQ29sbGVjdGl2ZQQAfQYBOQFwYWxsZXRfcmFua2VkX2NvbGxlY3RpdmU6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZTo6Ckluc3RhbmNlMT4AFgBMRmVsbG93c2hpcFJlZmVyZW5kYQQAiQYB9HBhbGxldF9yZWZlcmVuZGE6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9yZWZlcmVuZGE6Okluc3RhbmNlMj4AFwAkV2hpdGVsaXN0BACNBgGAcGFsbGV0X3doaXRlbGlzdDo6RXZlbnQ8UnVudGltZT4ALAAYQ2xhaW1zBAChBgFYY2xhaW1zOjpFdmVudDxSdW50aW1lPgATABxVdGlsaXR5BAClBgFUcGFsbGV0X3V0aWxpdHk6OkV2ZW50ABgAIElkZW50aXR5BACtBgF8cGFsbGV0X2lkZW50aXR5OjpFdmVudDxSdW50aW1lPgAZABxTb2NpZXR5BACxBgF4cGFsbGV0X3NvY2lldHk6OkV2ZW50PFJ1bnRpbWU+ABoAIFJlY292ZXJ5BAC5BgF8cGFsbGV0X3JlY292ZXJ5OjpFdmVudDxSdW50aW1lPgAbABxWZXN0aW5nBAC9BgF4cGFsbGV0X3Zlc3Rpbmc6OkV2ZW50PFJ1bnRpbWU+ABwAJFNjaGVkdWxlcgQAwQYBgHBhbGxldF9zY2hlZHVsZXI6OkV2ZW50PFJ1bnRpbWU+AB0AFFByb3h5BADJBgFwcGFsbGV0X3Byb3h5OjpFdmVudDxSdW50aW1lPgAeACBNdWx0aXNpZwQAzQYBfHBhbGxldF9tdWx0aXNpZzo6RXZlbnQ8UnVudGltZT4AHwAgUHJlaW1hZ2UEANEGAXxwYWxsZXRfcHJlaW1hZ2U6OkV2ZW50PFJ1bnRpbWU+ACAAJEFzc2V0UmF0ZQQA1QYBhHBhbGxldF9hc3NldF9yYXRlOjpFdmVudDxSdW50aW1lPgAnACBCb3VudGllcwQA2QYBfHBhbGxldF9ib3VudGllczo6RXZlbnQ8UnVudGltZT4AIwA0Q2hpbGRCb3VudGllcwQA3QYBlHBhbGxldF9jaGlsZF9ib3VudGllczo6RXZlbnQ8UnVudGltZT4AKAAMTmlzBADhBgFocGFsbGV0X25pczo6RXZlbnQ8UnVudGltZT4AJgBYTmlzQ291bnRlcnBhcnRCYWxhbmNlcwQA5QYB7HBhbGxldF9iYWxhbmNlczo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2JhbGFuY2VzOjpJbnN0YW5jZTI+AC0ANFBhcmFJbmNsdXNpb24EAOkGAZBwYXJhY2hhaW5zX2luY2x1c2lvbjo6RXZlbnQ8UnVudGltZT4ANQAUUGFyYXMEAPkGAVxwYXJhY2hhaW5zX3BhcmFzOjpFdmVudAA4ABBIcm1wBAD9BgF8cGFyYWNoYWluc19ocm1wOjpFdmVudDxSdW50aW1lPgA8ADRQYXJhc0Rpc3B1dGVzBAABBwGMcGFyYWNoYWluc19kaXNwdXRlczo6RXZlbnQ8UnVudGltZT4APgAwTWVzc2FnZVF1ZXVlBAANBwGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AEAAaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyBAAVBwGQcGFyYWNoYWluc19vbl9kZW1hbmQ6OkV2ZW50PFJ1bnRpbWU+AEIAJFJlZ2lzdHJhcgQAGQcBfHBhcmFzX3JlZ2lzdHJhcjo6RXZlbnQ8UnVudGltZT4ARgAUU2xvdHMEAB0HAVRzbG90czo6RXZlbnQ8UnVudGltZT4ARwAgQXVjdGlvbnMEACEHAWBhdWN0aW9uczo6RXZlbnQ8UnVudGltZT4ASAAkQ3Jvd2Rsb2FuBAAlBwFkY3Jvd2Rsb2FuOjpFdmVudDxSdW50aW1lPgBJACBDb3JldGltZQQAKQcBYGNvcmV0aW1lOjpFdmVudDxSdW50aW1lPgBKACRYY21QYWxsZXQEAC0HAWhwYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgBjAEBJZGVudGl0eU1pZ3JhdG9yBAA1BwGEaWRlbnRpdHlfbWlncmF0b3I6OkV2ZW50PFJ1bnRpbWU+APgANEFzc2lnbmVkU2xvdHMEADkHAXhhc3NpZ25lZF9zbG90czo6RXZlbnQ8UnVudGltZT4A+wBAVmFsaWRhdG9yTWFuYWdlcgQAPQcBhHZhbGlkYXRvcl9tYW5hZ2VyOjpFdmVudDxSdW50aW1lPgD8AEhTdGF0ZVRyaWVNaWdyYXRpb24EAEEHAaxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkV2ZW50PFJ1bnRpbWU+AP4ALFJvb3RUZXN0aW5nBABNBwGMcGFsbGV0X3Jvb3RfdGVzdGluZzo6RXZlbnQ8UnVudGltZT4A+QAQU3VkbwQAUQcBbHBhbGxldF9zdWRvOjpFdmVudDxSdW50aW1lPgD/AABYDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEcQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvXAEwRGlzcGF0Y2hJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvcmgBNERpc3BhdGNoRXJyb3IAATRkaXNwYXRjaF9pbmZvXAEwRGlzcGF0Y2hJbmZvAAEEUEFuIGV4dHJpbnNpYyBmYWlsZWQuLENvZGVVcGRhdGVkAAIEUGA6Y29kZWAgd2FzIHVwZGF0ZWQuKE5ld0FjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAMEaEEgbmV3IGFjY291bnQgd2FzIGNyZWF0ZWQuNEtpbGxlZEFjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAQEWEFuIGFjY291bnQgd2FzIHJlYXBlZC4gUmVtYXJrZWQIARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARBoYXNoNAEcVDo6SGFzaAAFBHBPbiBvbi1jaGFpbiByZW1hcmsgaGFwcGVuZWQuRFVwZ3JhZGVBdXRob3JpemVkCAEkY29kZV9oYXNoNAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb24gARBib29sAAYEaEFuIHVwZ3JhZGUgd2FzIGF1dGhvcml6ZWQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuXAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDBEaXNwYXRjaEluZm8AAAwBGHdlaWdodCgBGFdlaWdodAABFGNsYXNzYAE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlZAEQUGF5cwAAYAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDREaXNwYXRjaENsYXNzAAEMGE5vcm1hbAAAACxPcGVyYXRpb25hbAABACRNYW5kYXRvcnkAAgAAZAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAABoCChzcF9ydW50aW1lNERpc3BhdGNoRXJyb3IAATgUT3RoZXIAAAAwQ2Fubm90TG9va3VwAAEAJEJhZE9yaWdpbgACABhNb2R1bGUEAGwBLE1vZHVsZUVycm9yAAMARENvbnN1bWVyUmVtYWluaW5nAAQALE5vUHJvdmlkZXJzAAUAQFRvb01hbnlDb25zdW1lcnMABgAUVG9rZW4EAHABKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQAdAE8QXJpdGhtZXRpY0Vycm9yAAgANFRyYW5zYWN0aW9uYWwEAHgBSFRyYW5zYWN0aW9uYWxFcnJvcgAJACRFeGhhdXN0ZWQACgAoQ29ycnVwdGlvbgALACxVbmF2YWlsYWJsZQAMADhSb290Tm90QWxsb3dlZAANAABsCChzcF9ydW50aW1lLE1vZHVsZUVycm9yAAAIARRpbmRleAgBCHU4AAEUZXJyb3JIAYxbdTg7IE1BWF9NT0RVTEVfRVJST1JfRU5DT0RFRF9TSVpFXQAAcAgoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAAB0CDRzcF9hcml0aG1ldGljPEFyaXRobWV0aWNFcnJvcgABDCRVbmRlcmZsb3cAAAAgT3ZlcmZsb3cAAQA4RGl2aXNpb25CeVplcm8AAgAAeAgoc3BfcnVudGltZUhUcmFuc2FjdGlvbmFsRXJyb3IAAQgwTGltaXRSZWFjaGVkAAAAHE5vTGF5ZXIAAQAAfAw4cGFsbGV0X2luZGljZXMYcGFsbGV0FEV2ZW50BARUAAEMNEluZGV4QXNzaWduZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARRpbmRleBABPFQ6OkFjY291bnRJbmRleAAABHRBIGFjY291bnQgaW5kZXggd2FzIGFzc2lnbmVkLihJbmRleEZyZWVkBAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgAAQS8QSBhY2NvdW50IGluZGV4IGhhcyBiZWVuIGZyZWVkIHVwICh1bmFzc2lnbmVkKS4sSW5kZXhGcm96ZW4IARRpbmRleBABPFQ6OkFjY291bnRJbmRleAABDHdobwABMFQ6OkFjY291bnRJZAACBOhBIGFjY291bnQgaW5kZXggaGFzIGJlZW4gZnJvemVuIHRvIGl0cyBjdXJyZW50IGFjY291bnQgSUQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0gAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABWBxFbmRvd2VkCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZRgBKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAEIPQFBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvdyBFeGlzdGVudGlhbERlcG9zaXQseHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlcgwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJlZRgBKFQ6OkJhbGFuY2UAAwRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC4gUmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAQE4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABSGRlc3RpbmF0aW9uX3N0YXR1c4QBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuGEJ1cm5lZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACwScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuJFN1c3BlbmRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADAQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADQSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQADgRgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UADwQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnQYAShUOjpCYWxhbmNlABAEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEQRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQASBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABQEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkGAEoVDo6QmFsYW5jZQABDG5ldxgBKFQ6OkJhbGFuY2UAFQSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIQUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjNEJhbGFuY2VTdGF0dXMAAQgQRnJlZQAAACBSZXNlcnZlZAABAACIDERwYWxsZXRfcGFyYW1ldGVycxhwYWxsZXQURXZlbnQEBFQAAQQcVXBkYXRlZAwBDGtleYwBxDxUOjpSdW50aW1lUGFyYW1ldGVycyBhcyBBZ2dyZWdhdGVkS2V5VmFsdWU+OjpLZXkEZFRoZSBrZXkgdGhhdCB3YXMgdXBkYXRlZC4BJG9sZF92YWx1ZagB7E9wdGlvbjw8VDo6UnVudGltZVBhcmFtZXRlcnMgYXMgQWdncmVnYXRlZEtleVZhbHVlPjo6VmFsdWU+BHxUaGUgb2xkIHZhbHVlIGJlZm9yZSB0aGlzIGNhbGwuASRuZXdfdmFsdWWoAexPcHRpb248PFQ6OlJ1bnRpbWVQYXJhbWV0ZXJzIGFzIEFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlPgR4VGhlIG5ldyB2YWx1ZSBhZnRlciB0aGlzIGNhbGwuAAxQQSBQYXJhbWV0ZXIgd2FzIHNldC4AvElzIGFsc28gZW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSB3YXMgbm90IGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0jAg4cm9jb2NvX3J1bnRpbWVQUnVudGltZVBhcmFtZXRlcnNLZXkAAQgMTmlzBACQAZEBPGR5bmFtaWNfcGFyYW1zOjpuaXM6OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OktleQAAACBQcmVpbWFnZQQAnAGlATxkeW5hbWljX3BhcmFtczo6cHJlaW1hZ2U6OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OktleQABAACQEDhyb2NvY29fcnVudGltZThkeW5hbWljX3BhcmFtcwxuaXM0UGFyYW1ldGVyc0tleQABCBhUYXJnZXQEAJQBGFRhcmdldAAAABhNaW5CaWQEAJgBGE1pbkJpZAABAACUEDhyb2NvY29fcnVudGltZThkeW5hbWljX3BhcmFtcwxuaXMYVGFyZ2V0AAAAAJgQOHJvY29jb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zDG5pcxhNaW5CaWQAAAAAnBA4cm9jb2NvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMgcHJlaW1hZ2U0UGFyYW1ldGVyc0tleQABCCxCYXNlRGVwb3NpdAQAoAEsQmFzZURlcG9zaXQAAAAsQnl0ZURlcG9zaXQEAKQBLEJ5dGVEZXBvc2l0AAEAAKAQOHJvY29jb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zIHByZWltYWdlLEJhc2VEZXBvc2l0AAAAAKQQOHJvY29jb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zIHByZWltYWdlLEJ5dGVEZXBvc2l0AAAAAKgEGE9wdGlvbgQEVAGsAQgQTm9uZQAAABBTb21lBACsAAABAACsCDhyb2NvY29fcnVudGltZVhSdW50aW1lUGFyYW1ldGVyc1ZhbHVlAAEIDE5pcwQAsAGZATxkeW5hbWljX3BhcmFtczo6bmlzOjpQYXJhbWV0ZXJzIGFzIGZyYW1lX3N1cHBvcnQ6OnRyYWl0czo6CmR5bmFtaWNfcGFyYW1zOjpBZ2dyZWdhdGVkS2V5VmFsdWU+OjpWYWx1ZQAAACBQcmVpbWFnZQQAuAGtATxkeW5hbWljX3BhcmFtczo6cHJlaW1hZ2U6OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlAAEAALAQOHJvY29jb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zDG5pczxQYXJhbWV0ZXJzVmFsdWUAAQgYVGFyZ2V0BAC0ASxQZXJxdWludGlsbAAAABhNaW5CaWQEABgBHEJhbGFuY2UAAQAAtAw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzLFBlcnF1aW50aWxsAAAEADABDHU2NAAAuBA4cm9jb2NvX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMgcHJlaW1hZ2U8UGFyYW1ldGVyc1ZhbHVlAAEILEJhc2VEZXBvc2l0BAAYARxCYWxhbmNlAAAALEJ5dGVEZXBvc2l0BAAYARxCYWxhbmNlAAEAALwMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlGAEwQmFsYW5jZU9mPFQ+AAEMdGlwGAEwQmFsYW5jZU9mPFQ+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLFxoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMAMPHBhbGxldF9vZmZlbmNlcxhwYWxsZXQURXZlbnQAAQQcT2ZmZW5jZQgBEGtpbmTEARBLaW5kAAEgdGltZXNsb3Q4AThPcGFxdWVUaW1lU2xvdAAADFEBVGhlcmUgaXMgYW4gb2ZmZW5jZSByZXBvcnRlZCBvZiB0aGUgZ2l2ZW4gYGtpbmRgIGhhcHBlbmVkIGF0IHRoZSBgc2Vzc2lvbl9pbmRleGAgYW5kNQEoa2luZC1zcGVjaWZpYykgdGltZSBzbG90LiBUaGlzIGV2ZW50IGlzIG5vdCBkZXBvc2l0ZWQgZm9yIGR1cGxpY2F0ZSBzbGFzaGVzLkxcW2tpbmQsIHRpbWVzbG90XF0uBDBFdmVudHMgdHlwZS7EAAADEAAAAAgAyAw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50AAEEKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4EAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0zAw4cGFsbGV0X2dyYW5kcGEYcGFsbGV0FEV2ZW50AAEMOE5ld0F1dGhvcml0aWVzBAE0YXV0aG9yaXR5X3NldNABNEF1dGhvcml0eUxpc3QAAASMTmV3IGF1dGhvcml0eSBzZXQgaGFzIGJlZW4gYXBwbGllZC4YUGF1c2VkAAEEmEN1cnJlbnQgYXV0aG9yaXR5IHNldCBoYXMgYmVlbiBwYXVzZWQuHFJlc3VtZWQAAgScQ3VycmVudCBhdXRob3JpdHkgc2V0IGhhcyBiZWVuIHJlc3VtZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV00AAAAtQA1AAABAjYMADYDFBzcF9jb25zZW5zdXNfZ3JhbmRwYQxhcHAYUHVibGljAAAEAAQBPGVkMjU1MTk6OlB1YmxpYwAA3Aw8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABMCBTcGVuZGluZwQBQGJ1ZGdldF9yZW1haW5pbmcYATxCYWxhbmNlT2Y8VCwgST4AAATkV2UgaGF2ZSBlbmRlZCBhIHNwZW5kIHBlcmlvZCBhbmQgd2lsbCBub3cgYWxsb2NhdGUgZnVuZHMuHEF3YXJkZWQMAThwcm9wb3NhbF9pbmRleBABNFByb3Bvc2FsSW5kZXgAARRhd2FyZBgBPEJhbGFuY2VPZjxULCBJPgABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAQR8U29tZSBmdW5kcyBoYXZlIGJlZW4gYWxsb2NhdGVkLhRCdXJudAQBLGJ1cm50X2Z1bmRzGAE8QmFsYW5jZU9mPFQsIEk+AAIEiFNvbWUgb2Ygb3VyIGZ1bmRzIGhhdmUgYmVlbiBidXJudC4gUm9sbG92ZXIEAUByb2xsb3Zlcl9iYWxhbmNlGAE8QmFsYW5jZU9mPFQsIEk+AAMELQFTcGVuZGluZyBoYXMgZmluaXNoZWQ7IHRoaXMgaXMgdGhlIGFtb3VudCB0aGF0IHJvbGxzIG92ZXIgdW50aWwgbmV4dCBzcGVuZC4cRGVwb3NpdAQBFHZhbHVlGAE8QmFsYW5jZU9mPFQsIEk+AAQEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGRlcG9zaXRlZC40U3BlbmRBcHByb3ZlZAwBOHByb3Bvc2FsX2luZGV4EAE0UHJvcG9zYWxJbmRleAABGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAUEnEEgbmV3IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLjxVcGRhdGVkSW5hY3RpdmUIASxyZWFjdGl2YXRlZBgBPEJhbGFuY2VPZjxULCBJPgABLGRlYWN0aXZhdGVkGAE8QmFsYW5jZU9mPFQsIEk+AAYEzFRoZSBpbmFjdGl2ZSBmdW5kcyBvZiB0aGUgcGFsbGV0IGhhdmUgYmVlbiB1cGRhdGVkLkhBc3NldFNwZW5kQXBwcm92ZWQYARRpbmRleBABKFNwZW5kSW5kZXgAAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEYYW1vdW50GAFQQXNzZXRCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeUkBAThUOjpCZW5lZmljaWFyeQABKHZhbGlkX2Zyb20QAURCbG9ja051bWJlckZvcjxUPgABJGV4cGlyZV9hdBABREJsb2NrTnVtYmVyRm9yPFQ+AAcEtEEgbmV3IGFzc2V0IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLkBBc3NldFNwZW5kVm9pZGVkBAEUaW5kZXgQAShTcGVuZEluZGV4AAgEdEFuIGFwcHJvdmVkIHNwZW5kIHdhcyB2b2lkZWQuEFBhaWQIARRpbmRleBABKFNwZW5kSW5kZXgAAShwYXltZW50X2lkMAFkPFQ6OlBheW1hc3RlciBhcyBQYXk+OjpJZAAJBExBIHBheW1lbnQgaGFwcGVuZWQuNFBheW1lbnRGYWlsZWQIARRpbmRleBABKFNwZW5kSW5kZXgAAShwYXltZW50X2lkMAFkPFQ6OlBheW1hc3RlciBhcyBQYXk+OjpJZAAKBJBBIHBheW1lbnQgZmFpbGVkIGFuZCBjYW4gYmUgcmV0cmllZC44U3BlbmRQcm9jZXNzZWQEARRpbmRleBABKFNwZW5kSW5kZXgACwhNAUEgc3BlbmQgd2FzIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlLiBJdCBtaWdodCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5cHBhaWQgb3IgaXQgbWF5IGhhdmUgZXhwaXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTgDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhRpbXBsc1xWZXJzaW9uZWRMb2NhdGFibGVBc3NldAABCAhWMwgBIGxvY2F0aW9u5AFEeGNtOjp2Mzo6TG9jYXRpb24AASBhc3NldF9pZA0BAUB4Y206OnYzOjpBc3NldElkAAMACFY0CAEgbG9jYXRpb24RAQFEeGNtOjp2NDo6TG9jYXRpb24AASBhc3NldF9pZEUBAUB4Y206OnY0OjpBc3NldElkAAQAAOQQLHN0YWdpbmdfeGNtCHYzNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3LoASRKdW5jdGlvbnMAAOgQDHhjbQh2MyRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAOwBIEp1bmN0aW9uAAEACFgyCADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAgAIWDMMAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAwAIWDQQAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAAQACFg1FADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24ABQAIWDYYAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24ABgAIWDccAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAAcACFg4IADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24AAOwBIEp1bmN0aW9uAADsASBKdW5jdGlvbgAA7AEgSnVuY3Rpb24ACAAA7BAMeGNtCHYzIGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQA8AEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29ya/QBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmv0AURPcHRpb248TmV0d29ya0lkPgABFGluZGV4LAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmv0AURPcHRpb248TmV0d29ya0lkPgABDGtlefwBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAAEBARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWQFAQEYQm9keUlkAAEQcGFydAkBASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAPgBJE5ldHdvcmtJZAAJAADwAAAGEAD0BBhPcHRpb24EBFQB+AEIEE5vbmUAAAAQU29tZQQA+AAAAQAA+BAMeGNtCHYzIGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAQBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcjABDHU2NAABKGJsb2NrX2hhc2gEASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWQsAQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAD8AAADFAAAAAgAAQEAAAYYAAUBEAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQASAEcW3U4OyA0XQABABRJbmRleAQA8AEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAAAJARAMeGNtCHYzIGp1bmN0aW9uIEJvZHlQYXJ0AAEUFFZvaWNlAAAAHE1lbWJlcnMEARRjb3VudPABDHUzMgABACBGcmFjdGlvbggBDG5vbfABDHUzMgABFGRlbm9t8AEMdTMyAAIAREF0TGVhc3RQcm9wb3J0aW9uCAEMbm9t8AEMdTMyAAEUZGVub23wAQx1MzIAAwBITW9yZVRoYW5Qcm9wb3J0aW9uCAEMbm9t8AEMdTMyAAEUZGVub23wAQx1MzIABAAADQEQDHhjbQh2MyhtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEAOQBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEAAQBIFt1ODsgMzJdAAEAABEBECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3IVAQEkSnVuY3Rpb25zAAAVARAsc3RhZ2luZ194Y20IdjQkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBAAZAQFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBAApAQFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBAAtAQFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BAAxAQFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BAA1AQFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BAA5AQFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BAA9AQFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BABBAQFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAABkBAAADAQAAAB0BAB0BECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAPABDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmshAQFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29yayEBAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4LAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmshAQFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXn8ASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAABAQEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoCAEIdTgAARBkYXRhBAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlkBQEBGEJvZHlJZAABEHBhcnQJAQEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBAAlAQEkTmV0d29ya0lkAAkAACEBBBhPcHRpb24EBFQBJQEBCBBOb25lAAAAEFNvbWUEACUBAAABAAAlARAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyMAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZCwBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAACkBAAADAgAAAB0BAC0BAAADAwAAAB0BADEBAAADBAAAAB0BADUBAAADBQAAAB0BADkBAAADBgAAAB0BAD0BAAADBwAAAB0BAEEBAAADCAAAAB0BAEUBECxzdGFnaW5nX3hjbQh2NBRhc3NldBxBc3NldElkAAAEABEBASBMb2NhdGlvbgAASQEIDHhjbURWZXJzaW9uZWRMb2NhdGlvbgABDAhWMgQATQEBRHYyOjpNdWx0aUxvY2F0aW9uAAEACFYzBADkAUR2Mzo6TXVsdGlMb2NhdGlvbgADAAhWNAQAEQEBMHY0OjpMb2NhdGlvbgAEAABNARAMeGNtCHYyNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3JRAQEkSnVuY3Rpb25zAABRARAMeGNtCHYyNG11bHRpbG9jYXRpb24kSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAFUBASBKdW5jdGlvbgABAAhYMggAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAgAIWDMMAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAwAIWDQQAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAEAAhYNRQAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABQAIWDYYAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABgAIWDccAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAHAAhYOCAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ACAAAVQEQDHhjbQh2MiBqdW5jdGlvbiBKdW5jdGlvbgABJCRQYXJhY2hhaW4EAPABDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmtZAQEkTmV0d29ya0lkAAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmtZAQEkTmV0d29ya0lkAAEUaW5kZXgsAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya1kBASROZXR3b3JrSWQAAQxrZXn8ASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAABAQEQdTEyOAAFAChHZW5lcmFsS2V5BABdAQGAV2Vha0JvdW5kZWRWZWM8dTgsIENvbnN0VTMyPDMyPj4ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlkYQEBGEJvZHlJZAABEHBhcnRlAQEgQm9keVBhcnQACAAAWQEMDHhjbQh2MiROZXR3b3JrSWQAARAMQW55AAAAFE5hbWVkBABdAQGAV2Vha0JvdW5kZWRWZWM8dTgsIENvbnN0VTMyPDMyPj4AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAAF0BDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAYQEMDHhjbQh2MhhCb2R5SWQAASgQVW5pdAAAABROYW1lZAQAXQEBgFdlYWtCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjwzMj4+AAEAFEluZGV4BADwAQx1MzIAAgAkRXhlY3V0aXZlAAMAJFRlY2huaWNhbAAEACxMZWdpc2xhdGl2ZQAFACBKdWRpY2lhbAAGABxEZWZlbnNlAAcAOEFkbWluaXN0cmF0aW9uAAgAIFRyZWFzdXJ5AAkAAGUBDAx4Y20IdjIgQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW508AEMdTMyAAEAIEZyYWN0aW9uCAEMbm9t8AEMdTMyAAEUZGVub23wAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub23wAQx1MzIAARRkZW5vbfABDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub23wAQx1MzIAARRkZW5vbfABDHUzMgAEAABpAQxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nGHBhbGxldBRFdmVudAgEVAAESQABECREZWxlZ2F0ZWQIAAABMFQ6OkFjY291bnRJZAAAAAEwVDo6QWNjb3VudElkAAAEHQFBbiBhY2NvdW50IGhhcyBkZWxlZ2F0ZWQgdGhlaXIgdm90ZSB0byBhbm90aGVyIGFjY291bnQuIFxbd2hvLCB0YXJnZXRcXSxVbmRlbGVnYXRlZAQAAAEwVDo6QWNjb3VudElkAAEE9EFuIFxbYWNjb3VudFxdIGhhcyBjYW5jZWxsZWQgYSBwcmV2aW91cyBkZWxlZ2F0aW9uIG9wZXJhdGlvbi4UVm90ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARB2b3RlbQEBcEFjY291bnRWb3RlPEJhbGFuY2VPZjxULCBJPj4AAgRkQW4gYWNjb3VudCB0aGF0IGhhcyB2b3RlZCxWb3RlUmVtb3ZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABEHZvdGVtAQFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgADBGBBIHZvdGUgdGhhdCBiZWVuIHJlbW92ZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRtAQxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUsQWNjb3VudFZvdGUEHEJhbGFuY2UBGAEMIFN0YW5kYXJkCAEQdm90ZXEBARBWb3RlAAEcYmFsYW5jZRgBHEJhbGFuY2UAAAAUU3BsaXQIAQxheWUYARxCYWxhbmNlAAEMbmF5GAEcQmFsYW5jZQABADBTcGxpdEFic3RhaW4MAQxheWUYARxCYWxhbmNlAAEMbmF5GAEcQmFsYW5jZQABHGFic3RhaW4YARxCYWxhbmNlAAIAAHEBDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRBWb3RlAAAEAAgAAAB1AQxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXZlbnQIBFQABEkAAUAkU3VibWl0dGVkDAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2t5AQE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWx9AQFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4ABIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gc3VibWl0dGVkLlREZWNpc2lvbkRlcG9zaXRQbGFjZWQMARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnQYATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgEElFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHBsYWNlZC5cRGVjaXNpb25EZXBvc2l0UmVmdW5kZWQMARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnQYATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgIEnFRoZSBkZWNpc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHJlZnVuZGVkLjhEZXBvc2l0U2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAwRsQSBkZXBvc2l0IGhhcyBiZWVuIHNsYXNoZWQuPERlY2lzaW9uU3RhcnRlZBABFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRyYWNreQEBPFRyYWNrSWRPZjxULCBJPgQlAVRoZSB0cmFjayAoYW5kIGJ5IGV4dGVuc2lvbiBwcm9wb3NhbCBkaXNwYXRjaCBvcmlnaW4pIG9mIHRoaXMgcmVmZXJlbmR1bS4BIHByb3Bvc2FsfQEBTEJvdW5kZWRDYWxsT2Y8VCwgST4EgFRoZSBwcm9wb3NhbCBmb3IgdGhlIHJlZmVyZW5kdW0uARR0YWxseXkGASBUOjpUYWxseQS4VGhlIGN1cnJlbnQgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgQEvEEgcmVmZXJlbmR1bSBoYXMgbW92ZWQgaW50byB0aGUgZGVjaWRpbmcgcGhhc2UuOENvbmZpcm1TdGFydGVkBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgUAOENvbmZpcm1BYm9ydGVkBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgYAJENvbmZpcm1lZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5eQYBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgcEIQFBIHJlZmVyZW5kdW0gaGFzIGVuZGVkIGl0cyBjb25maXJtYXRpb24gcGhhc2UgYW5kIGlzIHJlYWR5IGZvciBhcHByb3ZhbC4gQXBwcm92ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uCAQNAUEgcmVmZXJlbmR1bSBoYXMgYmVlbiBhcHByb3ZlZCBhbmQgaXRzIHByb3Bvc2FsIGhhcyBiZWVuIHNjaGVkdWxlZC4gUmVqZWN0ZWQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseXkGASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4JBKxBIHByb3Bvc2FsIGhhcyBiZWVuIHJlamVjdGVkIGJ5IHJlZmVyZW5kdW0uIFRpbWVkT3V0CAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHl5BgEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCgTYQSByZWZlcmVuZHVtIGhhcyBiZWVuIHRpbWVkIG91dCB3aXRob3V0IGJlaW5nIGRlY2lkZWQuJENhbmNlbGxlZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5eQYBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgsEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjYW5jZWxsZWQuGEtpbGxlZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5eQYBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgwEdEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBraWxsZWQuZFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWQMARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnQYATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50Lg0EpFRoZSBzdWJtaXNzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuLE1ldGFkYXRhU2V0CAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaDQBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDgScTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzZXQuPE1ldGFkYXRhQ2xlYXJlZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BEGhhc2g0ARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg8ErE1ldGFkYXRhIGZvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR5AQAABQQAfQEQNGZyYW1lX3N1cHBvcnQYdHJhaXRzJHByZWltYWdlcxxCb3VuZGVkCARUAYEBBEgBcQYBDBhMZWdhY3kEARBoYXNoNAEkSDo6T3V0cHV0AAAAGElubGluZQQAdQYBNEJvdW5kZWRJbmxpbmUAAQAYTG9va3VwCAEQaGFzaDQBJEg6Ok91dHB1dAABDGxlbhABDHUzMgACAACBAQg4cm9jb2NvX3J1bnRpbWUsUnVudGltZUNhbGwAAdgYU3lzdGVtBACFAQGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAAAEEJhYmUEAJUBAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJhYmUsIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQAuQEBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgACABxJbmRpY2VzBAC9AQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJbmRpY2VzLCBSdW50aW1lPgADACBCYWxhbmNlcwQAzQEBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFsYW5jZXMsIFJ1bnRpbWU+AAQAKFBhcmFtZXRlcnMEANkBAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFtZXRlcnMsIFJ1bnRpbWU+AAYAHFNlc3Npb24EAPEBAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNlc3Npb24sIFJ1bnRpbWU+AAgAHEdyYW5kcGEEAA0CAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEdyYW5kcGEsIFJ1bnRpbWU+AAoAIFRyZWFzdXJ5BAA5AgG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUcmVhc3VyeSwgUnVudGltZT4AEgBAQ29udmljdGlvblZvdGluZwQAQQIB1QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29udmljdGlvblZvdGluZywgUnVudGltZT4AFAAkUmVmZXJlbmRhBABNAgG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWZlcmVuZGEsIFJ1bnRpbWU+ABUAUEZlbGxvd3NoaXBDb2xsZWN0aXZlBAB1AgHlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxGZWxsb3dzaGlwQ29sbGVjdGl2ZSwgUnVudGltZT4AFgBMRmVsbG93c2hpcFJlZmVyZW5kYQQAeQIB4QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RmVsbG93c2hpcFJlZmVyZW5kYSwgUnVudGltZT4AFwAkV2hpdGVsaXN0BAB9AgG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxXaGl0ZWxpc3QsIFJ1bnRpbWU+ACwAGENsYWltcwQAgQIBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q2xhaW1zLCBSdW50aW1lPgATABxVdGlsaXR5BAClAgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxVdGlsaXR5LCBSdW50aW1lPgAYACBJZGVudGl0eQQArQIBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SWRlbnRpdHksIFJ1bnRpbWU+ABkAHFNvY2lldHkEAFUDAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNvY2lldHksIFJ1bnRpbWU+ABoAIFJlY292ZXJ5BABZAwG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWNvdmVyeSwgUnVudGltZT4AGwAcVmVzdGluZwQAXQMBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VmVzdGluZywgUnVudGltZT4AHAAkU2NoZWR1bGVyBABlAwG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTY2hlZHVsZXIsIFJ1bnRpbWU+AB0AFFByb3h5BABxAwGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcm94eSwgUnVudGltZT4AHgAgTXVsdGlzaWcEAH0DAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgAfACBQcmVpbWFnZQQAiQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJlaW1hZ2UsIFJ1bnRpbWU+ACAAJEFzc2V0UmF0ZQQAkQMBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSYXRlLCBSdW50aW1lPgAnACBCb3VudGllcwQAmQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Qm91bnRpZXMsIFJ1bnRpbWU+ACMANENoaWxkQm91bnRpZXMEAJ0DAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENoaWxkQm91bnRpZXMsIFJ1bnRpbWU+ACgADE5pcwQAoQMBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TmlzLCBSdW50aW1lPgAmAFhOaXNDb3VudGVycGFydEJhbGFuY2VzBAClAwHtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxOaXNDb3VudGVycGFydEJhbGFuY2VzLCBSdW50aW1lPgAtADRDb25maWd1cmF0aW9uBACpAwHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb25maWd1cmF0aW9uLCBSdW50aW1lPgAzACxQYXJhc1NoYXJlZAQA0QMBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYXNTaGFyZWQsIFJ1bnRpbWU+ADQANFBhcmFJbmNsdXNpb24EANUDAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFJbmNsdXNpb24sIFJ1bnRpbWU+ADUAMFBhcmFJbmhlcmVudAQA2QMBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYUluaGVyZW50LCBSdW50aW1lPgA2ABRQYXJhcwQAZQQBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYXMsIFJ1bnRpbWU+ADgALEluaXRpYWxpemVyBABtBAHBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJbml0aWFsaXplciwgUnVudGltZT4AOQAQSHJtcAQAcQQBpQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SHJtcCwgUnVudGltZT4APAA0UGFyYXNEaXNwdXRlcwQAeQQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYXNEaXNwdXRlcywgUnVudGltZT4APgA0UGFyYXNTbGFzaGluZwQAfQQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYXNTbGFzaGluZywgUnVudGltZT4APwAwTWVzc2FnZVF1ZXVlBACNBAHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNZXNzYWdlUXVldWUsIFJ1bnRpbWU+AEAAaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyBACZBAH9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlciwgUnVudGltZT4AQgAkUmVnaXN0cmFyBACdBAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWdpc3RyYXIsIFJ1bnRpbWU+AEYAFFNsb3RzBAChBAGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTbG90cywgUnVudGltZT4ARwAgQXVjdGlvbnMEAKUEAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEF1Y3Rpb25zLCBSdW50aW1lPgBIACRDcm93ZGxvYW4EAK0EAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENyb3dkbG9hbiwgUnVudGltZT4ASQAgQ29yZXRpbWUEALkEAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvcmV0aW1lLCBSdW50aW1lPgBKACRYY21QYWxsZXQEAM0EAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbVBhbGxldCwgUnVudGltZT4AYwAUQmVlZnkEAAUGAakBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJlZWZ5LCBSdW50aW1lPgDwAEBJZGVudGl0eU1pZ3JhdG9yBAA5BgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eU1pZ3JhdG9yLCBSdW50aW1lPgD4AEBQYXJhc1N1ZG9XcmFwcGVyBAA9BgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhc1N1ZG9XcmFwcGVyLCBSdW50aW1lPgD6ADRBc3NpZ25lZFNsb3RzBABFBgHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBc3NpZ25lZFNsb3RzLCBSdW50aW1lPgD7AEBWYWxpZGF0b3JNYW5hZ2VyBABNBgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxWYWxpZGF0b3JNYW5hZ2VyLCBSdW50aW1lPgD8AEhTdGF0ZVRyaWVNaWdyYXRpb24EAFEGAd0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN0YXRlVHJpZU1pZ3JhdGlvbiwgUnVudGltZT4A/gAsUm9vdFRlc3RpbmcEAGkGAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJvb3RUZXN0aW5nLCBSdW50aW1lPgD5ABBTdWRvBABtBgGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdWRvLCBSdW50aW1lPgD/AACFAQwwZnJhbWVfc3lzdGVtGHBhbGxldBBDYWxsBARUAAEsGHJlbWFyawQBGHJlbWFyazgBHFZlYzx1OD4AAAxoTWFrZSBzb21lIG9uLWNoYWluIHJlbWFyay4AiENhbiBiZSBleGVjdXRlZCBieSBldmVyeSBgb3JpZ2luYC44c2V0X2hlYXBfcGFnZXMEARRwYWdlczABDHU2NAABBPhTZXQgdGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgV2ViQXNzZW1ibHkgZW52aXJvbm1lbnQncyBoZWFwLiBzZXRfY29kZQQBEGNvZGU4ARxWZWM8dTg+AAIEZFNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZS5cc2V0X2NvZGVfd2l0aG91dF9jaGVja3MEARBjb2RlOAEcVmVjPHU4PgADEBkBU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlIHdpdGhvdXQgZG9pbmcgYW55IGNoZWNrcyBvZiB0aGUgZ2l2ZW4gYGNvZGVgLgBRAU5vdGUgdGhhdCBydW50aW1lIHVwZ3JhZGVzIHdpbGwgbm90IHJ1biBpZiB0aGlzIGlzIGNhbGxlZCB3aXRoIGEgbm90LWluY3JlYXNpbmcgc3BlYyB2ZXJzaW9uISxzZXRfc3RvcmFnZQQBFGl0ZW1ziQEBNFZlYzxLZXlWYWx1ZT4ABARoU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBAEQa2V5c5EBASBWZWM8S2V5PgAFBHRLaWxsIHNvbWUgaXRlbXMgZnJvbSBzdG9yYWdlLixraWxsX3ByZWZpeAgBGHByZWZpeDgBDEtleQABHHN1YmtleXMQAQx1MzIABhARAUtpbGwgYWxsIHN0b3JhZ2UgaXRlbXMgd2l0aCBhIGtleSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguADkBKipOT1RFOioqIFdlIHJlbHkgb24gdGhlIFJvb3Qgb3JpZ2luIHRvIHByb3ZpZGUgdXMgdGhlIG51bWJlciBvZiBzdWJrZXlzIHVuZGVyPQF0aGUgcHJlZml4IHdlIGFyZSByZW1vdmluZyB0byBhY2N1cmF0ZWx5IGNhbGN1bGF0ZSB0aGUgd2VpZ2h0IG9mIHRoaXMgZnVuY3Rpb24uRHJlbWFya193aXRoX2V2ZW50BAEYcmVtYXJrOAEcVmVjPHU4PgAHBKRNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrIGFuZCBlbWl0IGV2ZW50LkRhdXRob3JpemVfdXBncmFkZQQBJGNvZGVfaGFzaDQBHFQ6Okhhc2gACRBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4ugGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzBAEkY29kZV9oYXNoNAEcVDo6SGFzaAAKIGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AXQFXQVJOSU5HOiBUaGlzIGF1dGhvcml6ZXMgYW4gdXBncmFkZSB0aGF0IHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0IGFueSBzYWZldHkgY2hlY2tzLCBmb3JZAWV4YW1wbGUgdGhhdCB0aGUgc3BlYyBuYW1lIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVyIGluY3JlYXNlcy4gTm908HJlY29tbWVuZGVkIGZvciBub3JtYWwgdXNlLiBVc2UgYGF1dGhvcml6ZV91cGdyYWRlYCBpbnN0ZWFkLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLmBhcHBseV9hdXRob3JpemVkX3VwZ3JhZGUEARBjb2RlOAEcVmVjPHU4PgALJFUBUHJvdmlkZSB0aGUgcHJlaW1hZ2UgKHJ1bnRpbWUgYmluYXJ5KSBgY29kZWAgZm9yIGFuIHVwZ3JhZGUgdGhhdCBoYXMgYmVlbiBhdXRob3JpemVkLgBJAUlmIHRoZSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIGEgdmVyc2lvbiBjaGVjaywgdGhpcyBjYWxsIHdpbGwgZW5zdXJlIHRoZSBzcGVjIG5hbWXocmVtYWlucyB1bmNoYW5nZWQgYW5kIHRoYXQgdGhlIHNwZWMgdmVyc2lvbiBoYXMgaW5jcmVhc2VkLgBZAURlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGBPblNldENvZGVgIGNvbmZpZ3VyYXRpb24sIHRoaXMgZnVuY3Rpb24gbWF5IGRpcmVjdGx5IGFwcGx5EQF0aGUgbmV3IGBjb2RlYCBpbiB0aGUgc2FtZSBibG9jayBvciBhdHRlbXB0IHRvIHNjaGVkdWxlIHRoZSB1cGdyYWRlLgBgQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLokBAAACjQEAjQEAAAQIODgAkQEAAAI4AJUBDCxwYWxsZXRfYmFiZRhwYWxsZXQQQ2FsbAQEVAABDExyZXBvcnRfZXF1aXZvY2F0aW9uCAFIZXF1aXZvY2F0aW9uX3Byb29mmQEBkEJveDxFcXVpdm9jYXRpb25Qcm9vZjxIZWFkZXJGb3I8VD4+PgABPGtleV9vd25lcl9wcm9vZqkBAUBUOjpLZXlPd25lclByb29mAAAQCQFSZXBvcnQgYXV0aG9yaXR5IGVxdWl2b2NhdGlvbi9taXNiZWhhdmlvci4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkFAXRoZSBlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29mDQFhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZSB3aWxsMGJlIHJlcG9ydGVkLnByZXBvcnRfZXF1aXZvY2F0aW9uX3Vuc2lnbmVkCAFIZXF1aXZvY2F0aW9uX3Byb29mmQEBkEJveDxFcXVpdm9jYXRpb25Qcm9vZjxIZWFkZXJGb3I8VD4+PgABPGtleV9vd25lcl9wcm9vZqkBAUBUOjpLZXlPd25lclByb29mAAEgCQFSZXBvcnQgYXV0aG9yaXR5IGVxdWl2b2NhdGlvbi9taXNiZWhhdmlvci4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkFAXRoZSBlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29mDQFhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZSB3aWxsMGJlIHJlcG9ydGVkLg0BVGhpcyBleHRyaW5zaWMgbXVzdCBiZSBjYWxsZWQgdW5zaWduZWQgYW5kIGl0IGlzIGV4cGVjdGVkIHRoYXQgb25seRUBYmxvY2sgYXV0aG9ycyB3aWxsIGNhbGwgaXQgKHZhbGlkYXRlZCBpbiBgVmFsaWRhdGVVbnNpZ25lZGApLCBhcyBzdWNoFQFpZiB0aGUgYmxvY2sgYXV0aG9yIGlzIGRlZmluZWQgaXQgd2lsbCBiZSBkZWZpbmVkIGFzIHRoZSBlcXVpdm9jYXRpb24kcmVwb3J0ZXIuSHBsYW5fY29uZmlnX2NoYW5nZQQBGGNvbmZpZ60BAVBOZXh0Q29uZmlnRGVzY3JpcHRvcgACEF0BUGxhbiBhbiBlcG9jaCBjb25maWcgY2hhbmdlLiBUaGUgZXBvY2ggY29uZmlnIGNoYW5nZSBpcyByZWNvcmRlZCBhbmQgd2lsbCBiZSBlbmFjdGVkIG9uUQF0aGUgbmV4dCBjYWxsIHRvIGBlbmFjdF9lcG9jaF9jaGFuZ2VgLiBUaGUgY29uZmlnIHdpbGwgYmUgYWN0aXZhdGVkIG9uZSBlcG9jaCBhZnRlci5ZAU11bHRpcGxlIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHdpbGwgcmVwbGFjZSBhbnkgZXhpc3RpbmcgcGxhbm5lZCBjb25maWcgY2hhbmdlIHRoYXQgaGFkVG5vdCBiZWVuIGVuYWN0ZWQgeWV0LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6ZAQhIc3BfY29uc2Vuc3VzX3Nsb3RzREVxdWl2b2NhdGlvblByb29mCBhIZWFkZXIBnQEISWQBoQEAEAEgb2ZmZW5kZXKhAQEISWQAARBzbG90pQEBEFNsb3QAATBmaXJzdF9oZWFkZXKdAQEYSGVhZGVyAAE0c2Vjb25kX2hlYWRlcp0BARhIZWFkZXIAAJ0BEChzcF9ydW50aW1lHGdlbmVyaWMYaGVhZGVyGEhlYWRlcggYTnVtYmVyARAQSGFzaAAAFAEscGFyZW50X2hhc2g0ATBIYXNoOjpPdXRwdXQAARhudW1iZXLwARhOdW1iZXIAAShzdGF0ZV9yb290NAEwSGFzaDo6T3V0cHV0AAE8ZXh0cmluc2ljc19yb290NAEwSGFzaDo6T3V0cHV0AAEYZGlnZXN0PAEYRGlnZXN0AAChAQxEc3BfY29uc2Vuc3VzX2JhYmUMYXBwGFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAAKUBCEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAwAQx1NjQAAKkBCChzcF9zZXNzaW9uPE1lbWJlcnNoaXBQcm9vZgAADAEcc2Vzc2lvbhABMFNlc3Npb25JbmRleAABKHRyaWVfbm9kZXORAQEwVmVjPFZlYzx1OD4+AAE8dmFsaWRhdG9yX2NvdW50EAE4VmFsaWRhdG9yQ291bnQAAK0BDERzcF9jb25zZW5zdXNfYmFiZRxkaWdlc3RzUE5leHRDb25maWdEZXNjcmlwdG9yAAEECFYxCAEEY7EBASgodTY0LCB1NjQpAAE0YWxsb3dlZF9zbG90c7UBATBBbGxvd2VkU2xvdHMAAQAAsQEAAAQIMDAAtQEIRHNwX2NvbnNlbnN1c19iYWJlMEFsbG93ZWRTbG90cwABDDBQcmltYXJ5U2xvdHMAAAB0UHJpbWFyeUFuZFNlY29uZGFyeVBsYWluU2xvdHMAAQBsUHJpbWFyeUFuZFNlY29uZGFyeVZSRlNsb3RzAAIAALkBDEBwYWxsZXRfdGltZXN0YW1wGHBhbGxldBBDYWxsBARUAAEEDHNldAQBDG5vdywBJFQ6Ok1vbWVudAAATFRTZXQgdGhlIGN1cnJlbnQgdGltZS4AVQFUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u1HBoYXNlLCBpZiB0aGlzIGNhbGwgaGFzbid0IGJlZW4gaW52b2tlZCBieSB0aGF0IHRpbWUuAEEBVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnloW2BDb25maWc6Ok1pbmltdW1QZXJpb2RgXS4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUQFUaGlzIGRpc3BhdGNoIGNsYXNzIGlzIF9NYW5kYXRvcnlfIHRvIGVuc3VyZSBpdCBnZXRzIGV4ZWN1dGVkIGluIHRoZSBibG9jay4gQmUgYXdhcmVRAXRoYXQgY2hhbmdpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjYWxsIGNvdWxkIHJlc3VsdCBleGhhdXN0aW5nIHRoZSByZXNvdXJjZXMgaW4gYYRibG9jayB0byBleGVjdXRlIGFueSBvdGhlciBjYWxscy4ANCMjIENvbXBsZXhpdHkxAS0gYE8oMSlgIChOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBPblRpbWVzdGFtcFNldGAgbXVzdCBhbHNvIGJlIGBPKDEpYClVAS0gMSBzdG9yYWdlIHJlYWQgYW5kIDEgc3RvcmFnZSBtdXRhdGlvbiAoY29kZWMgYE8oMSlgIGJlY2F1c2Ugb2YgYERpZFVwZGF0ZTo6dGFrZWAgaW5AICBgb25fZmluYWxpemVgKdQtIDEgZXZlbnQgaGFuZGxlciBgb25fdGltZXN0YW1wX3NldGAuIE11c3QgYmUgYE8oMSlgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy69AQw4cGFsbGV0X2luZGljZXMYcGFsbGV0EENhbGwEBFQAARQUY2xhaW0EARRpbmRleBABPFQ6OkFjY291bnRJbmRleAAAMJhBc3NpZ24gYW4gcHJldmlvdXNseSB1bmFzc2lnbmVkIGluZGV4LgDcUGF5bWVudDogYERlcG9zaXRgIGlzIHJlc2VydmVkIGZyb20gdGhlIHNlbmRlciBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAPAtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSBjbGFpbWVkLiBUaGlzIG11c3Qgbm90IGJlIGluIHVzZS4AkEVtaXRzIGBJbmRleEFzc2lnbmVkYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC4gdHJhbnNmZXIIAQxuZXfBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRpbmRleBABPFQ6OkFjY291bnRJbmRleAABMF0BQXNzaWduIGFuIGluZGV4IGFscmVhZHkgb3duZWQgYnkgdGhlIHNlbmRlciB0byBhbm90aGVyIGFjY291bnQuIFRoZSBiYWxhbmNlIHJlc2VydmF0aW9uuGlzIGVmZmVjdGl2ZWx5IHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgYWNjb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAlAS0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIHJlLWFzc2lnbmVkLiBUaGlzIG11c3QgYmUgb3duZWQgYnkgdGhlIHNlbmRlci5dAS0gYG5ld2A6IHRoZSBuZXcgb3duZXIgb2YgdGhlIGluZGV4LiBUaGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AgaWYgaXQgaXMgZXF1YWwgdG8gc2VuZGVyLgCQRW1pdHMgYEluZGV4QXNzaWduZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLhBmcmVlBAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgAAjCURnJlZSB1cCBhbiBpbmRleCBvd25lZCBieSB0aGUgc2VuZGVyLgBdAVBheW1lbnQ6IEFueSBwcmV2aW91cyBkZXBvc2l0IHBsYWNlZCBmb3IgdGhlIGluZGV4IGlzIHVucmVzZXJ2ZWQgaW4gdGhlIHNlbmRlciBhY2NvdW50LgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3Qgb3duIHRoZSBpbmRleC4ADQEtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSBmcmVlZC4gVGhpcyBtdXN0IGJlIG93bmVkIGJ5IHRoZSBzZW5kZXIuAIRFbWl0cyBgSW5kZXhGcmVlZGAgaWYgc3VjY2Vzc2Z1bC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuOGZvcmNlX3RyYW5zZmVyDAEMbmV3wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgAARhmcmVlemUgARBib29sAAM0VQFGb3JjZSBhbiBpbmRleCB0byBhbiBhY2NvdW50LiBUaGlzIGRvZXNuJ3QgcmVxdWlyZSBhIGRlcG9zaXQuIElmIHRoZSBpbmRleCBpcyBhbHJlYWR56GhlbGQsIHRoZW4gYW55IGRlcG9zaXQgaXMgcmVpbWJ1cnNlZCB0byBpdHMgY3VycmVudCBvd25lci4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4ApC0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIChyZS0pYXNzaWduZWQuXQEtIGBuZXdgOiB0aGUgbmV3IG93bmVyIG9mIHRoZSBpbmRleC4gVGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGlmIGl0IGlzIGVxdWFsIHRvIHNlbmRlci5BAS0gYGZyZWV6ZWA6IGlmIHNldCB0byBgdHJ1ZWAsIHdpbGwgZnJlZXplIHRoZSBpbmRleCBzbyBpdCBjYW5ub3QgYmUgdHJhbnNmZXJyZWQuAJBFbWl0cyBgSW5kZXhBc3NpZ25lZGAgaWYgc3VjY2Vzc2Z1bC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuGGZyZWV6ZQQBFGluZGV4EAE8VDo6QWNjb3VudEluZGV4AAQwQQFGcmVlemUgYW4gaW5kZXggc28gaXQgd2lsbCBhbHdheXMgcG9pbnQgdG8gdGhlIHNlbmRlciBhY2NvdW50LiBUaGlzIGNvbnN1bWVzIHRoZSBkZXBvc2l0LgBZAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgaGF2ZSBhbG5vbi1mcm96ZW4gYWNjb3VudCBgaW5kZXhgLgCsLSBgaW5kZXhgOiB0aGUgaW5kZXggdG8gYmUgZnJvemVuIGluIHBsYWNlLgCIRW1pdHMgYEluZGV4RnJvemVuYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuwQEMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQAwQWNjb3VudEluZGV4AcUBARQISWQEAAABJEFjY291bnRJZAAAABRJbmRleAQAyQEBMEFjY291bnRJbmRleAABAAxSYXcEADgBHFZlYzx1OD4AAgAkQWRkcmVzczMyBAAEASBbdTg7IDMyXQADACRBZGRyZXNzMjAEAPwBIFt1ODsgMjBdAAQAAMUBAAAEAADJAQAABsUBAM0BDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0EENhbGwIBFQABEkAASRQdHJhbnNmZXJfYWxsb3dfZGVhdGgIARBkZXN0wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWUBAQEoVDo6QmFsYW5jZQAAHNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgA1AWB0cmFuc2Zlcl9hbGxvd19kZWF0aGAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIuEQFJZiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdLBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLjhmb3JjZV90cmFuc2ZlcgwBGHNvdXJjZcEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRlc3TBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZQEBAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWUBAQEoVDo6QmFsYW5jZQADGFkBU2FtZSBhcyB0aGUgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Rga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuAOg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGluc3RlYWQuAPBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF06IHN0cnVjdC5QYWxsZXQuaHRtbCNtZXRob2QudHJhbnNmZXIwdHJhbnNmZXJfYWxsCAEQZGVzdMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmUgARBib29sAAQ8BQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0YQFhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwgZGVwb3NpdHMgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvclkBICB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuPGZvcmNlX3VucmVzZXJ2ZQgBDHdob8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudBgBKFQ6OkJhbGFuY2UABQywVW5yZXNlcnZlIHNvbWUgYmFsYW5jZSBmcm9tIGEgdXNlciBieSBmb3JjZS4AbENhbiBvbmx5IGJlIGNhbGxlZCBieSBST09ULkB1cGdyYWRlX2FjY291bnRzBAEMd2hv0QEBRFZlYzxUOjpBY2NvdW50SWQ+AAYgcFVwZ3JhZGUgYSBzcGVjaWZpZWQgYWNjb3VudC4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVwZ3JhZGVkLgBVAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIGF0IGxlYXN0IGFsbCBidXQgMTAlIG9mIHRoZSBhY2NvdW50cyBuZWVkZWQgdG9BAWJlIHVwZ3JhZGVkLiAoV2UgbGV0IHNvbWUgbm90IGhhdmUgdG8gYmUgdXBncmFkZWQganVzdCBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlWHBvc3NpYmlsaXR5IG9mIGNodXJuKS5EZm9yY2Vfc2V0X2JhbGFuY2UIAQx3aG/BAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZQEBAShUOjpCYWxhbmNlAAgMrFNldCB0aGUgcmVndWxhciBiYWxhbmNlIG9mIGEgZ2l2ZW4gYWNjb3VudC4AsFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAubGZvcmNlX2FkanVzdF90b3RhbF9pc3N1YW5jZQgBJGRpcmVjdGlvbtUBAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGEBAQEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWUBAQEoVDo6QmFsYW5jZQABKGtlZXBfYWxpdmUgARBib29sAAoc/EJ1cm4gdGhlIHNwZWNpZmllZCBsaXF1aWQgZnJlZSBiYWxhbmNlIGZyb20gdGhlIG9yaWdpbiBhY2NvdW50LgAlAUlmIHRoZSBvcmlnaW4ncyBhY2NvdW50IGVuZHMgdXAgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHQJAW9mIHRoZSBidXJuIGFuZCBga2VlcF9hbGl2ZWAgaXMgZmFsc2UsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgBRAVVubGlrZSBzZW5kaW5nIGZ1bmRzIHRvIGEgX2J1cm5fIGFkZHJlc3MsIHdoaWNoIG1lcmVseSBtYWtlcyB0aGUgZnVuZHMgaW5hY2Nlc3NpYmxlLCEBdGhpcyBgYnVybmAgb3BlcmF0aW9uIHdpbGwgcmVkdWNlIHRvdGFsIGlzc3VhbmNlIGJ5IHRoZSBhbW91bnQgX2J1cm5lZF8uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtEBAAACAADVAQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzTEFkanVzdG1lbnREaXJlY3Rpb24AAQggSW5jcmVhc2UAAAAgRGVjcmVhc2UAAQAA2QEMRHBhbGxldF9wYXJhbWV0ZXJzGHBhbGxldBBDYWxsBARUAAEENHNldF9wYXJhbWV0ZXIEASRrZXlfdmFsdWXdAQFQVDo6UnVudGltZVBhcmFtZXRlcnMAABB0U2V0IHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBBZG1pbk9yaWdpbmAgZm9yIHRoZSBnaXZlbiBga2V5YC4gVmFsdWVzIGJliGRlbGV0ZWQgYnkgc2V0dGluZyB0aGVtIHRvIGBOb25lYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu3QEIOHJvY29jb19ydW50aW1lRFJ1bnRpbWVQYXJhbWV0ZXJzAAEIDE5pcwQA4QEBfGR5bmFtaWNfcGFyYW1zOjpuaXM6OlBhcmFtZXRlcnMAAAAgUHJlaW1hZ2UEAO0BAZBkeW5hbWljX3BhcmFtczo6cHJlaW1hZ2U6OlBhcmFtZXRlcnMAAQAA4QEQOHJvY29jb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zDG5pcyhQYXJhbWV0ZXJzAAEIGFRhcmdldAgAlAEYVGFyZ2V0AADlAQFMT3B0aW9uPFBlcnF1aW50aWxsPgAAABhNaW5CaWQIAJgBGE1pbkJpZAAA6QEBPE9wdGlvbjxCYWxhbmNlPgABAADlAQQYT3B0aW9uBARUAbQBCBBOb25lAAAAEFNvbWUEALQAAAEAAOkBBBhPcHRpb24EBFQBGAEIEE5vbmUAAAAQU29tZQQAGAAAAQAA7QEQOHJvY29jb19ydW50aW1lOGR5bmFtaWNfcGFyYW1zIHByZWltYWdlKFBhcmFtZXRlcnMAAQgsQmFzZURlcG9zaXQIAKABLEJhc2VEZXBvc2l0AADpAQE8T3B0aW9uPEJhbGFuY2U+AAAALEJ5dGVEZXBvc2l0CACkASxCeXRlRGVwb3NpdAAA6QEBPE9wdGlvbjxCYWxhbmNlPgABAADxAQw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0EENhbGwEBFQAAQggc2V0X2tleXMIARBrZXlz9QEBHFQ6OktleXMAARRwcm9vZjgBHFZlYzx1OD4AACTkU2V0cyB0aGUgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlciB0byBga2V5c2AuHQFBbGxvd3MgYW4gYWNjb3VudCB0byBzZXQgaXRzIHNlc3Npb24ga2V5IHByaW9yIHRvIGJlY29taW5nIGEgdmFsaWRhdG9yLsBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIHNpZ25lZC4ANCMjIENvbXBsZXhpdHlZAS0gYE8oMSlgLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mIGBUOjpLZXlzOjprZXlfaWRzKClgIHdoaWNoIGlzICAgZml4ZWQuKHB1cmdlX2tleXMAATDIUmVtb3ZlcyBhbnkgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlci4AwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIGFjY291bnQgbXVzdCBiZSBlaXRoZXIgYmVdAWNvbnZlcnRpYmxlIHRvIGEgdmFsaWRhdG9yIElEIHVzaW5nIHRoZSBjaGFpbidzIHR5cGljYWwgYWRkcmVzc2luZyBzeXN0ZW0gKHRoaXMgdXN1YWxseVEBbWVhbnMgYmVpbmcgYSBjb250cm9sbGVyIGFjY291bnQpIG9yIGRpcmVjdGx5IGNvbnZlcnRpYmxlIGludG8gYSB2YWxpZGF0b3IgSUQgKHdoaWNolHVzdWFsbHkgbWVhbnMgYmVpbmcgYSBzdGFzaCBhY2NvdW50KS4ANCMjIENvbXBsZXhpdHk9AS0gYE8oMSlgIGluIG51bWJlciBvZiBrZXkgdHlwZXMuIEFjdHVhbCBjb3N0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBsZW5ndGggb2aYICBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyBmaXhlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu9QEIOHJvY29jb19ydW50aW1lLFNlc3Npb25LZXlzAAAYARxncmFuZHBh2AHQPEdyYW5kcGEgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwABEGJhYmWhAQHEPEJhYmUgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwABOHBhcmFfdmFsaWRhdG9y+QEB4DxJbml0aWFsaXplciBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAE8cGFyYV9hc3NpZ25tZW50/QEB8DxQYXJhU2Vzc2lvbkluZm8gYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwABTGF1dGhvcml0eV9kaXNjb3ZlcnkBAgH8PEF1dGhvcml0eURpc2NvdmVyeSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAEUYmVlZnkFAgHIPEJlZWZ5IGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAAPkBEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NHZhbGlkYXRvcl9hcHAYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAA/QEQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg4YXNzaWdubWVudF9hcHAYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAAAQIMWHNwX2F1dGhvcml0eV9kaXNjb3ZlcnkMYXBwGFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAAAUCDEhzcF9jb25zZW5zdXNfYmVlZnkwZWNkc2FfY3J5cHRvGFB1YmxpYwAABAAJAgE0ZWNkc2E6OlB1YmxpYwAACQIAAAMhAAAACAANAgw4cGFsbGV0X2dyYW5kcGEYcGFsbGV0EENhbGwEBFQAAQxMcmVwb3J0X2VxdWl2b2NhdGlvbggBSGVxdWl2b2NhdGlvbl9wcm9vZhECAchCb3g8RXF1aXZvY2F0aW9uUHJvb2Y8VDo6SGFzaCwgQmxvY2tOdW1iZXJGb3I8VD4+PgABPGtleV9vd25lcl9wcm9vZqkBAUBUOjpLZXlPd25lclByb29mAAAQCQFSZXBvcnQgdm90ZXIgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGX0ZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZvhhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZUR3aWxsIGJlIHJlcG9ydGVkLnByZXBvcnRfZXF1aXZvY2F0aW9uX3Vuc2lnbmVkCAFIZXF1aXZvY2F0aW9uX3Byb29mEQIByEJveDxFcXVpdm9jYXRpb25Qcm9vZjxUOjpIYXNoLCBCbG9ja051bWJlckZvcjxUPj4+AAE8a2V5X293bmVyX3Byb29mqQEBQFQ6OktleU93bmVyUHJvb2YAASQJAVJlcG9ydCB2b3RlciBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZfRlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29m+GFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlRHdpbGwgYmUgcmVwb3J0ZWQuAA0BVGhpcyBleHRyaW5zaWMgbXVzdCBiZSBjYWxsZWQgdW5zaWduZWQgYW5kIGl0IGlzIGV4cGVjdGVkIHRoYXQgb25seRUBYmxvY2sgYXV0aG9ycyB3aWxsIGNhbGwgaXQgKHZhbGlkYXRlZCBpbiBgVmFsaWRhdGVVbnNpZ25lZGApLCBhcyBzdWNoFQFpZiB0aGUgYmxvY2sgYXV0aG9yIGlzIGRlZmluZWQgaXQgd2lsbCBiZSBkZWZpbmVkIGFzIHRoZSBlcXVpdm9jYXRpb24kcmVwb3J0ZXIuMG5vdGVfc3RhbGxlZAgBFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4AAWxiZXN0X2ZpbmFsaXplZF9ibG9ja19udW1iZXIQAURCbG9ja051bWJlckZvcjxUPgACMD0BTm90ZSB0aGF0IHRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQgb2YgdGhlIEdSQU5EUEEgZmluYWxpdHkgZ2FkZ2V0IGhhcyBzdGFsbGVkLgBhAVRoaXMgd2lsbCB0cmlnZ2VyIGEgZm9yY2VkIGF1dGhvcml0eSBzZXQgY2hhbmdlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgc2Vzc2lvbiwgdG9hAWJlIGVuYWN0ZWQgYGRlbGF5YCBibG9ja3MgYWZ0ZXIgdGhhdC4gVGhlIGBkZWxheWAgc2hvdWxkIGJlIGhpZ2ggZW5vdWdoIHRvIHNhZmVseSBhc3N1bWVJAXRoYXQgdGhlIGJsb2NrIHNpZ25hbGxpbmcgdGhlIGZvcmNlZCBjaGFuZ2Ugd2lsbCBub3QgYmUgcmUtb3JnZWQgZS5nLiAxMDAwIGJsb2Nrcy5dAVRoZSBibG9jayBwcm9kdWN0aW9uIHJhdGUgKHdoaWNoIG1heSBiZSBzbG93ZWQgZG93biBiZWNhdXNlIG9mIGZpbmFsaXR5IGxhZ2dpbmcpIHNob3VsZFEBYmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gY2hvb3NpbmcgdGhlIGBkZWxheWAuIFRoZSBHUkFORFBBIHZvdGVycyBiYXNlZCBvbiB0aGUgbmV3VQFhdXRob3JpdHkgd2lsbCBzdGFydCB2b3Rpbmcgb24gdG9wIG9mIGBiZXN0X2ZpbmFsaXplZF9ibG9ja19udW1iZXJgIGZvciBuZXcgZmluYWxpemVkTQFibG9ja3MuIGBiZXN0X2ZpbmFsaXplZF9ibG9ja19udW1iZXJgIHNob3VsZCBiZSB0aGUgaGlnaGVzdCBvZiB0aGUgbGF0ZXN0IGZpbmFsaXplZMRibG9jayBvZiBhbGwgdmFsaWRhdG9ycyBvZiB0aGUgbmV3IGF1dGhvcml0eSBzZXQuAFhPbmx5IGNhbGxhYmxlIGJ5IHJvb3QuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhECCFBzcF9jb25zZW5zdXNfZ3JhbmRwYURFcXVpdm9jYXRpb25Qcm9vZggESAE0BE4BEAAIARhzZXRfaWQwARRTZXRJZAABMGVxdWl2b2NhdGlvbhUCAUhFcXVpdm9jYXRpb248SCwgTj4AABUCCFBzcF9jb25zZW5zdXNfZ3JhbmRwYTBFcXVpdm9jYXRpb24IBEgBNAROARABCBxQcmV2b3RlBAAZAgGJAWZpbmFsaXR5X2dyYW5kcGE6OkVxdWl2b2NhdGlvbjxBdXRob3JpdHlJZCwgZmluYWxpdHlfZ3JhbmRwYTo6UHJldm90ZTwKSCwgTj4sIEF1dGhvcml0eVNpZ25hdHVyZSw+AAAAJFByZWNvbW1pdAQALQIBkQFmaW5hbGl0eV9ncmFuZHBhOjpFcXVpdm9jYXRpb248QXV0aG9yaXR5SWQsIGZpbmFsaXR5X2dyYW5kcGE6OlByZWNvbW1pdAo8SCwgTj4sIEF1dGhvcml0eVNpZ25hdHVyZSw+AAEAABkCCEBmaW5hbGl0eV9ncmFuZHBhMEVxdWl2b2NhdGlvbgwISWQB2ARWAR0CBFMBIQIAEAEwcm91bmRfbnVtYmVyMAEMdTY0AAEgaWRlbnRpdHnYAQhJZAABFGZpcnN0KQIBGChWLCBTKQABGHNlY29uZCkCARgoViwgUykAAB0CCEBmaW5hbGl0eV9ncmFuZHBhHFByZXZvdGUIBEgBNAROARAACAEsdGFyZ2V0X2hhc2g0AQRIAAE0dGFyZ2V0X251bWJlchABBE4AACECDFBzcF9jb25zZW5zdXNfZ3JhbmRwYQxhcHAkU2lnbmF0dXJlAAAEACUCAUhlZDI1NTE5OjpTaWduYXR1cmUAACUCAAADQAAAAAgAKQIAAAQIHQIhAgAtAghAZmluYWxpdHlfZ3JhbmRwYTBFcXVpdm9jYXRpb24MCElkAdgEVgExAgRTASECABABMHJvdW5kX251bWJlcjABDHU2NAABIGlkZW50aXR52AEISWQAARRmaXJzdDUCARgoViwgUykAARhzZWNvbmQ1AgEYKFYsIFMpAAAxAghAZmluYWxpdHlfZ3JhbmRwYSRQcmVjb21taXQIBEgBNAROARAACAEsdGFyZ2V0X2hhc2g0AQRIAAE0dGFyZ2V0X251bWJlchABBE4AADUCAAAECDECIQIAOQIMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQQQ2FsbAgEVAAESQABGCxzcGVuZF9sb2NhbAgBGGFtb3VudAEBATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyecEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgADRLhQcm9wb3NlIGFuZCBhcHByb3ZlIGEgc3BlbmQgb2YgdHJlYXN1cnkgZnVuZHMuAEgjIyBEaXNwYXRjaCBPcmlnaW4ARQFNdXN0IGJlIFtgQ29uZmlnOjpTcGVuZE9yaWdpbmBdIHdpdGggdGhlIGBTdWNjZXNzYCB2YWx1ZSBiZWluZyBhdCBsZWFzdCBgYW1vdW50YC4ALCMjIyBEZXRhaWxzRQFOT1RFOiBGb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMsIHRoZSBwcm9wb3NlciBpcyBkZWVtZWQgdG8gYmUgZXF1aXZhbGVudCB0byB0aGUwYmVuZWZpY2lhcnkuADgjIyMgUGFyYW1ldGVyc0EBLSBgYW1vdW50YDogVGhlIGFtb3VudCB0byBiZSB0cmFuc2ZlcnJlZCBmcm9tIHRoZSB0cmVhc3VyeSB0byB0aGUgYGJlbmVmaWNpYXJ5YC7oLSBgYmVuZWZpY2lhcnlgOiBUaGUgZGVzdGluYXRpb24gYWNjb3VudCBmb3IgdGhlIHRyYW5zZmVyLgAkIyMgRXZlbnRzALRFbWl0cyBbYEV2ZW50OjpTcGVuZEFwcHJvdmVkYF0gaWYgc3VjY2Vzc2Z1bC48cmVtb3ZlX2FwcHJvdmFsBAEscHJvcG9zYWxfaWTwATRQcm9wb3NhbEluZGV4AARULQFGb3JjZSBhIHByZXZpb3VzbHkgYXBwcm92ZWQgcHJvcG9zYWwgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBhcHByb3ZhbCBxdWV1ZS4ASCMjIERpc3BhdGNoIE9yaWdpbgCETXVzdCBiZSBbYENvbmZpZzo6UmVqZWN0T3JpZ2luYF0uACgjIyBEZXRhaWxzAMBUaGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIG5vIGxvbmdlciBiZSByZXR1cm5lZC4AOCMjIyBQYXJhbWV0ZXJzoC0gYHByb3Bvc2FsX2lkYDogVGhlIGluZGV4IG9mIGEgcHJvcG9zYWwAOCMjIyBDb21wbGV4aXR5rC0gTyhBKSB3aGVyZSBgQWAgaXMgdGhlIG51bWJlciBvZiBhcHByb3ZhbHMAKCMjIyBFcnJvcnNFAS0gW2BFcnJvcjo6UHJvcG9zYWxOb3RBcHByb3ZlZGBdOiBUaGUgYHByb3Bvc2FsX2lkYCBzdXBwbGllZCB3YXMgbm90IGZvdW5kIGluIHRoZVEBICBhcHByb3ZhbCBxdWV1ZSwgaS5lLiwgdGhlIHByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC4gVGhpcyBjb3VsZCBhbHNvIG1lYW4gdGhlWQEgIHByb3Bvc2FsIGRvZXMgbm90IGV4aXN0IGFsdG9nZXRoZXIsIHRodXMgdGhlcmUgaXMgbm8gd2F5IGl0IHdvdWxkIGhhdmUgYmVlbiBhcHByb3ZlZFQgIGluIHRoZSBmaXJzdCBwbGFjZS4Uc3BlbmQQAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AARhhbW91bnQBAQFQQXNzZXRCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeUkBAXhCb3g8QmVuZWZpY2lhcnlMb29rdXBPZjxULCBJPj4AASh2YWxpZF9mcm9tPQIBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4ABWi4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAB0BTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3RVAWBhbW91bnRgIG9mIGBhc3NldF9raW5kYCBpbiB0aGUgbmF0aXZlIGFzc2V0LiBUaGUgYW1vdW50IG9mIGBhc3NldF9raW5kYCBpcyBjb252ZXJ0ZWTUZm9yIGFzc2VydGlvbiB1c2luZyB0aGUgW2BDb25maWc6OkJhbGFuY2VDb252ZXJ0ZXJgXS4AKCMjIERldGFpbHMASQFDcmVhdGUgYW4gYXBwcm92ZWQgc3BlbmQgZm9yIHRyYW5zZmVycmluZyBhIHNwZWNpZmljIGBhbW91bnRgIG9mIGBhc3NldF9raW5kYCB0byBhYQFkZXNpZ25hdGVkIGJlbmVmaWNpYXJ5LiBUaGUgc3BlbmQgbXVzdCBiZSBjbGFpbWVkIHVzaW5nIHRoZSBgcGF5b3V0YCBkaXNwYXRjaGFibGUgd2l0aGludHRoZSBbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0uADgjIyMgUGFyYW1ldGVycxUBLSBgYXNzZXRfa2luZGA6IEFuIGluZGljYXRvciBvZiB0aGUgc3BlY2lmaWMgYXNzZXQgY2xhc3MgdG8gYmUgc3BlbnQuQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLrgtIGBiZW5lZmljaWFyeWA6IFRoZSBiZW5lZmljaWFyeSBvZiB0aGUgc3BlbmQuVQEtIGB2YWxpZF9mcm9tYDogVGhlIGJsb2NrIG51bWJlciBmcm9tIHdoaWNoIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZC4gSXQgY2FuIHJlZmVyIHRvGQEgIHRoZSBwYXN0IGlmIHRoZSByZXN1bHRpbmcgc3BlbmQgaGFzIG5vdCB5ZXQgZXhwaXJlZCBhY2NvcmRpbmcgdG8gdGhlRQEgIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4gSWYgYE5vbmVgLCB0aGUgc3BlbmQgY2FuIGJlIGNsYWltZWQgaW1tZWRpYXRlbHkgYWZ0ZXIsICBhcHByb3ZhbC4AJCMjIEV2ZW50cwDIRW1pdHMgW2BFdmVudDo6QXNzZXRTcGVuZEFwcHJvdmVkYF0gaWYgc3VjY2Vzc2Z1bC4YcGF5b3V0BAEUaW5kZXgQAShTcGVuZEluZGV4AAZMOENsYWltIGEgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AOE11c3QgYmUgc2lnbmVkACgjIyBEZXRhaWxzAFUBU3BlbmRzIG11c3QgYmUgY2xhaW1lZCB3aXRoaW4gc29tZSB0ZW1wb3JhbCBib3VuZHMuIEEgc3BlbmQgbWF5IGJlIGNsYWltZWQgd2l0aGluIG9uZdRbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0gZnJvbSB0aGUgYHZhbGlkX2Zyb21gIGJsb2NrLlUBSW4gY2FzZSBvZiBhIHBheW91dCBmYWlsdXJlLCB0aGUgc3BlbmQgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZSBgY2hlY2tfc3RhdHVzYNxkaXNwYXRjaGFibGUgYmVmb3JlIHJldHJ5aW5nIHdpdGggdGhlIGN1cnJlbnQgZnVuY3Rpb24uADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwCQRW1pdHMgW2BFdmVudDo6UGFpZGBdIGlmIHN1Y2Nlc3NmdWwuMGNoZWNrX3N0YXR1cwQBFGluZGV4EAEoU3BlbmRJbmRleAAHTCkBQ2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgc3BlbmQgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzdG9yYWdlIGlmIHByb2Nlc3NlZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAAEBVGhlIHN0YXR1cyBjaGVjayBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgcmV0cnlpbmcgYSBmYWlsZWQgcGF5b3V0LkkBSWYgYSBzcGVuZCBoYXMgZWl0aGVyIHN1Y2NlZWRlZCBvciBleHBpcmVkLCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UgYnkgdGhpc+xmdW5jdGlvbi4gSW4gc3VjaCBpbnN0YW5jZXMsIHRyYW5zYWN0aW9uIGZlZXMgYXJlIHJlZnVuZGVkLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMA+EVtaXRzIFtgRXZlbnQ6OlBheW1lbnRGYWlsZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBmYWlsZWQuAQFFbWl0cyBbYEV2ZW50OjpTcGVuZFByb2Nlc3NlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIHN1Y2NlZWQuKHZvaWRfc3BlbmQEARRpbmRleBABKFNwZW5kSW5kZXgACEB8Vm9pZCBwcmV2aW91c2x5IGFwcHJvdmVkIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAHQFBIHNwZW5kIHZvaWQgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcGF5b3V0IGhhcyBub3QgYmVlbiBhdHRlbXB0ZWQgeWV0LgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAwEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRWb2lkZWRgXSBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy49AgQYT3B0aW9uBARUARABCBBOb25lAAAAEFNvbWUEABAAAAEAAEECDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0EENhbGwIBFQABEkAARgQdm90ZQgBKHBvbGxfaW5kZXjwAURQb2xsSW5kZXhPZjxULCBJPgABEHZvdGVtAQFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgAAJBkBVm90ZSBpbiBhIHBvbGwuIElmIGB2b3RlLmlzX2F5ZSgpYCwgdGhlIHZvdGUgaXMgdG8gZW5hY3QgdGhlIHByb3Bvc2FsO7hvdGhlcndpc2UgaXQgaXMgYSB2b3RlIHRvIGtlZXAgdGhlIHN0YXR1cyBxdW8uAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgDILSBgcG9sbF9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcG9sbCB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uABUBV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoZSB2b3RlciBoYXMgdm90ZWQgb24uIGRlbGVnYXRlEAEUY2xhc3N5AQE0Q2xhc3NPZjxULCBJPgABCHRvwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoY29udmljdGlvbkUCAShDb252aWN0aW9uAAEcYmFsYW5jZRgBPEJhbGFuY2VPZjxULCBJPgABXE0BRGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciAod2l0aCBzb21lIGdpdmVuIGNvbnZpY3Rpb24pIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGFocGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yRQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkIHRocm91Z2hMICAgIGByZW1vdmVfdm90ZWApLgBFAS0gYHRvYDogVGhlIGFjY291bnQgd2hvc2Ugdm90aW5nIHRoZSBgdGFyZ2V0YCBhY2NvdW50J3Mgdm90aW5nIHBvd2VyIHdpbGwgZm9sbG93Ll0BLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gZGVsZWdhdGUuIFRvIGRlbGVnYXRlIG11bHRpcGxlIGNsYXNzZXMsIG11bHRpcGxlIGNhbGxzgCAgdG8gdGhpcyBmdW5jdGlvbiBhcmUgcmVxdWlyZWQuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuKHVuZGVsZWdhdGUEARRjbGFzc3kBATRDbGFzc09mPFQsIEk+AAI4TQFVbmRlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgb2YgdGhlIHNlbmRpbmcgYWNjb3VudCBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHBvbGxzLgBdAVRva2VucyBtYXkgYmUgdW5sb2NrZWQgZm9sbG93aW5nIG9uY2UgYW4gYW1vdW50IG9mIHRpbWUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2NrIHBlcmlvZAkBb2YgdGhlIGNvbnZpY3Rpb24gd2l0aCB3aGljaCB0aGUgZGVsZWdhdGlvbiB3YXMgaXNzdWVkIGhhcyBwYXNzZWQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlVGN1cnJlbnRseSBkZWxlZ2F0aW5nLgDwLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gcmVtb3ZlIHRoZSBkZWxlZ2F0aW9uIGZyb20uAFBFbWl0cyBgVW5kZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuGHVubG9jawgBFGNsYXNzeQEBNENsYXNzT2Y8VCwgST4AARh0YXJnZXTBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyRdAVJlbW92ZSB0aGUgbG9jayBjYXVzZWQgYnkgcHJpb3Igdm90aW5nL2RlbGVnYXRpbmcgd2hpY2ggaGFzIGV4cGlyZWQgd2l0aGluIGEgcGFydGljdWxhchhjbGFzcy4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAKAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byB1bmxvY2suuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlCAEUY2xhc3NJAgFUT3B0aW9uPENsYXNzT2Y8VCwgST4+AAEUaW5kZXgQAURQb2xsSW5kZXhPZjxULCBJPgAEdGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAAxJZjpwLSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBvcmQtIHRoZSBwb2xsIGlzIG9uZ29pbmcsIG9yeC0gdGhlIHBvbGwgaGFzIGVuZGVkIHN1Y2ggdGhhdPwgIC0gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQgd2FzIGluIG9wcG9zaXRpb24gdG8gdGhlIHJlc3VsdDsgb3LUICAtIHRoZXJlIHdhcyBubyBjb252aWN0aW9uIHRvIHRoZSBhY2NvdW50J3Mgdm90ZTsgb3KEICAtIHRoZSBhY2NvdW50IG1hZGUgYSBzcGxpdCB2b3RlXQEuLi50aGVuIHRoZSB2b3RlIGlzIHJlbW92ZWQgY2xlYW5seSBhbmQgYSBmb2xsb3dpbmcgY2FsbCB0byBgdW5sb2NrYCBtYXkgcmVzdWx0IGluIG1vcmVYZnVuZHMgYmVpbmcgYXZhaWxhYmxlLgCQSWYsIGhvd2V2ZXIsIHRoZSBwb2xsIGhhcyBlbmRlZCBhbmQ67C0gaXQgZmluaXNoZWQgY29ycmVzcG9uZGluZyB0byB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCwgYW5k3C0gdGhlIGFjY291bnQgbWFkZSBhIHN0YW5kYXJkIHZvdGUgd2l0aCBjb252aWN0aW9uLCBhbmS8LSB0aGUgbG9jayBwZXJpb2Qgb2YgdGhlIGNvbnZpY3Rpb24gaXMgbm90IG92ZXJZAS4uLnRoZW4gdGhlIGxvY2sgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG8gdGhlIG92ZXJhbGwgYWNjb3VudCdzIGxvY2ssIHdoaWNoIG1heSBpbnZvbHZlWQEqb3ZlcmxvY2tpbmcqICh3aGVyZSB0aGUgdHdvIGxvY2tzIGFyZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIGxvY2sgdGhhdCBpcyB0aGUgbWF4aW11beRvZiBib3RoIHRoZSBhbW91bnQgbG9ja2VkIGFuZCB0aGUgdGltZSBpcyBpdCBsb2NrZWQgZm9yKS4ASQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25lciBtdXN0IGhhdmUgYSB2b3RlcHJlZ2lzdGVyZWQgZm9yIHBvbGwgYGluZGV4YC4A3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC5VAS0gYGNsYXNzYDogT3B0aW9uYWwgcGFyYW1ldGVyLCBpZiBnaXZlbiBpdCBpbmRpY2F0ZXMgdGhlIGNsYXNzIG9mIHRoZSBwb2xsLiBGb3IgcG9sbHPwICB3aGljaCBoYXZlIGZpbmlzaGVkIG9yIGFyZSBjYW5jZWxsZWQsIHRoaXMgbXVzdCBiZSBgU29tZWAuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLkRyZW1vdmVfb3RoZXJfdm90ZQwBGHRhcmdldMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGNsYXNzeQEBNENsYXNzT2Y8VCwgST4AARRpbmRleBABRFBvbGxJbmRleE9mPFQsIEk+AAVAZFJlbW92ZSBhIHZvdGUgZm9yIGEgcG9sbC4ATQFJZiB0aGUgYHRhcmdldGAgaXMgZXF1YWwgdG8gdGhlIHNpZ25lciwgdGhlbiB0aGlzIGZ1bmN0aW9uIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0by0BYHJlbW92ZV92b3RlYC4gSWYgbm90IGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhlIHZvdGUgbXVzdCBoYXZlIGV4cGlyZWQsJQFlaXRoZXIgYmVjYXVzZSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBiZWNhdXNlIHRoZSB2b3RlciBsb3N0IHRoZSBwb2xsIG9ymGJlY2F1c2UgdGhlIGNvbnZpY3Rpb24gcGVyaW9kIGlzIG92ZXIuAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBhAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQ7IHRoaXMgYWNjb3VudCBtdXN0IGhhdmUgdm90ZWQgZm9yIHBvbGwoICBgaW5kZXhgLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiBwb2xsIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuhC0gYGNsYXNzYDogVGhlIGNsYXNzIG9mIHRoZSBwb2xsLgBFAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQIMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZyhjb252aWN0aW9uKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAABJAgQYT3B0aW9uBARUAXkBAQgQTm9uZQAAABBTb21lBAB5AQAAAQAATQIMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0EENhbGwIBFQABEkAASQYc3VibWl0DAE8cHJvcG9zYWxfb3JpZ2luUQIBXEJveDxQYWxsZXRzT3JpZ2luT2Y8VD4+AAEgcHJvcG9zYWx9AQFMQm91bmRlZENhbGxPZjxULCBJPgABQGVuYWN0bWVudF9tb21lbnRtAgF8RGlzcGF0Y2hUaW1lPEJsb2NrTnVtYmVyRm9yPFQ+PgAAJLBQcm9wb3NlIGEgcmVmZXJlbmR1bSBvbiBhIHByaXZpbGVnZWQgYWN0aW9uLgBZAS0gYG9yaWdpbmA6IG11c3QgYmUgYFN1Ym1pdE9yaWdpbmAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBgU3VibWlzc2lvbkRlcG9zaXRgIGZ1bmRzMCAgYXZhaWxhYmxlLi0BLSBgcHJvcG9zYWxfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZXhlY3V0ZWQubC0gYHByb3Bvc2FsYDogVGhlIHByb3Bvc2FsLhUBLSBgZW5hY3RtZW50X21vbWVudGA6IFRoZSBtb21lbnQgdGhhdCB0aGUgcHJvcG9zYWwgc2hvdWxkIGJlIGVuYWN0ZWQuAEhFbWl0cyBgU3VibWl0dGVkYC5YcGxhY2VfZGVjaXNpb25fZGVwb3NpdAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAEgrFBvc3QgdGhlIERlY2lzaW9uIERlcG9zaXQgZm9yIGEgcmVmZXJlbmR1bS4AOQEtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgYWNjb3VudCBtdXN0IGhhdmUgZnVuZHMgYXZhaWxhYmxlIGZvciB0aGWgICByZWZlcmVuZHVtJ3MgdHJhY2sncyBEZWNpc2lvbiBEZXBvc2l0LlEBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHN1Ym1pdHRlZCByZWZlcmVuZHVtIHdob3NlIERlY2lzaW9uIERlcG9zaXQgaXMgeWV0IHRvIGJlJCAgcG9zdGVkLgB4RW1pdHMgYERlY2lzaW9uRGVwb3NpdFBsYWNlZGAuXHJlZnVuZF9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAAhwpAVJlZnVuZCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSBjbG9zZWQgcmVmZXJlbmR1bSBiYWNrIHRvIHRoZSBkZXBvc2l0b3IuAJwtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIG9yIGBSb290YC5NAS0gYGluZGV4YDogVGhlIGluZGV4IG9mIGEgY2xvc2VkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIBFbWl0cyBgRGVjaXNpb25EZXBvc2l0UmVmdW5kZWRgLhhjYW5jZWwEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAADGHRDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtLgCcLSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYENhbmNlbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4ASEVtaXRzIGBDYW5jZWxsZWRgLhBraWxsBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABBjQQ2FuY2VsIGFuIG9uZ29pbmcgcmVmZXJlbmR1bSBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgCULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byBiZSBjYW5jZWxsZWQuAJBFbWl0cyBgS2lsbGVkYCBhbmQgYERlcG9zaXRTbGFzaGVkYC5AbnVkZ2VfcmVmZXJlbmR1bQQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAUQHQFBZHZhbmNlIGEgcmVmZXJlbmR1bSBvbnRvIGl0cyBuZXh0IGxvZ2ljYWwgc3RhdGUuIE9ubHkgdXNlZCBpbnRlcm5hbGx5LgBsLSBgb3JpZ2luYDogbXVzdCBiZSBgUm9vdGAupC0gYGluZGV4YDogdGhlIHJlZmVyZW5kdW0gdG8gYmUgYWR2YW5jZWQuSG9uZV9mZXdlcl9kZWNpZGluZwQBFHRyYWNreQEBPFRyYWNrSWRPZjxULCBJPgAGJAkBQWR2YW5jZSBhIHRyYWNrIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6QLSBgdHJhY2tgOiB0aGUgdHJhY2sgdG8gYmUgYWR2YW5jZWQuAFEBQWN0aW9uIGl0ZW0gZm9yIHdoZW4gdGhlcmUgaXMgbm93IG9uZSBmZXdlciByZWZlcmVuZHVtIGluIHRoZSBkZWNpZGluZyBwaGFzZSBhbmQgdGhlFQFgRGVjaWRpbmdDb3VudGAgaXMgbm90IHlldCB1cGRhdGVkLiBUaGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIGVpdGhlcjolAS0gYmVnaW4gZGVjaWRpbmcgYW5vdGhlciByZWZlcmVuZHVtIChhbmQgbGVhdmUgYERlY2lkaW5nQ291bnRgIGFsb25lKTsgb3JwLSBkZWNyZW1lbnQgYERlY2lkaW5nQ291bnRgLmRyZWZ1bmRfc3VibWlzc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABxwxAVJlZnVuZCB0aGUgU3VibWlzc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLlUBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBTdWJtaXNzaW9uIERlcG9zaXQgaGFzIG5vdCB5ZXQgYmVlbiwgIHJlZnVuZGVkLgCIRW1pdHMgYFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWRgLjBzZXRfbWV0YWRhdGEIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAABKG1heWJlX2hhc2hxAgE8T3B0aW9uPFQ6Okhhc2g+AAgcmFNldCBvciBjbGVhciBtZXRhZGF0YSBvZiBhIHJlZmVyZW5kdW0uACxQYXJhbWV0ZXJzOkUBLSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYCBieSBhIGNyZWF0b3Igb2YgYSByZWZlcmVuZHVtIG9yIGJ5IGFueW9uZSB0byBjbGVhciBhkCAgbWV0YWRhdGEgb2YgYSBmaW5pc2hlZCByZWZlcmVuZHVtLg0BLSBgaW5kZXhgOiAgVGhlIGluZGV4IG9mIGEgcmVmZXJlbmR1bSB0byBzZXQgb3IgY2xlYXIgbWV0YWRhdGEgZm9yLlEBLSBgbWF5YmVfaGFzaGA6IFRoZSBoYXNoIG9mIGFuIG9uLWNoYWluIHN0b3JlZCBwcmVpbWFnZS4gYE5vbmVgIHRvIGNsZWFyIGEgbWV0YWRhdGEuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlECCDhyb2NvY29fcnVudGltZTBPcmlnaW5DYWxsZXIAARQYc3lzdGVtBABVAgF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAAAcT3JpZ2lucwQAWQIBdHBhbGxldF9jdXN0b21fb3JpZ2luczo6T3JpZ2luACsAQFBhcmFjaGFpbnNPcmlnaW4EAF0CAWRwYXJhY2hhaW5zX29yaWdpbjo6T3JpZ2luADIAJFhjbVBhbGxldAQAZQIBSHBhbGxldF94Y206Ok9yaWdpbgBjABBWb2lkBABpAgFBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjoKX19wcml2YXRlOjpWb2lkAAQAAFUCDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoJFJhd09yaWdpbgQkQWNjb3VudElkAQABDBBSb290AAAAGFNpZ25lZAQAAAEkQWNjb3VudElkAAEAEE5vbmUAAgAAWQIUOHJvY29jb19ydW50aW1lKGdvdmVybmFuY2Ucb3JpZ2luc1RwYWxsZXRfY3VzdG9tX29yaWdpbnMYT3JpZ2luAAFsMFN0YWtpbmdBZG1pbgAAACRUcmVhc3VyZXIAAQA8RmVsbG93c2hpcEFkbWluAAIAMEdlbmVyYWxBZG1pbgADADBBdWN0aW9uQWRtaW4ABAAoTGVhc2VBZG1pbgAFAExSZWZlcmVuZHVtQ2FuY2VsbGVyAAYAQFJlZmVyZW5kdW1LaWxsZXIABwAsU21hbGxUaXBwZXIACAAkQmlnVGlwcGVyAAkAMFNtYWxsU3BlbmRlcgAKADRNZWRpdW1TcGVuZGVyAAsAKEJpZ1NwZW5kZXIADABEV2hpdGVsaXN0ZWRDYWxsZXIADQBMRmVsbG93c2hpcEluaXRpYXRlcwAOABxGZWxsb3dzAA8AREZlbGxvd3NoaXBFeHBlcnRzABAAREZlbGxvd3NoaXBNYXN0ZXJzABEAOEZlbGxvd3NoaXAxRGFuABIAOEZlbGxvd3NoaXAyRGFuABMAOEZlbGxvd3NoaXAzRGFuABQAOEZlbGxvd3NoaXA0RGFuABUAOEZlbGxvd3NoaXA1RGFuABYAOEZlbGxvd3NoaXA2RGFuABcAOEZlbGxvd3NoaXA3RGFuABgAOEZlbGxvd3NoaXA4RGFuABkAOEZlbGxvd3NoaXA5RGFuABoAAF0CEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMYb3JpZ2luGHBhbGxldBhPcmlnaW4AAQQkUGFyYWNoYWluBABhAgEYUGFyYUlkAAAAAGECDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEABABDHUzMgAAZQIMKHBhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCAxYY20EABEBASBMb2NhdGlvbgAAACBSZXNwb25zZQQAEQEBIExvY2F0aW9uAAEAAGkCCBxzcF9jb3JlEFZvaWQAAQAAbQIQNGZyYW1lX3N1cHBvcnQYdHJhaXRzIHNjaGVkdWxlMERpc3BhdGNoVGltZQQsQmxvY2tOdW1iZXIBEAEICEF0BAAQASxCbG9ja051bWJlcgAAABRBZnRlcgQAEAEsQmxvY2tOdW1iZXIAAQAAcQIEGE9wdGlvbgQEVAE0AQgQTm9uZQAAABBTb21lBAA0AAABAAB1AgxgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlGHBhbGxldBBDYWxsCARUAARJAAEcKGFkZF9tZW1iZXIEAQx3aG/BAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AABhcSW50cm9kdWNlIGEgbmV3IG1lbWJlci4AkC0gYG9yaWdpbmA6IE11c3QgYmUgdGhlIGBBZGRPcmlnaW5gLugtIGB3aG9gOiBBY2NvdW50IG9mIG5vbi1tZW1iZXIgd2hpY2ggd2lsbCBiZWNvbWUgYSBtZW1iZXIuADhXZWlnaHQ6IGBPKDEpYDhwcm9tb3RlX21lbWJlcgQBDHdob8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGMBJbmNyZW1lbnQgdGhlIHJhbmsgb2YgYW4gZXhpc3RpbmcgbWVtYmVyIGJ5IG9uZS4AoC0gYG9yaWdpbmA6IE11c3QgYmUgdGhlIGBQcm9tb3RlT3JpZ2luYC6QLSBgd2hvYDogQWNjb3VudCBvZiBleGlzdGluZyBtZW1iZXIuADhXZWlnaHQ6IGBPKDEpYDRkZW1vdGVfbWVtYmVyBAEMd2hvwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAIcXQFEZWNyZW1lbnQgdGhlIHJhbmsgb2YgYW4gZXhpc3RpbmcgbWVtYmVyIGJ5IG9uZS4gSWYgdGhlIG1lbWJlciBpcyBhbHJlYWR5IGF0IHJhbmsgemVybyx8dGhlbiB0aGV5IGFyZSByZW1vdmVkIGVudGlyZWx5LgCcLSBgb3JpZ2luYDogTXVzdCBiZSB0aGUgYERlbW90ZU9yaWdpbmAu+C0gYHdob2A6IEFjY291bnQgb2YgZXhpc3RpbmcgbWVtYmVyIG9mIHJhbmsgZ3JlYXRlciB0aGFuIHplcm8uAAkBV2VpZ2h0OiBgTygxKWAsIGxlc3MgaWYgdGhlIG1lbWJlcidzIGluZGV4IGlzIGhpZ2hlc3QgaW4gaXRzIHJhbmsuNHJlbW92ZV9tZW1iZXIIAQx3aG/BAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBtaW5fcmFua3kBARBSYW5rAAMcbFJlbW92ZSB0aGUgbWVtYmVyIGVudGlyZWx5LgCcLSBgb3JpZ2luYDogTXVzdCBiZSB0aGUgYFJlbW92ZU9yaWdpbmAu+C0gYHdob2A6IEFjY291bnQgb2YgZXhpc3RpbmcgbWVtYmVyIG9mIHJhbmsgZ3JlYXRlciB0aGFuIHplcm8uwC0gYG1pbl9yYW5rYDogVGhlIHJhbmsgb2YgdGhlIG1lbWJlciBvciBncmVhdGVyLgBYV2VpZ2h0OiBgTyhtaW5fcmFuaylgLhB2b3RlCAEQcG9sbBABRFBvbGxJbmRleE9mPFQsIEk+AAEMYXllIAEQYm9vbAAELPBBZGQgYW4gYXllIG9yIG5heSB2b3RlIGZvciB0aGUgc2VuZGVyIHRvIHRoZSBnaXZlbiBwcm9wb3NhbC4AxC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAgYnkgYSBtZW1iZXIgYWNjb3VudC6sLSBgcG9sbGA6IEluZGV4IG9mIGEgcG9sbCB3aGljaCBpcyBvbmdvaW5nLikBLSBgYXllYDogYHRydWVgIGlmIHRoZSB2b3RlIGlzIHRvIGFwcHJvdmUgdGhlIHByb3Bvc2FsLCBgZmFsc2VgIG90aGVyd2lzZS4ARQFUcmFuc2FjdGlvbiBmZWVzIGFyZSBiZSB3YWl2ZWQgaWYgdGhlIG1lbWJlciBpcyB2b3Rpbmcgb24gYW55IHBhcnRpY3VsYXIgcHJvcG9zYWxRAWZvciB0aGUgZmlyc3QgdGltZSBhbmQgdGhlIGNhbGwgaXMgc3VjY2Vzc2Z1bC4gU3Vic2VxdWVudCB2b3RlIGNoYW5nZXMgd2lsbCBjaGFyZ2UgYRBmZWUuADUBV2VpZ2h0OiBgTygxKWAsIGxlc3MgaWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzIHZvdGUgb24gdGhlIHBvbGwgYnkgdGhlIG1lbWJlci4wY2xlYW51cF9wb2xsCAEocG9sbF9pbmRleBABRFBvbGxJbmRleE9mPFQsIEk+AAEMbWF4EAEMdTMyAAUo1FJlbW92ZSB2b3RlcyBmcm9tIHRoZSBnaXZlbiBwb2xsLiBJdCBtdXN0IGhhdmUgZW5kZWQuALAtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgIGJ5IGFueSBhY2NvdW50LkkBLSBgcG9sbF9pbmRleGA6IEluZGV4IG9mIGEgcG9sbCB3aGljaCBpcyBjb21wbGV0ZWQgYW5kIGZvciB3aGljaCB2b3RlcyBjb250aW51ZSB0byAgIGV4aXN0LvwtIGBtYXhgOiBNYXhpbXVtIG51bWJlciBvZiB2b3RlIGl0ZW1zIGZyb20gcmVtb3ZlIGluIHRoaXMgY2FsbC4A7FRyYW5zYWN0aW9uIGZlZXMgYXJlIHdhaXZlZCBpZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwuABUBV2VpZ2h0IGBPKG1heClgIChsZXNzIGlmIHRoZXJlIGFyZSBmZXdlciBpdGVtcyB0byByZW1vdmUgdGhhbiBgbWF4YCkuPGV4Y2hhbmdlX21lbWJlcggBDHdob8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHG5ld193aG/BAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABhQFAUV4Y2hhbmdlcyBhIG1lbWJlciB3aXRoIGEgbmV3IGFjY291bnQgYW5kIHRoZSBzYW1lIGV4aXN0aW5nIHJhbmsuAKQtIGBvcmlnaW5gOiBNdXN0IGJlIHRoZSBgRXhjaGFuZ2VPcmlnaW5gLjkBLSBgd2hvYDogQWNjb3VudCBvZiBleGlzdGluZyBtZW1iZXIgb2YgcmFuayBncmVhdGVyIHRoYW4gemVybyB0byBiZSBleGNoYW5nZWQuWQEtIGBuZXdfd2hvYDogTmV3IEFjY291bnQgb2YgZXhpc3RpbmcgbWVtYmVyIG9mIHJhbmsgZ3JlYXRlciB0aGFuIHplcm8gdG8gZXhjaGFuZ2VkIHRvLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy55AgxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQQQ2FsbAgEVAAESQABJBhzdWJtaXQMATxwcm9wb3NhbF9vcmlnaW5RAgFcQm94PFBhbGxldHNPcmlnaW5PZjxUPj4AASBwcm9wb3NhbH0BAUxCb3VuZGVkQ2FsbE9mPFQsIEk+AAFAZW5hY3RtZW50X21vbWVudG0CAXxEaXNwYXRjaFRpbWU8QmxvY2tOdW1iZXJGb3I8VD4+AAAksFByb3Bvc2UgYSByZWZlcmVuZHVtIG9uIGEgcHJpdmlsZWdlZCBhY3Rpb24uAFkBLSBgb3JpZ2luYDogbXVzdCBiZSBgU3VibWl0T3JpZ2luYCBhbmQgdGhlIGFjY291bnQgbXVzdCBoYXZlIGBTdWJtaXNzaW9uRGVwb3NpdGAgZnVuZHMwICBhdmFpbGFibGUuLQEtIGBwcm9wb3NhbF9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIHByb3Bvc2FsIHNob3VsZCBiZSBleGVjdXRlZC5sLSBgcHJvcG9zYWxgOiBUaGUgcHJvcG9zYWwuFQEtIGBlbmFjdG1lbnRfbW9tZW50YDogVGhlIG1vbWVudCB0aGF0IHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZW5hY3RlZC4ASEVtaXRzIGBTdWJtaXR0ZWRgLlhwbGFjZV9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAASCsUG9zdCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSByZWZlcmVuZHVtLgA5AS0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBmdW5kcyBhdmFpbGFibGUgZm9yIHRoZaAgIHJlZmVyZW5kdW0ncyB0cmFjaydzIERlY2lzaW9uIERlcG9zaXQuUQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgc3VibWl0dGVkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBpcyB5ZXQgdG8gYmUkICBwb3N0ZWQuAHhFbWl0cyBgRGVjaXNpb25EZXBvc2l0UGxhY2VkYC5ccmVmdW5kX2RlY2lzaW9uX2RlcG9zaXQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAACHCkBUmVmdW5kIHRoZSBEZWNpc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLk0BLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBEZWNpc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AgEVtaXRzIGBEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZGAuGGNhbmNlbAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAMYdENhbmNlbCBhbiBvbmdvaW5nIHJlZmVyZW5kdW0uAJwtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgQ2FuY2VsT3JpZ2luYC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gYmUgY2FuY2VsbGVkLgBIRW1pdHMgYENhbmNlbGxlZGAuEGtpbGwEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAAEGNBDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAJQtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgS2lsbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4AkEVtaXRzIGBLaWxsZWRgIGFuZCBgRGVwb3NpdFNsYXNoZWRgLkBudWRnZV9yZWZlcmVuZHVtBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABRAdAUFkdmFuY2UgYSByZWZlcmVuZHVtIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6kLSBgaW5kZXhgOiB0aGUgcmVmZXJlbmR1bSB0byBiZSBhZHZhbmNlZC5Ib25lX2Zld2VyX2RlY2lkaW5nBAEUdHJhY2t5AQE8VHJhY2tJZE9mPFQsIEk+AAYkCQFBZHZhbmNlIGEgdHJhY2sgb250byBpdHMgbmV4dCBsb2dpY2FsIHN0YXRlLiBPbmx5IHVzZWQgaW50ZXJuYWxseS4AbC0gYG9yaWdpbmA6IG11c3QgYmUgYFJvb3RgLpAtIGB0cmFja2A6IHRoZSB0cmFjayB0byBiZSBhZHZhbmNlZC4AUQFBY3Rpb24gaXRlbSBmb3Igd2hlbiB0aGVyZSBpcyBub3cgb25lIGZld2VyIHJlZmVyZW5kdW0gaW4gdGhlIGRlY2lkaW5nIHBoYXNlIGFuZCB0aGUVAWBEZWNpZGluZ0NvdW50YCBpcyBub3QgeWV0IHVwZGF0ZWQuIFRoaXMgbWVhbnMgdGhhdCB3ZSBzaG91bGQgZWl0aGVyOiUBLSBiZWdpbiBkZWNpZGluZyBhbm90aGVyIHJlZmVyZW5kdW0gKGFuZCBsZWF2ZSBgRGVjaWRpbmdDb3VudGAgYWxvbmUpOyBvcnAtIGRlY3JlbWVudCBgRGVjaWRpbmdDb3VudGAuZHJlZnVuZF9zdWJtaXNzaW9uX2RlcG9zaXQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAAHHDEBUmVmdW5kIHRoZSBTdWJtaXNzaW9uIERlcG9zaXQgZm9yIGEgY2xvc2VkIHJlZmVyZW5kdW0gYmFjayB0byB0aGUgZGVwb3NpdG9yLgCcLSBgb3JpZ2luYDogbXVzdCBiZSBgU2lnbmVkYCBvciBgUm9vdGAuVQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiBhIGNsb3NlZCByZWZlcmVuZHVtIHdob3NlIFN1Ym1pc3Npb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIhFbWl0cyBgU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZGAuMHNldF9tZXRhZGF0YQgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAEobWF5YmVfaGFzaHECATxPcHRpb248VDo6SGFzaD4ACByYU2V0IG9yIGNsZWFyIG1ldGFkYXRhIG9mIGEgcmVmZXJlbmR1bS4ALFBhcmFtZXRlcnM6RQEtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgIGJ5IGEgY3JlYXRvciBvZiBhIHJlZmVyZW5kdW0gb3IgYnkgYW55b25lIHRvIGNsZWFyIGGQICBtZXRhZGF0YSBvZiBhIGZpbmlzaGVkIHJlZmVyZW5kdW0uDQEtIGBpbmRleGA6ICBUaGUgaW5kZXggb2YgYSByZWZlcmVuZHVtIHRvIHNldCBvciBjbGVhciBtZXRhZGF0YSBmb3IuUQEtIGBtYXliZV9oYXNoYDogVGhlIGhhc2ggb2YgYW4gb24tY2hhaW4gc3RvcmVkIHByZWltYWdlLiBgTm9uZWAgdG8gY2xlYXIgYSBtZXRhZGF0YS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMufQIMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0EENhbGwEBFQAARA4d2hpdGVsaXN0X2NhbGwEASRjYWxsX2hhc2g0ARxUOjpIYXNoAAAAXHJlbW92ZV93aGl0ZWxpc3RlZF9jYWxsBAEkY2FsbF9oYXNoNAEcVDo6SGFzaAABAGRkaXNwYXRjaF93aGl0ZWxpc3RlZF9jYWxsDAEkY2FsbF9oYXNoNAEcVDo6SGFzaAABQGNhbGxfZW5jb2RlZF9sZW4QAQx1MzIAAUxjYWxsX3dlaWdodF93aXRuZXNzKAEYV2VpZ2h0AAIAnGRpc3BhdGNoX3doaXRlbGlzdGVkX2NhbGxfd2l0aF9wcmVpbWFnZQQBEGNhbGyBAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6BAhBccG9sa2Fkb3RfcnVudGltZV9jb21tb24YY2xhaW1zGHBhbGxldBBDYWxsBARUAAEUFGNsYWltCAEQZGVzdAABMFQ6OkFjY291bnRJZAABSGV0aGVyZXVtX3NpZ25hdHVyZYUCAThFY2RzYVNpZ25hdHVyZQAAYIhNYWtlIGEgY2xhaW0gdG8gY29sbGVjdCB5b3VyIERPVHMuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFBVbnNpZ25lZCBWYWxpZGF0aW9uOgUBQSBjYWxsIHRvIGNsYWltIGlzIGRlZW1lZCB2YWxpZCBpZiB0aGUgc2lnbmF0dXJlIHByb3ZpZGVkIG1hdGNoZXN8dGhlIGV4cGVjdGVkIHNpZ25lZCBtZXNzYWdlIG9mOgBoPiBFdGhlcmV1bSBTaWduZWQgTWVzc2FnZTqUPiAoY29uZmlndXJlZCBwcmVmaXggc3RyaW5nKShhZGRyZXNzKQCkYW5kIGBhZGRyZXNzYCBtYXRjaGVzIHRoZSBgZGVzdGAgYWNjb3VudC4ALFBhcmFtZXRlcnM62C0gYGRlc3RgOiBUaGUgZGVzdGluYXRpb24gYWNjb3VudCB0byBwYXlvdXQgdGhlIGNsYWltLl0BLSBgZXRoZXJldW1fc2lnbmF0dXJlYDogVGhlIHNpZ25hdHVyZSBvZiBhbiBldGhlcmV1bSBzaWduZWQgbWVzc2FnZSBtYXRjaGluZyB0aGUgZm9ybWF0SCAgZGVzY3JpYmVkIGFib3ZlLgAgPHdlaWdodD78VGhlIHdlaWdodCBvZiB0aGlzIGNhbGwgaXMgaW52YXJpYW50IG92ZXIgdGhlIGlucHV0IHBhcmFtZXRlcnMu4FdlaWdodCBpbmNsdWRlcyBsb2dpYyB0byB2YWxpZGF0ZSB1bnNpZ25lZCBgY2xhaW1gIGNhbGwuAFhUb3RhbCBDb21wbGV4aXR5OiBPKDEpJDwvd2VpZ2h0PihtaW50X2NsYWltEAEMd2hvjQIBPEV0aGVyZXVtQWRkcmVzcwABFHZhbHVlGAEwQmFsYW5jZU9mPFQ+AAFAdmVzdGluZ19zY2hlZHVsZZECAdxPcHRpb248KEJhbGFuY2VPZjxUPiwgQmFsYW5jZU9mPFQ+LCBCbG9ja051bWJlckZvcjxUPik+AAEkc3RhdGVtZW50mQIBVE9wdGlvbjxTdGF0ZW1lbnRLaW5kPgABPIRNaW50IGEgbmV3IGNsYWltIHRvIGNvbGxlY3QgRE9Ucy4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4ALFBhcmFtZXRlcnM68C0gYHdob2A6IFRoZSBFdGhlcmV1bSBhZGRyZXNzIGFsbG93ZWQgdG8gY29sbGVjdCB0aGlzIGNsYWltLswtIGB2YWx1ZWA6IFRoZSBudW1iZXIgb2YgRE9UcyB0aGF0IHdpbGwgYmUgY2xhaW1lZC4JAS0gYHZlc3Rpbmdfc2NoZWR1bGVgOiBBbiBvcHRpb25hbCB2ZXN0aW5nIHNjaGVkdWxlIGZvciB0aGVzZSBET1RzLgAgPHdlaWdodD78VGhlIHdlaWdodCBvZiB0aGlzIGNhbGwgaXMgaW52YXJpYW50IG92ZXIgdGhlIGlucHV0IHBhcmFtZXRlcnMuHQFXZSBhc3N1bWUgd29yc3QgY2FzZSB0aGF0IGJvdGggdmVzdGluZyBhbmQgc3RhdGVtZW50IGlzIGJlaW5nIGluc2VydGVkLgBYVG90YWwgQ29tcGxleGl0eTogTygxKSQ8L3dlaWdodD4wY2xhaW1fYXR0ZXN0DAEQZGVzdAABMFQ6OkFjY291bnRJZAABSGV0aGVyZXVtX3NpZ25hdHVyZYUCAThFY2RzYVNpZ25hdHVyZQABJHN0YXRlbWVudDgBHFZlYzx1OD4AAmzkTWFrZSBhIGNsYWltIHRvIGNvbGxlY3QgeW91ciBET1RzIGJ5IHNpZ25pbmcgYSBzdGF0ZW1lbnQuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFBVbnNpZ25lZCBWYWxpZGF0aW9uOikBQSBjYWxsIHRvIGBjbGFpbV9hdHRlc3RgIGlzIGRlZW1lZCB2YWxpZCBpZiB0aGUgc2lnbmF0dXJlIHByb3ZpZGVkIG1hdGNoZXN8dGhlIGV4cGVjdGVkIHNpZ25lZCBtZXNzYWdlIG9mOgBoPiBFdGhlcmV1bSBTaWduZWQgTWVzc2FnZTrAPiAoY29uZmlndXJlZCBwcmVmaXggc3RyaW5nKShhZGRyZXNzKShzdGF0ZW1lbnQpAEkBYW5kIGBhZGRyZXNzYCBtYXRjaGVzIHRoZSBgZGVzdGAgYWNjb3VudDsgdGhlIGBzdGF0ZW1lbnRgIG11c3QgbWF0Y2ggdGhhdCB3aGljaCBpc8BleHBlY3RlZCBhY2NvcmRpbmcgdG8geW91ciBwdXJjaGFzZSBhcnJhbmdlbWVudC4ALFBhcmFtZXRlcnM62C0gYGRlc3RgOiBUaGUgZGVzdGluYXRpb24gYWNjb3VudCB0byBwYXlvdXQgdGhlIGNsYWltLl0BLSBgZXRoZXJldW1fc2lnbmF0dXJlYDogVGhlIHNpZ25hdHVyZSBvZiBhbiBldGhlcmV1bSBzaWduZWQgbWVzc2FnZSBtYXRjaGluZyB0aGUgZm9ybWF0SCAgZGVzY3JpYmVkIGFib3ZlLjkBLSBgc3RhdGVtZW50YDogVGhlIGlkZW50aXR5IG9mIHRoZSBzdGF0ZW1lbnQgd2hpY2ggaXMgYmVpbmcgYXR0ZXN0ZWQgdG8gaW4gdGhlMCAgc2lnbmF0dXJlLgAgPHdlaWdodD78VGhlIHdlaWdodCBvZiB0aGlzIGNhbGwgaXMgaW52YXJpYW50IG92ZXIgdGhlIGlucHV0IHBhcmFtZXRlcnMu/FdlaWdodCBpbmNsdWRlcyBsb2dpYyB0byB2YWxpZGF0ZSB1bnNpZ25lZCBgY2xhaW1fYXR0ZXN0YCBjYWxsLgBYVG90YWwgQ29tcGxleGl0eTogTygxKSQ8L3dlaWdodD4YYXR0ZXN0BAEkc3RhdGVtZW50OAEcVmVjPHU4PgADTPRBdHRlc3QgdG8gYSBzdGF0ZW1lbnQsIG5lZWRlZCB0byBmaW5hbGl6ZSB0aGUgY2xhaW1zIHByb2Nlc3MuABkBV0FSTklORzogSW5zZWN1cmUgdW5sZXNzIHlvdXIgY2hhaW4gaW5jbHVkZXMgYFByZXZhbGlkYXRlQXR0ZXN0c2AgYXMgYUhgU2lnbmVkRXh0ZW5zaW9uYC4AUFVuc2lnbmVkIFZhbGlkYXRpb246KQFBIGNhbGwgdG8gYXR0ZXN0IGlzIGRlZW1lZCB2YWxpZCBpZiB0aGUgc2VuZGVyIGhhcyBhIGBQcmVjbGFpbWAgcmVnaXN0ZXJlZPRhbmQgcHJvdmlkZXMgYSBgc3RhdGVtZW50YCB3aGljaCBpcyBleHBlY3RlZCBmb3IgdGhlIGFjY291bnQuACxQYXJhbWV0ZXJzOjkBLSBgc3RhdGVtZW50YDogVGhlIGlkZW50aXR5IG9mIHRoZSBzdGF0ZW1lbnQgd2hpY2ggaXMgYmVpbmcgYXR0ZXN0ZWQgdG8gaW4gdGhlMCAgc2lnbmF0dXJlLgAgPHdlaWdodD78VGhlIHdlaWdodCBvZiB0aGlzIGNhbGwgaXMgaW52YXJpYW50IG92ZXIgdGhlIGlucHV0IHBhcmFtZXRlcnMu8FdlaWdodCBpbmNsdWRlcyBsb2dpYyB0byBkbyBwcmUtdmFsaWRhdGlvbiBvbiBgYXR0ZXN0YCBjYWxsLgBYVG90YWwgQ29tcGxleGl0eTogTygxKSQ8L3dlaWdodD4obW92ZV9jbGFpbQwBDG9sZI0CATxFdGhlcmV1bUFkZHJlc3MAAQxuZXeNAgE8RXRoZXJldW1BZGRyZXNzAAE4bWF5YmVfcHJlY2xhaW2hAgFQT3B0aW9uPFQ6OkFjY291bnRJZD4ABAAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuhQIMXHBvbGthZG90X3J1bnRpbWVfY29tbW9uGGNsYWltczhFY2RzYVNpZ25hdHVyZQAABACJAgEgW3U4OyA2NV0AAIkCAAADQQAAAAgAjQIMXHBvbGthZG90X3J1bnRpbWVfY29tbW9uGGNsYWltczxFdGhlcmV1bUFkZHJlc3MAAAQA/AEgW3U4OyAyMF0AAJECBBhPcHRpb24EBFQBlQIBCBBOb25lAAAAEFNvbWUEAJUCAAABAACVAgAABAwYGBAAmQIEGE9wdGlvbgQEVAGdAgEIEE5vbmUAAAAQU29tZQQAnQIAAAEAAJ0CDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXM0U3RhdGVtZW50S2luZAABCBxSZWd1bGFyAAAAEFNhZnQAAQAAoQIEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAAClAgw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0EENhbGwEBFQAARgUYmF0Y2gEARRjYWxsc6kCAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AABIfFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4AVQFUaGlzIHdpbGwgcmV0dXJuIGBPa2AgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRvIGRldGVybWluZSB0aGUgc3VjY2VzcyBvZiB0aGUgYmF0Y2gsIGFuMQFldmVudCBpcyBkZXBvc2l0ZWQuIElmIGEgY2FsbCBmYWlsZWQgYW5kIHRoZSBiYXRjaCB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gdGhlVQFgQmF0Y2hJbnRlcnJ1cHRlZGAgZXZlbnQgaXMgZGVwb3NpdGVkLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCBjYWxscyBtYWRlTQFhbmQgdGhlIGVycm9yIG9mIHRoZSBmYWlsZWQgY2FsbC4gSWYgYWxsIHdlcmUgc3VjY2Vzc2Z1bCwgdGhlbiB0aGUgYEJhdGNoQ29tcGxldGVkYExldmVudCBpcyBkZXBvc2l0ZWQuNGFzX2Rlcml2YXRpdmUIARRpbmRleHkBAQx1MTYAARBjYWxsgQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AATTcU2VuZCBhIGNhbGwgdGhyb3VnaCBhbiBpbmRleGVkIHBzZXVkb255bSBvZiB0aGUgc2VuZGVyLgBVAUZpbHRlciBmcm9tIG9yaWdpbiBhcmUgcGFzc2VkIGFsb25nLiBUaGUgY2FsbCB3aWxsIGJlIGRpc3BhdGNoZWQgd2l0aCBhbiBvcmlnaW4gd2hpY2i8dXNlIHRoZSBzYW1lIGZpbHRlciBhcyB0aGUgb3JpZ2luIG9mIHRoaXMgY2FsbC4ARQFOT1RFOiBJZiB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgYWNjb3VudC1iYXNlZCBmaWx0ZXJpbmcgaXMgbm90IGhvbm9yZWQgKGkuZS5hAWJlY2F1c2UgeW91IGV4cGVjdCBgcHJveHlgIHRvIGhhdmUgYmVlbiB1c2VkIHByaW9yIGluIHRoZSBjYWxsIHN0YWNrIGFuZCB5b3UgZG8gbm90IHdhbnRRAXRoZSBjYWxsIHJlc3RyaWN0aW9ucyB0byBhcHBseSB0byBhbnkgc3ViLWFjY291bnRzKSwgdGhlbiB1c2UgYGFzX211bHRpX3RocmVzaG9sZF8xYHxpbiB0aGUgTXVsdGlzaWcgcGFsbGV0IGluc3RlYWQuAPROT1RFOiBQcmlvciB0byB2ZXJzaW9uICoxMiwgdGhpcyB3YXMgY2FsbGVkIGBhc19saW1pdGVkX3N1YmAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4kYmF0Y2hfYWxsBAEUY2FsbHOpAgF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACNOxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMgYW5kIGF0b21pY2FsbHkgZXhlY3V0ZSB0aGVtLiEBVGhlIHdob2xlIHRyYW5zYWN0aW9uIHdpbGwgcm9sbGJhY2sgYW5kIGZhaWwgaWYgYW55IG9mIHRoZSBjYWxscyBmYWlsZWQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLGRpc3BhdGNoX2FzCAEkYXNfb3JpZ2luUQIBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGyBAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADGMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuLGZvcmNlX2JhdGNoBAEUY2FsbHOpAgF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGyBAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodCgBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqQIAAAKBAQCtAgw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBBDYWxsBARUAAFYNGFkZF9yZWdpc3RyYXIEARxhY2NvdW50wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAAceEFkZCBhIHJlZ2lzdHJhciB0byB0aGUgc3lzdGVtLgD8VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFQ6OlJlZ2lzdHJhck9yaWdpbmAuAKgtIGBhY2NvdW50YDogdGhlIGFjY291bnQgb2YgdGhlIHJlZ2lzdHJhci4AlEVtaXRzIGBSZWdpc3RyYXJBZGRlZGAgaWYgc3VjY2Vzc2Z1bC4wc2V0X2lkZW50aXR5BAEQaW5mb7ECAWxCb3g8VDo6SWRlbnRpdHlJbmZvcm1hdGlvbj4AASgpAVNldCBhbiBhY2NvdW50J3MgaWRlbnRpdHkgaW5mb3JtYXRpb24gYW5kIHJlc2VydmUgdGhlIGFwcHJvcHJpYXRlIGRlcG9zaXQuAFUBSWYgdGhlIGFjY291bnQgYWxyZWFkeSBoYXMgaWRlbnRpdHkgaW5mb3JtYXRpb24sIHRoZSBkZXBvc2l0IGlzIHRha2VuIGFzIHBhcnQgcGF5bWVudFBmb3IgdGhlIG5ldyBkZXBvc2l0LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAIwtIGBpbmZvYDogVGhlIGlkZW50aXR5IGluZm9ybWF0aW9uLgCIRW1pdHMgYElkZW50aXR5U2V0YCBpZiBzdWNjZXNzZnVsLiBzZXRfc3VicwQBEHN1YnM9AwFkVmVjPChUOjpBY2NvdW50SWQsIERhdGEpPgACJIxTZXQgdGhlIHN1Yi1hY2NvdW50cyBvZiB0aGUgc2VuZGVyLgBVAVBheW1lbnQ6IEFueSBhZ2dyZWdhdGUgYmFsYW5jZSByZXNlcnZlZCBieSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGxzIHdpbGwgYmUgcmV0dXJuZWQtAWFuZCBhbiBhbW91bnQgYFN1YkFjY291bnREZXBvc2l0YCB3aWxsIGJlIHJlc2VydmVkIGZvciBlYWNoIGl0ZW0gaW4gYHN1YnNgLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQkaWRlbnRpdHkuALAtIGBzdWJzYDogVGhlIGlkZW50aXR5J3MgKG5ldykgc3ViLWFjY291bnRzLjhjbGVhcl9pZGVudGl0eQADIDkBQ2xlYXIgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm8gYW5kIGFsbCBzdWItYWNjb3VudHMgYW5kIHJldHVybiBhbGwgZGVwb3NpdHMuAOxQYXltZW50OiBBbGwgcmVzZXJ2ZWQgYmFsYW5jZXMgb24gdGhlIGFjY291bnQgYXJlIHJldHVybmVkLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQkaWRlbnRpdHkuAJhFbWl0cyBgSWRlbnRpdHlDbGVhcmVkYCBpZiBzdWNjZXNzZnVsLkRyZXF1ZXN0X2p1ZGdlbWVudAgBJHJlZ19pbmRlePABOFJlZ2lzdHJhckluZGV4AAEcbWF4X2ZlZQEBATBCYWxhbmNlT2Y8VD4ABECUUmVxdWVzdCBhIGp1ZGdlbWVudCBmcm9tIGEgcmVnaXN0cmFyLgBVAVBheW1lbnQ6IEF0IG1vc3QgYG1heF9mZWVgIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIHBheW1lbnQgdG8gdGhlIHJlZ2lzdHJhciBpZiBqdWRnZW1lbnQYZ2l2ZW4uADUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGFQcmVnaXN0ZXJlZCBpZGVudGl0eS4AHQEtIGByZWdfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgcmVxdWVzdGVkLlUBLSBgbWF4X2ZlZWA6IFRoZSBtYXhpbXVtIGZlZSB0aGF0IG1heSBiZSBwYWlkLiBUaGlzIHNob3VsZCBqdXN0IGJlIGF1dG8tcG9wdWxhdGVkIGFzOgAwYGBgbm9jb21waWxlyFJlZ2lzdHJhcnM6OjxUPjo6Z2V0KCkuZ2V0KHJlZ19pbmRleCkudW53cmFwKCkuZmVlDGBgYACkRW1pdHMgYEp1ZGdlbWVudFJlcXVlc3RlZGAgaWYgc3VjY2Vzc2Z1bC44Y2FuY2VsX3JlcXVlc3QEASRyZWdfaW5kZXgQAThSZWdpc3RyYXJJbmRleAAFKGhDYW5jZWwgYSBwcmV2aW91cyByZXF1ZXN0LgD4UGF5bWVudDogQSBwcmV2aW91c2x5IHJlc2VydmVkIGRlcG9zaXQgaXMgcmV0dXJuZWQgb24gc3VjY2Vzcy4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgBFAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyBubyBsb25nZXIgcmVxdWVzdGVkLgCsRW1pdHMgYEp1ZGdlbWVudFVucmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLhxzZXRfZmVlCAEUaW5kZXjwAThSZWdpc3RyYXJJbmRleAABDGZlZQEBATBCYWxhbmNlT2Y8VD4ABhwZAVNldCB0aGUgZmVlIHJlcXVpcmVkIGZvciBhIGp1ZGdlbWVudCB0byBiZSByZXF1ZXN0ZWQgZnJvbSBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC5ULSBgZmVlYDogdGhlIG5ldyBmZWUuOHNldF9hY2NvdW50X2lkCAEUaW5kZXjwAThSZWdpc3RyYXJJbmRleAABDG5ld8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgAHHLxDaGFuZ2UgdGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LnAtIGBuZXdgOiB0aGUgbmV3IGFjY291bnQgSUQuKHNldF9maWVsZHMIARRpbmRlePABOFJlZ2lzdHJhckluZGV4AAEYZmllbGRzMAEpATxUOjpJZGVudGl0eUluZm9ybWF0aW9uIGFzIElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcj46OgpGaWVsZHNJZGVudGlmaWVyAAgcqFNldCB0aGUgZmllbGQgaW5mb3JtYXRpb24gZm9yIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0Lg0BLSBgZmllbGRzYDogdGhlIGZpZWxkcyB0aGF0IHRoZSByZWdpc3RyYXIgY29uY2VybnMgdGhlbXNlbHZlcyB3aXRoLkRwcm92aWRlX2p1ZGdlbWVudBABJHJlZ19pbmRlePABOFJlZ2lzdHJhckluZGV4AAEYdGFyZ2V0wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkanVkZ2VtZW50RQMBXEp1ZGdlbWVudDxCYWxhbmNlT2Y8VD4+AAEgaWRlbnRpdHk0ARxUOjpIYXNoAAk8uFByb3ZpZGUgYSBqdWRnZW1lbnQgZm9yIGFuIGFjY291bnQncyBpZGVudGl0eS4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50sG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYHJlZ19pbmRleGAuACEBLSBgcmVnX2luZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIGJlaW5nIG1hZGUuVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuSQEtIGBqdWRnZW1lbnRgOiB0aGUganVkZ2VtZW50IG9mIHRoZSByZWdpc3RyYXIgb2YgaW5kZXggYHJlZ19pbmRleGAgYWJvdXQgYHRhcmdldGAuXQEtIGBpZGVudGl0eWA6IFRoZSBoYXNoIG9mIHRoZSBbYElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcmBdIGZvciB0aGF0IHRoZSBqdWRnZW1lbnQgaXMsICBwcm92aWRlZC4AsE5vdGU6IEp1ZGdlbWVudHMgZG8gbm90IGFwcGx5IHRvIGEgdXNlcm5hbWUuAJRFbWl0cyBgSnVkZ2VtZW50R2l2ZW5gIGlmIHN1Y2Nlc3NmdWwuNGtpbGxfaWRlbnRpdHkEARh0YXJnZXTBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ACjBBAVJlbW92ZSBhbiBhY2NvdW50J3MgaWRlbnRpdHkgYW5kIHN1Yi1hY2NvdW50IGluZm9ybWF0aW9uIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAGEBUGF5bWVudDogUmVzZXJ2ZWQgYmFsYW5jZXMgZnJvbSBgc2V0X3N1YnNgIGFuZCBgc2V0X2lkZW50aXR5YCBhcmUgc2xhc2hlZCBhbmQgaGFuZGxlZCBieUUBYFNsYXNoYC4gVmVyaWZpY2F0aW9uIHJlcXVlc3QgZGVwb3NpdHMgYXJlIG5vdCByZXR1cm5lZDsgdGhleSBzaG91bGQgYmUgY2FuY2VsbGVkgG1hbnVhbGx5IHVzaW5nIGBjYW5jZWxfcmVxdWVzdGAuAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBtYXRjaCBgVDo6Rm9yY2VPcmlnaW5gLgBVAS0gYHRhcmdldGA6IHRoZSBhY2NvdW50IHdob3NlIGlkZW50aXR5IHRoZSBqdWRnZW1lbnQgaXMgdXBvbi4gVGhpcyBtdXN0IGJlIGFuIGFjY291bnR0ICB3aXRoIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4AlEVtaXRzIGBJZGVudGl0eUtpbGxlZGAgaWYgc3VjY2Vzc2Z1bC4cYWRkX3N1YggBDHN1YsEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGG9AgEQRGF0YQALHKxBZGQgdGhlIGdpdmVuIGFjY291bnQgdG8gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbmFtZV9zdWIIAQxzdWLBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhvQIBEERhdGEADBDMQWx0ZXIgdGhlIGFzc29jaWF0ZWQgbmFtZSBvZiB0aGUgZ2l2ZW4gc3ViLWFjY291bnQuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbW92ZV9zdWIEAQxzdWLBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ADRzAUmVtb3ZlIHRoZSBnaXZlbiBhY2NvdW50IGZyb20gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuIHF1aXRfc3ViAA4ojFJlbW92ZSB0aGUgc2VuZGVyIGFzIGEgc3ViLWFjY291bnQuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVktHRvIHRoZSBzZW5kZXIgKCpub3QqIHRoZSBvcmlnaW5hbCBkZXBvc2l0b3IpLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQ8c3VwZXItaWRlbnRpdHkuAEUBTk9URTogVGhpcyBzaG91bGQgbm90IG5vcm1hbGx5IGJlIHVzZWQsIGJ1dCBpcyBwcm92aWRlZCBpbiB0aGUgY2FzZSB0aGF0IHRoZSBub24tEQFjb250cm9sbGVyIG9mIGFuIGFjY291bnQgaXMgbWFsaWNpb3VzbHkgcmVnaXN0ZXJlZCBhcyBhIHN1Yi1hY2NvdW50LlhhZGRfdXNlcm5hbWVfYXV0aG9yaXR5DAEkYXV0aG9yaXR5wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYc3VmZml4OAEcVmVjPHU4PgABKGFsbG9jYXRpb24QAQx1MzIADxBVAUFkZCBhbiBgQWNjb3VudElkYCB3aXRoIHBlcm1pc3Npb24gdG8gZ3JhbnQgdXNlcm5hbWVzIHdpdGggYSBnaXZlbiBgc3VmZml4YCBhcHBlbmRlZC4AWQFUaGUgYXV0aG9yaXR5IGNhbiBncmFudCB1cCB0byBgYWxsb2NhdGlvbmAgdXNlcm5hbWVzLiBUbyB0b3AgdXAgdGhlaXIgYWxsb2NhdGlvbiwgdGhleUkBc2hvdWxkIGp1c3QgaXNzdWUgKG9yIHJlcXVlc3QgdmlhIGdvdmVybmFuY2UpIGEgbmV3IGBhZGRfdXNlcm5hbWVfYXV0aG9yaXR5YCBjYWxsLmRyZW1vdmVfdXNlcm5hbWVfYXV0aG9yaXR5BAEkYXV0aG9yaXR5wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+ABAExFJlbW92ZSBgYXV0aG9yaXR5YCBmcm9tIHRoZSB1c2VybmFtZSBhdXRob3JpdGllcy5Ac2V0X3VzZXJuYW1lX2ZvcgwBDHdob8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIHVzZXJuYW1lOAEcVmVjPHU4PgABJHNpZ25hdHVyZUkDAXBPcHRpb248VDo6T2ZmY2hhaW5TaWduYXR1cmU+ABEkDQFTZXQgdGhlIHVzZXJuYW1lIGZvciBgd2hvYC4gTXVzdCBiZSBjYWxsZWQgYnkgYSB1c2VybmFtZSBhdXRob3JpdHkuAFUBVGhlIGF1dGhvcml0eSBtdXN0IGhhdmUgYW4gYGFsbG9jYXRpb25gLiBVc2VycyBjYW4gZWl0aGVyIHByZS1zaWduIHRoZWlyIHVzZXJuYW1lcyBvckhhY2NlcHQgdGhlbSBsYXRlci4APFVzZXJuYW1lcyBtdXN0OtggIC0gT25seSBjb250YWluIGxvd2VyY2FzZSBBU0NJSSBjaGFyYWN0ZXJzIG9yIGRpZ2l0cy41ASAgLSBXaGVuIGNvbWJpbmVkIHdpdGggdGhlIHN1ZmZpeCBvZiB0aGUgaXNzdWluZyBhdXRob3JpdHkgYmUgX2xlc3MgdGhhbl8gdGhlYCAgICBgTWF4VXNlcm5hbWVMZW5ndGhgLjxhY2NlcHRfdXNlcm5hbWUEASB1c2VybmFtZVEDASxVc2VybmFtZTxUPgASCE0BQWNjZXB0IGEgZ2l2ZW4gdXNlcm5hbWUgdGhhdCBhbiBgYXV0aG9yaXR5YCBncmFudGVkLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlIGZ1bGyIdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlxyZW1vdmVfZXhwaXJlZF9hcHByb3ZhbAQBIHVzZXJuYW1lUQMBLFVzZXJuYW1lPFQ+ABMMYQFSZW1vdmUgYW4gZXhwaXJlZCB1c2VybmFtZSBhcHByb3ZhbC4gVGhlIHVzZXJuYW1lIHdhcyBhcHByb3ZlZCBieSBhbiBhdXRob3JpdHkgYnV0IG5ldmVyVQFhY2NlcHRlZCBieSB0aGUgdXNlciBhbmQgbXVzdCBub3cgYmUgYmV5b25kIGl0cyBleHBpcmF0aW9uLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlnGZ1bGwgdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlBzZXRfcHJpbWFyeV91c2VybmFtZQQBIHVzZXJuYW1lUQMBLFVzZXJuYW1lPFQ+ABQEMQFTZXQgYSBnaXZlbiB1c2VybmFtZSBhcyB0aGUgcHJpbWFyeS4gVGhlIHVzZXJuYW1lIHNob3VsZCBpbmNsdWRlIHRoZSBzdWZmaXguYHJlbW92ZV9kYW5nbGluZ191c2VybmFtZQQBIHVzZXJuYW1lUQMBLFVzZXJuYW1lPFQ+ABUIVQFSZW1vdmUgYSB1c2VybmFtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIGFuIGFjY291bnQgd2l0aCBubyBpZGVudGl0eS4gRXhpc3RzIHdoZW4gYSB1c2VywGdldHMgYSB1c2VybmFtZSBidXQgdGhlbiBjYWxscyBgY2xlYXJfaWRlbnRpdHlgLgRwSWRlbnRpdHkgcGFsbGV0IGRlY2xhcmF0aW9uLrECDDxwYWxsZXRfaWRlbnRpdHkYbGVnYWN5MElkZW50aXR5SW5mbwQoRmllbGRMaW1pdAAAJAEoYWRkaXRpb25hbLUCAZBCb3VuZGVkVmVjPChEYXRhLCBEYXRhKSwgRmllbGRMaW1pdD4AARxkaXNwbGF5vQIBEERhdGEAARRsZWdhbL0CARBEYXRhAAEMd2VivQIBEERhdGEAARByaW90vQIBEERhdGEAARRlbWFpbL0CARBEYXRhAAE8cGdwX2ZpbmdlcnByaW50OQMBQE9wdGlvbjxbdTg7IDIwXT4AARRpbWFnZb0CARBEYXRhAAEcdHdpdHRlcr0CARBEYXRhAAC1AgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbkCBFMAAAQANQMBGFZlYzxUPgAAuQIAAAQIvQK9AgC9Agw8cGFsbGV0X2lkZW50aXR5FHR5cGVzEERhdGEAAZgQTm9uZQAAABBSYXcwBADBAgAAAQAQUmF3MQQAxQIAAAIAEFJhdzIEAMkCAAADABBSYXczBADNAgAABAAQUmF3NAQASAAABQAQUmF3NQQA0QIAAAYAEFJhdzYEANUCAAAHABBSYXc3BADZAgAACAAQUmF3OAQA3QIAAAkAEFJhdzkEAOECAAAKABRSYXcxMAQA5QIAAAsAFFJhdzExBADpAgAADAAUUmF3MTIEAO0CAAANABRSYXcxMwQA8QIAAA4AFFJhdzE0BAD1AgAADwAUUmF3MTUEAPkCAAAQABRSYXcxNgQAxAAAEQAUUmF3MTcEAP0CAAASABRSYXcxOAQAAQMAABMAFFJhdzE5BAAFAwAAFAAUUmF3MjAEAPwAABUAFFJhdzIxBAAJAwAAFgAUUmF3MjIEAA0DAAAXABRSYXcyMwQAEQMAABgAFFJhdzI0BAAVAwAAGQAUUmF3MjUEABkDAAAaABRSYXcyNgQAHQMAABsAFFJhdzI3BAAhAwAAHAAUUmF3MjgEACUDAAAdABRSYXcyOQQAKQMAAB4AFFJhdzMwBAAtAwAAHwAUUmF3MzEEADEDAAAgABRSYXczMgQABAAAIQAsQmxha2VUd28yNTYEAAQAACIAGFNoYTI1NgQABAAAIwAkS2VjY2FrMjU2BAAEAAAkACxTaGFUaHJlZTI1NgQABAAAJQAAwQIAAAMAAAAACADFAgAAAwEAAAAIAMkCAAADAgAAAAgAzQIAAAMDAAAACADRAgAAAwUAAAAIANUCAAADBgAAAAgA2QIAAAMHAAAACADdAgAAAwgAAAAIAOECAAADCQAAAAgA5QIAAAMKAAAACADpAgAAAwsAAAAIAO0CAAADDAAAAAgA8QIAAAMNAAAACAD1AgAAAw4AAAAIAPkCAAADDwAAAAgA/QIAAAMRAAAACAABAwAAAxIAAAAIAAUDAAADEwAAAAgACQMAAAMVAAAACAANAwAAAxYAAAAIABEDAAADFwAAAAgAFQMAAAMYAAAACAAZAwAAAxkAAAAIAB0DAAADGgAAAAgAIQMAAAMbAAAACAAlAwAAAxwAAAAIACkDAAADHQAAAAgALQMAAAMeAAAACAAxAwAAAx8AAAAIADUDAAACuQIAOQMEGE9wdGlvbgQEVAH8AQgQTm9uZQAAABBTb21lBAD8AAABAAA9AwAAAkEDAEEDAAAECAC9AgBFAww8cGFsbGV0X2lkZW50aXR5FHR5cGVzJEp1ZGdlbWVudAQcQmFsYW5jZQEYARwcVW5rbm93bgAAABxGZWVQYWlkBAAYARxCYWxhbmNlAAEAKFJlYXNvbmFibGUAAgAkS25vd25Hb29kAAMAJE91dE9mRGF0ZQAEAChMb3dRdWFsaXR5AAUAJEVycm9uZW91cwAGAABJAwQYT3B0aW9uBARUAU0DAQgQTm9uZQAAABBTb21lBABNAwAAAQAATQMIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAAQwcRWQyNTUxOQQAJQIBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BAAlAgFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBACJAgFAZWNkc2E6OlNpZ25hdHVyZQACAABRAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAFUDDDhwYWxsZXRfc29jaWV0eRhwYWxsZXQQQ2FsbAgEVAAESQABUAxiaWQEARR2YWx1ZRgBPEJhbGFuY2VPZjxULCBJPgAAJNxBIHVzZXIgb3V0c2lkZSBvZiB0aGUgc29jaWV0eSBjYW4gbWFrZSBhIGJpZCBmb3IgZW50cnkuAGEBUGF5bWVudDogVGhlIGdyb3VwJ3MgQ2FuZGlkYXRlIERlcG9zaXQgd2lsbCBiZSByZXNlcnZlZCBmb3IgbWFraW5nIGEgYmlkLiBJdCBpcyByZXR1cm5lZOx3aGVuIHRoZSBiaWQgYmVjb21lcyBhIG1lbWJlciwgb3IgaWYgdGhlIGJpZCBjYWxscyBgdW5iaWRgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOlUBLSBgdmFsdWVgOiBBIG9uZSB0aW1lIHBheW1lbnQgdGhlIGJpZCB3b3VsZCBsaWtlIHRvIHJlY2VpdmUgd2hlbiBqb2luaW5nIHRoZSBzb2NpZXR5LhR1bmJpZAABHNRBIGJpZGRlciBjYW4gcmVtb3ZlIHRoZWlyIGJpZCBmb3IgZW50cnkgaW50byBzb2NpZXR5LvxCeSBkb2luZyBzbywgdGhleSB3aWxsIGhhdmUgdGhlaXIgY2FuZGlkYXRlIGRlcG9zaXQgcmV0dXJuZWQgb3KAdGhleSB3aWxsIHVudm91Y2ggdGhlaXIgdm91Y2hlci4A+FBheW1lbnQ6IFRoZSBiaWQgZGVwb3NpdCBpcyB1bnJlc2VydmVkIGlmIHRoZSB1c2VyIG1hZGUgYSBiaWQuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgYmlkZGVyLhR2b3VjaAwBDHdob8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlGAE8QmFsYW5jZU9mPFQsIEk+AAEMdGlwGAE8QmFsYW5jZU9mPFQsIEk+AAJEQQFBcyBhIG1lbWJlciwgdm91Y2ggZm9yIHNvbWVvbmUgdG8gam9pbiBzb2NpZXR5IGJ5IHBsYWNpbmcgYSBiaWQgb24gdGhlaXIgYmVoYWxmLgBRAVRoZXJlIGlzIG5vIGRlcG9zaXQgcmVxdWlyZWQgdG8gdm91Y2ggZm9yIGEgbmV3IGJpZCwgYnV0IGEgbWVtYmVyIGNhbiBvbmx5IHZvdWNoIGZvclkBb25lIGJpZCBhdCBhIHRpbWUuIElmIHRoZSBiaWQgYmVjb21lcyBhIHN1c3BlbmRlZCBjYW5kaWRhdGUgYW5kIHVsdGltYXRlbHkgcmVqZWN0ZWQgYnk9AXRoZSBzdXNwZW5zaW9uIGp1ZGdlbWVudCBvcmlnaW4sIHRoZSBtZW1iZXIgd2lsbCBiZSBiYW5uZWQgZnJvbSB2b3VjaGluZyBhZ2Fpbi4AVQFBcyBhIHZvdWNoaW5nIG1lbWJlciwgeW91IGNhbiBjbGFpbSBhIHRpcCBpZiB0aGUgY2FuZGlkYXRlIGlzIGFjY2VwdGVkLiBUaGlzIHRpcCB3aWxsTQFiZSBwYWlkIGFzIGEgcG9ydGlvbiBvZiB0aGUgcmV3YXJkIHRoZSBtZW1iZXIgd2lsbCByZWNlaXZlIGZvciBqb2luaW5nIHRoZSBzb2NpZXR5LgABAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBhIG1lbWJlci4ALFBhcmFtZXRlcnM6yC0gYHdob2A6IFRoZSB1c2VyIHdobyB5b3Ugd291bGQgbGlrZSB0byB2b3VjaCBmb3IuTQEtIGB2YWx1ZWA6IFRoZSB0b3RhbCByZXdhcmQgdG8gYmUgcGFpZCBiZXR3ZWVuIHlvdSBhbmQgdGhlIGNhbmRpZGF0ZSBpZiB0aGV5IGJlY29tZWBhIG1lbWJlciBpbiB0aGUgc29jaWV0eS5FAS0gYHRpcGA6IFlvdXIgY3V0IG9mIHRoZSB0b3RhbCBgdmFsdWVgIHBheW91dCB3aGVuIHRoZSBjYW5kaWRhdGUgaXMgaW5kdWN0ZWQgaW50bxEBdGhlIHNvY2lldHkuIFRpcHMgbGFyZ2VyIHRoYW4gYHZhbHVlYCB3aWxsIGJlIHNhdHVyYXRlZCB1cG9uIHBheW91dC4cdW52b3VjaAADHCkBQXMgYSB2b3VjaGluZyBtZW1iZXIsIHVudm91Y2ggYSBiaWQuIFRoaXMgb25seSB3b3JrcyB3aGlsZSB2b3VjaGVkIHVzZXIgaXOQb25seSBhIGJpZGRlciAoYW5kIG5vdCBhIGNhbmRpZGF0ZSkuACUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgdm91Y2hpbmcgbWVtYmVyLgAsUGFyYW1ldGVyczopAS0gYHBvc2A6IFBvc2l0aW9uIGluIHRoZSBgQmlkc2AgdmVjdG9yIG9mIHRoZSBiaWQgd2hvIHNob3VsZCBiZSB1bnZvdWNoZWQuEHZvdGUIASRjYW5kaWRhdGXBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxhcHByb3ZlIAEQYm9vbAAEIIRBcyBhIG1lbWJlciwgdm90ZSBvbiBhIGNhbmRpZGF0ZS4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBtZW1iZXIuACxQYXJhbWV0ZXJzOgkBLSBgY2FuZGlkYXRlYDogVGhlIGNhbmRpZGF0ZSB0aGF0IHRoZSBtZW1iZXIgd291bGQgbGlrZSB0byBiaWQgb24uRQEtIGBhcHByb3ZlYDogQSBib29sZWFuIHdoaWNoIHNheXMgaWYgdGhlIGNhbmRpZGF0ZSBzaG91bGQgYmUgYXBwcm92ZWQgKGB0cnVlYCkgb3JUICByZWplY3RlZCAoYGZhbHNlYCkuNGRlZmVuZGVyX3ZvdGUEARxhcHByb3ZlIAEQYm9vbAAFHIhBcyBhIG1lbWJlciwgdm90ZSBvbiB0aGUgZGVmZW5kZXIuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgbWVtYmVyLgAsUGFyYW1ldGVyczrwLSBgYXBwcm92ZWA6IEEgYm9vbGVhbiB3aGljaCBzYXlzIGlmIHRoZSBjYW5kaWRhdGUgc2hvdWxkIGJloGFwcHJvdmVkIChgdHJ1ZWApIG9yIHJlamVjdGVkIChgZmFsc2VgKS4YcGF5b3V0AAYoQQFUcmFuc2ZlciB0aGUgZmlyc3QgbWF0dXJlZCBwYXlvdXQgZm9yIHRoZSBzZW5kZXIgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSByZWNvcmRzLgBBAU5PVEU6IFRoaXMgZXh0cmluc2ljIG5lZWRzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBjbGFpbSBtdWx0aXBsZSBtYXR1cmVkIHBheW91dHMuAB0BUGF5bWVudDogVGhlIG1lbWJlciB3aWxsIHJlY2VpdmUgYSBwYXltZW50IGVxdWFsIHRvIHRoZWlyIGZpcnN0IG1hdHVyZWR0cGF5b3V0IHRvIHRoZWlyIGZyZWUgYmFsYW5jZS4AEQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBtZW1iZXIgd2l0aEhwYXlvdXRzIHJlbWFpbmluZy4sd2FpdmVfcmVwYXkEARhhbW91bnQYATxCYWxhbmNlT2Y8VCwgST4ABwhNAVJlcGF5IHRoZSBwYXltZW50IHByZXZpb3VzbHkgZ2l2ZW4gdG8gdGhlIG1lbWJlciB3aXRoIHRoZSBzaWduZWQgb3JpZ2luLCByZW1vdmUgYW555HBlbmRpbmcgcGF5bWVudHMsIGFuZCBlbGV2YXRlIHRoZW0gZnJvbSByYW5rIDAgdG8gcmFuayAxLjRmb3VuZF9zb2NpZXR5GAEcZm91bmRlcsEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1heF9tZW1iZXJzEAEMdTMyAAEobWF4X2ludGFrZRABDHUzMgABLG1heF9zdHJpa2VzEAEMdTMyAAFEY2FuZGlkYXRlX2RlcG9zaXQYATxCYWxhbmNlT2Y8VCwgST4AARRydWxlczgBHFZlYzx1OD4ACERIRm91bmQgdGhlIHNvY2lldHkuAOxUaGlzIGlzIGRvbmUgYXMgYSBkaXNjcmV0ZSBhY3Rpb24gaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZRUBcGFsbGV0IHRvIGJlIGluY2x1ZGVkIGludG8gYSBydW5uaW5nIGNoYWluIGFuZCBjYW4gb25seSBiZSBkb25lIG9uY2UuABkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgZnJvbSB0aGUgX0ZvdW5kZXJTZXRPcmlnaW5fLgAsUGFyYW1ldGVyczoVAS0gYGZvdW5kZXJgIC0gVGhlIGZpcnN0IG1lbWJlciBhbmQgaGVhZCBvZiB0aGUgbmV3bHkgZm91bmRlZCBzb2NpZXR5LhEBLSBgbWF4X21lbWJlcnNgIC0gVGhlIGluaXRpYWwgbWF4IG51bWJlciBvZiBtZW1iZXJzIGZvciB0aGUgc29jaWV0eS4RAS0gYG1heF9pbnRha2VgIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGNhbmRpZGF0ZXMgcGVyIGludGFrZSBwZXJpb2QuSQEtIGBtYXhfc3RyaWtlc2A6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdHJpa2VzIGEgbWVtYmVyIG1heSBnZXQgYmVmb3JlIHRoZXkgYmVjb21l2CAgc3VzcGVuZGVkIGFuZCBtYXkgb25seSBiZSByZWluc3RhdGVkIGJ5IHRoZSBmb3VuZGVyLlkBLSBgY2FuZGlkYXRlX2RlcG9zaXRgOiBUaGUgZGVwb3NpdCByZXF1aXJlZCB0byBtYWtlIGEgYmlkIGZvciBtZW1iZXJzaGlwIG9mIHRoZSBncm91cC7wLSBgcnVsZXNgIC0gVGhlIHJ1bGVzIG9mIHRoaXMgc29jaWV0eSBjb25jZXJuaW5nIG1lbWJlcnNoaXAuAEBDb21wbGV4aXR5OiBPKDEpIGRpc3NvbHZlAAkUsERpc3NvbHZlIHRoZSBzb2NpZXR5IGFuZCByZW1vdmUgYWxsIG1lbWJlcnMuAFkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLCBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlIGJvdGhVAXRoZSBgRm91bmRlcmAgYW5kIHRoZSBgSGVhZGAuIFRoaXMgaW1wbGllcyB0aGF0IGl0IG1heSBvbmx5IGJlIGRvbmUgd2hlbiB0aGVyZSBpcyBvbmUcbWVtYmVyLlhqdWRnZV9zdXNwZW5kZWRfbWVtYmVyCAEMd2hvwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZm9yZ2l2ZSABEGJvb2wACjgpAUFsbG93IHN1c3BlbnNpb24ganVkZ2VtZW50IG9yaWdpbiB0byBtYWtlIGp1ZGdlbWVudCBvbiBhIHN1c3BlbmRlZCBtZW1iZXIuAFUBSWYgYSBzdXNwZW5kZWQgbWVtYmVyIGlzIGZvcmdpdmVuLCB3ZSBzaW1wbHkgYWRkIHRoZW0gYmFjayBhcyBhIG1lbWJlciwgbm90IGFmZmVjdGluZ8hhbnkgb2YgdGhlIGV4aXN0aW5nIHN0b3JhZ2UgaXRlbXMgZm9yIHRoYXQgbWVtYmVyLgBFAUlmIGEgc3VzcGVuZGVkIG1lbWJlciBpcyByZWplY3RlZCwgcmVtb3ZlIGFsbCBhc3NvY2lhdGVkIHN0b3JhZ2UgaXRlbXMsIGluY2x1ZGluZ/x0aGVpciBwYXlvdXRzLCBhbmQgcmVtb3ZlIGFueSB2b3VjaGVkIGJpZHMgdGhleSBjdXJyZW50bHkgaGF2ZS4ACQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBTaWduZWQgZnJvbSB0aGUgRm91bmRlci4ALFBhcmFtZXRlcnM6sC0gYHdob2AgLSBUaGUgc3VzcGVuZGVkIG1lbWJlciB0byBiZSBqdWRnZWQuVQEtIGBmb3JnaXZlYCAtIEEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hldGhlciB0aGUgc3VzcGVuc2lvbiBqdWRnZW1lbnQgb3JpZ2luIGZvcmdpdmVzzCAgKGB0cnVlYCkgb3IgcmVqZWN0cyAoYGZhbHNlYCkgYSBzdXNwZW5kZWQgbWVtYmVyLjhzZXRfcGFyYW1ldGVycxABLG1heF9tZW1iZXJzEAEMdTMyAAEobWF4X2ludGFrZRABDHUzMgABLG1heF9zdHJpa2VzEAEMdTMyAAFEY2FuZGlkYXRlX2RlcG9zaXQYATxCYWxhbmNlT2Y8VCwgST4ACzBhAUNoYW5nZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyBpbiBzb2NpZXR5IGFuZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgbmV3IGNhbmRpZGF0ZXNoaW4gYSBzaW5nbGUgaW50YWtlIHBlcmlvZC4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBTaWduZWQgYnkgdGhlIEZvdW5kZXIuACxQYXJhbWV0ZXJzOlUBLSBgbWF4X21lbWJlcnNgIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1lbWJlcnMgZm9yIHRoZSBzb2NpZXR5LiBUaGlzIG11c3QgYmUgbm8gbGVzc5QgIHRoYW4gdGhlIGN1cnJlbnQgbnVtYmVyIG9mIG1lbWJlcnMuEQEtIGBtYXhfaW50YWtlYCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjYW5kaWRhdGVzIHBlciBpbnRha2UgcGVyaW9kLkkBLSBgbWF4X3N0cmlrZXNgOiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RyaWtlcyBhIG1lbWJlciBtYXkgZ2V0IGJlZm9yZSB0aGV5IGJlY29tZdggIHN1c3BlbmRlZCBhbmQgbWF5IG9ubHkgYmUgcmVpbnN0YXRlZCBieSB0aGUgZm91bmRlci5ZAS0gYGNhbmRpZGF0ZV9kZXBvc2l0YDogVGhlIGRlcG9zaXQgcmVxdWlyZWQgdG8gbWFrZSBhIGJpZCBmb3IgbWVtYmVyc2hpcCBvZiB0aGUgZ3JvdXAuOHB1bmlzaF9za2VwdGljAAwIVQFQdW5pc2ggdGhlIHNrZXB0aWMgd2l0aCBhIHN0cmlrZSBpZiB0aGV5IGRpZCBub3Qgdm90ZSBvbiBhIGNhbmRpZGF0ZS4gQ2FsbGFibGUgYnkgdGhlKGNhbmRpZGF0ZS5AY2xhaW1fbWVtYmVyc2hpcAANCA0BVHJhbnNmb3JtIGFuIGFwcHJvdmVkIGNhbmRpZGF0ZSBpbnRvIGEgbWVtYmVyLiBDYWxsYWJsZSBvbmx5IGJ5IHRoZfh0aGUgY2FuZGlkYXRlLCBhbmQgb25seSBhZnRlciB0aGUgcGVyaW9kIGZvciB2b3RpbmcgaGFzIGVuZGVkLkRiZXN0b3dfbWVtYmVyc2hpcAQBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAAODGEBVHJhbnNmb3JtIGFuIGFwcHJvdmVkIGNhbmRpZGF0ZSBpbnRvIGEgbWVtYmVyLiBDYWxsYWJsZSBvbmx5IGJ5IHRoZSBTaWduZWQgb3JpZ2luIG9mIHRoZVkBRm91bmRlciwgb25seSBhZnRlciB0aGUgcGVyaW9kIGZvciB2b3RpbmcgaGFzIGVuZGVkIGFuZCBvbmx5IHdoZW4gdGhlIGNhbmRpZGF0ZSBpcyBub3REY2xlYXJseSByZWplY3RlZC44a2lja19jYW5kaWRhdGUEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQADxRdAVJlbW92ZSB0aGUgY2FuZGlkYXRlJ3MgYXBwbGljYXRpb24gZnJvbSB0aGUgc29jaWV0eS4gQ2FsbGFibGUgb25seSBieSB0aGUgU2lnbmVkIG9yaWdpblUBb2YgdGhlIEZvdW5kZXIsIG9ubHkgYWZ0ZXIgdGhlIHBlcmlvZCBmb3Igdm90aW5nIGhhcyBlbmRlZCwgYW5kIG9ubHkgd2hlbiB0aGV5IGRvIG5vdFhoYXZlIGEgY2xlYXIgYXBwcm92YWwuALhBbnkgYmlkIGRlcG9zaXQgaXMgbG9zdCBhbmQgdm91Y2hlciBpcyBiYW5uZWQuQHJlc2lnbl9jYW5kaWRhY3kAEAxRAVJlbW92ZSB0aGUgY2FuZGlkYXRlJ3MgYXBwbGljYXRpb24gZnJvbSB0aGUgc29jaWV0eS4gQ2FsbGFibGUgb25seSBieSB0aGUgY2FuZGlkYXRlLgC4QW55IGJpZCBkZXBvc2l0IGlzIGxvc3QgYW5kIHZvdWNoZXIgaXMgYmFubmVkLjhkcm9wX2NhbmRpZGF0ZQQBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAARFC0BUmVtb3ZlIGEgYGNhbmRpZGF0ZWAncyBmYWlsZWQgYXBwbGljYXRpb24gZnJvbSB0aGUgc29jaWV0eS4gQ2FsbGFibGUgYnkgYW55GQFzaWduZWQgb3JpZ2luIGJ1dCBvbmx5IGF0IHRoZSBlbmQgb2YgdGhlIHN1YnNlcXVlbnQgcm91bmQgYW5kIG9ubHkgZm9ywGEgY2FuZGlkYXRlIHdpdGggbW9yZSByZWplY3Rpb25zIHRoYW4gYXBwcm92YWxzLgDIVGhlIGJpZCBkZXBvc2l0IGlzIGxvc3QgYW5kIHRoZSB2b3VjaGVyIGlzIGJhbm5lZC5EY2xlYW51cF9jYW5kaWRhY3kIASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAAQxtYXgQAQx1MzIAEgzkUmVtb3ZlIHVwIHRvIGBtYXhgIHN0YWxlIHZvdGVzIGZvciB0aGUgZ2l2ZW4gYGNhbmRpZGF0ZWAuAFkBTWF5IGJlIGNhbGxlZCBieSBhbnkgU2lnbmVkIG9yaWdpbiwgYnV0IG9ubHkgYWZ0ZXIgdGhlIGNhbmRpZGF0ZSdzIGNhbmRpZGFjeSBpcyBlbmRlZC5EY2xlYW51cF9jaGFsbGVuZ2UIATxjaGFsbGVuZ2Vfcm91bmQQAShSb3VuZEluZGV4AAEMbWF4EAEMdTMyABMMPQFSZW1vdmUgdXAgdG8gYG1heGAgc3RhbGUgdm90ZXMgZm9yIHRoZSBkZWZlbmRlciBpbiB0aGUgZ2l2ZW4gYGNoYWxsZW5nZV9yb3VuZGAuAEEBTWF5IGJlIGNhbGxlZCBieSBhbnkgU2lnbmVkIG9yaWdpbiwgYnV0IG9ubHkgYWZ0ZXIgdGhlIGNoYWxsZW5nZSByb3VuZCBpcyBlbmRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuWQMMPHBhbGxldF9yZWNvdmVyeRhwYWxsZXQQQ2FsbAQEVAABJDBhc19yZWNvdmVyZWQIARxhY2NvdW50wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAgoFNlbmQgYSBjYWxsIHRocm91Z2ggYSByZWNvdmVyZWQgYWNjb3VudC4AEQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgcmVnaXN0ZXJlZCB0b+RiZSBhYmxlIHRvIG1ha2UgY2FsbHMgb24gYmVoYWxmIG9mIHRoZSByZWNvdmVyZWQgYWNjb3VudC4ALFBhcmFtZXRlcnM6IQEtIGBhY2NvdW50YDogVGhlIHJlY292ZXJlZCBhY2NvdW50IHlvdSB3YW50IHRvIG1ha2UgYSBjYWxsIG9uLWJlaGFsZi1vZi78LSBgY2FsbGA6IFRoZSBjYWxsIHlvdSB3YW50IHRvIG1ha2Ugd2l0aCB0aGUgcmVjb3ZlcmVkIGFjY291bnQuNHNldF9yZWNvdmVyZWQIARBsb3N0wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEccmVzY3VlcsEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIBkBQWxsb3cgUk9PVCB0byBieXBhc3MgdGhlIHJlY292ZXJ5IHByb2Nlc3MgYW5kIHNldCBhbiBhIHJlc2N1ZXIgYWNjb3VudHBmb3IgYSBsb3N0IGFjY291bnQgZGlyZWN0bHkuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUk9PVF8uACxQYXJhbWV0ZXJzOrQtIGBsb3N0YDogVGhlICJsb3N0IGFjY291bnQiIHRvIGJlIHJlY292ZXJlZC4ZAS0gYHJlc2N1ZXJgOiBUaGUgInJlc2N1ZXIgYWNjb3VudCIgd2hpY2ggY2FuIGNhbGwgYXMgdGhlIGxvc3QgYWNjb3VudC48Y3JlYXRlX3JlY292ZXJ5DAEcZnJpZW5kc9EBAURWZWM8VDo6QWNjb3VudElkPgABJHRocmVzaG9sZHkBAQx1MTYAATBkZWxheV9wZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgACQFkBQ3JlYXRlIGEgcmVjb3ZlcnkgY29uZmlndXJhdGlvbiBmb3IgeW91ciBhY2NvdW50LiBUaGlzIG1ha2VzIHlvdXIgYWNjb3VudCByZWNvdmVyYWJsZS4ALQFQYXltZW50OiBgQ29uZmlnRGVwb3NpdEJhc2VgICsgYEZyaWVuZERlcG9zaXRGYWN0b3JgICogI19vZl9mcmllbmRzIGJhbGFuY2VFAXdpbGwgYmUgcmVzZXJ2ZWQgZm9yIHN0b3JpbmcgdGhlIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24uIFRoaXMgZGVwb3NpdCBpcyByZXR1cm5lZLhpbiBmdWxsIHdoZW4gdGhlIHVzZXIgY2FsbHMgYHJlbW92ZV9yZWNvdmVyeWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6SQEtIGBmcmllbmRzYDogQSBsaXN0IG9mIGZyaWVuZHMgeW91IHRydXN0IHRvIHZvdWNoIGZvciByZWNvdmVyeSBhdHRlbXB0cy4gU2hvdWxkIGJlqCAgb3JkZXJlZCBhbmQgY29udGFpbiBubyBkdXBsaWNhdGUgdmFsdWVzLlkBLSBgdGhyZXNob2xkYDogVGhlIG51bWJlciBvZiBmcmllbmRzIHRoYXQgbXVzdCB2b3VjaCBmb3IgYSByZWNvdmVyeSBhdHRlbXB0IGJlZm9yZSB0aGVVASAgYWNjb3VudCBjYW4gYmUgcmVjb3ZlcmVkLiBTaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgdGhlIGxpc3Qgb2YoICBmcmllbmRzLk0BLSBgZGVsYXlfcGVyaW9kYDogVGhlIG51bWJlciBvZiBibG9ja3MgYWZ0ZXIgYSByZWNvdmVyeSBhdHRlbXB0IGlzIGluaXRpYWxpemVkIHRoYXTQICBuZWVkcyB0byBwYXNzIGJlZm9yZSB0aGUgYWNjb3VudCBjYW4gYmUgcmVjb3ZlcmVkLkRpbml0aWF0ZV9yZWNvdmVyeQQBHGFjY291bnTBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyzoSW5pdGlhdGUgdGhlIHByb2Nlc3MgZm9yIHJlY292ZXJpbmcgYSByZWNvdmVyYWJsZSBhY2NvdW50LgAZAVBheW1lbnQ6IGBSZWNvdmVyeURlcG9zaXRgIGJhbGFuY2Ugd2lsbCBiZSByZXNlcnZlZCBmb3IgaW5pdGlhdGluZyB0aGUhAXJlY292ZXJ5IHByb2Nlc3MuIFRoaXMgZGVwb3NpdCB3aWxsIGFsd2F5cyBiZSByZXBhdHJpYXRlZCB0byB0aGUgYWNjb3VudLR0cnlpbmcgdG8gYmUgcmVjb3ZlcmVkLiBTZWUgYGNsb3NlX3JlY292ZXJ5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczpBAS0gYGFjY291bnRgOiBUaGUgbG9zdCBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gcmVjb3Zlci4gVGhpcyBhY2NvdW50IG5lZWRzIHRvIGJlzCAgcmVjb3ZlcmFibGUgKGkuZS4gaGF2ZSBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24pLjh2b3VjaF9yZWNvdmVyeQgBEGxvc3TBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxyZXNjdWVywQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAQwJQFBbGxvdyBhICJmcmllbmQiIG9mIGEgcmVjb3ZlcmFibGUgYWNjb3VudCB0byB2b3VjaCBmb3IgYW4gYWN0aXZlIHJlY292ZXJ5ZHByb2Nlc3MgZm9yIHRoYXQgYWNjb3VudC4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSBhICJmcmllbmQicGZvciB0aGUgcmVjb3ZlcmFibGUgYWNjb3VudC4ALFBhcmFtZXRlcnM60C0gYGxvc3RgOiBUaGUgbG9zdCBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gcmVjb3Zlci5ZAS0gYHJlc2N1ZXJgOiBUaGUgYWNjb3VudCB0cnlpbmcgdG8gcmVzY3VlIHRoZSBsb3N0IGFjY291bnQgdGhhdCB5b3Ugd2FudCB0byB2b3VjaCBmb3IuACEBVGhlIGNvbWJpbmF0aW9uIG9mIHRoZXNlIHR3byBwYXJhbWV0ZXJzIG11c3QgcG9pbnQgdG8gYW4gYWN0aXZlIHJlY292ZXJ5IHByb2Nlc3MuOGNsYWltX3JlY292ZXJ5BAEcYWNjb3VudMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgAFJPBBbGxvdyBhIHN1Y2Nlc3NmdWwgcmVzY3VlciB0byBjbGFpbSB0aGVpciByZWNvdmVyZWQgYWNjb3VudC4AKQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSBhICJyZXNjdWVyIhkBd2hvIGhhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkIHRoZSBhY2NvdW50IHJlY292ZXJ5IHByb2Nlc3M6IGNvbGxlY3RlZC0BYHRocmVzaG9sZGAgb3IgbW9yZSB2b3VjaGVzLCB3YWl0ZWQgYGRlbGF5X3BlcmlvZGAgYmxvY2tzIHNpbmNlIGluaXRpYXRpb24uACxQYXJhbWV0ZXJzOl0BLSBgYWNjb3VudGA6IFRoZSBsb3N0IGFjY291bnQgdGhhdCB5b3Ugd2FudCB0byBjbGFpbSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcmVjb3ZlcmVkIGJ5GCAgeW91LjhjbG9zZV9yZWNvdmVyeQQBHHJlc2N1ZXLBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABiwRAUFzIHRoZSBjb250cm9sbGVyIG9mIGEgcmVjb3ZlcmFibGUgYWNjb3VudCwgY2xvc2UgYW4gYWN0aXZlIHJlY292ZXJ5ZHByb2Nlc3MgZm9yIHlvdXIgYWNjb3VudC4AHQFQYXltZW50OiBCeSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSByZWNvdmVyYWJsZSBhY2NvdW50IHdpbGwgcmVjZWl2ZfR0aGUgcmVjb3ZlcnkgZGVwb3NpdCBgUmVjb3ZlcnlEZXBvc2l0YCBwbGFjZWQgYnkgdGhlIHJlc2N1ZXIuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgYexyZWNvdmVyYWJsZSBhY2NvdW50IHdpdGggYW4gYWN0aXZlIHJlY292ZXJ5IHByb2Nlc3MgZm9yIGl0LgAsUGFyYW1ldGVyczoNAS0gYHJlc2N1ZXJgOiBUaGUgYWNjb3VudCB0cnlpbmcgdG8gcmVzY3VlIHRoaXMgcmVjb3ZlcmFibGUgYWNjb3VudC48cmVtb3ZlX3JlY292ZXJ5AAcsWQFSZW1vdmUgdGhlIHJlY292ZXJ5IHByb2Nlc3MgZm9yIHlvdXIgYWNjb3VudC4gUmVjb3ZlcmVkIGFjY291bnRzIGFyZSBzdGlsbCBhY2Nlc3NpYmxlLgARAU5PVEU6IFRoZSB1c2VyIG11c3QgbWFrZSBzdXJlIHRvIGNhbGwgYGNsb3NlX3JlY292ZXJ5YCBvbiBhbGwgYWN0aXZlBQFyZWNvdmVyeSBhdHRlbXB0cyBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGVsc2UgaXQgd2lsbCBmYWlsLgAhAVBheW1lbnQ6IEJ5IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiB0aGUgcmVjb3ZlcmFibGUgYWNjb3VudCB3aWxsIHVucmVzZXJ2ZZR0aGVpciByZWNvdmVyeSBjb25maWd1cmF0aW9uIGRlcG9zaXQu8ChgQ29uZmlnRGVwb3NpdEJhc2VgICsgYEZyaWVuZERlcG9zaXRGYWN0b3JgICogI19vZl9mcmllbmRzKQABAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBtdXN0IGJlIGHgcmVjb3ZlcmFibGUgYWNjb3VudCAoaS5lLiBoYXMgYSByZWNvdmVyeSBjb25maWd1cmF0aW9uKS5AY2FuY2VsX3JlY292ZXJlZAQBHGFjY291bnTBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ACBzcQ2FuY2VsIHRoZSBhYmlsaXR5IHRvIHVzZSBgYXNfcmVjb3ZlcmVkYCBmb3IgYGFjY291bnRgLgARAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCByZWdpc3RlcmVkIHRv5GJlIGFibGUgdG8gbWFrZSBjYWxscyBvbiBiZWhhbGYgb2YgdGhlIHJlY292ZXJlZCBhY2NvdW50LgAsUGFyYW1ldGVyczoVAS0gYGFjY291bnRgOiBUaGUgcmVjb3ZlcmVkIGFjY291bnQgeW91IGFyZSBhYmxlIHRvIGNhbGwgb24tYmVoYWxmLW9mLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5dAww4cGFsbGV0X3Zlc3RpbmcYcGFsbGV0EENhbGwEBFQAARgQdmVzdAAAJLhVbmxvY2sgYW55IHZlc3RlZCBmdW5kcyBvZiB0aGUgc2VuZGVyIGFjY291bnQuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGZ1bmRzIHN0aWxsZGxvY2tlZCB1bmRlciB0aGlzIHBhbGxldC4A0EVtaXRzIGVpdGhlciBgVmVzdGluZ0NvbXBsZXRlZGAgb3IgYFZlc3RpbmdVcGRhdGVkYC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuKHZlc3Rfb3RoZXIEARh0YXJnZXTBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASy4VW5sb2NrIGFueSB2ZXN0ZWQgZnVuZHMgb2YgYSBgdGFyZ2V0YCBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFEBLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgd2hvc2UgdmVzdGVkIGZ1bmRzIHNob3VsZCBiZSB1bmxvY2tlZC4gTXVzdCBoYXZlIGZ1bmRzIHN0aWxsZGxvY2tlZCB1bmRlciB0aGlzIHBhbGxldC4A0EVtaXRzIGVpdGhlciBgVmVzdGluZ0NvbXBsZXRlZGAgb3IgYFZlc3RpbmdVcGRhdGVkYC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuPHZlc3RlZF90cmFuc2ZlcggBGHRhcmdldMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIHNjaGVkdWxlYQMBsFZlc3RpbmdJbmZvPEJhbGFuY2VPZjxUPiwgQmxvY2tOdW1iZXJGb3I8VD4+AAI0ZENyZWF0ZSBhIHZlc3RlZCB0cmFuc2Zlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgDMLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgcmVjZWl2aW5nIHRoZSB2ZXN0ZWQgZnVuZHMu8C0gYHNjaGVkdWxlYDogVGhlIHZlc3Rpbmcgc2NoZWR1bGUgYXR0YWNoZWQgdG8gdGhlIHRyYW5zZmVyLgBcRW1pdHMgYFZlc3RpbmdDcmVhdGVkYC4A/E5PVEU6IFRoaXMgd2lsbCB1bmxvY2sgYWxsIHNjaGVkdWxlcyB0aHJvdWdoIHRoZSBjdXJyZW50IGJsb2NrLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC5UZm9yY2VfdmVzdGVkX3RyYW5zZmVyDAEYc291cmNlwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYdGFyZ2V0wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgc2NoZWR1bGVhAwGwVmVzdGluZ0luZm88QmFsYW5jZU9mPFQ+LCBCbG9ja051bWJlckZvcjxUPj4AAzhgRm9yY2UgYSB2ZXN0ZWQgdHJhbnNmZXIuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uAOgtIGBzb3VyY2VgOiBUaGUgYWNjb3VudCB3aG9zZSBmdW5kcyBzaG91bGQgYmUgdHJhbnNmZXJyZWQuEQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0aGF0IHNob3VsZCBiZSB0cmFuc2ZlcnJlZCB0aGUgdmVzdGVkIGZ1bmRzLvAtIGBzY2hlZHVsZWA6IFRoZSB2ZXN0aW5nIHNjaGVkdWxlIGF0dGFjaGVkIHRvIHRoZSB0cmFuc2Zlci4AXEVtaXRzIGBWZXN0aW5nQ3JlYXRlZGAuAPxOT1RFOiBUaGlzIHdpbGwgdW5sb2NrIGFsbCBzY2hlZHVsZXMgdGhyb3VnaCB0aGUgY3VycmVudCBibG9jay4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuPG1lcmdlX3NjaGVkdWxlcwgBPHNjaGVkdWxlMV9pbmRleBABDHUzMgABPHNjaGVkdWxlMl9pbmRleBABDHUzMgAEVF0BTWVyZ2UgdHdvIHZlc3Rpbmcgc2NoZWR1bGVzIHRvZ2V0aGVyLCBjcmVhdGluZyBhIG5ldyB2ZXN0aW5nIHNjaGVkdWxlIHRoYXQgdW5sb2NrcyBvdmVyVQF0aGUgaGlnaGVzdCBwb3NzaWJsZSBzdGFydCBhbmQgZW5kIGJsb2Nrcy4gSWYgYm90aCBzY2hlZHVsZXMgaGF2ZSBhbHJlYWR5IHN0YXJ0ZWQgdGhlWQFjdXJyZW50IGJsb2NrIHdpbGwgYmUgdXNlZCBhcyB0aGUgc2NoZWR1bGUgc3RhcnQ7IHdpdGggdGhlIGNhdmVhdCB0aGF0IGlmIG9uZSBzY2hlZHVsZV0BaXMgZmluaXNoZWQgYnkgdGhlIGN1cnJlbnQgYmxvY2ssIHRoZSBvdGhlciB3aWxsIGJlIHRyZWF0ZWQgYXMgdGhlIG5ldyBtZXJnZWQgc2NoZWR1bGUsLHVubW9kaWZpZWQuAPhOT1RFOiBJZiBgc2NoZWR1bGUxX2luZGV4ID09IHNjaGVkdWxlMl9pbmRleGAgdGhpcyBpcyBhIG5vLW9wLkEBTk9URTogVGhpcyB3aWxsIHVubG9jayBhbGwgc2NoZWR1bGVzIHRocm91Z2ggdGhlIGN1cnJlbnQgYmxvY2sgcHJpb3IgdG8gbWVyZ2luZy5hAU5PVEU6IElmIGJvdGggc2NoZWR1bGVzIGhhdmUgZW5kZWQgYnkgdGhlIGN1cnJlbnQgYmxvY2ssIG5vIG5ldyBzY2hlZHVsZSB3aWxsIGJlIGNyZWF0ZWRkYW5kIGJvdGggd2lsbCBiZSByZW1vdmVkLgBsTWVyZ2VkIHNjaGVkdWxlIGF0dHJpYnV0ZXM6NQEtIGBzdGFydGluZ19ibG9ja2A6IGBNQVgoc2NoZWR1bGUxLnN0YXJ0aW5nX2Jsb2NrLCBzY2hlZHVsZWQyLnN0YXJ0aW5nX2Jsb2NrLEggIGN1cnJlbnRfYmxvY2spYC4hAS0gYGVuZGluZ19ibG9ja2A6IGBNQVgoc2NoZWR1bGUxLmVuZGluZ19ibG9jaywgc2NoZWR1bGUyLmVuZGluZ19ibG9jaylgLlkBLSBgbG9ja2VkYDogYHNjaGVkdWxlMS5sb2NrZWRfYXQoY3VycmVudF9ibG9jaykgKyBzY2hlZHVsZTIubG9ja2VkX2F0KGN1cnJlbnRfYmxvY2spYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgDoLSBgc2NoZWR1bGUxX2luZGV4YDogaW5kZXggb2YgdGhlIGZpcnN0IHNjaGVkdWxlIHRvIG1lcmdlLuwtIGBzY2hlZHVsZTJfaW5kZXhgOiBpbmRleCBvZiB0aGUgc2Vjb25kIHNjaGVkdWxlIHRvIG1lcmdlLnRmb3JjZV9yZW1vdmVfdmVzdGluZ19zY2hlZHVsZQgBGHRhcmdldMEBAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABOHNjaGVkdWxlX2luZGV4EAEMdTMyAAUYfEZvcmNlIHJlbW92ZSBhIHZlc3Rpbmcgc2NoZWR1bGUAxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4AyC0gYHRhcmdldGA6IEFuIGFjY291bnQgdGhhdCBoYXMgYSB2ZXN0aW5nIHNjaGVkdWxlFQEtIGBzY2hlZHVsZV9pbmRleGA6IFRoZSB2ZXN0aW5nIHNjaGVkdWxlIGluZGV4IHRoYXQgc2hvdWxkIGJlIHJlbW92ZWQEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuYQMMOHBhbGxldF92ZXN0aW5nMHZlc3RpbmdfaW5mbyxWZXN0aW5nSW5mbwgcQmFsYW5jZQEYLEJsb2NrTnVtYmVyARAADAEYbG9ja2VkGAEcQmFsYW5jZQABJHBlcl9ibG9jaxgBHEJhbGFuY2UAAThzdGFydGluZ19ibG9jaxABLEJsb2NrTnVtYmVyAABlAwxAcGFsbGV0X3NjaGVkdWxlchhwYWxsZXQQQ2FsbAQEVAABKCBzY2hlZHVsZRABEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljaQMBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGyBAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAABHBBbm9ueW1vdXNseSBzY2hlZHVsZSBhIHRhc2suGGNhbmNlbAgBEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4EAEMdTMyAAEElENhbmNlbCBhbiBhbm9ueW1vdXNseSBzY2hlZHVsZWQgdGFzay44c2NoZWR1bGVfbmFtZWQUAQhpZAQBIFRhc2tOYW1lAAEQd2hlbhABREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWNpAwGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAIEWFNjaGVkdWxlIGEgbmFtZWQgdGFzay4wY2FuY2VsX25hbWVkBAEIaWQEASBUYXNrTmFtZQADBHhDYW5jZWwgYSBuYW1lZCBzY2hlZHVsZWQgdGFzay44c2NoZWR1bGVfYWZ0ZXIQARRhZnRlchABREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWNpAwGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAQEqEFub255bW91c2x5IHNjaGVkdWxlIGEgdGFzayBhZnRlciBhIGRlbGF5LlBzY2hlZHVsZV9uYW1lZF9hZnRlchQBCGlkBAEgVGFza05hbWUAARRhZnRlchABREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWNpAwGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAUEkFNjaGVkdWxlIGEgbmFtZWQgdGFzayBhZnRlciBhIGRlbGF5LiRzZXRfcmV0cnkMARB0YXNrbQMBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABHHJldHJpZXMIAQh1OAABGHBlcmlvZBABREJsb2NrTnVtYmVyRm9yPFQ+AAYwWQFTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBhIHRhc2sgc28gdGhhdCwgaW4gY2FzZSBpdHMgc2NoZWR1bGVkIHJ1biBmYWlscywgaXQgd2lsbFUBYmUgcmV0cmllZCBhZnRlciBgcGVyaW9kYCBibG9ja3MsIGZvciBhIHRvdGFsIGFtb3VudCBvZiBgcmV0cmllc2AgcmV0cmllcyBvciB1bnRpbCBpdCRzdWNjZWVkcy4AVQFUYXNrcyB3aGljaCBuZWVkIHRvIGJlIHNjaGVkdWxlZCBmb3IgYSByZXRyeSBhcmUgc3RpbGwgc3ViamVjdCB0byB3ZWlnaHQgbWV0ZXJpbmcgYW5kUQFhZ2VuZGEgc3BhY2UsIHNhbWUgYXMgYSByZWd1bGFyIHRhc2suIElmIGEgcGVyaW9kaWMgdGFzayBmYWlscywgaXQgd2lsbCBiZSBzY2hlZHVsZWSQbm9ybWFsbHkgd2hpbGUgdGhlIHRhc2sgaXMgcmV0cnlpbmcuAFEBVGFza3Mgc2NoZWR1bGVkIGFzIGEgcmVzdWx0IG9mIGEgcmV0cnkgZm9yIGEgcGVyaW9kaWMgdGFzayBhcmUgdW5uYW1lZCwgbm9uLXBlcmlvZGljPQFjbG9uZXMgb2YgdGhlIG9yaWdpbmFsIHRhc2suIFRoZWlyIHJldHJ5IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlTQFvcmlnaW5hbCB0YXNrJ3MgY29uZmlndXJhdGlvbiwgYnV0IHdpbGwgaGF2ZSBhIGxvd2VyIHZhbHVlIGZvciBgcmVtYWluaW5nYCB0aGFuIHRoZWRvcmlnaW5hbCBgdG90YWxfcmV0cmllc2AuPHNldF9yZXRyeV9uYW1lZAwBCGlkBAEgVGFza05hbWUAARxyZXRyaWVzCAEIdTgAARhwZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgAHMF0BU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSBuYW1lZCB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0XQF3aWxsIGJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwwaXQgc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjBjYW5jZWxfcmV0cnkEARB0YXNrbQMBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgAIBKhSZW1vdmVzIHRoZSByZXRyeSBjb25maWd1cmF0aW9uIG9mIGEgdGFzay5IY2FuY2VsX3JldHJ5X25hbWVkBAEIaWQEASBUYXNrTmFtZQAJBLxDYW5jZWwgdGhlIHJldHJ5IGNvbmZpZ3VyYXRpb24gb2YgYSBuYW1lZCB0YXNrLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5pAwQYT3B0aW9uBARUAW0DAQgQTm9uZQAAABBTb21lBABtAwAAAQAAbQMAAAQIEBAAcQMMMHBhbGxldF9wcm94eRhwYWxsZXQQQ2FsbAQEVAABKBRwcm94eQwBEHJlYWzBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBldQMBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAkTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXNlZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LiRhZGRfcHJveHkMASBkZWxlZ2F0ZcEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGV5AwEwVDo6UHJveHlUeXBlAAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgABJEUBUmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyIHRoYXQgaXMgYWJsZSB0byBtYWtlIGNhbGxzIG9uIGl0cyBiZWhhbGYuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6EQEtIGBwcm94eWA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIGBjYWxsZXJgIHdvdWxkIGxpa2UgdG8gbWFrZSBhIHByb3h5LvwtIGBwcm94eV90eXBlYDogVGhlIHBlcm1pc3Npb25zIGFsbG93ZWQgZm9yIHRoaXMgcHJveHkgYWNjb3VudC5NAS0gYGRlbGF5YDogVGhlIGFubm91bmNlbWVudCBwZXJpb2QgcmVxdWlyZWQgb2YgdGhlIGluaXRpYWwgcHJveHkuIFdpbGwgZ2VuZXJhbGx5IGJlFHplcm8uMHJlbW92ZV9wcm94eQwBIGRlbGVnYXRlwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZXkDATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAIcqFVucmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOiUBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIHJlbW92ZSBhcyBhIHByb3h5LkEBLSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBjdXJyZW50bHkgZW5hYmxlZCBmb3IgdGhlIHJlbW92ZWQgcHJveHkgYWNjb3VudC44cmVtb3ZlX3Byb3hpZXMAAxi0VW5yZWdpc3RlciBhbGwgcHJveHkgYWNjb3VudHMgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AQQFXQVJOSU5HOiBUaGlzIG1heSBiZSBjYWxsZWQgb24gYWNjb3VudHMgY3JlYXRlZCBieSBgcHVyZWAsIGhvd2V2ZXIgaWYgZG9uZSwgdGhlblkBdGhlIHVucmVzZXJ2ZWQgZmVlcyB3aWxsIGJlIGluYWNjZXNzaWJsZS4gKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiosY3JlYXRlX3B1cmUMAShwcm94eV90eXBleQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleHkBAQx1MTYABEg5AVNwYXduIGEgZnJlc2ggbmV3IGFjY291bnQgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIG90aGVyd2lzZSBpbmFjY2Vzc2libGUsIGFuZPxpbml0aWFsaXplIGl0IHdpdGggYSBwcm94eSBvZiBgcHJveHlfdHlwZWAgZm9yIGBvcmlnaW5gIHNlbmRlci4AbFJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLgBRAS0gYHByb3h5X3R5cGVgOiBUaGUgdHlwZSBvZiB0aGUgcHJveHkgdGhhdCB0aGUgc2VuZGVyIHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBvdmVyIHRoZU0BbmV3IGFjY291bnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSBtb3N0IHBlcm1pc3NpdmUgYFByb3h5VHlwZWAgcG9zc2libGUgdG94YWxsb3cgZm9yIG1heGltdW0gZmxleGliaWxpdHkuUQEtIGBpbmRleGA6IEEgZGlzYW1iaWd1YXRpb24gaW5kZXgsIGluIGNhc2UgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHNhbWVdAXRyYW5zYWN0aW9uIChlLmcuIHdpdGggYHV0aWxpdHk6OmJhdGNoYCkuIFVubGVzcyB5b3UncmUgdXNpbmcgYGJhdGNoYCB5b3UgcHJvYmFibHkganVzdEB3YW50IHRvIHVzZSBgMGAuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLgBRAUZhaWxzIHdpdGggYER1cGxpY2F0ZWAgaWYgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLCBmcm9tIHRoZZhzYW1lIHNlbmRlciwgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgDkRmFpbHMgaWYgdGhlcmUgYXJlIGluc3VmZmljaWVudCBmdW5kcyB0byBwYXkgZm9yIGRlcG9zaXQuJGtpbGxfcHVyZRQBHHNwYXduZXLBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBleQMBMFQ6OlByb3h5VHlwZQABFGluZGV4eQEBDHUxNgABGGhlaWdodPABREJsb2NrTnVtYmVyRm9yPFQ+AAEkZXh0X2luZGV48AEMdTMyAAVAoFJlbW92ZXMgYSBwcmV2aW91c2x5IHNwYXduZWQgcHVyZSBwcm94eS4ASQFXQVJOSU5HOiAqKkFsbCBhY2Nlc3MgdG8gdGhpcyBhY2NvdW50IHdpbGwgYmUgbG9zdC4qKiBBbnkgZnVuZHMgaGVsZCBpbiBpdCB3aWxsIGJlNGluYWNjZXNzaWJsZS4AWQFSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbiwgYW5kIHRoZSBzZW5kZXIgYWNjb3VudCBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGEgY2FsbCB0b5RgcHVyZWAgd2l0aCBjb3JyZXNwb25kaW5nIHBhcmFtZXRlcnMuADkBLSBgc3Bhd25lcmA6IFRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjYWxsZWQgYHB1cmVgIHRvIGNyZWF0ZSB0aGlzIGFjY291bnQuOQEtIGBpbmRleGA6IFRoZSBkaXNhbWJpZ3VhdGlvbiBpbmRleCBvcmlnaW5hbGx5IHBhc3NlZCB0byBgcHVyZWAuIFByb2JhYmx5IGAwYC7sLSBgcHJveHlfdHlwZWA6IFRoZSBwcm94eSB0eXBlIG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBwdXJlYC4pAS0gYGhlaWdodGA6IFRoZSBoZWlnaHQgb2YgdGhlIGNoYWluIHdoZW4gdGhlIGNhbGwgdG8gYHB1cmVgIHdhcyBwcm9jZXNzZWQuNQEtIGBleHRfaW5kZXhgOiBUaGUgZXh0cmluc2ljIGluZGV4IGluIHdoaWNoIHRoZSBjYWxsIHRvIGBwdXJlYCB3YXMgcHJvY2Vzc2VkLgA1AUZhaWxzIHdpdGggYE5vUGVybWlzc2lvbmAgaW4gY2FzZSB0aGUgY2FsbGVyIGlzIG5vdCBhIHByZXZpb3VzbHkgY3JlYXRlZCBwdXJl3GFjY291bnQgd2hvc2UgYHB1cmVgIGNhbGwgaGFzIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVycy4gYW5ub3VuY2UIARByZWFswQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY2FsbF9oYXNoNAE0Q2FsbEhhc2hPZjxUPgAGPAUBUHVibGlzaCB0aGUgaGFzaCBvZiBhIHByb3h5LWNhbGwgdGhhdCB3aWxsIGJlIG1hZGUgaW4gdGhlIGZ1dHVyZS4AXQFUaGlzIG11c3QgYmUgY2FsbGVkIHNvbWUgbnVtYmVyIG9mIGJsb2NrcyBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgYHByb3h5YCBpcyBhdHRlbXB0ZWQlAWlmIHRoZSBkZWxheSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3h5IHJlbGF0aW9uc2hpcCBpcyBncmVhdGVyIHRoYW4gemVyby4AEQFObyBtb3JlIHRoYW4gYE1heFBlbmRpbmdgIGFubm91bmNlbWVudHMgbWF5IGJlIG1hZGUgYXQgYW55IG9uZSB0aW1lLgAJAVRoaXMgd2lsbCB0YWtlIGEgZGVwb3NpdCBvZiBgQW5ub3VuY2VtZW50RGVwb3NpdEZhY3RvcmAgYXMgd2VsbCBhcxkBYEFubm91bmNlbWVudERlcG9zaXRCYXNlYCBpZiB0aGVyZSBhcmUgbm8gb3RoZXIgcGVuZGluZyBhbm5vdW5jZW1lbnRzLgAlAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBhIHByb3h5IG9mIGByZWFsYC4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuFQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC5McmVtb3ZlX2Fubm91bmNlbWVudAgBEHJlYWzBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g0ATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGXBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g0ATRDYWxsSGFzaE9mPFQ+AAgosFJlbW92ZSB0aGUgZ2l2ZW4gYW5ub3VuY2VtZW50IG9mIGEgZGVsZWdhdGUuAGEBTWF5IGJlIGNhbGxlZCBieSBhIHRhcmdldCAocHJveGllZCkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoYXQgb25lIG9mIHRoZWlyIGRlbGVnYXRlcyUBKGBkZWxlZ2F0ZWApIGhhcyBhbm5vdW5jZWQgdGhleSB3YW50IHRvIGV4ZWN1dGUuIFRoZSBkZXBvc2l0IGlzIHJldHVybmVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOvQtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRoYXQgcHJldmlvdXNseSBhbm5vdW5jZWQgdGhlIGNhbGwuvC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUuPHByb3h5X2Fubm91bmNlZBABIGRlbGVnYXRlwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQcmVhbMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGV1AwFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsgQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ACSxNAURpc3BhdGNoIHRoZSBnaXZlbiBgY2FsbGAgZnJvbSBhbiBhY2NvdW50IHRoYXQgdGhlIHNlbmRlciBpcyBhdXRob3JpemVkIGZvciB0aHJvdWdoMGBhZGRfcHJveHlgLgCoUmVtb3ZlcyBhbnkgY29ycmVzcG9uZGluZyBhbm5vdW5jZW1lbnQocykuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuYQEtIGBmb3JjZV9wcm94eV90eXBlYDogU3BlY2lmeSB0aGUgZXhhY3QgcHJveHkgdHlwZSB0byBiZSB1c2VkIGFuZCBjaGVja2VkIGZvciB0aGlzIGNhbGwu0C0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMudQMEGE9wdGlvbgQEVAF5AwEIEE5vbmUAAAAQU29tZQQAeQMAAAEAAHkDCDhyb2NvY29fcnVudGltZSRQcm94eVR5cGUAASAMQW55AAAALE5vblRyYW5zZmVyAAEAKEdvdmVybmFuY2UAAgBESWRlbnRpdHlKdWRnZW1lbnQAAwAsQ2FuY2VsUHJveHkABAAcQXVjdGlvbgAFABxTb2NpZXR5AAYAQE9uRGVtYW5kT3JkZXJpbmcABwAAfQMMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQQQ2FsbAQEVAABEFBhc19tdWx0aV90aHJlc2hvbGRfMQgBRG90aGVyX3NpZ25hdG9yaWVz0QEBRFZlYzxUOjpBY2NvdW50SWQ+AAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAwUQFJbW1lZGlhdGVseSBkaXNwYXRjaCBhIG11bHRpLXNpZ25hdHVyZSBjYWxsIHVzaW5nIGEgc2luZ2xlIGFwcHJvdmFsIGZyb20gdGhlIGNhbGxlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA9AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUBAW11bHRpLXNpZ25hdHVyZSwgYnV0IGRvIG5vdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYXBwcm92YWwgcHJvY2Vzcy6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgC4UmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0LgA0IyMgQ29tcGxleGl0eRkBTyhaICsgQykgd2hlcmUgWiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBjYWxsIGFuZCBDIGl0cyBleGVjdXRpb24gd2VpZ2h0LiBhc19tdWx0aRQBJHRocmVzaG9sZHkBAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc9EBAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludIEDAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AARBjYWxsgQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAGcVQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuALBJZiB0aGVyZSBhcmUgZW5vdWdoLCB0aGVuIGRpc3BhdGNoIHRoZSBjYWxsLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgAdAU5PVEU6IFVubGVzcyB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgZ2VuZXJhbGx5IHdhbnQgdG8gdXNlGQFgYXBwcm92ZV9hc19tdWx0aWAgaW5zdGVhZCwgc2luY2UgaXQgb25seSByZXF1aXJlcyBhIGhhc2ggb2YgdGhlIGNhbGwuAFkBUmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0IGlmIGB0aHJlc2hvbGRgIGlzIGV4YWN0bHkgYDFgLiBPdGhlcndpc2VVAW9uIHN1Y2Nlc3MsIHJlc3VsdCBpcyBgT2tgIGFuZCB0aGUgcmVzdWx0IGZyb20gdGhlIGludGVyaW9yIGNhbGwsIGlmIGl0IHdhcyBleGVjdXRlZCzcbWF5IGJlIGZvdW5kIGluIHRoZSBkZXBvc2l0ZWQgYE11bHRpc2lnRXhlY3V0ZWRgIGV2ZW50LgA0IyMgQ29tcGxleGl0eVAtIGBPKFMgKyBaICsgQ2FsbClgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLiEBLSBPbmUgY2FsbCBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oWilgIHdoZXJlIGBaYCBpcyB0eC1sZW4uvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50LmwtIFRoZSB3ZWlnaHQgb2YgdGhlIGBjYWxsYC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuQGFwcHJvdmVfYXNfbXVsdGkUASR0aHJlc2hvbGR5AQEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPRAQFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnSBAwGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAJ4VQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANQFOT1RFOiBJZiB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgd2FudCB0byB1c2UgYGFzX211bHRpYCBpbnN0ZWFkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLjxjYW5jZWxfYXNfbXVsdGkQASR0aHJlc2hvbGR5AQEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPRAQFEVmVjPFQ6OkFjY291bnRJZD4AASR0aW1lcG9pbnSFAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABJGNhbGxfaGFzaAQBIFt1ODsgMzJdAANUVQFDYW5jZWwgYSBwcmUtZXhpc3RpbmcsIG9uLWdvaW5nIG11bHRpc2lnIHRyYW5zYWN0aW9uLiBBbnkgZGVwb3NpdCByZXNlcnZlZCBwcmV2aW91c2x5xGZvciB0aGlzIG9wZXJhdGlvbiB3aWxsIGJlIHVucmVzZXJ2ZWQgb24gc3VjY2Vzcy4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5Ll0BLSBgdGltZXBvaW50YDogVGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZCB0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFseHRyYW5zYWN0aW9uIGZvciB0aGlzIGRpc3BhdGNoLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAuMC0gT25lIGV2ZW50LoQtIEkvTzogMSByZWFkIGBPKFMpYCwgb25lIHJlbW92ZS5wLSBTdG9yYWdlOiByZW1vdmVzIG9uZSBpdGVtLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6BAwQYT3B0aW9uBARUAYUDAQgQTm9uZQAAABBTb21lBACFAwAAAQAAhQMIPHBhbGxldF9tdWx0aXNpZyRUaW1lcG9pbnQELEJsb2NrTnVtYmVyARAACAEYaGVpZ2h0EAEsQmxvY2tOdW1iZXIAARRpbmRleBABDHUzMgAAiQMMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQQQ2FsbAQEVAABFDRub3RlX3ByZWltYWdlBAEUYnl0ZXM4ARxWZWM8dTg+AAAQdFJlZ2lzdGVyIGEgcHJlaW1hZ2Ugb24tY2hhaW4uAFUBSWYgdGhlIHByZWltYWdlIHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCwgbm8gZmVlcyBvciBkZXBvc2l0cyBhcmUgdGFrZW4gZm9yIHByb3ZpZGluZ1UBdGhlIHByZWltYWdlLiBPdGhlcndpc2UsIGEgZGVwb3NpdCBpcyB0YWtlbiBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgdGhlIHByZWltYWdlLjx1bm5vdGVfcHJlaW1hZ2UEARBoYXNoNAEcVDo6SGFzaAABGNxDbGVhciBhbiB1bnJlcXVlc3RlZCBwcmVpbWFnZSBmcm9tIHRoZSBydW50aW1lIHN0b3JhZ2UuAPxJZiBgbGVuYCBpcyBwcm92aWRlZCwgdGhlbiBpdCB3aWxsIGJlIGEgbXVjaCBjaGVhcGVyIG9wZXJhdGlvbi4AAQEtIGBoYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByZWltYWdlIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmUuuC0gYGxlbmA6IFRoZSBsZW5ndGggb2YgdGhlIHByZWltYWdlIG9mIGBoYXNoYC5AcmVxdWVzdF9wcmVpbWFnZQQBEGhhc2g0ARxUOjpIYXNoAAIQQQFSZXF1ZXN0IGEgcHJlaW1hZ2UgYmUgdXBsb2FkZWQgdG8gdGhlIGNoYWluIHdpdGhvdXQgcGF5aW5nIGFueSBmZWVzIG9yIGRlcG9zaXRzLgBVAUlmIHRoZSBwcmVpbWFnZSByZXF1ZXN0cyBoYXMgYWxyZWFkeSBiZWVuIHByb3ZpZGVkIG9uLWNoYWluLCB3ZSB1bnJlc2VydmUgYW55IGRlcG9zaXQ5AWEgdXNlciBtYXkgaGF2ZSBwYWlkLCBhbmQgdGFrZSB0aGUgY29udHJvbCBvZiB0aGUgcHJlaW1hZ2Ugb3V0IG9mIHRoZWlyIGhhbmRzLkh1bnJlcXVlc3RfcHJlaW1hZ2UEARBoYXNoNAEcVDo6SGFzaAADDLxDbGVhciBhIHByZXZpb3VzbHkgbWFkZSByZXF1ZXN0IGZvciBhIHByZWltYWdlLgAtAU5PVEU6IFRISVMgTVVTVCBOT1QgQkUgQ0FMTEVEIE9OIGBoYXNoYCBNT1JFIFRJTUVTIFRIQU4gYHJlcXVlc3RfcHJlaW1hZ2VgLjhlbnN1cmVfdXBkYXRlZAQBGGhhc2hlc40DATBWZWM8VDo6SGFzaD4ABAzERW5zdXJlIHRoYXQgdGhlIGEgYnVsayBvZiBwcmUtaW1hZ2VzIGlzIHVwZ3JhZGVkLgA9AVRoZSBjYWxsZXIgcGF5cyBubyBmZWUgaWYgYXQgbGVhc3QgOTAlIG9mIHByZS1pbWFnZXMgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMujQMAAAI0AJEDDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQQQ2FsbAQEVAABDBhjcmVhdGUIAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRllQMBJEZpeGVkVTEyOAAAEA0BSW5pdGlhbGl6ZSBhIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYdXBkYXRlCAEoYXNzZXRfa2luZOABREJveDxUOjpBc3NldEtpbmQ+AAEQcmF0ZZUDASRGaXhlZFUxMjgAARAFAVVwZGF0ZSB0aGUgY29udmVyc2lvbiByYXRlIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQuADQjIyBDb21wbGV4aXR5GC0gTygxKRhyZW1vdmUEAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AAhAlAVJlbW92ZSBhbiBleGlzdGluZyBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgZm9yIHRoZSBnaXZlbiBhc3NldC4ANCMjIENvbXBsZXhpdHkYLSBPKDEpBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpUDDDRzcF9hcml0aG1ldGljLGZpeGVkX3BvaW50JEZpeGVkVTEyOAAABAAYARB1MTI4AACZAww8cGFsbGV0X2JvdW50aWVzGHBhbGxldBBDYWxsCARUAARJAAEkOHByb3Bvc2VfYm91bnR5CAEUdmFsdWUBAQE8QmFsYW5jZU9mPFQsIEk+AAEsZGVzY3JpcHRpb244ARxWZWM8dTg+AAAwVFByb3Bvc2UgYSBuZXcgYm91bnR5LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFEBUGF5bWVudDogYFRpcFJlcG9ydERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGZyb20gdGhlIG9yaWdpbiBhY2NvdW50LCBhcyB3ZWxsIGFzUQFgRGF0YURlcG9zaXRQZXJCeXRlYCBmb3IgZWFjaCBieXRlIGluIGByZWFzb25gLiBJdCB3aWxsIGJlIHVucmVzZXJ2ZWQgdXBvbiBhcHByb3ZhbCxkb3Igc2xhc2hlZCB3aGVuIHJlamVjdGVkLgD4LSBgY3VyYXRvcmA6IFRoZSBjdXJhdG9yIGFjY291bnQgd2hvbSB3aWxsIG1hbmFnZSB0aGlzIGJvdW50eS5kLSBgZmVlYDogVGhlIGN1cmF0b3IgZmVlLiUBLSBgdmFsdWVgOiBUaGUgdG90YWwgcGF5bWVudCBhbW91bnQgb2YgdGhpcyBib3VudHksIGN1cmF0b3IgZmVlIGluY2x1ZGVkLsAtIGBkZXNjcmlwdGlvbmA6IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGJvdW50eS44YXBwcm92ZV9ib3VudHkEASRib3VudHlfaWTwASxCb3VudHlJbmRleAABHF0BQXBwcm92ZSBhIGJvdW50eSBwcm9wb3NhbC4gQXQgYSBsYXRlciB0aW1lLCB0aGUgYm91bnR5IHdpbGwgYmUgZnVuZGVkIGFuZCBiZWNvbWUgYWN0aXZlqGFuZCB0aGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIGJlIHJldHVybmVkLgCkTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFQ6OlNwZW5kT3JpZ2luYC4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjxwcm9wb3NlX2N1cmF0b3IMASRib3VudHlfaWTwASxCb3VudHlJbmRleAABHGN1cmF0b3LBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAQxmZWUBAQE8QmFsYW5jZU9mPFQsIEk+AAIYlFByb3Bvc2UgYSBjdXJhdG9yIHRvIGEgZnVuZGVkIGJvdW50eS4ApE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIGBUOjpTcGVuZE9yaWdpbmAuADQjIyBDb21wbGV4aXR5HC0gTygxKS5AdW5hc3NpZ25fY3VyYXRvcgQBJGJvdW50eV9pZPABLEJvdW50eUluZGV4AANEfFVuYXNzaWduIGN1cmF0b3IgZnJvbSBhIGJvdW50eS4AHQFUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgYFJlamVjdE9yaWdpbmAgYSBzaWduZWQgb3JpZ2luLgA9AUlmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBgUmVqZWN0T3JpZ2luYCwgd2UgYXNzdW1lIHRoYXQgdGhlIGN1cmF0b3IgaXMxAW1hbGljaW91cyBvciBpbmFjdGl2ZS4gQXMgYSByZXN1bHQsIHdlIHdpbGwgc2xhc2ggdGhlIGN1cmF0b3Igd2hlbiBwb3NzaWJsZS4AYQFJZiB0aGUgb3JpZ2luIGlzIHRoZSBjdXJhdG9yLCB3ZSB0YWtlIHRoaXMgYXMgYSBzaWduIHRoZXkgYXJlIHVuYWJsZSB0byBkbyB0aGVpciBqb2IgYW5kXQF0aGV5IHdpbGxpbmdseSBnaXZlIHVwLiBXZSBjb3VsZCBzbGFzaCB0aGVtLCBidXQgZm9yIG5vdyB3ZSBhbGxvdyB0aGVtIHRvIHJlY292ZXIgdGhlaXI1AWRlcG9zaXQgYW5kIGV4aXQgd2l0aG91dCBpc3N1ZS4gKFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGlmIGl0IGlzIGFidXNlZC4pAF0BRmluYWxseSwgdGhlIG9yaWdpbiBjYW4gYmUgYW55b25lIGlmIGFuZCBvbmx5IGlmIHRoZSBjdXJhdG9yIGlzICJpbmFjdGl2ZSIuIFRoaXMgYWxsb3dzYQFhbnlvbmUgaW4gdGhlIGNvbW11bml0eSB0byBjYWxsIG91dCB0aGF0IGEgY3VyYXRvciBpcyBub3QgZG9pbmcgdGhlaXIgZHVlIGRpbGlnZW5jZSwgYW5kOQF3ZSBzaG91bGQgcGljayBhIG5ldyBjdXJhdG9yLiBJbiB0aGlzIGNhc2UgdGhlIGN1cmF0b3Igc2hvdWxkIGFsc28gYmUgc2xhc2hlZC4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjhhY2NlcHRfY3VyYXRvcgQBJGJvdW50eV9pZPABLEJvdW50eUluZGV4AAQclEFjY2VwdCB0aGUgY3VyYXRvciByb2xlIGZvciBhIGJvdW50eS4pAUEgZGVwb3NpdCB3aWxsIGJlIHJlc2VydmVkIGZyb20gY3VyYXRvciBhbmQgcmVmdW5kIHVwb24gc3VjY2Vzc2Z1bCBwYXlvdXQuAJBNYXkgb25seSBiZSBjYWxsZWQgZnJvbSB0aGUgY3VyYXRvci4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjBhd2FyZF9ib3VudHkIASRib3VudHlfaWTwASxCb3VudHlJbmRleAABLGJlbmVmaWNpYXJ5wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAUoWQFBd2FyZCBib3VudHkgdG8gYSBiZW5lZmljaWFyeSBhY2NvdW50LiBUaGUgYmVuZWZpY2lhcnkgd2lsbCBiZSBhYmxlIHRvIGNsYWltIHRoZSBmdW5kczhhZnRlciBhIGRlbGF5LgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBjdXJhdG9yIG9mIHRoaXMgYm91bnR5LgCILSBgYm91bnR5X2lkYDogQm91bnR5IElEIHRvIGF3YXJkLhkBLSBgYmVuZWZpY2lhcnlgOiBUaGUgYmVuZWZpY2lhcnkgYWNjb3VudCB3aG9tIHdpbGwgcmVjZWl2ZSB0aGUgcGF5b3V0LgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuMGNsYWltX2JvdW50eQQBJGJvdW50eV9pZPABLEJvdW50eUluZGV4AAYg7ENsYWltIHRoZSBwYXlvdXQgZnJvbSBhbiBhd2FyZGVkIGJvdW50eSBhZnRlciBwYXlvdXQgZGVsYXkuACUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGJlbmVmaWNpYXJ5IG9mIHRoaXMgYm91bnR5LgCILSBgYm91bnR5X2lkYDogQm91bnR5IElEIHRvIGNsYWltLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuMGNsb3NlX2JvdW50eQQBJGJvdW50eV9pZPABLEJvdW50eUluZGV4AAckOQFDYW5jZWwgYSBwcm9wb3NlZCBvciBhY3RpdmUgYm91bnR5LiBBbGwgdGhlIGZ1bmRzIHdpbGwgYmUgc2VudCB0byB0cmVhc3VyeSBhbmTMdGhlIGN1cmF0b3IgZGVwb3NpdCB3aWxsIGJlIHVucmVzZXJ2ZWQgaWYgcG9zc2libGUuAMhPbmx5IGBUOjpSZWplY3RPcmlnaW5gIGlzIGFibGUgdG8gY2FuY2VsIGEgYm91bnR5LgCMLSBgYm91bnR5X2lkYDogQm91bnR5IElEIHRvIGNhbmNlbC4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLlBleHRlbmRfYm91bnR5X2V4cGlyeQgBJGJvdW50eV9pZPABLEJvdW50eUluZGV4AAEYcmVtYXJrOAEcVmVjPHU4PgAIJKxFeHRlbmQgdGhlIGV4cGlyeSB0aW1lIG9mIGFuIGFjdGl2ZSBib3VudHkuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGN1cmF0b3Igb2YgdGhpcyBib3VudHkuAIwtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gZXh0ZW5kLowtIGByZW1hcmtgOiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLp0DDFRwYWxsZXRfY2hpbGRfYm91bnRpZXMYcGFsbGV0EENhbGwEBFQAARxAYWRkX2NoaWxkX2JvdW50eQwBQHBhcmVudF9ib3VudHlfaWTwASxCb3VudHlJbmRleAABFHZhbHVlAQEBMEJhbGFuY2VPZjxUPgABLGRlc2NyaXB0aW9uOAEcVmVjPHU4PgAATFxBZGQgYSBuZXcgY2hpbGQtYm91bnR5LgD8VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGN1cmF0b3Igb2YgcGFyZW503GJvdW50eSBhbmQgdGhlIHBhcmVudCBib3VudHkgbXVzdCBiZSBpbiAiYWN0aXZlIiBzdGF0ZS4ABQFDaGlsZC1ib3VudHkgZ2V0cyBhZGRlZCBzdWNjZXNzZnVsbHkgJiBmdW5kIGdldHMgdHJhbnNmZXJyZWQgZnJvbQkBcGFyZW50IGJvdW50eSB0byBjaGlsZC1ib3VudHkgYWNjb3VudCwgaWYgcGFyZW50IGJvdW50eSBoYXMgZW5vdWdobGZ1bmRzLCBlbHNlIHRoZSBjYWxsIGZhaWxzLgANAVVwcGVyIGJvdW5kIHRvIG1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSAgY2hpbGQgYm91bnRpZXMgdGhhdCBjYW4gYmWoYWRkZWQgYXJlIG1hbmFnZWQgdmlhIHJ1bnRpbWUgdHJhaXQgY29uZmlnmFtgQ29uZmlnOjpNYXhBY3RpdmVDaGlsZEJvdW50eUNvdW50YF0uAAEBSWYgdGhlIGNhbGwgaXMgc3VjY2VzcywgdGhlIHN0YXR1cyBvZiBjaGlsZC1ib3VudHkgaXMgdXBkYXRlZCB0byAiQWRkZWQiLgBNAS0gYHBhcmVudF9ib3VudHlfaWRgOiBJbmRleCBvZiBwYXJlbnQgYm91bnR5IGZvciB3aGljaCBjaGlsZC1ib3VudHkgaXMgYmVpbmcgYWRkZWQusC0gYHZhbHVlYDogVmFsdWUgZm9yIGV4ZWN1dGluZyB0aGUgcHJvcG9zYWwu3C0gYGRlc2NyaXB0aW9uYDogVGV4dCBkZXNjcmlwdGlvbiBmb3IgdGhlIGNoaWxkLWJvdW50eS48cHJvcG9zZV9jdXJhdG9yEAFAcGFyZW50X2JvdW50eV9pZPABLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lk8AEsQm91bnR5SW5kZXgAARxjdXJhdG9ywQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEMZmVlAQEBMEJhbGFuY2VPZjxUPgABPKBQcm9wb3NlIGN1cmF0b3IgZm9yIGZ1bmRlZCBjaGlsZC1ib3VudHkuAA0BVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgY3VyYXRvciBvZiBwYXJlbnQgYm91bnR5LgARAVBhcmVudCBib3VudHkgbXVzdCBiZSBpbiBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNoaWxkLWJvdW50eSBjYWxsIHRvFHdvcmsuAA0BQ2hpbGQtYm91bnR5IG11c3QgYmUgaW4gIkFkZGVkIiBzdGF0ZSwgZm9yIHByb2Nlc3NpbmcgdGhlIGNhbGwuIEFuZAUBc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIG1vdmVkIHRvICJDdXJhdG9yUHJvcG9zZWQiIG9uIHN1Y2Nlc3NmdWxAY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS60LSBgY3VyYXRvcmA6IEFkZHJlc3Mgb2YgY2hpbGQtYm91bnR5IGN1cmF0b3Iu7C0gYGZlZWA6IHBheW1lbnQgZmVlIHRvIGNoaWxkLWJvdW50eSBjdXJhdG9yIGZvciBleGVjdXRpb24uOGFjY2VwdF9jdXJhdG9yCAFAcGFyZW50X2JvdW50eV9pZPABLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lk8AEsQm91bnR5SW5kZXgAAky0QWNjZXB0IHRoZSBjdXJhdG9yIHJvbGUgZm9yIHRoZSBjaGlsZC1ib3VudHkuAPRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY3VyYXRvciBvZiB0aGlzNGNoaWxkLWJvdW50eS4A7EEgZGVwb3NpdCB3aWxsIGJlIHJlc2VydmVkIGZyb20gdGhlIGN1cmF0b3IgYW5kIHJlZnVuZCB1cG9uiHN1Y2Nlc3NmdWwgcGF5b3V0IG9yIGNhbmNlbGxhdGlvbi4A+EZlZSBmb3IgY3VyYXRvciBpcyBkZWR1Y3RlZCBmcm9tIGN1cmF0b3IgZmVlIG9mIHBhcmVudCBib3VudHkuABEBUGFyZW50IGJvdW50eSBtdXN0IGJlIGluIGFjdGl2ZSBzdGF0ZSwgZm9yIHRoaXMgY2hpbGQtYm91bnR5IGNhbGwgdG8Ud29yay4ADQFDaGlsZC1ib3VudHkgbXVzdCBiZSBpbiAiQ3VyYXRvclByb3Bvc2VkIiBzdGF0ZSwgZm9yIHByb2Nlc3NpbmcgdGhlCQFjYWxsLiBBbmQgc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIG1vdmVkIHRvICJBY3RpdmUiIG9uIHN1Y2Nlc3NmdWxAY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS5AdW5hc3NpZ25fY3VyYXRvcggBQHBhcmVudF9ib3VudHlfaWTwASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZPABLEJvdW50eUluZGV4AAOIlFVuYXNzaWduIGN1cmF0b3IgZnJvbSBhIGNoaWxkLWJvdW50eS4ACQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgY2FuIGJlIGVpdGhlciBgUmVqZWN0T3JpZ2luYCwgb3LcdGhlIGN1cmF0b3Igb2YgdGhlIHBhcmVudCBib3VudHksIG9yIGFueSBzaWduZWQgb3JpZ2luLgD4Rm9yIHRoZSBvcmlnaW4gb3RoZXIgdGhhbiBUOjpSZWplY3RPcmlnaW4gYW5kIHRoZSBjaGlsZC1ib3VudHkBAWN1cmF0b3IsIHBhcmVudCBib3VudHkgbXVzdCBiZSBpbiBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNhbGwgdG8JAXdvcmsuIFdlIGFsbG93IGNoaWxkLWJvdW50eSBjdXJhdG9yIGFuZCBUOjpSZWplY3RPcmlnaW4gdG8gZXhlY3V0Zch0aGlzIGNhbGwgaXJyZXNwZWN0aXZlIG9mIHRoZSBwYXJlbnQgYm91bnR5IHN0YXRlLgDcSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIGBSZWplY3RPcmlnaW5gIG9yIHRoZQUBcGFyZW50IGJvdW50eSBjdXJhdG9yLCB3ZSBhc3N1bWUgdGhhdCB0aGUgY2hpbGQtYm91bnR5IGN1cmF0b3IgaXMNAW1hbGljaW91cyBvciBpbmFjdGl2ZS4gQXMgYSByZXN1bHQsIGNoaWxkLWJvdW50eSBjdXJhdG9yIGRlcG9zaXQgaXMgc2xhc2hlZC4ABQFJZiB0aGUgb3JpZ2luIGlzIHRoZSBjaGlsZC1ib3VudHkgY3VyYXRvciwgd2UgdGFrZSB0aGlzIGFzIGEgc2lnbgkBdGhhdCB0aGV5IGFyZSB1bmFibGUgdG8gZG8gdGhlaXIgam9iLCBhbmQgYXJlIHdpbGxpbmdseSBnaXZpbmcgdXAuCQFXZSBjb3VsZCBzbGFzaCB0aGUgZGVwb3NpdCwgYnV0IGZvciBub3cgd2UgYWxsb3cgdGhlbSB0byB1bnJlc2VydmURAXRoZWlyIGRlcG9zaXQgYW5kIGV4aXQgd2l0aG91dCBpc3N1ZS4gKFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGlmOGl0IGlzIGFidXNlZC4pAAUBRmluYWxseSwgdGhlIG9yaWdpbiBjYW4gYmUgYW55b25lIGlmZiB0aGUgY2hpbGQtYm91bnR5IGN1cmF0b3IgaXMJASJpbmFjdGl2ZSIuIEV4cGlyeSB1cGRhdGUgZHVlIG9mIHBhcmVudCBib3VudHkgaXMgdXNlZCB0byBlc3RpbWF0ZZxpbmFjdGl2ZSBzdGF0ZSBvZiBjaGlsZC1ib3VudHkgY3VyYXRvci4ADQFUaGlzIGFsbG93cyBhbnlvbmUgaW4gdGhlIGNvbW11bml0eSB0byBjYWxsIG91dCB0aGF0IGEgY2hpbGQtYm91bnR5CQFjdXJhdG9yIGlzIG5vdCBkb2luZyB0aGVpciBkdWUgZGlsaWdlbmNlLCBhbmQgd2Ugc2hvdWxkIHBpY2sgYSBuZXf4b25lLiBJbiB0aGlzIGNhc2UgdGhlIGNoaWxkLWJvdW50eSBjdXJhdG9yIGRlcG9zaXQgaXMgc2xhc2hlZC4AAQFTdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgbW92ZWQgdG8gQWRkZWQgc3RhdGUgb24gc3VjY2Vzc2Z1bCBjYWxsLGNvbXBsZXRpb24uALQtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQgYm91bnR5Lkhhd2FyZF9jaGlsZF9ib3VudHkMAUBwYXJlbnRfYm91bnR5X2lk8AEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTwASxCb3VudHlJbmRleAABLGJlbmVmaWNpYXJ5wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAREkEF3YXJkIGNoaWxkLWJvdW50eSB0byBhIGJlbmVmaWNpYXJ5LgD4VGhlIGJlbmVmaWNpYXJ5IHdpbGwgYmUgYWJsZSB0byBjbGFpbSB0aGUgZnVuZHMgYWZ0ZXIgYSBkZWxheS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBwYXJlbnQgY3VyYXRvciBvcnRjdXJhdG9yIG9mIHRoaXMgY2hpbGQtYm91bnR5LgARAVBhcmVudCBib3VudHkgbXVzdCBiZSBpbiBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNoaWxkLWJvdW50eSBjYWxsIHRvFHdvcmsuAAkBQ2hpbGQtYm91bnR5IG11c3QgYmUgaW4gYWN0aXZlIHN0YXRlLCBmb3IgcHJvY2Vzc2luZyB0aGUgY2FsbC4gQW5kEQFzdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgbW92ZWQgdG8gIlBlbmRpbmdQYXlvdXQiIG9uIHN1Y2Nlc3NmdWwgY2FsbCxjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS6ULSBgYmVuZWZpY2lhcnlgOiBCZW5lZmljaWFyeSBhY2NvdW50LkhjbGFpbV9jaGlsZF9ib3VudHkIAUBwYXJlbnRfYm91bnR5X2lk8AEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTwASxCb3VudHlJbmRleAAFQAUBQ2xhaW0gdGhlIHBheW91dCBmcm9tIGFuIGF3YXJkZWQgY2hpbGQtYm91bnR5IGFmdGVyIHBheW91dCBkZWxheS4A7FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtYXkgYmUgYW55IHNpZ25lZCBvcmlnaW4uAAUBQ2FsbCB3b3JrcyBpbmRlcGVuZGVudCBvZiBwYXJlbnQgYm91bnR5IHN0YXRlLCBObyBuZWVkIGZvciBwYXJlbnR0Ym91bnR5IHRvIGJlIGluIGFjdGl2ZSBzdGF0ZS4AEQFUaGUgQmVuZWZpY2lhcnkgaXMgcGFpZCBvdXQgd2l0aCBhZ3JlZWQgYm91bnR5IHZhbHVlLiBDdXJhdG9yIGZlZSBpc5RwYWlkICYgY3VyYXRvciBkZXBvc2l0IGlzIHVucmVzZXJ2ZWQuAAUBQ2hpbGQtYm91bnR5IG11c3QgYmUgaW4gIlBlbmRpbmdQYXlvdXQiIHN0YXRlLCBmb3IgcHJvY2Vzc2luZyB0aGX8Y2FsbC4gQW5kIGluc3RhbmNlIG9mIGNoaWxkLWJvdW50eSBpcyByZW1vdmVkIGZyb20gdGhlIHN0YXRlIG9ubHN1Y2Nlc3NmdWwgY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS5IY2xvc2VfY2hpbGRfYm91bnR5CAFAcGFyZW50X2JvdW50eV9pZPABLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lk8AEsQm91bnR5SW5kZXgABlgRAUNhbmNlbCBhIHByb3Bvc2VkIG9yIGFjdGl2ZSBjaGlsZC1ib3VudHkuIENoaWxkLWJvdW50eSBhY2NvdW50IGZ1bmRzCQFhcmUgdHJhbnNmZXJyZWQgdG8gcGFyZW50IGJvdW50eSBhY2NvdW50LiBUaGUgY2hpbGQtYm91bnR5IGN1cmF0b3KYZGVwb3NpdCBtYXkgYmUgdW5yZXNlcnZlZCBpZiBwb3NzaWJsZS4ACQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBlaXRoZXIgcGFyZW50IGN1cmF0b3Igb3JIYFQ6OlJlamVjdE9yaWdpbmAuAPBJZiB0aGUgc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIGBBY3RpdmVgLCBjdXJhdG9yIGRlcG9zaXQgaXMsdW5yZXNlcnZlZC4A9ElmIHRoZSBzdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgYFBlbmRpbmdQYXlvdXRgLCBjYWxsIGZhaWxzICZ4cmV0dXJucyBgUGVuZGluZ1BheW91dGAgZXJyb3IuAA0BRm9yIHRoZSBvcmlnaW4gb3RoZXIgdGhhbiBUOjpSZWplY3RPcmlnaW4sIHBhcmVudCBib3VudHkgbXVzdCBiZSBpbvBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNoaWxkLWJvdW50eSBjYWxsIHRvIHdvcmsuIEZvciBvcmlnaW6QVDo6UmVqZWN0T3JpZ2luIGV4ZWN1dGlvbiBpcyBmb3JjZWQuAAEBSW5zdGFuY2Ugb2YgY2hpbGQtYm91bnR5IGlzIHJlbW92ZWQgZnJvbSB0aGUgc3RhdGUgb24gc3VjY2Vzc2Z1bEBjYWxsIGNvbXBsZXRpb24uALQtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQgYm91bnR5LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6hAwwocGFsbGV0X25pcxhwYWxsZXQQQ2FsbAQEVAABHCRwbGFjZV9iaWQIARhhbW91bnQBAQEwQmFsYW5jZU9mPFQ+AAEgZHVyYXRpb24QAQx1MzIAACwwUGxhY2UgYSBiaWQuAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkLCBhbmQgYWNjb3VudCBtdXN0IGhhdmUgYXQgbGVhc3QgYGFtb3VudGAgaW4gZnJlZSBiYWxhbmNlLgAxAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgdGhlIGJpZDsgdGhlc2UgZnVuZHMgd2lsbCBiZSByZXNlcnZlZCwgYW5kIGlmL3doZW7MICBjb25zb2xpZGF0ZWQsIHJlbW92ZWQuIE11c3QgYmUgYXQgbGVhc3QgYE1pbkJpZGAuSQEtIGBkdXJhdGlvbmA6IFRoZSBudW1iZXIgb2YgcGVyaW9kcyBiZWZvcmUgd2hpY2ggdGhlIG5ld2x5IGNvbnNvbGlkYXRlZCBiaWQgbWF5IGJl/CAgdGhhd2VkLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIGFuZCBubyBtb3JlIHRoYW4gYFF1ZXVlQ291bnRgLgA0Q29tcGxleGl0aWVzOqwtIGBRdWV1ZXNbZHVyYXRpb25dLmxlbigpYCAoanVzdCB0YWtlIG1heCkuLHJldHJhY3RfYmlkCAEYYW1vdW50AQEBMEJhbGFuY2VPZjxUPgABIGR1cmF0aW9uEAEMdTMyAAEcgFJldHJhY3QgYSBwcmV2aW91c2x5IHBsYWNlZCBiaWQuAF0BT3JpZ2luIG11c3QgYmUgU2lnbmVkLCBhbmQgdGhlIGFjY291bnQgc2hvdWxkIGhhdmUgcHJldmlvdXNseSBpc3N1ZWQgYSBzdGlsbC1hY3RpdmUgYmlkbG9mIGBhbW91bnRgIGZvciBgZHVyYXRpb25gLgCsLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiB0aGUgcHJldmlvdXMgYmlkLrwtIGBkdXJhdGlvbmA6IFRoZSBkdXJhdGlvbiBvZiB0aGUgcHJldmlvdXMgYmlkLjBmdW5kX2RlZmljaXQAAgzwRW5zdXJlIHdlIGhhdmUgc3VmZmljaWVudCBmdW5kaW5nIGZvciBhbGwgcG90ZW50aWFsIHBheW91dHMuALQtIGBvcmlnaW5gOiBNdXN0IGJlIGFjY2VwdGVkIGJ5IGBGdW5kT3JpZ2luYC4wdGhhd19wcml2YXRlCAEUaW5kZXjwATBSZWNlaXB0SW5kZXgAAUBtYXliZV9wcm9wb3J0aW9u5QEBTE9wdGlvbjxQZXJxdWludGlsbD4AAyBdAVJlZHVjZSBvciByZW1vdmUgYW4gb3V0c3RhbmRpbmcgcmVjZWlwdCwgcGxhY2luZyB0aGUgYWNjb3JkaW5nIHByb3BvcnRpb24gb2YgZnVuZHMgaW50b2R0aGUgYWNjb3VudCBvZiB0aGUgb3duZXIuAFkBLSBgb3JpZ2luYDogTXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSByZWNlaXB0IGBpbmRleGAgYXOMICB3ZWxsIGFzIGFueSBmdW5naWJsZSBjb3VudGVycGFydC6QLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlY2VpcHQuXQEtIGBwb3J0aW9uYDogSWYgYFNvbWVgLCB0aGVuIG9ubHkgdGhlIGdpdmVuIHBvcnRpb24gb2YgdGhlIHJlY2VpcHQgc2hvdWxkIGJlIHRoYXdlZC4gSWaMICBgTm9uZWAsIHRoZW4gYWxsIG9mIGl0IHNob3VsZCBiZS40dGhhd19jb21tdW5hbAQBFGluZGV48AEwUmVjZWlwdEluZGV4AAQYXQFSZWR1Y2Ugb3IgcmVtb3ZlIGFuIG91dHN0YW5kaW5nIHJlY2VpcHQsIHBsYWNpbmcgdGhlIGFjY29yZGluZyBwcm9wb3J0aW9uIG9mIGZ1bmRzIGludG9kdGhlIGFjY291bnQgb2YgdGhlIG93bmVyLgBhAS0gYG9yaWdpbmA6IE11c3QgYmUgU2lnbmVkIGFuZCB0aGUgYWNjb3VudCBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUgZnVuZ2libGUgY291bnRlcnBhcnRYICBmb3IgcmVjZWlwdCBgaW5kZXhgLpAtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVjZWlwdC4kY29tbXVuaWZ5BAEUaW5kZXjwATBSZWNlaXB0SW5kZXgABQQ9AU1ha2UgYSBwcml2YXRlIHJlY2VpcHQgY29tbXVuYWwgYW5kIGNyZWF0ZSBmdW5naWJsZSBjb3VudGVycGFydHMgZm9yIGl0cyBvd25lci4kcHJpdmF0aXplBAEUaW5kZXjwATBSZWNlaXB0SW5kZXgABgQ5AU1ha2UgYSBjb21tdW5hbCByZWNlaXB0IHByaXZhdGUgYW5kIGJ1cm4gZnVuZ2libGUgY291bnRlcnBhcnRzIGZyb20gaXRzIG93bmVyLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6lAww8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBBDYWxsCARUAARJAAEkUHRyYW5zZmVyX2FsbG93X2RlYXRoCAEQZGVzdMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlAQEBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2XBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0wQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWUBAQEoVDo6QmFsYW5jZQACCGEBRXhhY3RseSBhcyBgdHJhbnNmZXJfYWxsb3dfZGVhdGhgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2UgYWNjb3VudERtYXkgYmUgc3BlY2lmaWVkLkx0cmFuc2Zlcl9rZWVwX2FsaXZlCAEQZGVzdMEBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlAQEBKFQ6OkJhbGFuY2UAAxhZAVNhbWUgYXMgdGhlIFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBjYWxsLCBidXQgd2l0aCBhIGNoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHdpbGwgbm90YGtpbGwgdGhlIG9yaWdpbiBhY2NvdW50LgDoOTklIG9mIHRoZSB0aW1lIHlvdSB3YW50IFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBpbnN0ZWFkLgDwW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdOiBzdHJ1Y3QuUGFsbGV0Lmh0bWwjbWV0aG9kLnRyYW5zZmVyMHRyYW5zZmVyX2FsbAgBEGRlc3TBAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShrZWVwX2FsaXZlIAEQYm9vbAAEPAUBVHJhbnNmZXIgdGhlIGVudGlyZSB0cmFuc2ZlcmFibGUgYmFsYW5jZSBmcm9tIHRoZSBjYWxsZXIgYWNjb3VudC4AWQFOT1RFOiBUaGlzIGZ1bmN0aW9uIG9ubHkgYXR0ZW1wdHMgdG8gdHJhbnNmZXIgX3RyYW5zZmVyYWJsZV8gYmFsYW5jZXMuIFRoaXMgbWVhbnMgdGhhdGEBYW55IGxvY2tlZCwgcmVzZXJ2ZWQsIG9yIGV4aXN0ZW50aWFsIGRlcG9zaXRzICh3aGVuIGBrZWVwX2FsaXZlYCBpcyBgdHJ1ZWApLCB3aWxsIG5vdCBiZV0BdHJhbnNmZXJyZWQgYnkgdGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVkIGFjY291bnQsRQF5b3UgbWlnaHQgbmVlZCB0byBwcmVwYXJlIHRoZSBhY2NvdW50IGJ5IHJlbW92aW5nIGFueSByZWZlcmVuY2UgY291bnRlcnMsIHN0b3JhZ2VAZGVwb3NpdHMsIGV0Yy4uLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBTaWduZWQuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIuWQEtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbE0BICBvZiB0aGUgZnVuZHMgdGhlIGFjY291bnQgaGFzLCBjYXVzaW5nIHRoZSBzZW5kZXIgYWNjb3VudCB0byBiZSBraWxsZWQgKGZhbHNlKSwgb3JZASAgdHJhbnNmZXIgZXZlcnl0aGluZyBleGNlcHQgYXQgbGVhc3QgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQsIHdoaWNoIHdpbGwgZ3VhcmFudGVlIHRvnCAga2VlcCB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUgKHRydWUpLjxmb3JjZV91bnJlc2VydmUIAQx3aG/BAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnQYAShUOjpCYWxhbmNlAAUMsFVucmVzZXJ2ZSBzb21lIGJhbGFuY2UgZnJvbSBhIHVzZXIgYnkgZm9yY2UuAGxDYW4gb25seSBiZSBjYWxsZWQgYnkgUk9PVC5AdXBncmFkZV9hY2NvdW50cwQBDHdob9EBAURWZWM8VDo6QWNjb3VudElkPgAGIHBVcGdyYWRlIGEgc3BlY2lmaWVkIGFjY291bnQuAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1cGdyYWRlZC4AVQFUaGlzIHdpbGwgd2FpdmUgdGhlIHRyYW5zYWN0aW9uIGZlZSBpZiBhdCBsZWFzdCBhbGwgYnV0IDEwJSBvZiB0aGUgYWNjb3VudHMgbmVlZGVkIHRvQQFiZSB1cGdyYWRlZC4gKFdlIGxldCBzb21lIG5vdCBoYXZlIHRvIGJlIHVwZ3JhZGVkIGp1c3QgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZVhwb3NzaWJpbGl0eSBvZiBjaHVybikuRGZvcmNlX3NldF9iYWxhbmNlCAEMd2hvwQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgbmV3X2ZyZWUBAQEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb27VAQFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRhAQEBKFQ6OkJhbGFuY2UACRS4QWRqdXN0IHRoZSB0b3RhbCBpc3N1YW5jZSBpbiBhIHNhdHVyYXRpbmcgd2F5LgD8Q2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHJvb3QgYW5kIGFsd2F5cyBuZWVkcyBhIHBvc2l0aXZlIGBkZWx0YWAuACQjIEV4YW1wbGUQYnVybggBFHZhbHVlAQEBKFQ6OkJhbGFuY2UAAShrZWVwX2FsaXZlIAEQYm9vbAAKHPxCdXJuIHRoZSBzcGVjaWZpZWQgbGlxdWlkIGZyZWUgYmFsYW5jZSBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudC4AJQFJZiB0aGUgb3JpZ2luJ3MgYWNjb3VudCBlbmRzIHVwIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0CQFvZiB0aGUgYnVybiBhbmQgYGtlZXBfYWxpdmVgIGlzIGZhbHNlLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AUQFVbmxpa2Ugc2VuZGluZyBmdW5kcyB0byBhIF9idXJuXyBhZGRyZXNzLCB3aGljaCBtZXJlbHkgbWFrZXMgdGhlIGZ1bmRzIGluYWNjZXNzaWJsZSwhAXRoaXMgYGJ1cm5gIG9wZXJhdGlvbiB3aWxsIHJlZHVjZSB0b3RhbCBpc3N1YW5jZSBieSB0aGUgYW1vdW50IF9idXJuZWRfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6pAxBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zNGNvbmZpZ3VyYXRpb24YcGFsbGV0EENhbGwEBFQAAcB8c2V0X3ZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bgQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+AAAEkFNldCB0aGUgdmFsaWRhdGlvbiB1cGdyYWRlIGNvb2xkb3duLnBzZXRfdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5BAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4AAQSEU2V0IHRoZSB2YWxpZGF0aW9uIHVwZ3JhZGUgZGVsYXkuZHNldF9jb2RlX3JldGVudGlvbl9wZXJpb2QEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgACBNBTZXQgdGhlIGFjY2VwdGFuY2UgcGVyaW9kIGZvciBhbiBpbmNsdWRlZCBjYW5kaWRhdGUuRHNldF9tYXhfY29kZV9zaXplBAEMbmV3EAEMdTMyAAME3FNldCB0aGUgbWF4IHZhbGlkYXRpb24gY29kZSBzaXplIGZvciBpbmNvbWluZyB1cGdyYWRlcy5Ac2V0X21heF9wb3Zfc2l6ZQQBDG5ldxABDHUzMgAEBMRTZXQgdGhlIG1heCBQT1YgYmxvY2sgc2l6ZSBmb3IgaW5jb21pbmcgdXBncmFkZXMuWHNldF9tYXhfaGVhZF9kYXRhX3NpemUEAQxuZXcQAQx1MzIABQSUU2V0IHRoZSBtYXggaGVhZCBkYXRhIHNpemUgZm9yIHBhcmFzLkhzZXRfY29yZXRpbWVfY29yZXMEAQxuZXcQAQx1MzIABhCsU2V0IHRoZSBudW1iZXIgb2YgY29yZXRpbWUgZXhlY3V0aW9uIGNvcmVzLgBRAU5PVEU6IHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIGlzIG1hbmFnZWQgYnkgdGhlIGNvcmV0aW1lIGNoYWluLiBPbmx5IG1hbnVhbGx5IGNoYW5nZbB0aGlzLCBpZiB5b3UgcmVhbGx5IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIXRzZXRfbWF4X2F2YWlsYWJpbGl0eV90aW1lb3V0cwQBDG5ldxABDHUzMgAHBEEBU2V0IHRoZSBtYXggbnVtYmVyIG9mIHRpbWVzIGEgY2xhaW0gbWF5IHRpbWVvdXQgb24gYSBjb3JlIGJlZm9yZSBpdCBpcyBhYmFuZG9uZWRwc2V0X2dyb3VwX3JvdGF0aW9uX2ZyZXF1ZW5jeQQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+AAgE0FNldCB0aGUgcGFyYWNoYWluIHZhbGlkYXRvci1ncm91cCByb3RhdGlvbiBmcmVxdWVuY3l0c2V0X3BhcmFzX2F2YWlsYWJpbGl0eV9wZXJpb2QEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAJBJhTZXQgdGhlIGF2YWlsYWJpbGl0eSBwZXJpb2QgZm9yIHBhcmFzLmBzZXRfc2NoZWR1bGluZ19sb29rYWhlYWQEAQxuZXcQAQx1MzIACwQ5AVNldCB0aGUgc2NoZWR1bGluZyBsb29rYWhlYWQsIGluIGV4cGVjdGVkIG51bWJlciBvZiBibG9ja3MgYXQgcGVhayB0aHJvdWdocHV0LmxzZXRfbWF4X3ZhbGlkYXRvcnNfcGVyX2NvcmUEAQxuZXc9AgEsT3B0aW9uPHUzMj4ADATsU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWxpZGF0b3JzIHRvIGFzc2lnbiB0byBhbnkgY29yZS5Ic2V0X21heF92YWxpZGF0b3JzBAEMbmV3PQIBLE9wdGlvbjx1MzI+AA0EDQFTZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZhbGlkYXRvcnMgdG8gdXNlIGluIHBhcmFjaGFpbiBjb25zZW5zdXMuSHNldF9kaXNwdXRlX3BlcmlvZAQBDG5ldxABMFNlc3Npb25JbmRleAAOBA0BU2V0IHRoZSBkaXNwdXRlIHBlcmlvZCwgaW4gbnVtYmVyIG9mIHNlc3Npb25zIHRvIGtlZXAgZm9yIGRpc3B1dGVzLrRzZXRfZGlzcHV0ZV9wb3N0X2NvbmNsdXNpb25fYWNjZXB0YW5jZV9wZXJpb2QEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAPBMhTZXQgdGhlIGRpc3B1dGUgcG9zdCBjb25jbHVzaW9uIGFjY2VwdGFuY2UgcGVyaW9kLkRzZXRfbm9fc2hvd19zbG90cwQBDG5ldxABDHUzMgASCPhTZXQgdGhlIG5vIHNob3cgc2xvdHMsIGluIG51bWJlciBvZiBudW1iZXIgb2YgY29uc2Vuc3VzIHNsb3RzLkxNdXN0IGJlIGF0IGxlYXN0IDEuUHNldF9uX2RlbGF5X3RyYW5jaGVzBAEMbmV3EAEMdTMyABMEnFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGRlbGF5IHRyYW5jaGVzLnhzZXRfemVyb3RoX2RlbGF5X3RyYW5jaGVfd2lkdGgEAQxuZXcQAQx1MzIAFASMU2V0IHRoZSB6ZXJvdGggZGVsYXkgdHJhbmNoZSB3aWR0aC5Qc2V0X25lZWRlZF9hcHByb3ZhbHMEAQxuZXcQAQx1MzIAFQTcU2V0IHRoZSBudW1iZXIgb2YgdmFsaWRhdG9ycyBuZWVkZWQgdG8gYXBwcm92ZSBhIGJsb2NrLnBzZXRfcmVsYXlfdnJmX21vZHVsb19zYW1wbGVzBAEMbmV3EAEMdTMyABYEWQFTZXQgdGhlIG51bWJlciBvZiBzYW1wbGVzIHRvIGRvIG9mIHRoZSBgUmVsYXlWUkZNb2R1bG9gIGFwcHJvdmFsIGFzc2lnbm1lbnQgY3JpdGVyaW9uLmhzZXRfbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudAQBDG5ldxABDHUzMgAXBC0BU2V0cyB0aGUgbWF4aW11bSBpdGVtcyB0aGF0IGNhbiBwcmVzZW50IGluIGEgdXB3YXJkIGRpc3BhdGNoIHF1ZXVlIGF0IG9uY2UuZHNldF9tYXhfdXB3YXJkX3F1ZXVlX3NpemUEAQxuZXcQAQx1MzIAGAhNAVNldHMgdGhlIG1heGltdW0gdG90YWwgc2l6ZSBvZiBpdGVtcyB0aGF0IGNhbiBwcmVzZW50IGluIGEgdXB3YXJkIGRpc3BhdGNoIHF1ZXVlIGF0FG9uY2UudHNldF9tYXhfZG93bndhcmRfbWVzc2FnZV9zaXplBAEMbmV3EAEMdTMyABkEnFNldCB0aGUgY3JpdGljYWwgZG93bndhcmQgbWVzc2FnZSBzaXplLmxzZXRfbWF4X3Vwd2FyZF9tZXNzYWdlX3NpemUEAQxuZXcQAQx1MzIAGwQtAVNldHMgdGhlIG1heGltdW0gc2l6ZSBvZiBhbiB1cHdhcmQgbWVzc2FnZSB0aGF0IGNhbiBiZSBzZW50IGJ5IGEgY2FuZGlkYXRlLqBzZXRfbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlBAEMbmV3EAEMdTMyABwEBQFTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyB0aGF0IGEgY2FuZGlkYXRlIGNhbiBjb250YWluLmRzZXRfaHJtcF9vcGVuX3JlcXVlc3RfdHRsBAEMbmV3EAEMdTMyAB0ENQFTZXRzIHRoZSBudW1iZXIgb2Ygc2Vzc2lvbnMgYWZ0ZXIgd2hpY2ggYW4gSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdCBleHBpcmVzLlxzZXRfaHJtcF9zZW5kZXJfZGVwb3NpdAQBDG5ldxgBHEJhbGFuY2UAHgRRAVNldHMgdGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IHRoZSBzZW5kZXIgc2hvdWxkIHByb3ZpZGUgZm9yIG9wZW5pbmcgYW4gSFJNUCBjaGFubmVsLmhzZXRfaHJtcF9yZWNpcGllbnRfZGVwb3NpdAQBDG5ldxgBHEJhbGFuY2UAHwhhAVNldHMgdGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IHRoZSByZWNpcGllbnQgc2hvdWxkIHByb3ZpZGUgZm9yIGFjY2VwdGluZyBvcGVuaW5nIGFuIEhSTVAgY2hhbm5lbC50c2V0X2hybXBfY2hhbm5lbF9tYXhfY2FwYWNpdHkEAQxuZXcQAQx1MzIAIAQdAVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lc3NhZ2VzIGFsbG93ZWQgaW4gYW4gSFJNUCBjaGFubmVsIGF0IG9uY2UufHNldF9ocm1wX2NoYW5uZWxfbWF4X3RvdGFsX3NpemUEAQxuZXcQAQx1MzIAIQRRAVNldHMgdGhlIG1heGltdW0gdG90YWwgc2l6ZSBvZiBtZXNzYWdlcyBpbiBieXRlcyBhbGxvd2VkIGluIGFuIEhSTVAgY2hhbm5lbCBhdCBvbmNlLpxzZXRfaHJtcF9tYXhfcGFyYWNoYWluX2luYm91bmRfY2hhbm5lbHMEAQxuZXcQAQx1MzIAIgRJAVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGluYm91bmQgSFJNUCBjaGFubmVscyBhIHBhcmFjaGFpbiBpcyBhbGxvd2VkIHRvIGFjY2VwdC6Ec2V0X2hybXBfY2hhbm5lbF9tYXhfbWVzc2FnZV9zaXplBAEMbmV3EAEMdTMyACQEPQFTZXRzIHRoZSBtYXhpbXVtIHNpemUgb2YgYSBtZXNzYWdlIHRoYXQgY291bGQgZXZlciBiZSBwdXQgaW50byBhbiBIUk1QIGNoYW5uZWwuoHNldF9ocm1wX21heF9wYXJhY2hhaW5fb3V0Ym91bmRfY2hhbm5lbHMEAQxuZXcQAQx1MzIAJQRFAVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIG91dGJvdW5kIEhSTVAgY2hhbm5lbHMgYSBwYXJhY2hhaW4gaXMgYWxsb3dlZCB0byBvcGVuLphzZXRfaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZQQBDG5ldxABDHUzMgAnBDUBU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3V0Ym91bmQgSFJNUCBtZXNzYWdlcyBjYW4gYmUgc2VudCBieSBhIGNhbmRpZGF0ZS5Ic2V0X3B2Zl92b3RpbmdfdHRsBAEMbmV3EAEwU2Vzc2lvbkluZGV4ACoEUQFTZXQgdGhlIG51bWJlciBvZiBzZXNzaW9uIGNoYW5nZXMgYWZ0ZXIgd2hpY2ggYSBQVkYgcHJlLWNoZWNraW5nIHZvdGluZyBpcyByZWplY3RlZC6Qc2V0X21pbmltdW1fdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5BAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4AKxBVAVNldHMgdGhlIG1pbmltdW0gZGVsYXkgYmV0d2VlbiBhbm5vdW5jaW5nIHRoZSB1cGdyYWRlIGJsb2NrIGZvciBhIHBhcmFjaGFpbiB1bnRpbCB0aGVUdXBncmFkZSB0YWtpbmcgcGxhY2UuADkBU2VlIHRoZSBmaWVsZCBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBhbmQgY29uc3RyYWludHMgZm9yIHRoZSBuZXcgdmFsdWUucHNldF9ieXBhc3NfY29uc2lzdGVuY3lfY2hlY2sEAQxuZXcgARBib29sACwITQFTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGRpc2FibGUgY29uc2lzdGVuY3kgY2hlY2tzIGZvciB0aGUgY29uZmlndXJhdGlvbiBzZXR0ZXJzLkRVc2Ugd2l0aCBjYXV0aW9uLmBzZXRfYXN5bmNfYmFja2luZ19wYXJhbXMEAQxuZXetAwFIQXN5bmNCYWNraW5nUGFyYW1zAC0EoFNldCB0aGUgYXN5bmNocm9ub3VzIGJhY2tpbmcgcGFyYW1ldGVycy5Mc2V0X2V4ZWN1dG9yX3BhcmFtcwQBDG5ld7EDAThFeGVjdXRvclBhcmFtcwAuBHBTZXQgUFZGIGV4ZWN1dG9yIHBhcmFtZXRlcnMuWHNldF9vbl9kZW1hbmRfYmFzZV9mZWUEAQxuZXcYARxCYWxhbmNlAC8EpFNldCB0aGUgb24gZGVtYW5kIChwYXJhdGhyZWFkcykgYmFzZSBmZWUudHNldF9vbl9kZW1hbmRfZmVlX3ZhcmlhYmlsaXR5BAEMbmV3xQMBHFBlcmJpbGwAMATAU2V0IHRoZSBvbiBkZW1hbmQgKHBhcmF0aHJlYWRzKSBmZWUgdmFyaWFiaWxpdHkucHNldF9vbl9kZW1hbmRfcXVldWVfbWF4X3NpemUEAQxuZXcQAQx1MzIAMQS8U2V0IHRoZSBvbiBkZW1hbmQgKHBhcmF0aHJlYWRzKSBxdWV1ZSBtYXggc2l6ZS6Yc2V0X29uX2RlbWFuZF90YXJnZXRfcXVldWVfdXRpbGl6YXRpb24EAQxuZXfFAwEcUGVyYmlsbAAyBMBTZXQgdGhlIG9uIGRlbWFuZCAocGFyYXRocmVhZHMpIGZlZSB2YXJpYWJpbGl0eS5Ec2V0X29uX2RlbWFuZF90dGwEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAzBNhTZXQgdGhlIG9uIGRlbWFuZCAocGFyYXRocmVhZHMpIHR0bCBpbiB0aGUgY2xhaW1xdWV1ZS5kc2V0X21pbmltdW1fYmFja2luZ192b3RlcwQBDG5ldxABDHUzMgA0BKBTZXQgdGhlIG1pbmltdW0gYmFja2luZyB2b3RlcyB0aHJlc2hvbGQuQHNldF9ub2RlX2ZlYXR1cmUIARRpbmRleAgBCHU4AAEUdmFsdWUgARBib29sADUEZFNldC9VbnNldCBhIG5vZGUgZmVhdHVyZS5oc2V0X2FwcHJvdmFsX3ZvdGluZ19wYXJhbXMEAQxuZXfJAwFQQXBwcm92YWxWb3RpbmdQYXJhbXMANgRsU2V0IGFwcHJvdmFsLXZvdGluZy1wYXJhbXMuUHNldF9zY2hlZHVsZXJfcGFyYW1zBAEMbmV3zQMBiFNjaGVkdWxlclBhcmFtczxCbG9ja051bWJlckZvcjxUPj4ANwRUU2V0IHNjaGVkdWxlci1wYXJhbXMuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLq0DEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmdIQXN5bmNCYWNraW5nUGFyYW1zAAAIAUxtYXhfY2FuZGlkYXRlX2RlcHRoEAEMdTMyAAFQYWxsb3dlZF9hbmNlc3RyeV9sZW4QAQx1MzIAALEDEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4PGV4ZWN1dG9yX3BhcmFtczhFeGVjdXRvclBhcmFtcwAABAC1AwFIVmVjPEV4ZWN1dG9yUGFyYW0+AAC1AwAAArkDALkDEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4PGV4ZWN1dG9yX3BhcmFtczRFeGVjdXRvclBhcmFtAAEcOE1heE1lbW9yeVBhZ2VzBAAQAQx1MzIAAQA8U3RhY2tMb2dpY2FsTWF4BAAQAQx1MzIAAgA4U3RhY2tOYXRpdmVNYXgEABABDHUzMgADAFBQcmVjaGVja2luZ01heE1lbW9yeQQAMAEMdTY0AAQAOFB2ZlByZXBUaW1lb3V0CAC9AwEsUHZmUHJlcEtpbmQAADABDHU2NAAFADhQdmZFeGVjVGltZW91dAgAwQMBLFB2ZkV4ZWNLaW5kAAAwAQx1NjQABgBEV2FzbUV4dEJ1bGtNZW1vcnkABwAAvQMMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgsUHZmUHJlcEtpbmQAAQggUHJlY2hlY2sAAAAcUHJlcGFyZQABAADBAwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OCxQdmZFeGVjS2luZAABCBxCYWNraW5nAAAAIEFwcHJvdmFsAAEAAMUDDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyYmlsbAAABAAQAQx1MzIAAMkDDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4UEFwcHJvdmFsVm90aW5nUGFyYW1zAAAEAWxtYXhfYXBwcm92YWxfY29hbGVzY2VfY291bnQQAQx1MzIAAM0DDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4PFNjaGVkdWxlclBhcmFtcwQsQmxvY2tOdW1iZXIBEAAsAWBncm91cF9yb3RhdGlvbl9mcmVxdWVuY3kQASxCbG9ja051bWJlcgABZHBhcmFzX2F2YWlsYWJpbGl0eV9wZXJpb2QQASxCbG9ja051bWJlcgABXG1heF92YWxpZGF0b3JzX3Blcl9jb3JlPQIBLE9wdGlvbjx1MzI+AAEkbG9va2FoZWFkEAEMdTMyAAEkbnVtX2NvcmVzEAEMdTMyAAFkbWF4X2F2YWlsYWJpbGl0eV90aW1lb3V0cxABDHUzMgABYG9uX2RlbWFuZF9xdWV1ZV9tYXhfc2l6ZRABDHUzMgABiG9uX2RlbWFuZF90YXJnZXRfcXVldWVfdXRpbGl6YXRpb27FAwEcUGVyYmlsbAABZG9uX2RlbWFuZF9mZWVfdmFyaWFiaWxpdHnFAwEcUGVyYmlsbAABSG9uX2RlbWFuZF9iYXNlX2ZlZRgBHEJhbGFuY2UAAQx0dGwQASxCbG9ja051bWJlcgAA0QMQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxhzaGFyZWQYcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu1QMQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu2QMQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluczhwYXJhc19pbmhlcmVudBhwYWxsZXQQQ2FsbAQEVAABBBRlbnRlcgQBEGRhdGHdAwGQUGFyYWNoYWluc0luaGVyZW50RGF0YTxIZWFkZXJGb3I8VD4+AAAEMQFFbnRlciB0aGUgcGFyYXMgaW5oZXJlbnQuIFRoaXMgd2lsbCBwcm9jZXNzIGJpdGZpZWxkcyBhbmQgYmFja2VkIGNhbmRpZGF0ZXMuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLt0DDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4MEluaGVyZW50RGF0YQQMSERSAZ0BABABJGJpdGZpZWxkc+EDAZBVbmNoZWNrZWRTaWduZWRBdmFpbGFiaWxpdHlCaXRmaWVsZHMAAURiYWNrZWRfY2FuZGlkYXRlc/0DAXxWZWM8QmFja2VkQ2FuZGlkYXRlPEhEUjo6SGFzaD4+AAEgZGlzcHV0ZXNBBAFgTXVsdGlEaXNwdXRlU3RhdGVtZW50U2V0AAE0cGFyZW50X2hlYWRlcp0BAQxIRFIAAOEDAAAC5QMA5QMQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgYc2lnbmVkPFVuY2hlY2tlZFNpZ25lZAgcUGF5bG9hZAHpAyxSZWFsUGF5bG9hZAHpAwAMARxwYXlsb2Fk6QMBHFBheWxvYWQAATx2YWxpZGF0b3JfaW5kZXj1AwE4VmFsaWRhdG9ySW5kZXgAASRzaWduYXR1cmX5AwFIVmFsaWRhdG9yU2lnbmF0dXJlAADpAwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OFBBdmFpbGFiaWxpdHlCaXRmaWVsZAAABADtAwF8Qml0VmVjPHU4LCBiaXR2ZWM6Om9yZGVyOjpMc2IwPgAA7QMAAAcI8QMA8QMMGGJpdHZlYxRvcmRlchBMc2IwAAAAAPUDDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4OFZhbGlkYXRvckluZGV4AAAEABABDHUzMgAA+QMQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0dmFsaWRhdG9yX2FwcCRTaWduYXR1cmUAAAQAJQIBSHNyMjU1MTk6OlNpZ25hdHVyZQAA/QMAAAIBBAABBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODxCYWNrZWRDYW5kaWRhdGUEBEgBNAAMASRjYW5kaWRhdGUFBAFwQ29tbWl0dGVkQ2FuZGlkYXRlUmVjZWlwdDxIPgABOHZhbGlkaXR5X3ZvdGVzOQQBYFZlYzxWYWxpZGl0eUF0dGVzdGF0aW9uPgABRHZhbGlkYXRvcl9pbmRpY2Vz7QMBfEJpdFZlYzx1OCwgYml0dmVjOjpvcmRlcjo6THNiMD4AAAUEDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4ZENvbW1pdHRlZENhbmRpZGF0ZVJlY2VpcHQEBEgBNAAIAShkZXNjcmlwdG9yCQQBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AASxjb21taXRtZW50cxkEAVBDYW5kaWRhdGVDb21taXRtZW50cwAACQQMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhMQ2FuZGlkYXRlRGVzY3JpcHRvcgQESAE0ACQBHHBhcmFfaWRhAgEISWQAATByZWxheV9wYXJlbnQ0AQRIAAEgY29sbGF0b3INBAEoQ29sbGF0b3JJZAABeHBlcnNpc3RlZF92YWxpZGF0aW9uX2RhdGFfaGFzaDQBEEhhc2gAASBwb3ZfaGFzaDQBEEhhc2gAATBlcmFzdXJlX3Jvb3Q0ARBIYXNoAAEkc2lnbmF0dXJlEQQBRENvbGxhdG9yU2lnbmF0dXJlAAEkcGFyYV9oZWFkNAEQSGFzaAABUHZhbGlkYXRpb25fY29kZV9oYXNoFQQBSFZhbGlkYXRpb25Db2RlSGFzaAAADQQQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgwY29sbGF0b3JfYXBwGFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAABEEEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4MGNvbGxhdG9yX2FwcCRTaWduYXR1cmUAAAQAJQIBSHNyMjU1MTk6OlNpZ25hdHVyZQAAFQQMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXNIVmFsaWRhdGlvbkNvZGVIYXNoAAAEADQBEEhhc2gAABkEDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4UENhbmRpZGF0ZUNvbW1pdG1lbnRzBAROARAAGAE8dXB3YXJkX21lc3NhZ2VzHQQBOFVwd2FyZE1lc3NhZ2VzAAFMaG9yaXpvbnRhbF9tZXNzYWdlcyEEAUhIb3Jpem9udGFsTWVzc2FnZXMAAUxuZXdfdmFsaWRhdGlvbl9jb2RlLQQBWE9wdGlvbjxWYWxpZGF0aW9uQ29kZT4AASRoZWFkX2RhdGE1BAEgSGVhZERhdGEAAWxwcm9jZXNzZWRfZG93bndhcmRfbWVzc2FnZXMQAQx1MzIAAThocm1wX3dhdGVybWFyaxABBE4AAB0EDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAJEBARhWZWM8VD4AACEEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBJQQEUwAABAApBAEYVmVjPFQ+AAAlBAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAWECAAgBJHJlY2lwaWVudGECAQhJZAABEGRhdGE4AUxhbGxvYzo6dmVjOjpWZWM8dTg+AAApBAAAAiUEAC0EBBhPcHRpb24EBFQBMQQBCBBOb25lAAAAEFNvbWUEADEEAAABAAAxBAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAA4ARxWZWM8dTg+AAA1BAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcyBIZWFkRGF0YQAABAA4ARxWZWM8dTg+AAA5BAAAAj0EAD0EDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4TFZhbGlkaXR5QXR0ZXN0YXRpb24AAQggSW1wbGljaXQEAPkDAUhWYWxpZGF0b3JTaWduYXR1cmUAAQAgRXhwbGljaXQEAPkDAUhWYWxpZGF0b3JTaWduYXR1cmUAAgAAQQQAAAJFBABFBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OExEaXNwdXRlU3RhdGVtZW50U2V0AAAMAThjYW5kaWRhdGVfaGFzaEkEATRDYW5kaWRhdGVIYXNoAAEcc2Vzc2lvbhABMFNlc3Npb25JbmRleAABKHN0YXRlbWVudHNNBAHsVmVjPChEaXNwdXRlU3RhdGVtZW50LCBWYWxpZGF0b3JJbmRleCwgVmFsaWRhdG9yU2lnbmF0dXJlKT4AAEkECGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXM0Q2FuZGlkYXRlSGFzaAAABAA0ARBIYXNoAABNBAAAAlEEAFEEAAAEDFUE9QP5AwBVBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OEBEaXNwdXRlU3RhdGVtZW50AAEIFFZhbGlkBABZBAFkVmFsaWREaXNwdXRlU3RhdGVtZW50S2luZAAAABxJbnZhbGlkBABhBAFsSW52YWxpZERpc3B1dGVTdGF0ZW1lbnRLaW5kAAEAAFkEDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4ZFZhbGlkRGlzcHV0ZVN0YXRlbWVudEtpbmQAARQgRXhwbGljaXQAAAA8QmFja2luZ1NlY29uZGVkBAA0ARBIYXNoAAEAMEJhY2tpbmdWYWxpZAQANAEQSGFzaAACAEBBcHByb3ZhbENoZWNraW5nAAMAiEFwcHJvdmFsQ2hlY2tpbmdNdWx0aXBsZUNhbmRpZGF0ZXMEAF0EAUhWZWM8Q2FuZGlkYXRlSGFzaD4ABAAAXQQAAAJJBABhBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OGxJbnZhbGlkRGlzcHV0ZVN0YXRlbWVudEtpbmQAAQQgRXhwbGljaXQAAAAAZQQQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhcxhwYWxsZXQQQ2FsbAQEVAABJFhmb3JjZV9zZXRfY3VycmVudF9jb2RlCAEQcGFyYWECARhQYXJhSWQAASBuZXdfY29kZTEEAThWYWxpZGF0aW9uQ29kZQAABPhTZXQgdGhlIHN0b3JhZ2UgZm9yIHRoZSBwYXJhY2hhaW4gdmFsaWRhdGlvbiBjb2RlIGltbWVkaWF0ZWx5Llhmb3JjZV9zZXRfY3VycmVudF9oZWFkCAEQcGFyYWECARhQYXJhSWQAASBuZXdfaGVhZDUEASBIZWFkRGF0YQABBAEBU2V0IHRoZSBzdG9yYWdlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gaGVhZCBkYXRhIGltbWVkaWF0ZWx5Lmxmb3JjZV9zY2hlZHVsZV9jb2RlX3VwZ3JhZGUMARBwYXJhYQIBGFBhcmFJZAABIG5ld19jb2RlMQQBOFZhbGlkYXRpb25Db2RlAAFMcmVsYXlfcGFyZW50X251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAIELQFTY2hlZHVsZSBhbiB1cGdyYWRlIGFzIGlmIGl0IHdhcyBzY2hlZHVsZWQgaW4gdGhlIGdpdmVuIHJlbGF5IHBhcmVudCBibG9jay5MZm9yY2Vfbm90ZV9uZXdfaGVhZAgBEHBhcmFhAgEYUGFyYUlkAAEgbmV3X2hlYWQ1BAEgSGVhZERhdGEAAwQdAU5vdGUgYSBuZXcgYmxvY2sgaGVhZCBmb3IgcGFyYSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgYmxvY2suSGZvcmNlX3F1ZXVlX2FjdGlvbgQBEHBhcmFhAgEYUGFyYUlkAAQM+FB1dCBhIHBhcmFjaGFpbiBkaXJlY3RseSBpbnRvIHRoZSBuZXh0IHNlc3Npb24ncyBhY3Rpb24gcXVldWUu9FdlIGNhbid0IHF1ZXVlIGl0IGFueSBzb29uZXIgdGhhbiB0aGlzIHdpdGhvdXQgZ29pbmcgaW50byB0aGU4aW5pdGlhbGl6ZXIuLi5sYWRkX3RydXN0ZWRfdmFsaWRhdGlvbl9jb2RlBAE8dmFsaWRhdGlvbl9jb2RlMQQBOFZhbGlkYXRpb25Db2RlAAU4oEFkZHMgdGhlIHZhbGlkYXRpb24gY29kZSB0byB0aGUgc3RvcmFnZS4AWQFUaGUgY29kZSB3aWxsIG5vdCBiZSBhZGRlZCBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQuIEFkZGl0aW9uYWxseSwgaWYgUFZGIHByZS1jaGVja2luZ+BpcyBydW5uaW5nIGZvciB0aGF0IGNvZGUsIGl0IHdpbGwgYmUgaW5zdGFudGx5IGFjY2VwdGVkLgBRAU90aGVyd2lzZSwgdGhlIGNvZGUgd2lsbCBiZSBhZGRlZCBpbnRvIHRoZSBzdG9yYWdlLiBOb3RlIHRoYXQgdGhlIGNvZGUgd2lsbCBiZSBhZGRlZGEBaW50byBzdG9yYWdlIHdpdGggcmVmZXJlbmNlIGNvdW50IDAuIFRoaXMgaXMgdG8gYWNjb3VudCB0aGUgZmFjdCB0aGF0IHRoZXJlIGFyZSBubyB1c2Vyc00BZm9yIHRoaXMgY29kZSB5ZXQuIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgY29kZSBldmVudHVhbGx5IGdldHNJAXVzZWQgYnkgc29tZSBwYXJhY2hhaW4gb3IgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlIHRvIGF2b2lkIHN0b3JhZ2UgbGVha3MuIEZvciB0aGVJAWxhdHRlciBwcmVmZXIgdG8gdXNlIHRoZSBgcG9rZV91bnVzZWRfdmFsaWRhdGlvbl9jb2RlYCBkaXNwYXRjaGFibGUgdG8gcmF3IHN0b3JhZ2U0bWFuaXB1bGF0aW9uLgBRAVRoaXMgZnVuY3Rpb24gaXMgbWFpbmx5IG1lYW50IHRvIGJlIHVzZWQgZm9yIHVwZ3JhZGluZyBwYXJhY2hhaW5zIHRoYXQgZG8gbm90IGZvbGxvdwkBdGhlIGdvLWFoZWFkIHNpZ25hbCB3aGlsZSB0aGUgUFZGIHByZS1jaGVja2luZyBmZWF0dXJlIGlzIGVuYWJsZWQubHBva2VfdW51c2VkX3ZhbGlkYXRpb25fY29kZQQBUHZhbGlkYXRpb25fY29kZV9oYXNoFQQBSFZhbGlkYXRpb25Db2RlSGFzaAAGFCUBUmVtb3ZlIHRoZSB2YWxpZGF0aW9uIGNvZGUgZnJvbSB0aGUgc3RvcmFnZSBpZmYgdGhlIHJlZmVyZW5jZSBjb3VudCBpcyAwLgBZAVRoaXMgaXMgYmV0dGVyIHRoYW4gcmVtb3ZpbmcgdGhlIHN0b3JhZ2UgZGlyZWN0bHksIGJlY2F1c2UgaXQgd2lsbCBub3QgcmVtb3ZlIHRoZSBjb2RlQQF0aGF0IHdhcyBzdWRkZW5seSBnb3QgdXNlZCBieSBzb21lIHBhcmFjaGFpbiB3aGlsZSB0aGlzIGRpc3BhdGNoYWJsZSB3YXMgcGVuZGluZzBkaXNwYXRjaGluZy5saW5jbHVkZV9wdmZfY2hlY2tfc3RhdGVtZW50CAEQc3RtdGkEAURQdmZDaGVja1N0YXRlbWVudAABJHNpZ25hdHVyZfkDAUhWYWxpZGF0b3JTaWduYXR1cmUABwhVAUluY2x1ZGVzIGEgc3RhdGVtZW50IGZvciBhIFBWRiBwcmUtY2hlY2tpbmcgdm90ZS4gUG90ZW50aWFsbHksIGZpbmFsaXplcyB0aGUgdm90ZSBhbmRBAWVuYWN0cyB0aGUgcmVzdWx0cyBpZiB0aGF0IHdhcyB0aGUgbGFzdCB2b3RlIGJlZm9yZSBhY2hpZXZpbmcgdGhlIHN1cGVybWFqb3JpdHkudGZvcmNlX3NldF9tb3N0X3JlY2VudF9jb250ZXh0CAEQcGFyYWECARhQYXJhSWQAARxjb250ZXh0EAFEQmxvY2tOdW1iZXJGb3I8VD4ACAQBAVNldCB0aGUgc3RvcmFnZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGhlYWQgZGF0YSBpbW1lZGlhdGVseS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuaQQMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhEUHZmQ2hlY2tTdGF0ZW1lbnQAABABGGFjY2VwdCABEGJvb2wAARxzdWJqZWN0FQQBSFZhbGlkYXRpb25Db2RlSGFzaAABNHNlc3Npb25faW5kZXgQATBTZXNzaW9uSW5kZXgAATx2YWxpZGF0b3JfaW5kZXj1AwE4VmFsaWRhdG9ySW5kZXgAAG0EEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMsaW5pdGlhbGl6ZXIYcGFsbGV0EENhbGwEBFQAAQQ0Zm9yY2VfYXBwcm92ZQQBFHVwX3RvEAEsQmxvY2tOdW1iZXIAAAw5AUlzc3VlIGEgc2lnbmFsIHRvIHRoZSBjb25zZW5zdXMgZW5naW5lIHRvIGZvcmNpYmx5IGFjdCBhcyB0aG91Z2ggYWxsIHBhcmFjaGFpblEBYmxvY2tzIGluIGFsbCByZWxheSBjaGFpbiBibG9ja3MgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgZ2l2ZW4gbnVtYmVyIGluIHRoZSBjdXJyZW50oGNoYWluIGFyZSB2YWxpZCBhbmQgc2hvdWxkIGJlIGZpbmFsaXplZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMucQQQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBBDYWxsBARUAAEsWGhybXBfaW5pdF9vcGVuX2NoYW5uZWwMASRyZWNpcGllbnRhAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAAKE0BSW5pdGlhdGUgb3BlbmluZyBhIGNoYW5uZWwgZnJvbSBhIHBhcmFjaGFpbiB0byBhIGdpdmVuIHJlY2lwaWVudCB3aXRoIGdpdmVuIGNoYW5uZWwscGFyYW1ldGVycy4AWQEtIGBwcm9wb3NlZF9tYXhfY2FwYWNpdHlgIC0gc3BlY2lmaWVzIGhvdyBtYW55IG1lc3NhZ2VzIGNhbiBiZSBpbiB0aGUgY2hhbm5lbCBhdCBvbmNlLi0BLSBgcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZWAgLSBzcGVjaWZpZXMgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgbWVzc2FnZXMuABEBVGhlc2UgbnVtYmVycyBhcmUgYSBzdWJqZWN0IHRvIHRoZSByZWxheS1jaGFpbiBjb25maWd1cmF0aW9uIGxpbWl0cy4AUQFUaGUgY2hhbm5lbCBjYW4gYmUgb3BlbmVkIG9ubHkgYWZ0ZXIgdGhlIHJlY2lwaWVudCBjb25maXJtcyBpdCBhbmQgb25seSBvbiBhIHNlc3Npb24cY2hhbmdlLmBocm1wX2FjY2VwdF9vcGVuX2NoYW5uZWwEARhzZW5kZXJhAgEYUGFyYUlkAAEM8EFjY2VwdCBhIHBlbmRpbmcgb3BlbiBjaGFubmVsIHJlcXVlc3QgZnJvbSB0aGUgZ2l2ZW4gc2VuZGVyLgD0VGhlIGNoYW5uZWwgd2lsbCBiZSBvcGVuZWQgb25seSBvbiB0aGUgbmV4dCBzZXNzaW9uIGJvdW5kYXJ5Lkhocm1wX2Nsb3NlX2NoYW5uZWwEAShjaGFubmVsX2lkdQQBNEhybXBDaGFubmVsSWQAAhBVAUluaXRpYXRlIHVuaWxhdGVyYWwgY2xvc2luZyBvZiBhIGNoYW5uZWwuIFRoZSBvcmlnaW4gbXVzdCBiZSBlaXRoZXIgdGhlIHNlbmRlciBvciB0aGWYcmVjaXBpZW50IGluIHRoZSBjaGFubmVsIGJlaW5nIGNsb3NlZC4AwFRoZSBjbG9zdXJlIGNhbiBvbmx5IGhhcHBlbiBvbiBhIHNlc3Npb24gY2hhbmdlLkBmb3JjZV9jbGVhbl9ocm1wDAEQcGFyYWECARhQYXJhSWQAASxudW1faW5ib3VuZBABDHUzMgABMG51bV9vdXRib3VuZBABDHUzMgADHF0BVGhpcyBleHRyaW5zaWMgdHJpZ2dlcnMgdGhlIGNsZWFudXAgb2YgYWxsIHRoZSBIUk1QIHN0b3JhZ2UgaXRlbXMgdGhhdCBhIHBhcmEgbWF5IGhhdmUuSQFOb3JtYWxseSB0aGlzIGhhcHBlbnMgb25jZSBwZXIgc2Vzc2lvbiwgYnV0IHRoaXMgYWxsb3dzIHlvdSB0byB0cmlnZ2VyIHRoZSBjbGVhbnVwlGltbWVkaWF0ZWx5IGZvciBhIHNwZWNpZmljIHBhcmFjaGFpbi4AUQFOdW1iZXIgb2YgaW5ib3VuZCBhbmQgb3V0Ym91bmQgY2hhbm5lbHMgZm9yIGBwYXJhYCBtdXN0IGJlIHByb3ZpZGVkIGFzIHdpdG5lc3MgZGF0YS4AkE9yaWdpbiBtdXN0IGJlIHRoZSBgQ2hhbm5lbE1hbmFnZXJgLlxmb3JjZV9wcm9jZXNzX2hybXBfb3BlbgQBIGNoYW5uZWxzEAEMdTMyAAQgpEZvcmNlIHByb2Nlc3MgSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdHMuAFUBSWYgdGhlcmUgYXJlIHBlbmRpbmcgSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdHMsIHlvdSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gcHJvY2Vzc4hhbGwgb2YgdGhvc2UgcmVxdWVzdHMgaW1tZWRpYXRlbHkuAAkBVG90YWwgbnVtYmVyIG9mIG9wZW5pbmcgY2hhbm5lbHMgbXVzdCBiZSBwcm92aWRlZCBhcyB3aXRuZXNzIGRhdGEuAJBPcmlnaW4gbXVzdCBiZSB0aGUgYENoYW5uZWxNYW5hZ2VyYC5gZm9yY2VfcHJvY2Vzc19ocm1wX2Nsb3NlBAEgY2hhbm5lbHMQAQx1MzIABSCoRm9yY2UgcHJvY2VzcyBIUk1QIGNsb3NlIGNoYW5uZWwgcmVxdWVzdHMuAFkBSWYgdGhlcmUgYXJlIHBlbmRpbmcgSFJNUCBjbG9zZSBjaGFubmVsIHJlcXVlc3RzLCB5b3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHByb2Nlc3OIYWxsIG9mIHRob3NlIHJlcXVlc3RzIGltbWVkaWF0ZWx5LgAJAVRvdGFsIG51bWJlciBvZiBjbG9zaW5nIGNoYW5uZWxzIG11c3QgYmUgcHJvdmlkZWQgYXMgd2l0bmVzcyBkYXRhLgCQT3JpZ2luIG11c3QgYmUgdGhlIGBDaGFubmVsTWFuYWdlcmAuYGhybXBfY2FuY2VsX29wZW5fcmVxdWVzdAgBKGNoYW5uZWxfaWR1BAE0SHJtcENoYW5uZWxJZAABNG9wZW5fcmVxdWVzdHMQAQx1MzIABiBdAVRoaXMgY2FuY2VscyBhIHBlbmRpbmcgb3BlbiBjaGFubmVsIHJlcXVlc3QuIEl0IGNhbiBiZSBjYW5jZWxlZCBieSBlaXRoZXIgb2YgdGhlIHNlbmRlchkBb3IgdGhlIHJlY2lwaWVudCBmb3IgdGhhdCByZXF1ZXN0LiBUaGUgb3JpZ2luIG11c3QgYmUgZWl0aGVyIG9mIHRob3NlLgBdAVRoZSBjYW5jZWxsYXRpb24gaGFwcGVucyBpbW1lZGlhdGVseS4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGNhbmNlbCB0aGUgcmVxdWVzdCBpZiBpdCBpc0RhbHJlYWR5IGFjY2VwdGVkLgBZAVRvdGFsIG51bWJlciBvZiBvcGVuIHJlcXVlc3RzIChpLmUuIGBIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0c0xpc3RgKSBtdXN0IGJlIHByb3ZpZGVkIGFzNHdpdG5lc3MgZGF0YS5cZm9yY2Vfb3Blbl9ocm1wX2NoYW5uZWwQARhzZW5kZXJhAgEYUGFyYUlkAAEkcmVjaXBpZW50YQIBGFBhcmFJZAABMG1heF9jYXBhY2l0eRABDHUzMgABQG1heF9tZXNzYWdlX3NpemUQAQx1MzIAByBhAU9wZW4gYSBjaGFubmVsIGZyb20gYSBgc2VuZGVyYCB0byBhIGByZWNpcGllbnRgIGBQYXJhSWRgLiBBbHRob3VnaCBvcGVuZWQgYnkgZ292ZXJuYW5jZSxBAXRoZSBgbWF4X2NhcGFjaXR5YCBhbmQgYG1heF9tZXNzYWdlX3NpemVgIGFyZSBzdGlsbCBzdWJqZWN0IHRvIHRoZSBSZWxheSBDaGFpbidzSGNvbmZpZ3VyZWQgbGltaXRzLgBNAUV4cGVjdGVkIHVzZSBpcyB3aGVuIG9uZSAoYW5kIG9ubHkgb25lKSBvZiB0aGUgYFBhcmFJZGBzIGludm9sdmVkIGluIHRoZSBjaGFubmVsIGlzwGdvdmVybmVkIGJ5IHRoZSBzeXN0ZW0sIGUuZy4gYSBzeXN0ZW0gcGFyYWNoYWluLgCQT3JpZ2luIG11c3QgYmUgdGhlIGBDaGFubmVsTWFuYWdlcmAuYGVzdGFibGlzaF9zeXN0ZW1fY2hhbm5lbAgBGHNlbmRlcmECARhQYXJhSWQAASRyZWNpcGllbnRhAgEYUGFyYUlkAAgwUQFFc3RhYmxpc2ggYW4gSFJNUCBjaGFubmVsIGJldHdlZW4gdHdvIHN5c3RlbSBjaGFpbnMuIElmIHRoZSBjaGFubmVsIGRvZXMgbm90IGFscmVhZHlRAWV4aXN0LCB0aGUgdHJhbnNhY3Rpb24gZmVlcyB3aWxsIGJlIHJlZnVuZGVkIHRvIHRoZSBjYWxsZXIuIFRoZSBzeXN0ZW0gZG9lcyBub3QgdGFrZVkBZGVwb3NpdHMgZm9yIGNoYW5uZWxzIGJldHdlZW4gc3lzdGVtIGNoYWlucywgYW5kIGF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgbWVzc2FnZSBudW1iZXIZAWFuZCBzaXplIGxpbWl0cyB0byB0aGUgbWF4aW11bSBhbGxvd2VkIGJ5IHRoZSBuZXR3b3JrJ3MgY29uZmlndXJhdGlvbi4AKEFyZ3VtZW50czoAlC0gYHNlbmRlcmA6IEEgc3lzdGVtIGNoYWluLCBgUGFyYUlkYC6gLSBgcmVjaXBpZW50YDogQSBzeXN0ZW0gY2hhaW4sIGBQYXJhSWRgLgBVAUFueSBzaWduZWQgb3JpZ2luIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24sIGJ1dCBfYm90aF8gaW5wdXRzIE1VU1QgYmUgc3lzdGVtIGNoYWlucy4gSWbAdGhlIGNoYW5uZWwgZG9lcyBub3QgZXhpc3QgeWV0LCB0aGVyZSBpcyBubyBmZWUuVHBva2VfY2hhbm5lbF9kZXBvc2l0cwgBGHNlbmRlcmECARhQYXJhSWQAASRyZWNpcGllbnRhAgEYUGFyYUlkAAkkUQFVcGRhdGUgdGhlIGRlcG9zaXRzIGhlbGQgZm9yIGFuIEhSTVAgY2hhbm5lbCB0byB0aGUgbGF0ZXN0IGBDb25maWd1cmF0aW9uYC4gQ2hhbm5lbHOwd2l0aCBzeXN0ZW0gY2hhaW5zIGRvIG5vdCByZXF1aXJlIGEgZGVwb3NpdC4AKEFyZ3VtZW50czoAeC0gYHNlbmRlcmA6IEEgY2hhaW4sIGBQYXJhSWRgLoQtIGByZWNpcGllbnRgOiBBIGNoYWluLCBgUGFyYUlkYC4ApEFueSBzaWduZWQgb3JpZ2luIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24udGVzdGFibGlzaF9jaGFubmVsX3dpdGhfc3lzdGVtBAFMdGFyZ2V0X3N5c3RlbV9jaGFpbmECARhQYXJhSWQAChw5AUVzdGFibGlzaCBhIGJpZGlyZWN0aW9uYWwgSFJNUCBjaGFubmVsIGJldHdlZW4gYSBwYXJhY2hhaW4gYW5kIGEgc3lzdGVtIGNoYWluLgAoQXJndW1lbnRzOgDILSBgdGFyZ2V0X3N5c3RlbV9jaGFpbmA6IEEgc3lzdGVtIGNoYWluLCBgUGFyYUlkYC4AsFRoZSBvcmlnaW4gbmVlZHMgdG8gYmUgdGhlIHBhcmFjaGFpbiBvcmlnaW4uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnUEDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzNEhybXBDaGFubmVsSWQAAAgBGHNlbmRlcmECAQhJZAABJHJlY2lwaWVudGECAQhJZAAAeQQQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyBkaXNwdXRlcxhwYWxsZXQQQ2FsbAQEVAABBDhmb3JjZV91bmZyZWV6ZQAAAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy59BBRscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzIHNsYXNoaW5nGHBhbGxldBBDYWxsBARUAAEEcHJlcG9ydF9kaXNwdXRlX2xvc3RfdW5zaWduZWQIATRkaXNwdXRlX3Byb29mgQQBREJveDxEaXNwdXRlUHJvb2Y+AAE8a2V5X293bmVyX3Byb29mqQEBQFQ6OktleU93bmVyUHJvb2YAAAAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMugQQQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjggc2xhc2hpbmcwRGlzcHV0ZVByb29mAAAQASR0aW1lX3Nsb3SFBAFARGlzcHV0ZXNUaW1lU2xvdAABEGtpbmSJBAFMU2xhc2hpbmdPZmZlbmNlS2luZAABPHZhbGlkYXRvcl9pbmRlePUDAThWYWxpZGF0b3JJbmRleAABMHZhbGlkYXRvcl9pZPkBASxWYWxpZGF0b3JJZAAAhQQQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjggc2xhc2hpbmdARGlzcHV0ZXNUaW1lU2xvdAAACAE0c2Vzc2lvbl9pbmRleBABMFNlc3Npb25JbmRleAABOGNhbmRpZGF0ZV9oYXNoSQQBNENhbmRpZGF0ZUhhc2gAAIkEEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4IHNsYXNoaW5nTFNsYXNoaW5nT2ZmZW5jZUtpbmQAAQgoRm9ySW52YWxpZAAAADBBZ2FpbnN0VmFsaWQAAQAAjQQMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBBDYWxsBARUAAEIJHJlYXBfcGFnZQgBOG1lc3NhZ2Vfb3JpZ2lukQQBSE1lc3NhZ2VPcmlnaW5PZjxUPgABKHBhZ2VfaW5kZXgQASRQYWdlSW5kZXgAAAQ9AVJlbW92ZSBhIHBhZ2Ugd2hpY2ggaGFzIG5vIG1vcmUgbWVzc2FnZXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBvciBpcyBzdGFsZS5IZXhlY3V0ZV9vdmVyd2VpZ2h0EAE4bWVzc2FnZV9vcmlnaW6RBAFITWVzc2FnZU9yaWdpbk9mPFQ+AAEQcGFnZRABJFBhZ2VJbmRleAABFGluZGV4EAEcVDo6U2l6ZQABMHdlaWdodF9saW1pdCgBGFdlaWdodAABNHhFeGVjdXRlIGFuIG92ZXJ3ZWlnaHQgbWVzc2FnZS4ATQFUZW1wb3JhcnkgcHJvY2Vzc2luZyBlcnJvcnMgd2lsbCBiZSBwcm9wYWdhdGVkIHdoZXJlYXMgcGVybWFuZW50IGVycm9ycyBhcmUgdHJlYXRlZFRhcyBzdWNjZXNzIGNvbmRpdGlvbi4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAuNQEtIGBtZXNzYWdlX29yaWdpbmA6IFRoZSBvcmlnaW4gZnJvbSB3aGljaCB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZCBhcnJpdmVkLj0BLSBgcGFnZWA6IFRoZSBwYWdlIGluIHRoZSBxdWV1ZSBpbiB3aGljaCB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZCBpcyBzaXR0aW5nLgkBLSBgaW5kZXhgOiBUaGUgaW5kZXggaW50byB0aGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQuWQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IGFsbG93ZWQgdG8gYmUgY29uc3VtZWQgaW4gdGhlIGV4ZWN1dGlvbkQgIG9mIHRoZSBtZXNzYWdlLgD0QmVuY2htYXJrIGNvbXBsZXhpdHkgY29uc2lkZXJhdGlvbnM6IE8oaW5kZXggKyB3ZWlnaHRfbGltaXQpLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6RBAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJGluY2x1c2lvblhBZ2dyZWdhdGVNZXNzYWdlT3JpZ2luAAEEDFVtcAQAlQQBKFVtcFF1ZXVlSWQAAAAAlQQMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24oVW1wUXVldWVJZAABBBBQYXJhBABhAgEYUGFyYUlkAAAAAJkEEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkb25fZGVtYW5kGHBhbGxldBBDYWxsBARUAAEIXHBsYWNlX29yZGVyX2FsbG93X2RlYXRoCAEobWF4X2Ftb3VudBgBMEJhbGFuY2VPZjxUPgABHHBhcmFfaWRhAgEYUGFyYUlkAAA8lENyZWF0ZSBhIHNpbmdsZSBvbiBkZW1hbmQgY29yZSBvcmRlci5JAVdpbGwgdXNlIHRoZSBzcG90IHByaWNlIGZvciB0aGUgY3VycmVudCBibG9jayBhbmQgd2lsbCByZWFwIHRoZSBhY2NvdW50IGlmIG5lZWRlZC4ALFBhcmFtZXRlcnM6OQEtIGBvcmlnaW5gOiBUaGUgc2VuZGVyIG9mIHRoZSBjYWxsLCBmdW5kcyB3aWxsIGJlIHdpdGhkcmF3biBmcm9tIHRoaXMgYWNjb3VudC5JAS0gYG1heF9hbW91bnRgOiBUaGUgbWF4aW11bSBiYWxhbmNlIHRvIHdpdGhkcmF3IGZyb20gdGhlIG9yaWdpbiB0byBwbGFjZSBhbiBvcmRlci4NAS0gYHBhcmFfaWRgOiBBIGBQYXJhSWRgIHRoZSBvcmlnaW4gd2FudHMgdG8gcHJvdmlkZSBibG9ja3NwYWNlIGZvci4AHEVycm9yczrkLSBgSW5zdWZmaWNpZW50QmFsYW5jZWA6IGZyb20gdGhlIEN1cnJlbmN5IGltcGxlbWVudGF0aW9uNC0gYFF1ZXVlRnVsbGCALSBgU3BvdFByaWNlSGlnaGVyVGhhbk1heEFtb3VudGAAHEV2ZW50czpcLSBgT25EZW1hbmRPcmRlclBsYWNlZGBYcGxhY2Vfb3JkZXJfa2VlcF9hbGl2ZQgBKG1heF9hbW91bnQYATBCYWxhbmNlT2Y8VD4AARxwYXJhX2lkYQIBGFBhcmFJZAABPGEBU2FtZSBhcyB0aGUgW2BwbGFjZV9vcmRlcl9hbGxvd19kZWF0aGBdKFNlbGY6OnBsYWNlX29yZGVyX2FsbG93X2RlYXRoKSBjYWxsICwgYnV0IHdpdGggYdxjaGVjayB0aGF0IHBsYWNpbmcgdGhlIG9yZGVyIHdpbGwgbm90IHJlYXAgdGhlIGFjY291bnQuACxQYXJhbWV0ZXJzOjkBLSBgb3JpZ2luYDogVGhlIHNlbmRlciBvZiB0aGUgY2FsbCwgZnVuZHMgd2lsbCBiZSB3aXRoZHJhd24gZnJvbSB0aGlzIGFjY291bnQuSQEtIGBtYXhfYW1vdW50YDogVGhlIG1heGltdW0gYmFsYW5jZSB0byB3aXRoZHJhdyBmcm9tIHRoZSBvcmlnaW4gdG8gcGxhY2UgYW4gb3JkZXIuDQEtIGBwYXJhX2lkYDogQSBgUGFyYUlkYCB0aGUgb3JpZ2luIHdhbnRzIHRvIHByb3ZpZGUgYmxvY2tzcGFjZSBmb3IuABxFcnJvcnM65C0gYEluc3VmZmljaWVudEJhbGFuY2VgOiBmcm9tIHRoZSBDdXJyZW5jeSBpbXBsZW1lbnRhdGlvbjQtIGBRdWV1ZUZ1bGxggC0gYFNwb3RQcmljZUhpZ2hlclRoYW5NYXhBbW91bnRgABxFdmVudHM6XC0gYE9uRGVtYW5kT3JkZXJQbGFjZWRgBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLp0EEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjxwYXJhc19yZWdpc3RyYXIYcGFsbGV0EENhbGwEBFQAASQgcmVnaXN0ZXIMAQhpZGECARhQYXJhSWQAATBnZW5lc2lzX2hlYWQ1BAEgSGVhZERhdGEAATx2YWxpZGF0aW9uX2NvZGUxBAE4VmFsaWRhdGlvbkNvZGUAAFD4UmVnaXN0ZXIgaGVhZCBkYXRhIGFuZCB2YWxpZGF0aW9uIGNvZGUgZm9yIGEgcmVzZXJ2ZWQgUGFyYSBJZC4AMCMjIEFyZ3VtZW50c8AtIGBvcmlnaW5gOiBNdXN0IGJlIGNhbGxlZCBieSBhIGBTaWduZWRgIG9yaWdpbi4tAS0gYGlkYDogVGhlIHBhcmEgSUQuIE11c3QgYmUgb3duZWQvbWFuYWdlZCBieSB0aGUgYG9yaWdpbmAgc2lnbmluZyBhY2NvdW50LgEBLSBgZ2VuZXNpc19oZWFkYDogVGhlIGdlbmVzaXMgaGVhZCBkYXRhIG9mIHRoZSBwYXJhY2hhaW4vdGhyZWFkLiUBLSBgdmFsaWRhdGlvbl9jb2RlYDogVGhlIGluaXRpYWwgdmFsaWRhdGlvbiBjb2RlIG9mIHRoZSBwYXJhY2hhaW4vdGhyZWFkLgBAIyMgRGVwb3NpdHMvRmVlcwkBVGhlIGFjY291bnQgd2l0aCB0aGUgb3JpZ2luYXRpbmcgc2lnbmF0dXJlIG11c3QgcmVzZXJ2ZSBhIGRlcG9zaXQuAE0BVGhlIGRlcG9zaXQgaXMgcmVxdWlyZWQgdG8gY292ZXIgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCBzdG9yaW5nIHRoZSBnZW5lc2lzIGhlYWR0ZGF0YSBhbmQgdGhlIHZhbGlkYXRpb24gY29kZS4xAVRoaXMgYWNjb3VudHMgZm9yIHRoZSBwb3RlbnRpYWwgdG8gc3RvcmUgdmFsaWRhdGlvbiBjb2RlIG9mIGEgc2l6ZSB1cCB0byB0aGXcYG1heF9jb2RlX3NpemVgLCBhcyBkZWZpbmVkIGluIHRoZSBjb25maWd1cmF0aW9uIHBhbGxldAAdAUFueXRoaW5nIGFscmVhZHkgcmVzZXJ2ZWQgcHJldmlvdXNseSBmb3IgdGhpcyBwYXJhIElEIGlzIGFjY291bnRlZCBmb3IuACQjIyBFdmVudHPUVGhlIGBSZWdpc3RlcmVkYCBldmVudCBpcyBlbWl0dGVkIGluIGNhc2Ugb2Ygc3VjY2Vzcy44Zm9yY2VfcmVnaXN0ZXIUAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAEIaWRhAgEYUGFyYUlkAAEwZ2VuZXNpc19oZWFkNQQBIEhlYWREYXRhAAE8dmFsaWRhdGlvbl9jb2RlMQQBOFZhbGlkYXRpb25Db2RlAAEY3EZvcmNlIHRoZSByZWdpc3RyYXRpb24gb2YgYSBQYXJhIElkIG9uIHRoZSByZWxheSBjaGFpbi4AuFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgYnkgYSBSb290IG9yaWdpbi4AGQFUaGUgZGVwb3NpdCB0YWtlbiBjYW4gYmUgc3BlY2lmaWVkIGZvciB0aGlzIHJlZ2lzdHJhdGlvbi4gQW55IGBQYXJhSWRgGQFjYW4gYmUgcmVnaXN0ZXJlZCwgaW5jbHVkaW5nIHN1Yi0xMDAwIElEcyB3aGljaCBhcmUgU3lzdGVtIFBhcmFjaGFpbnMuKGRlcmVnaXN0ZXIEAQhpZGECARhQYXJhSWQAAhAFAURlcmVnaXN0ZXIgYSBQYXJhIElkLCBmcmVlaW5nIGFsbCBkYXRhIGFuZCByZXR1cm5pbmcgYW55IGRlcG9zaXQuAFEBVGhlIGNhbGxlciBtdXN0IGJlIFJvb3QsIHRoZSBgcGFyYWAgb3duZXIsIG9yIHRoZSBgcGFyYWAgaXRzZWxmLiBUaGUgcGFyYSBtdXN0IGJlIGFuUG9uLWRlbWFuZCBwYXJhY2hhaW4uEHN3YXAIAQhpZGECARhQYXJhSWQAARRvdGhlcmECARhQYXJhSWQAAzBBAVN3YXAgYSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbiB3aXRoIGFub3RoZXIgcGFyYWNoYWluLCBlaXRoZXIgb24tZGVtYW5kIG9yIGxlYXNlIGhvbGRpbmcuAAEBVGhlIG9yaWdpbiBtdXN0IGJlIFJvb3QsIHRoZSBgcGFyYWAgb3duZXIsIG9yIHRoZSBgcGFyYWAgaXRzZWxmLgBhAVRoZSBzd2FwIHdpbGwgaGFwcGVuIG9ubHkgaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvcHBvc2l0ZSBzd2FwIHBlbmRpbmcuIElmIHRoZXJlIGlzIG5vdCxZAXRoZSBzd2FwIHdpbGwgYmUgc3RvcmVkIGluIHRoZSBwZW5kaW5nIHN3YXBzIG1hcCwgcmVhZHkgZm9yIGEgbGF0ZXIgY29uZmlybWF0b3J5IHN3YXAuAF0BVGhlIGBQYXJhSWRgcyByZW1haW4gbWFwcGVkIHRvIHRoZSBzYW1lIGhlYWQgZGF0YSBhbmQgY29kZSBzbyBleHRlcm5hbCBjb2RlIGNhbiByZWx5IG9uPQFgUGFyYUlkYCB0byBiZSBhIGxvbmctdGVybSBpZGVudGlmaWVyIG9mIGEgbm90aW9uYWwgInBhcmFjaGFpbiIuIEhvd2V2ZXIsIHRoZWlyNQFzY2hlZHVsaW5nIGluZm8gKGkuZS4gd2hldGhlciB0aGV5J3JlIGFuIG9uLWRlbWFuZCBwYXJhY2hhaW4gb3IgbGVhc2UgaG9sZGluZxUBcGFyYWNoYWluKSwgYXVjdGlvbiBpbmZvcm1hdGlvbiBhbmQgdGhlIGF1Y3Rpb24gZGVwb3NpdCBhcmUgc3dpdGNoZWQuLHJlbW92ZV9sb2NrBAEQcGFyYWECARhQYXJhSWQABBANAVJlbW92ZSBhIG1hbmFnZXIgbG9jayBmcm9tIGEgcGFyYS4gVGhpcyB3aWxsIGFsbG93IHRoZSBtYW5hZ2VyIG9mIGE1AXByZXZpb3VzbHkgbG9ja2VkIHBhcmEgdG8gZGVyZWdpc3RlciBvciBzd2FwIGEgcGFyYSB3aXRob3V0IHVzaW5nIGdvdmVybmFuY2UuANxDYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIFJvb3Qgb3JpZ2luIG9yIHRoZSBwYXJhY2hhaW4uHHJlc2VydmUABUSUUmVzZXJ2ZSBhIFBhcmEgSWQgb24gdGhlIHJlbGF5IGNoYWluLgBNAVRoaXMgZnVuY3Rpb24gd2lsbCByZXNlcnZlIGEgbmV3IFBhcmEgSWQgdG8gYmUgb3duZWQvbWFuYWdlZCBieSB0aGUgb3JpZ2luIGFjY291bnQuYQFUaGUgb3JpZ2luIGFjY291bnQgaXMgYWJsZSB0byByZWdpc3RlciBoZWFkIGRhdGEgYW5kIHZhbGlkYXRpb24gY29kZSB1c2luZyBgcmVnaXN0ZXJgIHRvWQFjcmVhdGUgYW4gb24tZGVtYW5kIHBhcmFjaGFpbi4gVXNpbmcgdGhlIFNsb3RzIHBhbGxldCwgYW4gb24tZGVtYW5kIHBhcmFjaGFpbiBjYW4gdGhlbqRiZSB1cGdyYWRlZCB0byBhIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluLgAwIyMgQXJndW1lbnRzVQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhbGxlZCBieSBhIGBTaWduZWRgIG9yaWdpbi4gQmVjb21lcyB0aGUgbWFuYWdlci9vd25lciBvZiB0aGUgbmV3KCAgcGFyYSBJRC4AQCMjIERlcG9zaXRzL0ZlZXMhAVRoZSBvcmlnaW4gbXVzdCByZXNlcnZlIGEgZGVwb3NpdCBvZiBgUGFyYURlcG9zaXRgIGZvciB0aGUgcmVnaXN0cmF0aW9uLgAkIyMgRXZlbnRzWQFUaGUgYFJlc2VydmVkYCBldmVudCBpcyBlbWl0dGVkIGluIGNhc2Ugb2Ygc3VjY2Vzcywgd2hpY2ggcHJvdmlkZXMgdGhlIElEIHJlc2VydmVkIGZvchB1c2UuIGFkZF9sb2NrBAEQcGFyYWECARhQYXJhSWQABhQJAUFkZCBhIG1hbmFnZXIgbG9jayBmcm9tIGEgcGFyYS4gVGhpcyB3aWxsIHByZXZlbnQgdGhlIG1hbmFnZXIgb2YgYYhwYXJhIHRvIGRlcmVnaXN0ZXIgb3Igc3dhcCBhIHBhcmEuAEkBQ2FuIGJlIGNhbGxlZCBieSBSb290LCB0aGUgcGFyYWNoYWluLCBvciB0aGUgcGFyYWNoYWluIG1hbmFnZXIgaWYgdGhlIHBhcmFjaGFpbiBpcyR1bmxvY2tlZC5Uc2NoZWR1bGVfY29kZV91cGdyYWRlCAEQcGFyYWECARhQYXJhSWQAASBuZXdfY29kZTEEAThWYWxpZGF0aW9uQ29kZQAHLHRTY2hlZHVsZSBhIHBhcmFjaGFpbiB1cGdyYWRlLgBVAVRoaXMgd2lsbCBraWNrIG9mZiBhIGNoZWNrIG9mIGBuZXdfY29kZWAgYnkgYWxsIHZhbGlkYXRvcnMuIEFmdGVyIHRoZSBtYWpvcml0eSBvZiB0aGVVAXZhbGlkYXRvcnMgaGF2ZSByZXBvcnRlZCBvbiB0aGUgdmFsaWRpdHkgb2YgdGhlIGNvZGUsIHRoZSBjb2RlIHdpbGwgZWl0aGVyIGJlIGVuYWN0ZWRVAW9yIHRoZSB1cGdyYWRlIHdpbGwgYmUgcmVqZWN0ZWQuIElmIHRoZSBjb2RlIHdpbGwgYmUgZW5hY3RlZCwgdGhlIGN1cnJlbnQgY29kZSBvZiB0aGVdAXBhcmFjaGFpbiB3aWxsIGJlIG92ZXJ3cml0dGVuIGRpcmVjdGx5LiBUaGlzIG1lYW5zIHRoYXQgYW55IFBvViB3aWxsIGJlIGNoZWNrZWQgYnkgdGhpc10BbmV3IGNvZGUuIFRoZSBwYXJhY2hhaW4gaXRzZWxmIHdpbGwgbm90IGJlIGluZm9ybWVkIGV4cGxpY2l0bHkgdGhhdCB0aGUgdmFsaWRhdGlvbiBjb2RlMGhhcyBjaGFuZ2VkLgBJAUNhbiBiZSBjYWxsZWQgYnkgUm9vdCwgdGhlIHBhcmFjaGFpbiwgb3IgdGhlIHBhcmFjaGFpbiBtYW5hZ2VyIGlmIHRoZSBwYXJhY2hhaW4gaXMkdW5sb2NrZWQuQHNldF9jdXJyZW50X2hlYWQIARBwYXJhYQIBGFBhcmFJZAABIG5ld19oZWFkNQQBIEhlYWREYXRhAAgQhFNldCB0aGUgcGFyYWNoYWluJ3MgY3VycmVudCBoZWFkLgBJAUNhbiBiZSBjYWxsZWQgYnkgUm9vdCwgdGhlIHBhcmFjaGFpbiwgb3IgdGhlIHBhcmFjaGFpbiBtYW5hZ2VyIGlmIHRoZSBwYXJhY2hhaW4gaXMkdW5sb2NrZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqEEEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhRzbG90cxhwYWxsZXQQQ2FsbAQEVAABDCxmb3JjZV9sZWFzZRQBEHBhcmFhAgEYUGFyYUlkAAEYbGVhc2VyAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEwcGVyaW9kX2JlZ2luEAFATGVhc2VQZXJpb2RPZjxUPgABMHBlcmlvZF9jb3VudBABQExlYXNlUGVyaW9kT2Y8VD4AABBNAUp1c3QgYSBjb25uZWN0IGludG8gdGhlIGBsZWFzZV9vdXRgIGNhbGwsIGluIGNhc2UgUm9vdCB3YW50cyB0byBmb3JjZSBzb21lIGxlYXNlIHRv/GhhcHBlbiBpbmRlcGVuZGVudGx5IG9mIGFueSBvdGhlciBvbi1jaGFpbiBtZWNoYW5pc20gdG8gdXNlIGl0LgD4VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgbWF0Y2ggYFQ6OkZvcmNlT3JpZ2luYC5AY2xlYXJfYWxsX2xlYXNlcwQBEHBhcmFhAgEYUGFyYUlkAAEMTQFDbGVhciBhbGwgbGVhc2VzIGZvciBhIFBhcmEgSWQsIHJlZnVuZGluZyBhbnkgZGVwb3NpdHMgYmFjayB0byB0aGUgb3JpZ2luYWwgb3duZXJzLgD4VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgbWF0Y2ggYFQ6OkZvcmNlT3JpZ2luYC48dHJpZ2dlcl9vbmJvYXJkBAEQcGFyYWECARhQYXJhSWQAAhwlAVRyeSB0byBvbmJvYXJkIGEgcGFyYWNoYWluIHRoYXQgaGFzIGEgbGVhc2UgZm9yIHRoZSBjdXJyZW50IGxlYXNlIHBlcmlvZC4ARQFUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VmdWwgaWYgdGhlcmUgd2FzIHNvbWUgc3RhdGUgaXNzdWUgd2l0aCBhIHBhcmEgdGhhdCBzaG91bGQ5AWhhdmUgb25ib2FyZGVkLCBidXQgd2FzIHVuYWJsZSB0by4gQXMgbG9uZyBhcyB0aGV5IGhhdmUgYSBsZWFzZSBwZXJpb2QsIHdlIGNhbmxsZXQgdGhlbSBvbmJvYXJkIGZyb20gaGVyZS4AzE9yaWdpbiBtdXN0IGJlIHNpZ25lZCwgYnV0IGNhbiBiZSBjYWxsZWQgYnkgYW55b25lLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6lBBBccG9sa2Fkb3RfcnVudGltZV9jb21tb24gYXVjdGlvbnMYcGFsbGV0EENhbGwEBFQAAQwsbmV3X2F1Y3Rpb24IASBkdXJhdGlvbvABREJsb2NrTnVtYmVyRm9yPFQ+AAFIbGVhc2VfcGVyaW9kX2luZGV48AFATGVhc2VQZXJpb2RPZjxUPgAAFFRDcmVhdGUgYSBuZXcgYXVjdGlvbi4AUQFUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aGVuIHRoZXJlIGlzbid0IGFscmVhZHkgYW4gYXVjdGlvbiBpbiBwcm9ncmVzcyBhbmQgbWF5IG9ubHkgYmUlAWNhbGxlZCBieSB0aGUgcm9vdCBvcmlnaW4uIEFjY2VwdHMgdGhlIGBkdXJhdGlvbmAgb2YgdGhpcyBhdWN0aW9uIGFuZCB0aGVZAWBsZWFzZV9wZXJpb2RfaW5kZXhgIG9mIHRoZSBpbml0aWFsIGxlYXNlIHBlcmlvZCBvZiB0aGUgZm91ciB0aGF0IGFyZSB0byBiZSBhdWN0aW9uZWQuDGJpZBQBEHBhcmGpBAEYUGFyYUlkAAE0YXVjdGlvbl9pbmRlePABMEF1Y3Rpb25JbmRleAABKGZpcnN0X3Nsb3TwAUBMZWFzZVBlcmlvZE9mPFQ+AAEkbGFzdF9zbG908AFATGVhc2VQZXJpb2RPZjxUPgABGGFtb3VudAEBATBCYWxhbmNlT2Y8VD4AAUBJAU1ha2UgYSBuZXcgYmlkIGZyb20gYW4gYWNjb3VudCAoaW5jbHVkaW5nIGEgcGFyYWNoYWluIGFjY291bnQpIGZvciBkZXBsb3lpbmcgYSBuZXcocGFyYWNoYWluLgBZAU11bHRpcGxlIHNpbXVsdGFuZW91cyBiaWRzIGZyb20gdGhlIHNhbWUgYmlkZGVyIGFyZSBhbGxvd2VkIG9ubHkgYXMgbG9uZyBhcyBhbGwgYWN0aXZlPQFiaWRzIG92ZXJsYXAgZWFjaCBvdGhlciAoaS5lLiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlKS4gQmlkcyBjYW5ub3QgYmUgcmVkYWN0ZWQuAFUBLSBgc3ViYCBpcyB0aGUgc3ViLWJpZGRlciBJRCwgYWxsb3dpbmcgZm9yIG11bHRpcGxlIGNvbXBldGluZyBiaWRzIHRvIGJlIG1hZGUgYnkgKGFuZHBmdW5kZWQgYnkpIHRoZSBzYW1lIGFjY291bnQuTQEtIGBhdWN0aW9uX2luZGV4YCBpcyB0aGUgaW5kZXggb2YgdGhlIGF1Y3Rpb24gdG8gYmlkIG9uLiBTaG91bGQganVzdCBiZSB0aGUgcHJlc2VudGh2YWx1ZSBvZiBgQXVjdGlvbkNvdW50ZXJgLkkBLSBgZmlyc3Rfc2xvdGAgaXMgdGhlIGZpcnN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQkBYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuQQEtIGBsYXN0X3Nsb3RgIGlzIHRoZSBsYXN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQkBYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuSQEtIGBhbW91bnRgIGlzIHRoZSBhbW91bnQgdG8gYmlkIHRvIGJlIGhlbGQgYXMgZGVwb3NpdCBmb3IgdGhlIHBhcmFjaGFpbiBzaG91bGQgdGhlyGJpZCB3aW4uIFRoaXMgYW1vdW50IGlzIGhlbGQgdGhyb3VnaG91dCB0aGUgcmFuZ2UuOGNhbmNlbF9hdWN0aW9uAAIMeENhbmNlbCBhbiBpbi1wcm9ncmVzcyBhdWN0aW9uLgCIQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJvb3Qgb3JpZ2luLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6pBAAABmECAK0EEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4YcGFsbGV0EENhbGwEBFQAASQYY3JlYXRlGAEUaW5kZXipBAEYUGFyYUlkAAEMY2FwAQEBMEJhbGFuY2VPZjxUPgABMGZpcnN0X3BlcmlvZPABQExlYXNlUGVyaW9kT2Y8VD4AASxsYXN0X3BlcmlvZPABQExlYXNlUGVyaW9kT2Y8VD4AAQxlbmTwAURCbG9ja051bWJlckZvcjxUPgABIHZlcmlmaWVysQQBTE9wdGlvbjxNdWx0aVNpZ25lcj4AABRNAUNyZWF0ZSBhIG5ldyBjcm93ZGxvYW5pbmcgY2FtcGFpZ24gZm9yIGEgcGFyYWNoYWluIHNsb3Qgd2l0aCB0aGUgZ2l2ZW4gbGVhc2UgcGVyaW9kGHJhbmdlLgBdAVRoaXMgYXBwbGllcyBhIGxvY2sgdG8geW91ciBwYXJhY2hhaW4gY29uZmlndXJhdGlvbiwgZW5zdXJpbmcgdGhhdCBpdCBjYW5ub3QgYmUgY2hhbmdlZGRieSB0aGUgcGFyYWNoYWluIG1hbmFnZXIuKGNvbnRyaWJ1dGUMARRpbmRleKkEARhQYXJhSWQAARR2YWx1ZQEBATBCYWxhbmNlT2Y8VD4AASRzaWduYXR1cmVJAwFYT3B0aW9uPE11bHRpU2lnbmF0dXJlPgABCFEBQ29udHJpYnV0ZSB0byBhIGNyb3dkIHNhbGUuIFRoaXMgd2lsbCB0cmFuc2ZlciBzb21lIGJhbGFuY2Ugb3ZlciB0byBmdW5kIGEgcGFyYWNoYWluUQFzbG90LiBJdCB3aWxsIGJlIHdpdGhkcmF3YWJsZSB3aGVuIHRoZSBjcm93ZGxvYW4gaGFzIGVuZGVkIGFuZCB0aGUgZnVuZHMgYXJlIHVudXNlZC4gd2l0aGRyYXcIAQx3aG8AATBUOjpBY2NvdW50SWQAARRpbmRleKkEARhQYXJhSWQAAkTAV2l0aGRyYXcgZnVsbCBiYWxhbmNlIG9mIGEgc3BlY2lmaWMgY29udHJpYnV0b3IuAMBPcmlnaW4gbXVzdCBiZSBzaWduZWQsIGJ1dCBjYW4gY29tZSBmcm9tIGFueW9uZS4AXQFUaGUgZnVuZCBtdXN0IGJlIGVpdGhlciBpbiwgb3IgcmVhZHkgZm9yLCByZXRpcmVtZW50LiBGb3IgYSBmdW5kIHRvIGJlICppbiogcmV0aXJlbWVudCxJAXRoZW4gdGhlIHJldGlyZW1lbnQgZmxhZyBtdXN0IGJlIHNldC4gRm9yIGEgZnVuZCB0byBiZSByZWFkeSBmb3IgcmV0aXJlbWVudCwgdGhlbjqcLSBpdCBtdXN0IG5vdCBhbHJlYWR5IGJlIGluIHJldGlyZW1lbnQ7TQEtIHRoZSBhbW91bnQgb2YgcmFpc2VkIGZ1bmRzIG11c3QgYmUgYmlnZ2VyIHRoYW4gdGhlIF9mcmVlXyBiYWxhbmNlIG9mIHRoZSBhY2NvdW50OzQtIGFuZCBlaXRoZXI6vCAgLSB0aGUgYmxvY2sgbnVtYmVyIG11c3QgYmUgYXQgbGVhc3QgYGVuZGA7IG9yLQEgIC0gdGhlIGN1cnJlbnQgbGVhc2UgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBmdW5kJ3MgYGxhc3RfcGVyaW9kYC4AVQFJbiB0aGlzIGNhc2UsIHRoZSBmdW5kJ3MgcmV0aXJlbWVudCBmbGFnIGlzIHNldCBhbmQgaXRzIGBlbmRgIGlzIHJlc2V0IHRvIHRoZSBjdXJyZW50NGJsb2NrIG51bWJlci4A8C0gYHdob2A6IFRoZSBhY2NvdW50IHdob3NlIGNvbnRyaWJ1dGlvbiBzaG91bGQgYmUgd2l0aGRyYXduLhkBLSBgaW5kZXhgOiBUaGUgcGFyYWNoYWluIHRvIHdob3NlIGNyb3dkbG9hbiB0aGUgY29udHJpYnV0aW9uIHdhcyBtYWRlLhhyZWZ1bmQEARRpbmRleKkEARhQYXJhSWQAAxTgQXV0b21hdGljYWxseSByZWZ1bmQgY29udHJpYnV0b3JzIG9mIGFuIGVuZGVkIGNyb3dkbG9hbi4hAUR1ZSB0byB3ZWlnaHQgcmVzdHJpY3Rpb25zLCB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGJlIGNhbGxlZCBtdWx0aXBsZUkBdGltZXMgdG8gZnVsbHkgcmVmdW5kIGFsbCB1c2Vycy4gV2Ugd2lsbCByZWZ1bmQgYFJlbW92ZUtleXNMaW1pdGAgdXNlcnMgYXQgYSB0aW1lLgDAT3JpZ2luIG11c3QgYmUgc2lnbmVkLCBidXQgY2FuIGNvbWUgZnJvbSBhbnlvbmUuIGRpc3NvbHZlBAEUaW5kZXipBAEYUGFyYUlkAAQEVQFSZW1vdmUgYSBmdW5kIGFmdGVyIHRoZSByZXRpcmVtZW50IHBlcmlvZCBoYXMgZW5kZWQgYW5kIGFsbCBmdW5kcyBoYXZlIGJlZW4gcmV0dXJuZWQuEGVkaXQYARRpbmRleKkEARhQYXJhSWQAAQxjYXABAQEwQmFsYW5jZU9mPFQ+AAEwZmlyc3RfcGVyaW9k8AFATGVhc2VQZXJpb2RPZjxUPgABLGxhc3RfcGVyaW9k8AFATGVhc2VQZXJpb2RPZjxUPgABDGVuZPABREJsb2NrTnVtYmVyRm9yPFQ+AAEgdmVyaWZpZXKxBAFMT3B0aW9uPE11bHRpU2lnbmVyPgAFDNBFZGl0IHRoZSBjb25maWd1cmF0aW9uIGZvciBhbiBpbi1wcm9ncmVzcyBjcm93ZGxvYW4uAIhDYW4gb25seSBiZSBjYWxsZWQgYnkgUm9vdCBvcmlnaW4uIGFkZF9tZW1vCAEUaW5kZXhhAgEYUGFyYUlkAAEQbWVtbzgBHFZlYzx1OD4ABgzsQWRkIGFuIG9wdGlvbmFsIG1lbW8gdG8gYW4gZXhpc3RpbmcgY3Jvd2Rsb2FuIGNvbnRyaWJ1dGlvbi4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQsIGFuZCB0aGUgdXNlciBtdXN0IGhhdmUgY29udHJpYnV0ZWQgdG8gdGhlIGNyb3dkbG9hbi4QcG9rZQQBFGluZGV4YQIBGFBhcmFJZAAHDHRQb2tlIHRoZSBmdW5kIGludG8gYE5ld1JhaXNlYADcT3JpZ2luIG11c3QgYmUgU2lnbmVkLCBhbmQgdGhlIGZ1bmQgaGFzIG5vbi16ZXJvIHJhaXNlLjhjb250cmlidXRlX2FsbAgBFGluZGV4qQQBGFBhcmFJZAABJHNpZ25hdHVyZUkDAVhPcHRpb248TXVsdGlTaWduYXR1cmU+AAgMYQFDb250cmlidXRlIHlvdXIgZW50aXJlIGJhbGFuY2UgdG8gYSBjcm93ZCBzYWxlLiBUaGlzIHdpbGwgdHJhbnNmZXIgdGhlIGVudGlyZSBiYWxhbmNlIG9mUQFhIHVzZXIgb3ZlciB0byBmdW5kIGEgcGFyYWNoYWluIHNsb3QuIEl0IHdpbGwgYmUgd2l0aGRyYXdhYmxlIHdoZW4gdGhlIGNyb3dkbG9hbiBoYXN8ZW5kZWQgYW5kIHRoZSBmdW5kcyBhcmUgdW51c2VkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6xBAQYT3B0aW9uBARUAbUEAQgQTm9uZQAAABBTb21lBAC1BAAAAQAAtQQIKHNwX3J1bnRpbWUsTXVsdGlTaWduZXIAAQwcRWQyNTUxOQQABAE8ZWQyNTUxOTo6UHVibGljAAAAHFNyMjU1MTkEAAQBPHNyMjU1MTk6OlB1YmxpYwABABRFY2RzYQQACQIBNGVjZHNhOjpQdWJsaWMAAgAAuQQQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyBjb3JldGltZRhwYWxsZXQQQ2FsbAQEVAABDEhyZXF1ZXN0X2NvcmVfY291bnQEARRjb3VudHkBAQx1MTYAARhRAVJlcXVlc3QgdGhlIGNvbmZpZ3VyYXRpb24gdG8gYmUgdXBkYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNvcmVzLiBXYXJuaW5nOlEBU2luY2UgdGhpcyBvbmx5IHNjaGVkdWxlcyBhIGNvbmZpZ3VyYXRpb24gdXBkYXRlLCBpdCB0YWtlcyB0d28gc2Vzc2lvbnMgdG8gY29tZSBpbnRvHGVmZmVjdC4AmC0gYG9yaWdpbmA6IFJvb3Qgb3IgdGhlIENvcmV0aW1lIENoYWlugC0gYGNvdW50YDogdG90YWwgbnVtYmVyIG9mIGNvcmVzSHJlcXVlc3RfcmV2ZW51ZV9hdAQBEHdoZW4QASxCbG9ja051bWJlcgACEGEBUmVxdWVzdCB0byBjbGFpbSB0aGUgaW5zdGFudGFuZW91cyBjb3JldGltZSBzYWxlcyByZXZlbnVlIHN0YXJ0aW5nIGZyb20gdGhlIGJsb2NrIGl0IHdhc10BbGFzdCBjbGFpbWVkIHVudGlsIGFuZCB1cCB0byB0aGUgYmxvY2sgc3BlY2lmaWVkLiBUaGUgY2xhaW1lZCBhbW91bnQgdmFsdWUgaXMgc2VudCBiYWNrUQF0byB0aGUgQ29yZXRpbWUgY2hhaW4gaW4gYSBgbm90aWZ5X3JldmVudWVgIG1lc3NhZ2UuIEF0IHRoZSBzYW1lIHRpbWUsIHRoZSBhbW91bnQgaXOEdGVsZXBvcnRlZCB0byB0aGUgQ29yZXRpbWUgY2hhaW4uLGFzc2lnbl9jb3JlEAEQY29yZXkBATxCcm9rZXJDb3JlSW5kZXgAARRiZWdpbhABREJsb2NrTnVtYmVyRm9yPFQ+AAEoYXNzaWdubWVudL0EAYxWZWM8KENvcmVBc3NpZ25tZW50LCBQYXJ0c09mNTc2MDApPgABIGVuZF9oaW50PQIBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4ABCRZAVJlY2VpdmUgaW5zdHJ1Y3Rpb25zIGZyb20gdGhlIGBFeHRlcm5hbEJyb2tlck9yaWdpbmAsIGRldGFpbGluZyBob3cgYSBzcGVjaWZpYyBjb3JlIGlzLHRvIGJlIHVzZWQuACxQYXJhbWV0ZXJzOiEBLWBvcmlnaW5gOiBUaGUgYEV4dGVybmFsQnJva2VyT3JpZ2luYCwgYXNzdW1lZCB0byBiZSB0aGUgY29yZXRpbWUgY2hhaW4urC1gY29yZWA6IFRoZSBjb3JlIHRoYXQgc2hvdWxkIGJlIHNjaGVkdWxlZC7YLWBiZWdpbmA6IFRoZSBzdGFydGluZyBibG9ja2hlaWdodCBvZiB0aGUgaW5zdHJ1Y3Rpb24u1C1gYXNzaWdubWVudGA6IEhvdyB0aGUgYmxvY2tzcGFjZSBzaG91bGQgYmUgdXRpbGlzZWQuWQEtYGVuZF9oaW50YDogQW4gb3B0aW9uYWwgaGludCBhcyB0byB3aGVuIHRoaXMgcGFydGljdWxhciBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHdpbGwgZW5kLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy69BAAAAsEEAMEEAAAECMUEyQQAxQQMNHBhbGxldF9icm9rZXJIY29yZXRpbWVfaW50ZXJmYWNlOENvcmVBc3NpZ25tZW50AAEMEElkbGUAAAAQUG9vbAABABBUYXNrBAAQARhUYXNrSWQAAgAAyQQMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZTBQYXJ0c09mNTc2MDAAAAQAeQEBDHUxNgAAzQQMKHBhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAATgQc2VuZAgBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2XRBAFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAAPHRlbGVwb3J0X2Fzc2V0cxABEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPNBQFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgABSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AHQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzEAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c80FAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAJ4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4APQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy4cZXhlY3V0ZQgBHG1lc3NhZ2XRBQG0Qm94PFZlcnNpb25lZFhjbTw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4+AAEobWF4X3dlaWdodCgBGFdlaWdodAADINBFeGVjdXRlIGFuIFhDTSBtZXNzYWdlIGZyb20gYSBsb2NhbCwgc2lnbmVkLCBvcmlnaW4uAE0BQW4gZXZlbnQgaXMgZGVwb3NpdGVkIGluZGljYXRpbmcgd2hldGhlciBgbXNnYCBjb3VsZCBiZSBleGVjdXRlZCBjb21wbGV0ZWx5IG9yIG9ubHkocGFydGlhbGx5LgBdAU5vIG1vcmUgdGhhbiBgbWF4X3dlaWdodGAgd2lsbCBiZSB1c2VkIGluIGl0cyBhdHRlbXB0ZWQgZXhlY3V0aW9uLiBJZiB0aGlzIGlzIGxlc3MgdGhhbkEBdGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCB0aGF0IHRoZSBtZXNzYWdlIGNvdWxkIHRha2UgdG8gYmUgZXhlY3V0ZWQsIHRoZW4gbm98ZXhlY3V0aW9uIGF0dGVtcHQgd2lsbCBiZSBtYWRlLkRmb3JjZV94Y21fdmVyc2lvbggBIGxvY2F0aW9uEQEBNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uEAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb249AgFIT3B0aW9uPFhjbVZlcnNpb24+AAUUWQFTZXQgYSBzYWZlIFhDTSB2ZXJzaW9uICh0aGUgdmVyc2lvbiB0aGF0IFhDTSBzaG91bGQgYmUgZW5jb2RlZCB3aXRoIGlmIHRoZSBtb3N0IHJlY2VudLR2ZXJzaW9uIGEgZGVzdGluYXRpb24gY2FuIGFjY2VwdCBpcyB1bmtub3duKS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi45AS0gYG1heWJlX3hjbV92ZXJzaW9uYDogVGhlIGRlZmF1bHQgWENNIGVuY29kaW5nIHZlcnNpb24sIG9yIGBOb25lYCB0byBkaXNhYmxlLnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbkkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAYQOQFBc2sgYSBsb2NhdGlvbiB0byBub3RpZnkgdXMgcmVnYXJkaW5nIHRoZWlyIFhDTSB2ZXJzaW9uIGFuZCBhbnkgY2hhbmdlcyB0byBpdC4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi5ZAS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIHNob3VsZCBzdWJzY3JpYmUgZm9yIFhDTSB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMugGZvcmNlX3Vuc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb25JAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAHGEkBUmVxdWlyZSB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBzaG91bGQgbm8gbG9uZ2VyIG5vdGlmeSB1cyByZWdhcmRpbmcgYW55IFhDTUB2ZXJzaW9uIGNoYW5nZXMuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uPQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgZm9yIFhDTSB2ZXJzaW9uqCAgbm90aWZpY2F0aW9ucyB3aGljaCB3ZSBubyBsb25nZXIgZGVzaXJlLnxsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzFAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c80FAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0gQUBLFdlaWdodExpbWl0AAh4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzFAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c80FAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0gQUBLFdlaWdodExpbWl0AAlIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5AZm9yY2Vfc3VzcGVuc2lvbgQBJHN1c3BlbmRlZCABEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPNBQFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgABMHdlaWdodF9saW1pdIEFASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRzzQUBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPNBQFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZf0FAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkAQYBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZf0FAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdNEEAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXSBBQEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtEECAx4Y20wVmVyc2lvbmVkWGNtBCxSdW50aW1lQ2FsbAABDAhWMgQA1QQBUHYyOjpYY208UnVudGltZUNhbGw+AAIACFYzBAAhBQFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEAIUFAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAADVBAwMeGNtCHYyDFhjbQQsUnVudGltZUNhbGwAAAQA2QQBdFZlYzxJbnN0cnVjdGlvbjxSdW50aW1lQ2FsbD4+AADZBAAAAt0EAN0EDAx4Y20IdjIsSW5zdHJ1Y3Rpb24ELFJ1bnRpbWVDYWxsAAFwNFdpdGhkcmF3QXNzZXQEAOEEASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAOEEASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BADhBAEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZQwBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNl+QQBIFJlc3BvbnNlAAEobWF4X3dlaWdodCwBDHU2NAADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRz4QQBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnlNAQE0TXVsdGlMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c+EEASxNdWx0aUFzc2V0cwABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbdUEARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX3R5cGUJBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QsAQx1NjQAARBjYWxsDQUBaERvdWJsZUVuY29kZWQ8UnVudGltZUNhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXLwAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpl8AEMdTMyAAEwbWF4X2NhcGFjaXR58AEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnTwAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9y8AEMdTMyAAEYc2VuZGVy8AEMdTMyAAEkcmVjaXBpZW508AEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAFEBAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0AAwAMERlcG9zaXRBc3NldAwBGGFzc2V0cxEFAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0c/ABDHUzMgABLGJlbmVmaWNpYXJ5TQEBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldBABGGFzc2V0cxEFAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0c/ABDHUzMgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbdUEARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQIARBnaXZlEQUBQE11bHRpQXNzZXRGaWx0ZXIAARxyZWNlaXZl4QQBLE11bHRpQXNzZXRzAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzEQUBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlTQEBNE11bHRpTG9jYXRpb24AAQx4Y23VBAEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzEQUBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y23VBAEcWGNtPCgpPgARADBRdWVyeUhvbGRpbmcQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AARhhc3NldHMRBQFATXVsdGlBc3NldEZpbHRlcgABTG1heF9yZXNwb25zZV93ZWlnaHQsAQx1NjQAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc+kEAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0HQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADVBAFAWGNtPFJ1bnRpbWVDYWxsPgAVACxTZXRBcHBlbmRpeAQA1QQBQFhjbTxSdW50aW1lQ2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRz4QQBLE11bHRpQXNzZXRzAAEYdGlja2V0TQEBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbAADhBBAMeGNtCHYyKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQA5QQBPFZlYzxNdWx0aUFzc2V0PgAA5QQAAALpBADpBBAMeGNtCHYyKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWTtBAEcQXNzZXRJZAABDGZ1bvEEASxGdW5naWJpbGl0eQAA7QQQDHhjbQh2MihtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEAE0BATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAA4ARxWZWM8dTg+AAEAAPEEEAx4Y20IdjIobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAAQEBEHUxMjgAAAAsTm9uRnVuZ2libGUEAPUEATRBc3NldEluc3RhbmNlAAEAAPUEEAx4Y20IdjIobXVsdGlhc3NldDRBc3NldEluc3RhbmNlAAEcJFVuZGVmaW5lZAAAABRJbmRleAQAAQEBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQA3QIBHFt1ODsgOF0AAwAcQXJyYXkxNgQAxAEgW3U4OyAxNl0ABAAcQXJyYXkzMgQABAEgW3U4OyAzMl0ABQAQQmxvYgQAOAEcVmVjPHU4PgAGAAD5BAwMeGNtCHYyIFJlc3BvbnNlAAEQEE51bGwAAAAYQXNzZXRzBADhBAEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAD9BAFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAA/QQEGE9wdGlvbgQEVAEBBQEIEE5vbmUAAAAQU29tZQQAAQUAAAEAAAEFAAAECBAFBQAFBRAMeGNtCHYyGHRyYWl0cxRFcnJvcgABaCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMARE11bHRpTG9jYXRpb25GdWxsAAQAaE11bHRpTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAMAEMdTY0ABUATFVuaGFuZGxlZFhjbVZlcnNpb24AFgBIV2VpZ2h0TGltaXRSZWFjaGVkBAAwARhXZWlnaHQAFwAcQmFycmllcgAYAExXZWlnaHROb3RDb21wdXRhYmxlABkAAAkFDAx4Y20IdjIoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAAA0FDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZDgBHFZlYzx1OD4AABEFEAx4Y20IdjIobXVsdGlhc3NldEBNdWx0aUFzc2V0RmlsdGVyAAEIIERlZmluaXRlBADhBAEsTXVsdGlBc3NldHMAAAAQV2lsZAQAFQUBOFdpbGRNdWx0aUFzc2V0AAEAABUFEAx4Y20IdjIobXVsdGlhc3NldDhXaWxkTXVsdGlBc3NldAABCAxBbGwAAAAUQWxsT2YIAQhpZO0EARxBc3NldElkAAEMZnVuGQUBPFdpbGRGdW5naWJpbGl0eQABAAAZBRAMeGNtCHYyKG11bHRpYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAAB0FDAx4Y20IdjIsV2VpZ2h0TGltaXQAAQgkVW5saW1pdGVkAAAAHExpbWl0ZWQEACwBDHU2NAABAAAhBQwMeGNtCHYzDFhjbQQQQ2FsbAAABAAlBQFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAJQUAAAIpBQApBQwMeGNtCHYzLEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAC0FASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAC0FASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAtBQEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNlQQUBIFJlc3BvbnNlAAEobWF4X3dlaWdodCgBGFdlaWdodAABHHF1ZXJpZXJpBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMtBQEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyeeQBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMtBQEsTXVsdGlBc3NldHMAARBkZXN05AE0TXVsdGlMb2NhdGlvbgABDHhjbSEFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRtBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsDQUBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcvABDHUzMgABQG1heF9tZXNzYWdlX3NpemXwAQx1MzIAATBtYXhfY2FwYWNpdHnwAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudPABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3LwAQx1MzIAARhzZW5kZXLwAQx1MzIAASRyZWNpcGllbnTwAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQA6AFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABxBQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzdQUBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeeQBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c3UFAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdOQBNE11bHRpTG9jYXRpb24AAQx4Y20hBQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZXUFAUBNdWx0aUFzc2V0RmlsdGVyAAEQd2FudC0FASxNdWx0aUFzc2V0cwABHG1heGltYWwgARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzdQUBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZl5AE0TXVsdGlMb2NhdGlvbgABDHhjbSEFARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHN1BQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3TkATRNdWx0aUxvY2F0aW9uAAEMeGNtIQUBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm9xBQFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHN1BQFATXVsdGlBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzNQUBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXSBBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEACEFASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEACEFASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzLQUBLE11bHRpQXNzZXRzAAEYdGlja2V05AE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQALQUBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAAtBQEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABpBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABFBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAGEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm9xBQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXjwAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9y8AEMdTMyAAE8bWluX2NyYXRlX21pbm9y8AEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBABxBQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAOwBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr+AEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27oAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y20hBQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldDUFAShNdWx0aUFzc2V0AAEgdW5sb2NrZXLkATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQ1BQEoTXVsdGlBc3NldAABGHRhcmdldOQBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldDUFAShNdWx0aUFzc2V0AAEUb3duZXLkATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldDUFAShNdWx0aUFzc2V0AAEYbG9ja2Vy5AE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAOQBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0gQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luaQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAAAtBRAMeGNtCHYzKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQAMQUBPFZlYzxNdWx0aUFzc2V0PgAAMQUAAAI1BQA1BRAMeGNtCHYzKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWQNAQEcQXNzZXRJZAABDGZ1bjkFASxGdW5naWJpbGl0eQAAOQUQDHhjbQh2MyhtdWx0aWFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAABAQEQdTEyOAAAACxOb25GdW5naWJsZQQAPQUBNEFzc2V0SW5zdGFuY2UAAQAAPQUQDHhjbQh2MyhtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BAABAQEQdTEyOAABABhBcnJheTQEAEgBHFt1ODsgNF0AAgAYQXJyYXk4BADdAgEcW3U4OyA4XQADABxBcnJheTE2BADEASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFAABBBQwMeGNtCHYzIFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAAtBQEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BABFBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAFEFAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAYQUBOE1heWJlRXJyb3JDb2RlAAUAAEUFBBhPcHRpb24EBFQBSQUBCBBOb25lAAAAEFNvbWUEAEkFAAABAABJBQAABAgQTQUATQUQDHhjbQh2Mxh0cmFpdHMURXJyb3IAAaAgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAMAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIATFVuaGFuZGxlZFhjbVZlcnNpb24AIwBIV2VpZ2h0TGltaXRSZWFjaGVkBAAoARhXZWlnaHQAJAAcQmFycmllcgAlAExXZWlnaHROb3RDb21wdXRhYmxlACYAREV4Y2VlZHNTdGFja0xpbWl0ACcAAFEFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBVQUEUwAABABdBQEYVmVjPFQ+AABVBQwMeGNtCHYzKFBhbGxldEluZm8AABgBFGluZGV48AEMdTMyAAEQbmFtZVkFAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1lWQUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3LwAQx1MzIAARRtaW5vcvABDHUzMgABFHBhdGNo8AEMdTMyAABZBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAF0FAAACVQUAYQUMDHhjbQh2MzhNYXliZUVycm9yQ29kZQABDBxTdWNjZXNzAAAAFEVycm9yBABlBQGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAQA4VHJ1bmNhdGVkRXJyb3IEAGUFAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgACAABlBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAGkFBBhPcHRpb24EBFQB5AEIEE5vbmUAAAAQU29tZQQA5AAAAQAAbQUMDHhjbQh2MyhPcmlnaW5LaW5kAAEQGE5hdGl2ZQAAAEBTb3ZlcmVpZ25BY2NvdW50AAEAJFN1cGVydXNlcgACAAxYY20AAwAAcQUMDHhjbQh2M0RRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb27kATRNdWx0aUxvY2F0aW9uAAEgcXVlcnlfaWQsARxRdWVyeUlkAAEobWF4X3dlaWdodCgBGFdlaWdodAAAdQUQDHhjbQh2MyhtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAC0FASxNdWx0aUFzc2V0cwAAABBXaWxkBAB5BQE4V2lsZE11bHRpQXNzZXQAAQAAeQUQDHhjbQh2MyhtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkDQEBHEFzc2V0SWQAAQxmdW59BQE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAPABDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZA0BARxBc3NldElkAAEMZnVufQUBPFdpbGRGdW5naWJpbGl0eQABFGNvdW508AEMdTMyAAMAAH0FEAx4Y20IdjMobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAgQUMDHhjbQh2MyxXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQAKAEYV2VpZ2h0AAEAAIUFDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQAiQUBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAIkFAAACjQUAjQUMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAJEFARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBACRBQEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAJEFARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNlpQUBIFJlc3BvbnNlAAEobWF4X3dlaWdodCgBGFdlaWdodAABHHF1ZXJpZXK5BQFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzkQUBGEFzc2V0cwABLGJlbmVmaWNpYXJ5EQEBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzkQUBGEFzc2V0cwABEGRlc3QRAQEgTG9jYXRpb24AAQx4Y22FBQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kbQUBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbA0FAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXLwAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpl8AEMdTMyAAEwbWF4X2NhcGFjaXR58AEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnTwAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9y8AEMdTMyAAEYc2VuZGVy8AEMdTMyAAEkcmVjaXBpZW508AEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EABUBAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAC9BQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzwQUBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnkRAQEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c8EFASxBc3NldEZpbHRlcgABEGRlc3QRAQEgTG9jYXRpb24AAQx4Y22FBQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZcEFASxBc3NldEZpbHRlcgABEHdhbnSRBQEYQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPBBQEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlEQEBIExvY2F0aW9uAAEMeGNthQUBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c8EFASxBc3NldEZpbHRlcgABEGRlc3QRAQEgTG9jYXRpb24AAQx4Y22FBQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb70FAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c8EFASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzmQUBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0gQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACFBQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACFBQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c5EFARhBc3NldHMAARh0aWNrZXQRAQEgTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAJEFARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAJEFARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAC5BQFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQARQUBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABhBQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvvQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV48AEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcvABDHUzMgABPG1pbl9jcmF0ZV9taW5vcvABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAvQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAAdAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmslAQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb24VAQFASW50ZXJpb3JMb2NhdGlvbgABDHhjbYUFARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0mQUBFEFzc2V0AAEgdW5sb2NrZXIRAQEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldJkFARRBc3NldAABGHRhcmdldBEBASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0mQUBFEFzc2V0AAEUb3duZXIRAQEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0mQUBFEFzc2V0AAEYbG9ja2VyEQEBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAEQEBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdIEFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbrkFAUBPcHRpb248TG9jYXRpb24+AC8AAJEFECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAlQUBKFZlYzxBc3NldD4AAJUFAAACmQUAmQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZEUBARxBc3NldElkAAEMZnVunQUBLEZ1bmdpYmlsaXR5AACdBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAAEBARB1MTI4AAAALE5vbkZ1bmdpYmxlBAChBQE0QXNzZXRJbnN0YW5jZQABAAChBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAAEBARB1MTI4AAEAGEFycmF5NAQASAEcW3U4OyA0XQACABhBcnJheTgEAN0CARxbdTg7IDhdAAMAHEFycmF5MTYEAMQBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAAKUFDCxzdGFnaW5nX3hjbQh2NCBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAkQUBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAEUFAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAQAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAqQUBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BABhBQE4TWF5YmVFcnJvckNvZGUABQAAqQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGtBQRTAAAEALUFARhWZWM8VD4AAK0FDCxzdGFnaW5nX3hjbQh2NChQYWxsZXRJbmZvAAAYARRpbmRlePABDHUzMgABEG5hbWWxBQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZbEFAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9y8AEMdTMyAAEUbWlub3LwAQx1MzIAARRwYXRjaPABDHUzMgAAsQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAC1BQAAAq0FALkFBBhPcHRpb24EBFQBEQEBCBBOb25lAAAAEFNvbWUEABEBAAABAAC9BQwsc3RhZ2luZ194Y20IdjREUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9uEQEBIExvY2F0aW9uAAEgcXVlcnlfaWQsARxRdWVyeUlkAAEobWF4X3dlaWdodCgBGFdlaWdodAAAwQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBACRBQEYQXNzZXRzAAAAEFdpbGQEAMUFASRXaWxkQXNzZXQAAQAAxQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZEUBARxBc3NldElkAAEMZnVuyQUBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBADwAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWRFAQEcQXNzZXRJZAABDGZ1bskFATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudPABDHUzMgADAADJBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAAM0FCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYyBADhBAE8djI6Ok11bHRpQXNzZXRzAAEACFYzBAAtBQE8djM6Ok11bHRpQXNzZXRzAAMACFY0BACRBQEodjQ6OkFzc2V0cwAEAADRBQgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjIEANUFAVB2Mjo6WGNtPFJ1bnRpbWVDYWxsPgACAAhWMwQA5QUBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BADxBQFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAA1QUMDHhjbQh2MgxYY20ELFJ1bnRpbWVDYWxsAAAEANkFAXRWZWM8SW5zdHJ1Y3Rpb248UnVudGltZUNhbGw+PgAA2QUAAALdBQDdBQwMeGNtCHYyLEluc3RydWN0aW9uBCxSdW50aW1lQ2FsbAABcDRXaXRoZHJhd0Fzc2V0BADhBAEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBADhBAEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQA4QQBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZfkEASBSZXNwb25zZQABKG1heF93ZWlnaHQsAQx1NjQAAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c+EEASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5TQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHPhBAEsTXVsdGlBc3NldHMAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y23VBAEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl90eXBlCQUBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0LAEMdTY0AAEQY2FsbOEFAWhEb3VibGVFbmNvZGVkPFJ1bnRpbWVDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVy8AEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZfABDHUzMgABMG1heF9jYXBhY2l0efABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW508AEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcvABDHUzMgABGHNlbmRlcvABDHUzMgABJHJlY2lwaWVudPABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABRAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yDAEgcXVlcnlfaWQsARxRdWVyeUlkAAEQZGVzdE0BATRNdWx0aUxvY2F0aW9uAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAAMADBEZXBvc2l0QXNzZXQMARhhc3NldHMRBQFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHPwAQx1MzIAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQQARhhc3NldHMRBQFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHPwAQx1MzIAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y23VBAEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0CAEQZ2l2ZREFAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVjZWl2ZeEEASxNdWx0aUFzc2V0cwAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cxEFAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZU0BATRNdWx0aUxvY2F0aW9uAAEMeGNt1QQBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cxEFAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdE0BATRNdWx0aUxvY2F0aW9uAAEMeGNt1QQBHFhjbTwoKT4AEQAwUXVlcnlIb2xkaW5nEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEQZGVzdE0BATRNdWx0aUxvY2F0aW9uAAEYYXNzZXRzEQUBQE11bHRpQXNzZXRGaWx0ZXIAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0ABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPpBAEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdB0FASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA1QUBQFhjbTxSdW50aW1lQ2FsbD4AFQAsU2V0QXBwZW5kaXgEANUFAUBYY208UnVudGltZUNhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c+EEASxNdWx0aUFzc2V0cwABGHRpY2tldE0BATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAA4QUMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkOAEcVmVjPHU4PgAA5QUMDHhjbQh2MwxYY20EEENhbGwAAAQA6QUBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAOkFAAAC7QUA7QUMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAAtBQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAtBQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQALQUBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZUEFASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyaQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzLQUBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnnkATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzLQUBLE11bHRpQXNzZXRzAAEQZGVzdOQBNE11bHRpTG9jYXRpb24AAQx4Y20hBQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kbQUBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbOEFAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXLwAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpl8AEMdTMyAAEwbWF4X2NhcGFjaXR58AEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnTwAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9y8AEMdTMyAAEYc2VuZGVy8AEMdTMyAAEkcmVjaXBpZW508AEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAOgBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAcQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c3UFAUBNdWx0aUFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnnkATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHN1BQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3TkATRNdWx0aUxvY2F0aW9uAAEMeGNtIQUBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmV1BQFATXVsdGlBc3NldEZpbHRlcgABEHdhbnQtBQEsTXVsdGlBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c3UFAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZeQBNE11bHRpTG9jYXRpb24AAQx4Y20hBQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzdQUBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN05AE0TXVsdGlMb2NhdGlvbgABDHhjbSEFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvcQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzdQUBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlczUFAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0gQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADlBQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADlBQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cy0FASxNdWx0aUFzc2V0cwABGHRpY2tldOQBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAC0FASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQALQUBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAaQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQARQUBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABhBQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvcQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV48AEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcvABDHUzMgABPG1pbl9jcmF0ZV9taW5vcvABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAcQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADsASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya/gBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9u6AFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNtIQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXQ1BQEoTXVsdGlBc3NldAABIHVubG9ja2Vy5AE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0NQUBKE11bHRpQXNzZXQAARh0YXJnZXTkATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXQ1BQEoTXVsdGlBc3NldAABFG93bmVy5AE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXQ1BQEoTXVsdGlBc3NldAABGGxvY2tlcuQBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXcgARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADkATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdIEFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbmkFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAA8QUMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABAD1BQFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAA9QUAAAL5BQD5BQwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAkQUBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAJEFARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAkQUBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2WlBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcrkFAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHORBQEYQXNzZXRzAAEsYmVuZWZpY2lhcnkRAQEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHORBQEYQXNzZXRzAAEQZGVzdBEBASBMb2NhdGlvbgABDHhjbYUFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRtBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxs4QUBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcvABDHUzMgABQG1heF9tZXNzYWdlX3NpemXwAQx1MzIAATBtYXhfY2FwYWNpdHnwAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudPABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3LwAQx1MzIAARhzZW5kZXLwAQx1MzIAASRyZWNpcGllbnTwAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAFQEBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAL0FAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHPBBQEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeREBASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzwQUBLEFzc2V0RmlsdGVyAAEQZGVzdBEBASBMb2NhdGlvbgABDHhjbYUFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlwQUBLEFzc2V0RmlsdGVyAAEQd2FudJEFARhBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c8EFASxBc3NldEZpbHRlcgABHHJlc2VydmURAQEgTG9jYXRpb24AAQx4Y22FBQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzwQUBLEFzc2V0RmlsdGVyAAEQZGVzdBEBASBMb2NhdGlvbgABDHhjbYUFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvvQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzwQUBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXOZBQEUQXNzZXQAATB3ZWlnaHRfbGltaXSBBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAPEFASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAPEFASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzkQUBGEFzc2V0cwABGHRpY2tldBEBASBMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAkQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAkQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EALkFAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABFBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAGEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+9BQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXjwAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9y8AEMdTMyAAE8bWluX2NyYXRlX21pbm9y8AEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAC9BQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAB0BASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29yayUBASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbhUBAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNthQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXSZBQEUQXNzZXQAASB1bmxvY2tlchEBASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0mQUBFEFzc2V0AAEYdGFyZ2V0EQEBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXSZBQEUQXNzZXQAARRvd25lchEBASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXSZBQEUQXNzZXQAARhsb2NrZXIRAQEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXcgARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBAARAQEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0gQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luuQUBQE9wdGlvbjxMb2NhdGlvbj4ALwAA/QUQUHN0YWdpbmdfeGNtX2V4ZWN1dG9yGHRyYWl0czhhc3NldF90cmFuc2ZlcjBUcmFuc2ZlclR5cGUAARAgVGVsZXBvcnQAAAAwTG9jYWxSZXNlcnZlAAEASERlc3RpbmF0aW9uUmVzZXJ2ZQACADRSZW1vdGVSZXNlcnZlBABJAQFEVmVyc2lvbmVkTG9jYXRpb24AAwAAAQYIDHhjbUBWZXJzaW9uZWRBc3NldElkAAEICFYzBAANAQEsdjM6OkFzc2V0SWQAAwAIVjQEAEUBASx2NDo6QXNzZXRJZAAEAAAFBgwwcGFsbGV0X2JlZWZ5GHBhbGxldBBDYWxsBARUAAEcUHJlcG9ydF9kb3VibGVfdm90aW5nCAFIZXF1aXZvY2F0aW9uX3Byb29mCQYBjQFCb3g8RG91YmxlVm90aW5nUHJvb2Y8QmxvY2tOdW1iZXJGb3I8VD4sIFQ6OkJlZWZ5SWQsPFQ6OkJlZWZ5SWQKYXMgUnVudGltZUFwcFB1YmxpYz46OlNpZ25hdHVyZSw+LD4AATxrZXlfb3duZXJfcHJvb2apAQFAVDo6S2V5T3duZXJQcm9vZgAAEAkBUmVwb3J0IHZvdGVyIGVxdWl2b2NhdGlvbi9taXNiZWhhdmlvci4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkgdGhl9GVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2b4YWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLiBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2VEd2lsbCBiZSByZXBvcnRlZC50cmVwb3J0X2RvdWJsZV92b3RpbmdfdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2YJBgGNAUJveDxEb3VibGVWb3RpbmdQcm9vZjxCbG9ja051bWJlckZvcjxUPiwgVDo6QmVlZnlJZCw8VDo6QmVlZnlJZAphcyBSdW50aW1lQXBwUHVibGljPjo6U2lnbmF0dXJlLD4sPgABPGtleV9vd25lcl9wcm9vZqkBAUBUOjpLZXlPd25lclByb29mAAEkCQFSZXBvcnQgdm90ZXIgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGX0ZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZvhhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZUR3aWxsIGJlIHJlcG9ydGVkLgANAVRoaXMgZXh0cmluc2ljIG11c3QgYmUgY2FsbGVkIHVuc2lnbmVkIGFuZCBpdCBpcyBleHBlY3RlZCB0aGF0IG9ubHkVAWJsb2NrIGF1dGhvcnMgd2lsbCBjYWxsIGl0ICh2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgKSwgYXMgc3VjaBUBaWYgdGhlIGJsb2NrIGF1dGhvciBpcyBkZWZpbmVkIGl0IHdpbGwgYmUgZGVmaW5lZCBhcyB0aGUgZXF1aXZvY2F0aW9uJHJlcG9ydGVyLjxzZXRfbmV3X2dlbmVzaXMEATxkZWxheV9pbl9ibG9ja3MQAURCbG9ja051bWJlckZvcjxUPgACEF0BUmVzZXQgQkVFRlkgY29uc2Vuc3VzIGJ5IHNldHRpbmcgYSBuZXcgQkVFRlkgZ2VuZXNpcyBhdCBgZGVsYXlfaW5fYmxvY2tzYCBibG9ja3MgaW4gdGhlHGZ1dHVyZS4AtE5vdGU6IGBkZWxheV9pbl9ibG9ja3NgIGhhcyB0byBiZSBhdCBsZWFzdCAxLkhyZXBvcnRfZm9ya192b3RpbmcIAUhlcXVpdm9jYXRpb25fcHJvb2YlBgGtAUJveDxGb3JrVm90aW5nUHJvb2Y8SGVhZGVyRm9yPFQ+LCBUOjpCZWVmeUlkLDxUOjpBbmNlc3RyeUhlbHBlcgphcyBBbmNlc3RyeUhlbHBlcjxIZWFkZXJGb3I8VD4+Pjo6UHJvb2YsPiw+AAE8a2V5X293bmVyX3Byb29mqQEBQFQ6OktleU93bmVyUHJvb2YAAww9AVJlcG9ydCBmb3JrIHZvdGluZyBlcXVpdm9jYXRpb24uIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZSBlcXVpdm9jYXRpb24gcHJvb2YpAWFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZiBhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuwElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZSB3aWxsIGJlIHJlcG9ydGVkLmxyZXBvcnRfZm9ya192b3RpbmdfdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2YlBgGtAUJveDxGb3JrVm90aW5nUHJvb2Y8SGVhZGVyRm9yPFQ+LCBUOjpCZWVmeUlkLDxUOjpBbmNlc3RyeUhlbHBlcgphcyBBbmNlc3RyeUhlbHBlcjxIZWFkZXJGb3I8VD4+Pjo6UHJvb2YsPiw+AAE8a2V5X293bmVyX3Byb29mqQEBQFQ6OktleU93bmVyUHJvb2YABCA9AVJlcG9ydCBmb3JrIHZvdGluZyBlcXVpdm9jYXRpb24uIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZSBlcXVpdm9jYXRpb24gcHJvb2YpAWFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZiBhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuwElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZSB3aWxsIGJlIHJlcG9ydGVkLgANAVRoaXMgZXh0cmluc2ljIG11c3QgYmUgY2FsbGVkIHVuc2lnbmVkIGFuZCBpdCBpcyBleHBlY3RlZCB0aGF0IG9ubHkVAWJsb2NrIGF1dGhvcnMgd2lsbCBjYWxsIGl0ICh2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgKSwgYXMgc3VjaBUBaWYgdGhlIGJsb2NrIGF1dGhvciBpcyBkZWZpbmVkIGl0IHdpbGwgYmUgZGVmaW5lZCBhcyB0aGUgZXF1aXZvY2F0aW9uJHJlcG9ydGVyLmhyZXBvcnRfZnV0dXJlX2Jsb2NrX3ZvdGluZwgBSGVxdWl2b2NhdGlvbl9wcm9vZjUGAehCb3g8RnV0dXJlQmxvY2tWb3RpbmdQcm9vZjxCbG9ja051bWJlckZvcjxUPiwgVDo6QmVlZnlJZD4+AAE8a2V5X293bmVyX3Byb29mqQEBQFQ6OktleU93bmVyUHJvb2YABQxdAVJlcG9ydCBmdXR1cmUgYmxvY2sgdm90aW5nIGVxdWl2b2NhdGlvbi4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkgdGhlIGVxdWl2b2NhdGlvbiBwcm9vZikBYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29mIGFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci7ASWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlIHdpbGwgYmUgcmVwb3J0ZWQujHJlcG9ydF9mdXR1cmVfYmxvY2tfdm90aW5nX3Vuc2lnbmVkCAFIZXF1aXZvY2F0aW9uX3Byb29mNQYB6EJveDxGdXR1cmVCbG9ja1ZvdGluZ1Byb29mPEJsb2NrTnVtYmVyRm9yPFQ+LCBUOjpCZWVmeUlkPj4AATxrZXlfb3duZXJfcHJvb2apAQFAVDo6S2V5T3duZXJQcm9vZgAGIF0BUmVwb3J0IGZ1dHVyZSBibG9jayB2b3RpbmcgZXF1aXZvY2F0aW9uLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGUgZXF1aXZvY2F0aW9uIHByb29mKQFhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2YgYWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLsBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2Ugd2lsbCBiZSByZXBvcnRlZC4ADQFUaGlzIGV4dHJpbnNpYyBtdXN0IGJlIGNhbGxlZCB1bnNpZ25lZCBhbmQgaXQgaXMgZXhwZWN0ZWQgdGhhdCBvbmx5FQFibG9jayBhdXRob3JzIHdpbGwgY2FsbCBpdCAodmFsaWRhdGVkIGluIGBWYWxpZGF0ZVVuc2lnbmVkYCksIGFzIHN1Y2gVAWlmIHRoZSBibG9jayBhdXRob3IgaXMgZGVmaW5lZCBpdCB3aWxsIGJlIGRlZmluZWQgYXMgdGhlIGVxdWl2b2NhdGlvbiRyZXBvcnRlci4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuCQYISHNwX2NvbnNlbnN1c19iZWVmeUREb3VibGVWb3RpbmdQcm9vZgwYTnVtYmVyARAISWQBBQIkU2lnbmF0dXJlAQ0GAAgBFGZpcnN0EQYBiFZvdGVNZXNzYWdlPE51bWJlciwgSWQsIFNpZ25hdHVyZT4AARhzZWNvbmQRBgGIVm90ZU1lc3NhZ2U8TnVtYmVyLCBJZCwgU2lnbmF0dXJlPgAADQYMSHNwX2NvbnNlbnN1c19iZWVmeTBlY2RzYV9jcnlwdG8kU2lnbmF0dXJlAAAEAIkCAUBlY2RzYTo6U2lnbmF0dXJlAAARBghIc3BfY29uc2Vuc3VzX2JlZWZ5LFZvdGVNZXNzYWdlDBhOdW1iZXIBEAhJZAEFAiRTaWduYXR1cmUBDQYADAEoY29tbWl0bWVudBUGAUhDb21taXRtZW50PE51bWJlcj4AAQhpZAUCAQhJZAABJHNpZ25hdHVyZQ0GASRTaWduYXR1cmUAABUGDEhzcF9jb25zZW5zdXNfYmVlZnkoY29tbWl0bWVudChDb21taXRtZW50BDBUQmxvY2tOdW1iZXIBEAAMARxwYXlsb2FkGQYBHFBheWxvYWQAATBibG9ja19udW1iZXIQATBUQmxvY2tOdW1iZXIAAUB2YWxpZGF0b3Jfc2V0X2lkMAE4VmFsaWRhdG9yU2V0SWQAABkGDEhzcF9jb25zZW5zdXNfYmVlZnkccGF5bG9hZBxQYXlsb2FkAAAEAB0GAXhWZWM8KEJlZWZ5UGF5bG9hZElkLCBWZWM8dTg+KT4AAB0GAAACIQYAIQYAAAQIyQI4ACUGCEhzcF9jb25zZW5zdXNfYmVlZnk8Rm9ya1ZvdGluZ1Byb29mDBhIZWFkZXIBnQEISWQBBQI0QW5jZXN0cnlQcm9vZgEpBgAMARB2b3RlEQYBuFZvdGVNZXNzYWdlPEhlYWRlcjo6TnVtYmVyLCBJZCwgSWQ6OlNpZ25hdHVyZT4AAThhbmNlc3RyeV9wcm9vZikGATRBbmNlc3RyeVByb29mAAEYaGVhZGVynQEBGEhlYWRlcgAAKQYIRHNwX21tcl9wcmltaXRpdmVzNEFuY2VzdHJ5UHJvb2YEEEhhc2gBNAAQAShwcmV2X3BlYWtzjQMBJFZlYzxIYXNoPgABPHByZXZfbGVhZl9jb3VudDABDHU2NAABKGxlYWZfY291bnQwASROb2RlSW5kZXgAARRpdGVtcy0GAUBWZWM8KHU2NCwgSGFzaCk+AAAtBgAAAjEGADEGAAAECDA0ADUGCEhzcF9jb25zZW5zdXNfYmVlZnlYRnV0dXJlQmxvY2tWb3RpbmdQcm9vZggYTnVtYmVyARAISWQBBQIABAEQdm90ZREGAZhWb3RlTWVzc2FnZTxOdW1iZXIsIElkLCBJZDo6U2lnbmF0dXJlPgAAOQYQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uRGlkZW50aXR5X21pZ3JhdG9yGHBhbGxldBBDYWxsBARUAAEINHJlYXBfaWRlbnRpdHkEAQx3aG8AATBUOjpBY2NvdW50SWQAAAhFAVJlYXAgdGhlIGBJZGVudGl0eUluZm9gIG9mIGB3aG9gIGZyb20gdGhlIElkZW50aXR5IHBhbGxldCBvZiBgVGAsIHVucmVzZXJ2aW5nIGFuefxkZXBvc2l0cyBoZWxkIGFuZCByZW1vdmluZyBzdG9yYWdlIGl0ZW1zIGFzc29jaWF0ZWQgd2l0aCBgd2hvYC4wcG9rZV9kZXBvc2l0BAEMd2hvAAEwVDo6QWNjb3VudElkAAEIUQFVcGRhdGUgdGhlIGRlcG9zaXQgb2YgYHdob2AuIE1lYW50IHRvIGJlIGNhbGxlZCBieSB0aGUgc3lzdGVtIHdpdGggYW4gWENNIGBUcmFuc2FjdGAwSW5zdHJ1Y3Rpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLj0GEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbkhwYXJhc19zdWRvX3dyYXBwZXIYcGFsbGV0EENhbGwEBFQAARh0c3Vkb19zY2hlZHVsZV9wYXJhX2luaXRpYWxpemUIAQhpZGECARhQYXJhSWQAARxnZW5lc2lzQQYBPFBhcmFHZW5lc2lzQXJncwAAFA0BU2NoZWR1bGUgYSBwYXJhIHRvIGJlIGluaXRpYWxpemVkIGF0IHRoZSBzdGFydCBvZiB0aGUgbmV4dCBzZXNzaW9uLgBNAVRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgVEVTVElORyBhbmQgbm90IG9uIFBST0RVQ1RJT04gY2hhaW5zLiBJdCBhdXRvbWF0aWNhbGx5SQFhc3NpZ25zIENvcmV0aW1lIHRvIHRoZSBjaGFpbiBhbmQgaW5jcmVhc2VzIHRoZSBudW1iZXIgb2YgY29yZXMuIFRodXMsIHRoZXJlIGlzIG5vgHJ1bm5pbmcgY29yZXRpbWUgY2hhaW4gcmVxdWlyZWQuaHN1ZG9fc2NoZWR1bGVfcGFyYV9jbGVhbnVwBAEIaWRhAgEYUGFyYUlkAAEECQFTY2hlZHVsZSBhIHBhcmEgdG8gYmUgY2xlYW5lZCB1cCBhdCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgc2Vzc2lvbi6Ac3Vkb19zY2hlZHVsZV9wYXJhdGhyZWFkX3VwZ3JhZGUEAQhpZGECARhQYXJhSWQAAgQdAVVwZ3JhZGUgYSBwYXJhdGhyZWFkIChvbi1kZW1hbmQgcGFyYWNoYWluKSB0byBhIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluhHN1ZG9fc2NoZWR1bGVfcGFyYWNoYWluX2Rvd25ncmFkZQQBCGlkYQIBGFBhcmFJZAADBPREb3duZ3JhZGUgYSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbiB0byBhbiBvbi1kZW1hbmQgcGFyYWNoYWluXHN1ZG9fcXVldWVfZG93bndhcmRfeGNtCAEIaWRhAgEYUGFyYUlkAAEMeGNt0QQBeEJveDx4Y206Om9wYXF1ZTo6VmVyc2lvbmVkWGNtPgAEEJhTZW5kIGEgZG93bndhcmQgWENNIHRvIHRoZSBnaXZlbiBwYXJhLgBRAVRoZSBnaXZlbiBwYXJhY2hhaW4gc2hvdWxkIGV4aXN0IGFuZCB0aGUgcGF5bG9hZCBzaG91bGQgbm90IGV4Y2VlZCB0aGUgcHJlY29uZmlndXJlZKBzaXplIGBjb25maWcubWF4X2Rvd253YXJkX21lc3NhZ2Vfc2l6ZWAubHN1ZG9fZXN0YWJsaXNoX2hybXBfY2hhbm5lbBABGHNlbmRlcmECARhQYXJhSWQAASRyZWNpcGllbnRhAgEYUGFyYUlkAAEwbWF4X2NhcGFjaXR5EAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAFEAEBRm9yY2VmdWxseSBlc3RhYmxpc2ggYSBjaGFubmVsIGZyb20gdGhlIHNlbmRlciB0byB0aGUgcmVjaXBpZW50LgBVAVRoaXMgaXMgZXF1aXZhbGVudCB0byBzZW5kaW5nIGFuIGBIcm1wOjpocm1wX2luaXRfb3Blbl9jaGFubmVsYCBleHRyaW5zaWMgZm9sbG93ZWQgYnmEYEhybXA6OmhybXBfYWNjZXB0X29wZW5fY2hhbm5lbGAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkEGDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXM8UGFyYUdlbmVzaXNBcmdzAAAMATBnZW5lc2lzX2hlYWQ1BAEgSGVhZERhdGEAATx2YWxpZGF0aW9uX2NvZGUxBAE4VmFsaWRhdGlvbkNvZGUAASRwYXJhX2tpbmQgASBQYXJhS2luZAAARQYQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uOGFzc2lnbmVkX3Nsb3RzGHBhbGxldBBDYWxsBARUAAEUaGFzc2lnbl9wZXJtX3BhcmFjaGFpbl9zbG90BAEIaWRhAgEYUGFyYUlkAAAEIQFBc3NpZ24gYSBwZXJtYW5lbnQgcGFyYWNoYWluIHNsb3QgYW5kIGltbWVkaWF0ZWx5IGNyZWF0ZSBhIGxlYXNlIGZvciBpdC5oYXNzaWduX3RlbXBfcGFyYWNoYWluX3Nsb3QIAQhpZGECARhQYXJhSWQAAUhsZWFzZV9wZXJpb2Rfc3RhcnRJBgFQU2xvdExlYXNlUGVyaW9kU3RhcnQAAQw5AUFzc2lnbiBhIHRlbXBvcmFyeSBwYXJhY2hhaW4gc2xvdC4gVGhlIGZ1bmN0aW9uIHRyaWVzIHRvIGNyZWF0ZSBhIGxlYXNlIGZvciBpdDkBaW1tZWRpYXRlbHkgaWYgYFNsb3RMZWFzZVBlcmlvZFN0YXJ0OjpDdXJyZW50YCBpcyBzcGVjaWZpZWQsIGFuZCBpZiB0aGUgbnVtYmVyOQFvZiBjdXJyZW50bHkgYWN0aXZlIHRlbXBvcmFyeSBzbG90cyBpcyBiZWxvdyBgTWF4VGVtcG9yYXJ5U2xvdFBlckxlYXNlUGVyaW9kYC5cdW5hc3NpZ25fcGFyYWNoYWluX3Nsb3QEAQhpZGECARhQYXJhSWQAAgTAVW5hc3NpZ24gYSBwZXJtYW5lbnQgb3IgdGVtcG9yYXJ5IHBhcmFjaGFpbiBzbG90XHNldF9tYXhfcGVybWFuZW50X3Nsb3RzBAEUc2xvdHMQAQx1MzIAAwS0U2V0cyB0aGUgc3RvcmFnZSB2YWx1ZSBbYE1heFBlcm1hbmVudFNsb3RzYF0uXHNldF9tYXhfdGVtcG9yYXJ5X3Nsb3RzBAEUc2xvdHMQAQx1MzIABAS0U2V0cyB0aGUgc3RvcmFnZSB2YWx1ZSBbYE1heFRlbXBvcmFyeVNsb3RzYF0uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkkGDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjhhc3NpZ25lZF9zbG90c1BTbG90TGVhc2VQZXJpb2RTdGFydAABCBxDdXJyZW50AAAAEE5leHQAAQAATQYQOHJvY29jb19ydW50aW1lRHZhbGlkYXRvcl9tYW5hZ2VyGHBhbGxldBBDYWxsBARUAAEITHJlZ2lzdGVyX3ZhbGlkYXRvcnMEASh2YWxpZGF0b3Jz0QEBTFZlYzxUOjpWYWxpZGF0b3JJZD4AAAx4QWRkIG5ldyB2YWxpZGF0b3JzIHRvIHRoZSBzZXQuAOxUaGUgbmV3IHZhbGlkYXRvcnMgd2lsbCBiZSBhY3RpdmUgZnJvbSBjdXJyZW50IHNlc3Npb24gKyAyLlRkZXJlZ2lzdGVyX3ZhbGlkYXRvcnMEASh2YWxpZGF0b3Jz0QEBTFZlYzxUOjpWYWxpZGF0b3JJZD4AAQx8UmVtb3ZlIHZhbGlkYXRvcnMgZnJvbSB0aGUgc2V0LgARAVRoZSByZW1vdmVkIHZhbGlkYXRvcnMgd2lsbCBiZSBkZWFjdGl2YXRlZCBmcm9tIGN1cnJlbnQgc2Vzc2lvbiArIDIuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlEGDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0EENhbGwEBFQAARhYY29udHJvbF9hdXRvX21pZ3JhdGlvbgQBMG1heWJlX2NvbmZpZ1UGAVxPcHRpb248TWlncmF0aW9uTGltaXRzPgAADIBDb250cm9sIHRoZSBhdXRvbWF0aWMgbWlncmF0aW9uLgANAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgW2BDb25maWc6OkNvbnRyb2xPcmlnaW5gXS5AY29udGludWVfbWlncmF0ZQwBGGxpbWl0c1kGATxNaWdyYXRpb25MaW1pdHMAATxyZWFsX3NpemVfdXBwZXIQAQx1MzIAATB3aXRuZXNzX3Rhc2tdBgFATWlncmF0aW9uVGFzazxUPgABVLhDb250aW51ZSB0aGUgbWlncmF0aW9uIGZvciB0aGUgZ2l2ZW4gYGxpbWl0c2AuAOxUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBjYW4gYmUgYW55IHNpZ25lZCBhY2NvdW50LgBdAVRoaXMgdHJhbnNhY3Rpb24gaGFzIE5PIE1PTkVUQVJZIElOQ0VOVElWRVMuIGNhbGxpbmcgaXQgd2lsbCBub3QgcmV3YXJkIGFueW9uZS4gQWxiZWl0LOxVcG9uIHN1Y2Nlc3NmdWwgZXhlY3V0aW9uLCB0aGUgdHJhbnNhY3Rpb24gZmVlIGlzIHJldHVybmVkLgBBAVRoZSAocG90ZW50aWFsbHkgb3Zlci1lc3RpbWF0ZWQpIG9mIHRoZSBieXRlIGxlbmd0aCBvZiBhbGwgdGhlIGRhdGEgcmVhZCBtdXN0IGJlWQFwcm92aWRlZCBmb3IgdXAtZnJvbnQgZmVlLXBheW1lbnQgYW5kIHdlaWdoaW5nLiBJbiBlc3NlbmNlLCB0aGUgY2FsbGVyIGlzIGd1YXJhbnRlZWluZ0kBdGhhdCBleGVjdXRpbmcgdGhlIGN1cnJlbnQgYE1pZ3JhdGlvblRhc2tgIHdpdGggdGhlIGdpdmVuIGBsaW1pdHNgIHdpbGwgbm90IGV4Y2VlZJRgcmVhbF9zaXplX3VwcGVyYCBieXRlcyBvZiByZWFkIGRhdGEuAEUBVGhlIGB3aXRuZXNzX3Rhc2tgIGlzIG1lcmVseSBhIGhlbHBlciB0byBwcmV2ZW50IHRoZSBjYWxsZXIgZnJvbSBiZWluZyBzbGFzaGVkIG9yXQFnZW5lcmFsbHkgdHJpZ2dlciBhIG1pZ3JhdGlvbiB0aGF0IHRoZXkgZG8gbm90IGludGVuZC4gVGhpcyBwYXJhbWV0ZXIgaXMganVzdCBhIG1lc3NhZ2U9AWZyb20gY2FsbGVyLCBzYXlpbmcgdGhhdCB0aGV5IGJlbGlldmVkIGB3aXRuZXNzX3Rhc2tgIHdhcyB0aGUgbGFzdCBzdGF0ZSBvZiB0aGVZAW1pZ3JhdGlvbiwgYW5kIHRoZXkgb25seSB3aXNoIGZvciB0aGVpciB0cmFuc2FjdGlvbiB0byBkbyBhbnl0aGluZywgaWYgdGhpcyBhc3N1bXB0aW9uEQFob2xkcy4gSW4gY2FzZSBgd2l0bmVzc190YXNrYCBkb2VzIG5vdCBtYXRjaCwgdGhlIHRyYW5zYWN0aW9uIGZhaWxzLgA5AUJhc2VkIG9uIHRoZSBkb2N1bWVudGF0aW9uIG9mIFtgTWlncmF0aW9uVGFzazo6bWlncmF0ZV91bnRpbF9leGhhdXN0aW9uYF0sIHRoZU0BcmVjb21tZW5kZWQgd2F5IG9mIGRvaW5nIHRoaXMgaXMgdG8gcGFzcyBhIGBsaW1pdGAgdGhhdCBvbmx5IGJvdW5kcyBgY291bnRgLCBhcyB0aGWcYHNpemVgIGxpbWl0IGNhbiBhbHdheXMgYmUgb3ZlcndyaXR0ZW4uSG1pZ3JhdGVfY3VzdG9tX3RvcAgBEGtleXORAQEwVmVjPFZlYzx1OD4+AAEwd2l0bmVzc19zaXplEAEMdTMyAAIQCQFNaWdyYXRlIHRoZSBsaXN0IG9mIHRvcCBrZXlzIGJ5IGl0ZXJhdGluZyBlYWNoIG9mIHRoZW0gb25lIGJ5IG9uZS4AVQFUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBwcm9jZXNzIHRyYWNrZXIgKFtgTWlncmF0aW9uUHJvY2Vzc2BdKSwgYW5k/HNob3VsZCBvbmx5IGJlIHVzZWQgaW4gY2FzZSBhbnkga2V5cyBhcmUgbGVmdG92ZXIgZHVlIHRvIGEgYnVnLlBtaWdyYXRlX2N1c3RvbV9jaGlsZAwBEHJvb3Q4ARxWZWM8dTg+AAEoY2hpbGRfa2V5c5EBATBWZWM8VmVjPHU4Pj4AASh0b3RhbF9zaXplEAEMdTMyAAMYEQFNaWdyYXRlIHRoZSBsaXN0IG9mIGNoaWxkIGtleXMgYnkgaXRlcmF0aW5nIGVhY2ggb2YgdGhlbSBvbmUgYnkgb25lLgANAUFsbCBvZiB0aGUgZ2l2ZW4gY2hpbGQga2V5cyBtdXN0IGJlIHByZXNlbnQgdW5kZXIgb25lIGBjaGlsZF9yb290YC4AVQFUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBwcm9jZXNzIHRyYWNrZXIgKFtgTWlncmF0aW9uUHJvY2Vzc2BdKSwgYW5k/HNob3VsZCBvbmx5IGJlIHVzZWQgaW4gY2FzZSBhbnkga2V5cyBhcmUgbGVmdG92ZXIgZHVlIHRvIGEgYnVnLlRzZXRfc2lnbmVkX21heF9saW1pdHMEARhsaW1pdHNZBgE8TWlncmF0aW9uTGltaXRzAAQEuFNldCB0aGUgbWF4aW11bSBsaW1pdCBvZiB0aGUgc2lnbmVkIG1pZ3JhdGlvbi5IZm9yY2Vfc2V0X3Byb2dyZXNzCAEwcHJvZ3Jlc3NfdG9wYQYBNFByb2dyZXNzT2Y8VD4AAThwcm9ncmVzc19jaGlsZGEGATRQcm9ncmVzc09mPFQ+AAUkyEZvcmNlZnVsbHkgc2V0IHRoZSBwcm9ncmVzcyB0aGUgcnVubmluZyBtaWdyYXRpb24uAF0BVGhpcyBpcyBvbmx5IHVzZWZ1bCBpbiBvbmUgY2FzZTogdGhlIG5leHQga2V5IHRvIG1pZ3JhdGUgaXMgdG9vIGJpZyB0byBiZSBtaWdyYXRlZCB3aXRoVQFhIHNpZ25lZCBhY2NvdW50LCBpbiBhIHBhcmFjaGFpbiBjb250ZXh0LCBhbmQgd2Ugc2ltcGx5IHdhbnQgdG8gc2tpcCBpdC4gQSByZWFzb25hYmxlYQFleGFtcGxlIG9mIHRoaXMgd291bGQgYmUgYDpjb2RlOmAsIHdoaWNoIGlzIGJvdGggdmVyeSBleHBlbnNpdmUgdG8gbWlncmF0ZSwgYW5kIGNvbW1vbmx5pHVzZWQsIHNvIHByb2JhYmx5IGl0IGlzIGFscmVhZHkgbWlncmF0ZWQuAF0BSW4gY2FzZSB5b3UgbWVzcyB0aGluZ3MgdXAsIHlvdSBjYW4gYWxzbywgaW4gcHJpbmNpcGxlLCB1c2UgdGhpcyB0byByZXNldCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlUGBBhPcHRpb24EBFQBWQYBCBBOb25lAAAAEFNvbWUEAFkGAAABAABZBgxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldDxNaWdyYXRpb25MaW1pdHMAAAgBEHNpemUQAQx1MzIAARBpdGVtEAEMdTMyAABdBgxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldDRNaWdyYXRpb25UYXNrBARUAAAUATBwcm9ncmVzc190b3BhBgE0UHJvZ3Jlc3NPZjxUPgABOHByb2dyZXNzX2NoaWxkYQYBNFByb2dyZXNzT2Y8VD4AARBzaXplEAEMdTMyAAEkdG9wX2l0ZW1zEAEMdTMyAAEsY2hpbGRfaXRlbXMQAQx1MzIAAGEGDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0IFByb2dyZXNzBCRNYXhLZXlMZW4AAQwcVG9TdGFydAAAABxMYXN0S2V5BABlBgFkQm91bmRlZFZlYzx1OCwgTWF4S2V5TGVuPgABACBDb21wbGV0ZQACAABlBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAGkGDExwYWxsZXRfcm9vdF90ZXN0aW5nGHBhbGxldBBDYWxsBARUAAEIKGZpbGxfYmxvY2sEARRyYXRpb8UDARxQZXJiaWxsAAAEBQFBIGRpc3BhdGNoIHRoYXQgd2lsbCBmaWxsIHRoZSBibG9jayB3ZWlnaHQgdXAgdG8gdGhlIGdpdmVuIHJhdGlvLkR0cmlnZ2VyX2RlZmVuc2l2ZQABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBgwscGFsbGV0X3N1ZG8YcGFsbGV0EENhbGwEBFQAARQQc3VkbwQBEGNhbGyBAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAABDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi5Uc3Vkb191bmNoZWNrZWRfd2VpZ2h0CAEQY2FsbIEBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h0KAEYV2VpZ2h0AAEUNQFBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLi0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhlsFN1ZG8gdXNlciB0byBzcGVjaWZ5IHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4cc2V0X2tleQQBDG5ld8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgACCF0BQXV0aGVudGljYXRlcyB0aGUgY3VycmVudCBzdWRvIGtleSBhbmQgc2V0cyB0aGUgZ2l2ZW4gQWNjb3VudElkIChgbmV3YCkgYXMgdGhlIG5ldyBzdWRvEGtleS4cc3Vkb19hcwgBDHdob8EBAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGNhbGyBAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADEE0BQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFNpZ25lZGAgb3JpZ2luIGZyb21AYSBnaXZlbiBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uKHJlbW92ZV9rZXkABAyEUGVybWFuZW50bHkgcmVtb3ZlcyB0aGUgc3VkbyBrZXkuAGwqKlRoaXMgY2Fubm90IGJlIHVuLWRvbmUuKioEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMucQYMKHNwX3J1bnRpbWUYdHJhaXRzLEJsYWtlVHdvMjU2AAAAAHUGDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAeQYMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxR0eXBlcxRUYWxseQgUVm90ZXMBGBRUb3RhbAAADAEQYXllcxgBFFZvdGVzAAEQbmF5cxgBFFZvdGVzAAEcc3VwcG9ydBgBFFZvdGVzAAB9BgxgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlGHBhbGxldBRFdmVudAgEVAAESQABFCxNZW1iZXJBZGRlZAQBDHdobwABMFQ6OkFjY291bnRJZAAABHhBIG1lbWJlciBgd2hvYCBoYXMgYmVlbiBhZGRlZC4sUmFua0NoYW5nZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARByYW5reQEBEFJhbmsAAQT0VGhlIG1lbWJlciBgd2hvYHNlIHJhbmsgaGFzIGJlZW4gY2hhbmdlZCB0byB0aGUgZ2l2ZW4gYHJhbmtgLjRNZW1iZXJSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEQcmFua3kBARBSYW5rAAIEGQFUaGUgbWVtYmVyIGB3aG9gIG9mIGdpdmVuIGByYW5rYCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGNvbGxlY3RpdmUuFFZvdGVkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEQcG9sbBABRFBvbGxJbmRleE9mPFQsIEk+AAEQdm90ZYEGAShWb3RlUmVjb3JkAAEUdGFsbHmFBgE0VGFsbHlPZjxULCBJPgADCFUBVGhlIG1lbWJlciBgd2hvYCBoYXMgdm90ZWQgZm9yIHRoZSBgcG9sbGAgd2l0aCB0aGUgZ2l2ZW4gYHZvdGVgIGxlYWRpbmcgdG8gYW4gdXBkYXRlZCBgdGFsbHlgLjxNZW1iZXJFeGNoYW5nZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxuZXdfd2hvAAEwVDo6QWNjb3VudElkAAQE8FRoZSBtZW1iZXIgYHdob2AgaGFkIHRoZWlyIGBBY2NvdW50SWRgIGNoYW5nZWQgdG8gYG5ld193aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIEGCGBwYWxsZXRfcmFua2VkX2NvbGxlY3RpdmUoVm90ZVJlY29yZAABCAxBeWUEABABFFZvdGVzAAAADE5heQQAEAEUVm90ZXMAAQAAhQYIYHBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZRRUYWxseQwEVAAESQAETQAADAEkYmFyZV9heWVzEAEsTWVtYmVySW5kZXgAARBheWVzEAEUVm90ZXMAARBuYXlzEAEUVm90ZXMAAIkGDEBwYWxsZXRfcmVmZXJlbmRhGHBhbGxldBRFdmVudAgEVAAESQABQCRTdWJtaXR0ZWQMARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFja3kBATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbH0BAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgAEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzdWJtaXR0ZWQuVERlY2lzaW9uRGVwb3NpdFBsYWNlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAQSUVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcGxhY2VkLlxEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAgScVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuOERlcG9zaXRTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4DBGxBIGRlcG9zaXQgaGFzIGJlZW4gc2xhc2hlZC48RGVjaXNpb25TdGFydGVkEAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2t5AQE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWx9AQFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5hQYBIFQ6OlRhbGx5BLhUaGUgY3VycmVudCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBAS8QSByZWZlcmVuZHVtIGhhcyBtb3ZlZCBpbnRvIHRoZSBkZWNpZGluZyBwaGFzZS44Q29uZmlybVN0YXJ0ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBQA4Q29uZmlybUFib3J0ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBgAkQ29uZmlybWVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmFBgEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBwQhAUEgcmVmZXJlbmR1bSBoYXMgZW5kZWQgaXRzIGNvbmZpcm1hdGlvbiBwaGFzZSBhbmQgaXMgcmVhZHkgZm9yIGFwcHJvdmFsLiBBcHByb3ZlZAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4IBA0BQSByZWZlcmVuZHVtIGhhcyBiZWVuIGFwcHJvdmVkIGFuZCBpdHMgcHJvcG9zYWwgaGFzIGJlZW4gc2NoZWR1bGVkLiBSZWplY3RlZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5hQYBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgkErEEgcHJvcG9zYWwgaGFzIGJlZW4gcmVqZWN0ZWQgYnkgcmVmZXJlbmR1bS4gVGltZWRPdXQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseYUGASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4KBNhBIHJlZmVyZW5kdW0gaGFzIGJlZW4gdGltZWQgb3V0IHdpdGhvdXQgYmVpbmcgZGVjaWRlZC4kQ2FuY2VsbGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmFBgEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCwSAQSByZWZlcmVuZHVtIGhhcyBiZWVuIGNhbmNlbGxlZC4YS2lsbGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmFBgEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uDAR0QSByZWZlcmVuZHVtIGhhcyBiZWVuIGtpbGxlZC5kU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuDQSkVGhlIHN1Ym1pc3Npb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC4sTWV0YWRhdGFTZXQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoNAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4OBJxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIHNldC48TWV0YWRhdGFDbGVhcmVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaDQBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDwSsTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldI0GDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFdmVudAQEVAABDDxDYWxsV2hpdGVsaXN0ZWQEASRjYWxsX2hhc2g0ARxUOjpIYXNoAAAAWFdoaXRlbGlzdGVkQ2FsbFJlbW92ZWQEASRjYWxsX2hhc2g0ARxUOjpIYXNoAAEAZFdoaXRlbGlzdGVkQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2g0ARxUOjpIYXNoAAEYcmVzdWx0kQYBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0kQYEGFJlc3VsdAgEVAGVBgRFAZ0GAQgIT2sEAJUGAAAAAAxFcnIEAJ0GAAABAACVBgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQb3N0RGlzcGF0Y2hJbmZvAAAIATRhY3R1YWxfd2VpZ2h0mQYBOE9wdGlvbjxXZWlnaHQ+AAEgcGF5c19mZWVkARBQYXlzAACZBgQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAAJ0GCChzcF9ydW50aW1lZERpc3BhdGNoRXJyb3JXaXRoUG9zdEluZm8EEEluZm8BlQYACAEkcG9zdF9pbmZvlQYBEEluZm8AARRlcnJvcmgBNERpc3BhdGNoRXJyb3IAAKEGEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXMYcGFsbGV0FEV2ZW50BARUAAEEHENsYWltZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAUBldGhlcmV1bV9hZGRyZXNzjQIBPEV0aGVyZXVtQWRkcmVzcwABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgAABGhTb21lb25lIGNsYWltZWQgc29tZSBET1RzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKUGDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQURXZlbnQAARhAQmF0Y2hJbnRlcnJ1cHRlZAgBFGluZGV4EAEMdTMyAAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAAIVQFCYXRjaCBvZiBkaXNwYXRjaGVzIGRpZCBub3QgY29tcGxldGUgZnVsbHkuIEluZGV4IG9mIGZpcnN0IGZhaWxpbmcgZGlzcGF0Y2ggZ2l2ZW4sIGFzSHdlbGwgYXMgdGhlIGVycm9yLjhCYXRjaENvbXBsZXRlZAABBMhCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBmdWxseSB3aXRoIG5vIGVycm9yLmBCYXRjaENvbXBsZXRlZFdpdGhFcnJvcnMAAgS0QmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgYnV0IGhhcyBlcnJvcnMuNEl0ZW1Db21wbGV0ZWQAAwQdAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggbm8gZXJyb3IuKEl0ZW1GYWlsZWQEARRlcnJvcmgBNERpc3BhdGNoRXJyb3IABAQRAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggZXJyb3IuMERpc3BhdGNoZWRBcwQBGHJlc3VsdKkGAThEaXNwYXRjaFJlc3VsdAAFBFhBIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0qQYEGFJlc3VsdAgEVAHFAQRFAWgBCAhPawQAxQEAAAAADEVycgQAaAAAAQAArQYMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQURXZlbnQEBFQAAUQsSWRlbnRpdHlTZXQEAQx3aG8AATBUOjpBY2NvdW50SWQAAATsQSBuYW1lIHdhcyBzZXQgb3IgcmVzZXQgKHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBqdWRnZW1lbnRzKS48SWRlbnRpdHlDbGVhcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgABBMxBIG5hbWUgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSByZXR1cm5lZC44SWRlbnRpdHlLaWxsZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAIExEEgbmFtZSB3YXMgcmVtb3ZlZCBhbmQgdGhlIGdpdmVuIGJhbGFuY2Ugc2xhc2hlZC5ISnVkZ2VtZW50UmVxdWVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4EAE4UmVnaXN0cmFySW5kZXgAAwScQSBqdWRnZW1lbnQgd2FzIGFza2VkIGZyb20gYSByZWdpc3RyYXIuUEp1ZGdlbWVudFVucmVxdWVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4EAE4UmVnaXN0cmFySW5kZXgABASIQSBqdWRnZW1lbnQgcmVxdWVzdCB3YXMgcmV0cmFjdGVkLjhKdWRnZW1lbnRHaXZlbggBGHRhcmdldAABMFQ6OkFjY291bnRJZAABPHJlZ2lzdHJhcl9pbmRleBABOFJlZ2lzdHJhckluZGV4AAUElEEganVkZ2VtZW50IHdhcyBnaXZlbiBieSBhIHJlZ2lzdHJhci44UmVnaXN0cmFyQWRkZWQEATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAAGBFhBIHJlZ2lzdHJhciB3YXMgYWRkZWQuQFN1YklkZW50aXR5QWRkZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAHBPRBIHN1Yi1pZGVudGl0eSB3YXMgYWRkZWQgdG8gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IHBhaWQuSFN1YklkZW50aXR5UmVtb3ZlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAgECQFBIHN1Yi1pZGVudGl0eSB3YXMgcmVtb3ZlZCBmcm9tIGFuIGlkZW50aXR5IGFuZCB0aGUgZGVwb3NpdCBmcmVlZC5IU3ViSWRlbnRpdHlSZXZva2VkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4ACQgZAUEgc3ViLWlkZW50aXR5IHdhcyBjbGVhcmVkLCBhbmQgdGhlIGdpdmVuIGRlcG9zaXQgcmVwYXRyaWF0ZWQgZnJvbSB0aGXIbWFpbiBpZGVudGl0eSBhY2NvdW50IHRvIHRoZSBzdWItaWRlbnRpdHkgYWNjb3VudC44QXV0aG9yaXR5QWRkZWQEASRhdXRob3JpdHkAATBUOjpBY2NvdW50SWQACgR8QSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIGFkZGVkLkBBdXRob3JpdHlSZW1vdmVkBAEkYXV0aG9yaXR5AAEwVDo6QWNjb3VudElkAAsEhEEgdXNlcm5hbWUgYXV0aG9yaXR5IHdhcyByZW1vdmVkLixVc2VybmFtZVNldAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lUQMBLFVzZXJuYW1lPFQ+AAwEdEEgdXNlcm5hbWUgd2FzIHNldCBmb3IgYHdob2AuOFVzZXJuYW1lUXVldWVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWVRAwEsVXNlcm5hbWU8VD4AAShleHBpcmF0aW9uEAFEQmxvY2tOdW1iZXJGb3I8VD4ADQQZAUEgdXNlcm5hbWUgd2FzIHF1ZXVlZCwgYnV0IGB3aG9gIG11c3QgYWNjZXB0IGl0IHByaW9yIHRvIGBleHBpcmF0aW9uYC5IUHJlYXBwcm92YWxFeHBpcmVkBAEUd2hvc2UAATBUOjpBY2NvdW50SWQADgQ5AUEgcXVldWVkIHVzZXJuYW1lIHBhc3NlZCBpdHMgZXhwaXJhdGlvbiB3aXRob3V0IGJlaW5nIGNsYWltZWQgYW5kIHdhcyByZW1vdmVkLkhQcmltYXJ5VXNlcm5hbWVTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZVEDASxVc2VybmFtZTxUPgAPBAEBQSB1c2VybmFtZSB3YXMgc2V0IGFzIGEgcHJpbWFyeSBhbmQgY2FuIGJlIGxvb2tlZCB1cCBmcm9tIGB3aG9gLlxEYW5nbGluZ1VzZXJuYW1lUmVtb3ZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lUQMBLFVzZXJuYW1lPFQ+ABAIXQFBIGRhbmdsaW5nIHVzZXJuYW1lIChhcyBpbiwgYSB1c2VybmFtZSBjb3JyZXNwb25kaW5nIHRvIGFuIGFjY291bnQgdGhhdCBoYXMgcmVtb3ZlZCBpdHNsaWRlbnRpdHkpIGhhcyBiZWVuIHJlbW92ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0sQYMOHBhbGxldF9zb2NpZXR5GHBhbGxldBRFdmVudAgEVAAESQABRBxGb3VuZGVkBAEcZm91bmRlcgABMFQ6OkFjY291bnRJZAAABLRUaGUgc29jaWV0eSBpcyBmb3VuZGVkIGJ5IHRoZSBnaXZlbiBpZGVudGl0eS4MQmlkCAEwY2FuZGlkYXRlX2lkAAEwVDo6QWNjb3VudElkAAEUb2ZmZXIYATxCYWxhbmNlT2Y8VCwgST4AAQhdAUEgbWVtYmVyc2hpcCBiaWQganVzdCBoYXBwZW5lZC4gVGhlIGdpdmVuIGFjY291bnQgaXMgdGhlIGNhbmRpZGF0ZSdzIElEIGFuZCB0aGVpciBvZmZlcjhpcyB0aGUgc2Vjb25kLhRWb3VjaAwBMGNhbmRpZGF0ZV9pZAABMFQ6OkFjY291bnRJZAABFG9mZmVyGAE8QmFsYW5jZU9mPFQsIEk+AAEgdm91Y2hpbmcAATBUOjpBY2NvdW50SWQAAghdAUEgbWVtYmVyc2hpcCBiaWQganVzdCBoYXBwZW5lZCBieSB2b3VjaGluZy4gVGhlIGdpdmVuIGFjY291bnQgaXMgdGhlIGNhbmRpZGF0ZSdzIElEIGFuZOx0aGVpciBvZmZlciBpcyB0aGUgc2Vjb25kLiBUaGUgdm91Y2hpbmcgcGFydHkgaXMgdGhlIHRoaXJkLiRBdXRvVW5iaWQEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAAwQFAUEgY2FuZGlkYXRlIHdhcyBkcm9wcGVkIChkdWUgdG8gYW4gZXhjZXNzIG9mIGJpZHMgaW4gdGhlIHN5c3RlbSkuFFVuYmlkBAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAQErEEgY2FuZGlkYXRlIHdhcyBkcm9wcGVkIChieSB0aGVpciByZXF1ZXN0KS4cVW52b3VjaAQBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAAFBPRBIGNhbmRpZGF0ZSB3YXMgZHJvcHBlZCAoYnkgcmVxdWVzdCBvZiB3aG8gdm91Y2hlZCBmb3IgdGhlbSkuIEluZHVjdGVkCAEccHJpbWFyeQABMFQ6OkFjY291bnRJZAABKGNhbmRpZGF0ZXPRAQFEVmVjPFQ6OkFjY291bnRJZD4ABghVAUEgZ3JvdXAgb2YgY2FuZGlkYXRlcyBoYXZlIGJlZW4gaW5kdWN0ZWQuIFRoZSBiYXRjaCdzIHByaW1hcnkgaXMgdGhlIGZpcnN0IHZhbHVlLCB0aGVwYmF0Y2ggaW4gZnVsbCBpcyB0aGUgc2Vjb25kLmBTdXNwZW5kZWRNZW1iZXJKdWRnZW1lbnQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhqdWRnZWQgARBib29sAAcEjEEgc3VzcGVuZGVkIG1lbWJlciBoYXMgYmVlbiBqdWRnZWQuSENhbmRpZGF0ZVN1c3BlbmRlZAQBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAAIBHhBIGNhbmRpZGF0ZSBoYXMgYmVlbiBzdXNwZW5kZWQ8TWVtYmVyU3VzcGVuZGVkBAEYbWVtYmVyAAEwVDo6QWNjb3VudElkAAkEbEEgbWVtYmVyIGhhcyBiZWVuIHN1c3BlbmRlZChDaGFsbGVuZ2VkBAEYbWVtYmVyAAEwVDo6QWNjb3VudElkAAoEcEEgbWVtYmVyIGhhcyBiZWVuIGNoYWxsZW5nZWQQVm90ZQwBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAABFHZvdGVyAAEwVDo6QWNjb3VudElkAAEQdm90ZSABEGJvb2wACwRYQSB2b3RlIGhhcyBiZWVuIHBsYWNlZDBEZWZlbmRlclZvdGUIARR2b3RlcgABMFQ6OkFjY291bnRJZAABEHZvdGUgARBib29sAAwEtEEgdm90ZSBoYXMgYmVlbiBwbGFjZWQgZm9yIGEgZGVmZW5kaW5nIG1lbWJlciROZXdQYXJhbXMEARhwYXJhbXO1BgFQR3JvdXBQYXJhbXNGb3I8VCwgST4ADQTMQSBuZXcgc2V0IG9mIFxbcGFyYW1zXF0gaGFzIGJlZW4gc2V0IGZvciB0aGUgZ3JvdXAuJFVuZm91bmRlZAQBHGZvdW5kZXIAATBUOjpBY2NvdW50SWQADgRUU29jaWV0eSBpcyB1bmZvdW5kZWQuHERlcG9zaXQEARR2YWx1ZRgBPEJhbGFuY2VPZjxULCBJPgAPBMxTb21lIGZ1bmRzIHdlcmUgZGVwb3NpdGVkIGludG8gdGhlIHNvY2lldHkgYWNjb3VudC4gRWxldmF0ZWQIARhtZW1iZXIAATBUOjpBY2NvdW50SWQAARByYW5rEAEQUmFuawAQBJhBIFxbbWVtYmVyXF0gZ290IGVsZXZhdGVkIHRvIFxbcmFua1xdLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLUGCDhwYWxsZXRfc29jaWV0eSxHcm91cFBhcmFtcwQcQmFsYW5jZQEYABABLG1heF9tZW1iZXJzEAEMdTMyAAEobWF4X2ludGFrZRABDHUzMgABLG1heF9zdHJpa2VzEAEMdTMyAAFEY2FuZGlkYXRlX2RlcG9zaXQYARxCYWxhbmNlAAC5Bgw8cGFsbGV0X3JlY292ZXJ5GHBhbGxldBRFdmVudAQEVAABGDxSZWNvdmVyeUNyZWF0ZWQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAAEyEEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgYmVlbiBzZXQgdXAgZm9yIGFuIGFjY291bnQuRFJlY292ZXJ5SW5pdGlhdGVkCAEwbG9zdF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAE8cmVzY3Vlcl9hY2NvdW50AAEwVDo6QWNjb3VudElkAAEEKQFBIHJlY292ZXJ5IHByb2Nlc3MgaGFzIGJlZW4gaW5pdGlhdGVkIGZvciBsb3N0IGFjY291bnQgYnkgcmVzY3VlciBhY2NvdW50LjxSZWNvdmVyeVZvdWNoZWQMATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQAARhzZW5kZXIAATBUOjpBY2NvdW50SWQAAgRZAUEgcmVjb3ZlcnkgcHJvY2VzcyBmb3IgbG9zdCBhY2NvdW50IGJ5IHJlc2N1ZXIgYWNjb3VudCBoYXMgYmVlbiB2b3VjaGVkIGZvciBieSBzZW5kZXIuOFJlY292ZXJ5Q2xvc2VkCAEwbG9zdF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAE8cmVzY3Vlcl9hY2NvdW50AAEwVDo6QWNjb3VudElkAAMEHQFBIHJlY292ZXJ5IHByb2Nlc3MgZm9yIGxvc3QgYWNjb3VudCBieSByZXNjdWVyIGFjY291bnQgaGFzIGJlZW4gY2xvc2VkLkBBY2NvdW50UmVjb3ZlcmVkCAEwbG9zdF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAE8cmVzY3Vlcl9hY2NvdW50AAEwVDo6QWNjb3VudElkAAQEAQFMb3N0IGFjY291bnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlY292ZXJlZCBieSByZXNjdWVyIGFjY291bnQuPFJlY292ZXJ5UmVtb3ZlZAQBMGxvc3RfYWNjb3VudAABMFQ6OkFjY291bnRJZAAFBMxBIHJlY292ZXJ5IHByb2Nlc3MgaGFzIGJlZW4gcmVtb3ZlZCBmb3IgYW4gYWNjb3VudC4EMEV2ZW50cyB0eXBlLr0GDDhwYWxsZXRfdmVzdGluZxhwYWxsZXQURXZlbnQEBFQAAQg4VmVzdGluZ1VwZGF0ZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEgdW52ZXN0ZWQYATBCYWxhbmNlT2Y8VD4AAAhRAVRoZSBhbW91bnQgdmVzdGVkIGhhcyBiZWVuIHVwZGF0ZWQuIFRoaXMgY291bGQgaW5kaWNhdGUgYSBjaGFuZ2UgaW4gZnVuZHMgYXZhaWxhYmxlLiUBVGhlIGJhbGFuY2UgZ2l2ZW4gaXMgdGhlIGFtb3VudCB3aGljaCBpcyBsZWZ0IHVudmVzdGVkIChhbmQgdGh1cyBsb2NrZWQpLkBWZXN0aW5nQ29tcGxldGVkBAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABBJxBbiBcW2FjY291bnRcXSBoYXMgYmVjb21lIGZ1bGx5IHZlc3RlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTBBgxAcGFsbGV0X3NjaGVkdWxlchhwYWxsZXQURXZlbnQEBFQAASQkU2NoZWR1bGVkCAEQd2hlbhABREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgQAQx1MzIAAARQU2NoZWR1bGVkIHNvbWUgdGFzay4gQ2FuY2VsZWQIARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleBABDHUzMgABBExDYW5jZWxlZCBzb21lIHRhc2suKERpc3BhdGNoZWQMARB0YXNrbQMBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkxQYBQE9wdGlvbjxUYXNrTmFtZT4AARhyZXN1bHSpBgE4RGlzcGF0Y2hSZXN1bHQAAgRURGlzcGF0Y2hlZCBzb21lIHRhc2suIFJldHJ5U2V0EAEQdGFza20DAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZMUGAUBPcHRpb248VGFza05hbWU+AAEYcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4AARxyZXRyaWVzCAEIdTgAAwSgU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjhSZXRyeUNhbmNlbGxlZAgBEHRhc2ttAwF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTFBgFAT3B0aW9uPFRhc2tOYW1lPgAEBKxDYW5jZWwgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBzb21lIHRhc2suPENhbGxVbmF2YWlsYWJsZQgBEHRhc2ttAwF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTFBgFAT3B0aW9uPFRhc2tOYW1lPgAFBCkBVGhlIGNhbGwgZm9yIHRoZSBwcm92aWRlZCBoYXNoIHdhcyBub3QgZm91bmQgc28gdGhlIHRhc2sgaGFzIGJlZW4gYWJvcnRlZC44UGVyaW9kaWNGYWlsZWQIARB0YXNrbQMBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkxQYBQE9wdGlvbjxUYXNrTmFtZT4ABgQ9AVRoZSBnaXZlbiB0YXNrIHdhcyB1bmFibGUgdG8gYmUgcmVuZXdlZCBzaW5jZSB0aGUgYWdlbmRhIGlzIGZ1bGwgYXQgdGhhdCBibG9jay4sUmV0cnlGYWlsZWQIARB0YXNrbQMBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkxQYBQE9wdGlvbjxUYXNrTmFtZT4ABwhdAVRoZSBnaXZlbiB0YXNrIHdhcyB1bmFibGUgdG8gYmUgcmV0cmllZCBzaW5jZSB0aGUgYWdlbmRhIGlzIGZ1bGwgYXQgdGhhdCBibG9jayBvciB0aGVyZZx3YXMgbm90IGVub3VnaCB3ZWlnaHQgdG8gcmVzY2hlZHVsZSBpdC5UUGVybWFuZW50bHlPdmVyd2VpZ2h0CAEQdGFza20DAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZMUGAUBPcHRpb248VGFza05hbWU+AAgE8FRoZSBnaXZlbiB0YXNrIGNhbiBuZXZlciBiZSBleGVjdXRlZCBzaW5jZSBpdCBpcyBvdmVyd2VpZ2h0LgQwRXZlbnRzIHR5cGUuxQYEGE9wdGlvbgQEVAEEAQgQTm9uZQAAABBTb21lBAAEAAABAADJBgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFdmVudAQEVAABFDRQcm94eUV4ZWN1dGVkBAEYcmVzdWx0qQYBOERpc3BhdGNoUmVzdWx0AAAEvEEgcHJveHkgd2FzIGV4ZWN1dGVkIGNvcnJlY3RseSwgd2l0aCB0aGUgZ2l2ZW4uLFB1cmVDcmVhdGVkEAEQcHVyZQABMFQ6OkFjY291bnRJZAABDHdobwABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGV5AwEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXh5AQEMdTE2AAEI3EEgcHVyZSBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgYnkgbmV3IHByb3h5IHdpdGggZ2l2ZW6QZGlzYW1iaWd1YXRpb24gaW5kZXggYW5kIHByb3h5IHR5cGUuJEFubm91bmNlZAwBEHJlYWwAATBUOjpBY2NvdW50SWQAARRwcm94eQABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4AAgTgQW4gYW5ub3VuY2VtZW50IHdhcyBwbGFjZWQgdG8gbWFrZSBhIGNhbGwgaW4gdGhlIGZ1dHVyZS4oUHJveHlBZGRlZBABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGV5AwEwVDo6UHJveHlUeXBlAAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgADBEhBIHByb3h5IHdhcyBhZGRlZC4wUHJveHlSZW1vdmVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZXkDATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAQEUEEgcHJveHkgd2FzIHJlbW92ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0zQYMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXZlbnQEBFQAARAsTmV3TXVsdGlzaWcMASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAAEjEEgbmV3IG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVndW4uQE11bHRpc2lnQXBwcm92YWwQASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnSFAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAQTIQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQgYnkgc29tZW9uZS5ATXVsdGlzaWdFeGVjdXRlZBQBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludIUDAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABGHJlc3VsdKkGAThEaXNwYXRjaFJlc3VsdAACBJxBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBleGVjdXRlZC5ETXVsdGlzaWdDYW5jZWxsZWQQAShjYW5jZWxsaW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50hQMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAMEoEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTRBgw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBRFdmVudAQEVAABDBROb3RlZAQBEGhhc2g0ARxUOjpIYXNoAAAEaEEgcHJlaW1hZ2UgaGFzIGJlZW4gbm90ZWQuJFJlcXVlc3RlZAQBEGhhc2g0ARxUOjpIYXNoAAEEeEEgcHJlaW1hZ2UgaGFzIGJlZW4gcmVxdWVzdGVkLhxDbGVhcmVkBAEQaGFzaDQBHFQ6Okhhc2gAAgRsQSBwcmVpbWFnZSBoYXMgYmVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV01QYMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBRFdmVudAQEVAABDEBBc3NldFJhdGVDcmVhdGVkCAEoYXNzZXRfa2luZOABMFQ6OkFzc2V0S2luZAABEHJhdGWVAwEkRml4ZWRVMTI4AAAAQEFzc2V0UmF0ZVJlbW92ZWQEAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEAQEFzc2V0UmF0ZVVwZGF0ZWQMAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEMb2xklQMBJEZpeGVkVTEyOAABDG5ld5UDASRGaXhlZFUxMjgAAgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTZBgw8cGFsbGV0X2JvdW50aWVzGHBhbGxldBRFdmVudAgEVAAESQABLDhCb3VudHlQcm9wb3NlZAQBFGluZGV4EAEsQm91bnR5SW5kZXgAAARQTmV3IGJvdW50eSBwcm9wb3NhbC44Qm91bnR5UmVqZWN0ZWQIARRpbmRleBABLEJvdW50eUluZGV4AAEQYm9uZBgBPEJhbGFuY2VPZjxULCBJPgABBMxBIGJvdW50eSBwcm9wb3NhbCB3YXMgcmVqZWN0ZWQ7IGZ1bmRzIHdlcmUgc2xhc2hlZC5IQm91bnR5QmVjYW1lQWN0aXZlBAEUaW5kZXgQASxCb3VudHlJbmRleAACBLhBIGJvdW50eSBwcm9wb3NhbCBpcyBmdW5kZWQgYW5kIGJlY2FtZSBhY3RpdmUuNEJvdW50eUF3YXJkZWQIARRpbmRleBABLEJvdW50eUluZGV4AAEsYmVuZWZpY2lhcnkAATBUOjpBY2NvdW50SWQAAwSUQSBib3VudHkgaXMgYXdhcmRlZCB0byBhIGJlbmVmaWNpYXJ5LjRCb3VudHlDbGFpbWVkDAEUaW5kZXgQASxCb3VudHlJbmRleAABGHBheW91dBgBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAQEjEEgYm91bnR5IGlzIGNsYWltZWQgYnkgYmVuZWZpY2lhcnkuOEJvdW50eUNhbmNlbGVkBAEUaW5kZXgQASxCb3VudHlJbmRleAAFBFhBIGJvdW50eSBpcyBjYW5jZWxsZWQuOEJvdW50eUV4dGVuZGVkBAEUaW5kZXgQASxCb3VudHlJbmRleAAGBHBBIGJvdW50eSBleHBpcnkgaXMgZXh0ZW5kZWQuOEJvdW50eUFwcHJvdmVkBAEUaW5kZXgQASxCb3VudHlJbmRleAAHBFRBIGJvdW50eSBpcyBhcHByb3ZlZC48Q3VyYXRvclByb3Bvc2VkCAEkYm91bnR5X2lkEAEsQm91bnR5SW5kZXgAARxjdXJhdG9yAAEwVDo6QWNjb3VudElkAAgEdEEgYm91bnR5IGN1cmF0b3IgaXMgcHJvcG9zZWQuREN1cmF0b3JVbmFzc2lnbmVkBAEkYm91bnR5X2lkEAEsQm91bnR5SW5kZXgACQR8QSBib3VudHkgY3VyYXRvciBpcyB1bmFzc2lnbmVkLjxDdXJhdG9yQWNjZXB0ZWQIASRib3VudHlfaWQQASxCb3VudHlJbmRleAABHGN1cmF0b3IAATBUOjpBY2NvdW50SWQACgR0QSBib3VudHkgY3VyYXRvciBpcyBhY2NlcHRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTdBgxUcGFsbGV0X2NoaWxkX2JvdW50aWVzGHBhbGxldBRFdmVudAQEVAABEBRBZGRlZAgBFGluZGV4EAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleBABLEJvdW50eUluZGV4AAAEYEEgY2hpbGQtYm91bnR5IGlzIGFkZGVkLhxBd2FyZGVkDAEUaW5kZXgQASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV4EAEsQm91bnR5SW5kZXgAASxiZW5lZmljaWFyeQABMFQ6OkFjY291bnRJZAABBKxBIGNoaWxkLWJvdW50eSBpcyBhd2FyZGVkIHRvIGEgYmVuZWZpY2lhcnkuHENsYWltZWQQARRpbmRleBABLEJvdW50eUluZGV4AAEsY2hpbGRfaW5kZXgQASxCb3VudHlJbmRleAABGHBheW91dBgBMEJhbGFuY2VPZjxUPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAIEpEEgY2hpbGQtYm91bnR5IGlzIGNsYWltZWQgYnkgYmVuZWZpY2lhcnkuIENhbmNlbGVkCAEUaW5kZXgQASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV4EAEsQm91bnR5SW5kZXgAAwRwQSBjaGlsZC1ib3VudHkgaXMgY2FuY2VsbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOEGDChwYWxsZXRfbmlzGHBhbGxldBRFdmVudAQEVAABHCRCaWRQbGFjZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AASBkdXJhdGlvbhABDHUzMgAABHhBIGJpZCB3YXMgc3VjY2Vzc2Z1bGx5IHBsYWNlZC4wQmlkUmV0cmFjdGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEgZHVyYXRpb24QAQx1MzIAAQTcQSBiaWQgd2FzIHN1Y2Nlc3NmdWxseSByZW1vdmVkIChiZWZvcmUgYmVpbmcgYWNjZXB0ZWQpLihCaWREcm9wcGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEgZHVyYXRpb24QAQx1MzIAAgRVAUEgYmlkIHdhcyBkcm9wcGVkIGZyb20gYSBxdWV1ZSBiZWNhdXNlIG9mIGFub3RoZXIsIG1vcmUgc3Vic3RhbnRpYWwsIGJpZCB3YXMgcHJlc2VudC4YSXNzdWVkFAEUaW5kZXgQATBSZWNlaXB0SW5kZXgEcFRoZSBpZGVudGl0eSBvZiB0aGUgcmVjZWlwdC4BGGV4cGlyeRABREJsb2NrTnVtYmVyRm9yPFQ+BNBUaGUgYmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZSByZWNlaXB0IG1heSBiZSB0aGF3ZWQuAQx3aG8AATBUOjpBY2NvdW50SWQEZFRoZSBvd25lciBvZiB0aGUgcmVjZWlwdC4BKHByb3BvcnRpb260ASxQZXJxdWludGlsbAQxAVRoZSBwcm9wb3J0aW9uIG9mIHRoZSBlZmZlY3RpdmUgdG90YWwgaXNzdWFuY2Ugd2hpY2ggdGhlIHJlY2VpcHQgcmVwcmVzZW50cy4BGGFtb3VudBgBMEJhbGFuY2VPZjxUPgTYVGhlIGFtb3VudCBvZiBmdW5kcyB3aGljaCB3ZXJlIGRlYml0ZWQgZnJvbSB0aGUgb3duZXIuAwQFAUEgYmlkIHdhcyBhY2NlcHRlZC4gVGhlIGJhbGFuY2UgbWF5IG5vdCBiZSByZWxlYXNlZCB1bnRpbCBleHBpcnkuGFRoYXdlZBQBFGluZGV4EAEwUmVjZWlwdEluZGV4BHBUaGUgaWRlbnRpdHkgb2YgdGhlIHJlY2VpcHQuAQx3aG8AATBUOjpBY2NvdW50SWQEKFRoZSBvd25lci4BKHByb3BvcnRpb260ASxQZXJxdWludGlsbAQ5AVRoZSBwcm9wb3J0aW9uIG9mIHRoZSBlZmZlY3RpdmUgdG90YWwgaXNzdWFuY2UgYnkgd2hpY2ggdGhlIG93bmVyIHdhcyBkZWJpdGVkLgEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+BKxUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBvd25lciB3YXMgY3JlZGl0ZWQuARxkcm9wcGVkIAEQYm9vbASMSWYgYHRydWVgIHRoZW4gdGhlIHJlY2VpcHQgaXMgZG9uZS4EBMBBbiByZWNlaXB0IGhhcyBiZWVuIChhdCBsZWFzdCBwYXJ0aWFsbHkpIHRoYXdlZC4YRnVuZGVkBAEcZGVmaWNpdBgBMEJhbGFuY2VPZjxUPgAFBLRBbiBhdXRvbWF0aWMgZnVuZGluZyBvZiB0aGUgZGVmaWNpdCB3YXMgbWFkZS4sVHJhbnNmZXJyZWQMARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARRpbmRleBABMFJlY2VpcHRJbmRleAAGBGhBIHJlY2VpcHQgd2FzIHRyYW5zZmVycmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOUGDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAFYHEVuZG93ZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlGAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARBmcmVlGAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzhAEYU3RhdHVzAAYITQFTb21lIGJhbGFuY2Ugd2FzIG1vdmVkIGZyb20gdGhlIHJlc2VydmUgb2YgdGhlIGZpcnN0IGFjY291bnQgdG8gdGhlIHNlY29uZCBhY2NvdW50LthGaW5hbCBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIGJhbGFuY2UgdHlwZS4cRGVwb3NpdAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABwTYU29tZSBhbW91bnQgd2FzIGRlcG9zaXRlZCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuIFdpdGhkcmF3CAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAIBB0BU29tZSBhbW91bnQgd2FzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4cU2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACQQBAVNvbWUgYW1vdW50IHdhcyByZW1vdmVkIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIG1pc2JlaGF2aW9yKS4YTWludGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAKBJxTb21lIGFtb3VudCB3YXMgbWludGVkIGludG8gYW4gYWNjb3VudC4YQnVybmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQALBJxTb21lIGFtb3VudCB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC4kU3VzcGVuZGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAMBBUBU29tZSBhbW91bnQgd2FzIHN1c3BlbmRlZCBmcm9tIGFuIGFjY291bnQgKGl0IGNhbiBiZSByZXN0b3JlZCBsYXRlcikuIFJlc3RvcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQANBKRTb21lIGFtb3VudCB3YXMgcmVzdG9yZWQgaW50byBhbiBhY2NvdW50LiBVcGdyYWRlZAQBDHdobwABMFQ6OkFjY291bnRJZAAOBGBBbiBhY2NvdW50IHdhcyB1cGdyYWRlZC4YSXNzdWVkBAEYYW1vdW50GAEoVDo6QmFsYW5jZQAPBC0BVG90YWwgaXNzdWFuY2Ugd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBjcmVkaXQgdG8gYmUgYmFsYW5jZWQuJFJlc2NpbmRlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UAEAQlAVRvdGFsIGlzc3VhbmNlIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgZGVidCB0byBiZSBiYWxhbmNlZC4YTG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQARBGBTb21lIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABIEaFNvbWUgYmFsYW5jZSB3YXMgdW5sb2NrZWQuGEZyb3plbggBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEwRgU29tZSBiYWxhbmNlIHdhcyBmcm96ZW4uGFRoYXdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAFARgU29tZSBiYWxhbmNlIHdhcyB0aGF3ZWQuTFRvdGFsSXNzdWFuY2VGb3JjZWQIAQxvbGQYAShUOjpCYWxhbmNlAAEMbmV3GAEoVDo6QmFsYW5jZQAVBKxUaGUgYFRvdGFsSXNzdWFuY2VgIHdhcyBmb3JjZWZ1bGx5IGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV06QYQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0FEV2ZW50BARUAAEQPENhbmRpZGF0ZUJhY2tlZBAA7QYBZENhbmRpZGF0ZVJlY2VpcHQ8VDo6SGFzaD4AADUEASBIZWFkRGF0YQAA8QYBJENvcmVJbmRleAAA9QYBKEdyb3VwSW5kZXgAAATAQSBjYW5kaWRhdGUgd2FzIGJhY2tlZC4gYFtjYW5kaWRhdGUsIGhlYWRfZGF0YV1gRENhbmRpZGF0ZUluY2x1ZGVkEADtBgFkQ2FuZGlkYXRlUmVjZWlwdDxUOjpIYXNoPgAANQQBIEhlYWREYXRhAADxBgEkQ29yZUluZGV4AAD1BgEoR3JvdXBJbmRleAABBMhBIGNhbmRpZGF0ZSB3YXMgaW5jbHVkZWQuIGBbY2FuZGlkYXRlLCBoZWFkX2RhdGFdYERDYW5kaWRhdGVUaW1lZE91dAwA7QYBZENhbmRpZGF0ZVJlY2VpcHQ8VDo6SGFzaD4AADUEASBIZWFkRGF0YQAA8QYBJENvcmVJbmRleAACBLxBIGNhbmRpZGF0ZSB0aW1lZCBvdXQuIGBbY2FuZGlkYXRlLCBoZWFkX2RhdGFdYFhVcHdhcmRNZXNzYWdlc1JlY2VpdmVkCAEQZnJvbWECARhQYXJhSWQAARRjb3VudBABDHUzMgADBPhTb21lIHVwd2FyZCBtZXNzYWdlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldO0GDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4QENhbmRpZGF0ZVJlY2VpcHQEBEgBNAAIAShkZXNjcmlwdG9yCQQBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AAUBjb21taXRtZW50c19oYXNoNAEQSGFzaAAA8QYMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgkQ29yZUluZGV4AAAEABABDHUzMgAA9QYMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgoR3JvdXBJbmRleAAABAAQAQx1MzIAAPkGEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXMYcGFsbGV0FEV2ZW50AAEgSEN1cnJlbnRDb2RlVXBkYXRlZAQAYQIBGFBhcmFJZAAABMxDdXJyZW50IGNvZGUgaGFzIGJlZW4gdXBkYXRlZCBmb3IgYSBQYXJhLiBgcGFyYV9pZGBIQ3VycmVudEhlYWRVcGRhdGVkBABhAgEYUGFyYUlkAAEEzEN1cnJlbnQgaGVhZCBoYXMgYmVlbiB1cGRhdGVkIGZvciBhIFBhcmEuIGBwYXJhX2lkYFBDb2RlVXBncmFkZVNjaGVkdWxlZAQAYQIBGFBhcmFJZAACBNxBIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBzY2hlZHVsZWQgZm9yIGEgUGFyYS4gYHBhcmFfaWRgME5ld0hlYWROb3RlZAQAYQIBGFBhcmFJZAADBLxBIG5ldyBoZWFkIGhhcyBiZWVuIG5vdGVkIGZvciBhIFBhcmEuIGBwYXJhX2lkYDBBY3Rpb25RdWV1ZWQIAGECARhQYXJhSWQAABABMFNlc3Npb25JbmRleAAEBPBBIHBhcmEgaGFzIGJlZW4gcXVldWVkIHRvIGV4ZWN1dGUgcGVuZGluZyBhY3Rpb25zLiBgcGFyYV9pZGA8UHZmQ2hlY2tTdGFydGVkCAAVBAFIVmFsaWRhdGlvbkNvZGVIYXNoAABhAgEYUGFyYUlkAAUIVQFUaGUgZ2l2ZW4gcGFyYSBlaXRoZXIgaW5pdGlhdGVkIG9yIHN1YnNjcmliZWQgdG8gYSBQVkYgY2hlY2sgZm9yIHRoZSBnaXZlbiB2YWxpZGF0aW9ubGNvZGUuIGBjb2RlX2hhc2hgIGBwYXJhX2lkYEBQdmZDaGVja0FjY2VwdGVkCAAVBAFIVmFsaWRhdGlvbkNvZGVIYXNoAABhAgEYUGFyYUlkAAYIEQFUaGUgZ2l2ZW4gdmFsaWRhdGlvbiBjb2RlIHdhcyBhY2NlcHRlZCBieSB0aGUgUFZGIHByZS1jaGVja2luZyB2b3RlLlRgY29kZV9oYXNoYCBgcGFyYV9pZGBAUHZmQ2hlY2tSZWplY3RlZAgAFQQBSFZhbGlkYXRpb25Db2RlSGFzaAAAYQIBGFBhcmFJZAAHCBEBVGhlIGdpdmVuIHZhbGlkYXRpb24gY29kZSB3YXMgcmVqZWN0ZWQgYnkgdGhlIFBWRiBwcmUtY2hlY2tpbmcgdm90ZS5UYGNvZGVfaGFzaGAgYHBhcmFfaWRgBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0/QYQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBRFdmVudAQEVAABHFBPcGVuQ2hhbm5lbFJlcXVlc3RlZBABGHNlbmRlcmECARhQYXJhSWQAASRyZWNpcGllbnRhAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAABHBPcGVuIEhSTVAgY2hhbm5lbCByZXF1ZXN0ZWQuTE9wZW5DaGFubmVsQ2FuY2VsZWQIATBieV9wYXJhY2hhaW5hAgEYUGFyYUlkAAEoY2hhbm5lbF9pZHUEATRIcm1wQ2hhbm5lbElkAAEEKQFBbiBIUk1QIGNoYW5uZWwgcmVxdWVzdCBzZW50IGJ5IHRoZSByZWNlaXZlciB3YXMgY2FuY2VsZWQgYnkgZWl0aGVyIHBhcnR5LkxPcGVuQ2hhbm5lbEFjY2VwdGVkCAEYc2VuZGVyYQIBGFBhcmFJZAABJHJlY2lwaWVudGECARhQYXJhSWQAAgRsT3BlbiBIUk1QIGNoYW5uZWwgYWNjZXB0ZWQuNENoYW5uZWxDbG9zZWQIATBieV9wYXJhY2hhaW5hAgEYUGFyYUlkAAEoY2hhbm5lbF9pZHUEATRIcm1wQ2hhbm5lbElkAAMEUEhSTVAgY2hhbm5lbCBjbG9zZWQuWEhybXBDaGFubmVsRm9yY2VPcGVuZWQQARhzZW5kZXJhAgEYUGFyYUlkAAEkcmVjaXBpZW50YQIBGFBhcmFJZAABVHByb3Bvc2VkX21heF9jYXBhY2l0eRABDHUzMgABZHByb3Bvc2VkX21heF9tZXNzYWdlX3NpemUQAQx1MzIABASsQW4gSFJNUCBjaGFubmVsIHdhcyBvcGVuZWQgdmlhIFJvb3Qgb3JpZ2luLlxIcm1wU3lzdGVtQ2hhbm5lbE9wZW5lZBABGHNlbmRlcmECARhQYXJhSWQAASRyZWNpcGllbnRhAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAFBLxBbiBIUk1QIGNoYW5uZWwgd2FzIG9wZW5lZCB3aXRoIGEgc3lzdGVtIGNoYWluLmhPcGVuQ2hhbm5lbERlcG9zaXRzVXBkYXRlZAgBGHNlbmRlcmECARhQYXJhSWQAASRyZWNpcGllbnRhAgEYUGFyYUlkAAYEoEFuIEhSTVAgY2hhbm5lbCdzIGRlcG9zaXRzIHdlcmUgdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQBBxBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzGHBhbGxldBRFdmVudAQEVAABDEBEaXNwdXRlSW5pdGlhdGVkCABJBAE0Q2FuZGlkYXRlSGFzaAAABQcBPERpc3B1dGVMb2NhdGlvbgAABAkBQSBkaXNwdXRlIGhhcyBiZWVuIGluaXRpYXRlZC4gXFtjYW5kaWRhdGUgaGFzaCwgZGlzcHV0ZSBsb2NhdGlvblxdQERpc3B1dGVDb25jbHVkZWQIAEkEATRDYW5kaWRhdGVIYXNoAAAJBwE0RGlzcHV0ZVJlc3VsdAABCMxBIGRpc3B1dGUgaGFzIGNvbmNsdWRlZCBmb3Igb3IgYWdhaW5zdCBhIGNhbmRpZGF0ZS60YFxbcGFyYSBpZCwgY2FuZGlkYXRlIGhhc2gsIGRpc3B1dGUgcmVzdWx0XF1gGFJldmVydAQAEAFEQmxvY2tOdW1iZXJGb3I8VD4AAhD8QSBkaXNwdXRlIGhhcyBjb25jbHVkZWQgd2l0aCBzdXBlcm1ham9yaXR5IGFnYWluc3QgYSBjYW5kaWRhdGUuDQFCbG9jayBhdXRob3JzIHNob3VsZCBubyBsb25nZXIgYnVpbGQgb24gdG9wIG9mIHRoaXMgaGVhZCBhbmQgc2hvdWxkAQFpbnN0ZWFkIHJldmVydCB0aGUgYmxvY2sgYXQgdGhlIGdpdmVuIGhlaWdodC4gVGhpcyBzaG91bGQgYmUgdGhl/G51bWJlciBvZiB0aGUgY2hpbGQgb2YgdGhlIGxhc3Qga25vd24gdmFsaWQgYmxvY2sgaW4gdGhlIGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAUHDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXM8RGlzcHV0ZUxvY2F0aW9uAAEIFExvY2FsAAAAGFJlbW90ZQABAAAJBwxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzNERpc3B1dGVSZXN1bHQAAQgUVmFsaWQAAAAcSW52YWxpZAABAAANBwxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEQQFByb2Nlc3NpbmdGYWlsZWQMAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbpEEAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BFGVycm9yEQcBTFByb2Nlc3NNZXNzYWdlRXJyb3IQYFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgBJAVRoaXMgZXJyb3IgaXMgcHJldHR5IG9wYXF1ZS4gTW9yZSBmaW5lLWdyYWluZWQgZXJyb3JzIG5lZWQgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4ABFUBTWVzc2FnZSBkaXNjYXJkZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAgKHVzdWFsbHkgYSBmb3JtYXQgZXJyb3IpLiRQcm9jZXNzZWQQAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbpEEAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BLHdlaWdodF91c2VkKAEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3MgARBib29sGIhXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuAEkBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGBNZXNzYWdlUHJvY2Vzc29yYCB3YXMgaW50ZXJuYWxseTUBc3VjY2Vzc2Z1bC4gSXQgKnNvbGVseSogbWVhbnMgdGhhdCB0aGUgTVEgcGFsbGV0IHdpbGwgdHJlYXQgdGhpcyBhcyBhIHN1Y2Nlc3NNAWNvbmRpdGlvbiBhbmQgZGlzY2FyZCB0aGUgbWVzc2FnZS4gQW55IGludGVybmFsIGVycm9yIG5lZWRzIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAQRUTWVzc2FnZSBpcyBwcm9jZXNzZWQuSE92ZXJ3ZWlnaHRFbnF1ZXVlZBABCGlkBAEgW3U4OyAzMl0ElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbpEEAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BKHBhZ2VfaW5kZXgQASRQYWdlSW5kZXgEYFRoZSBwYWdlIG9mIHRoZSBtZXNzYWdlLgE0bWVzc2FnZV9pbmRleBABHFQ6OlNpemUEpFRoZSBpbmRleCBvZiB0aGUgbWVzc2FnZSB3aXRoaW4gdGhlIHBhZ2UuAgSMTWVzc2FnZSBwbGFjZWQgaW4gb3ZlcndlaWdodCBxdWV1ZS4oUGFnZVJlYXBlZAgBGG9yaWdpbpEEAUhNZXNzYWdlT3JpZ2luT2Y8VD4EWFRoZSBxdWV1ZSBvZiB0aGUgcGFnZS4BFGluZGV4EAEkUGFnZUluZGV4BFhUaGUgaW5kZXggb2YgdGhlIHBhZ2UuAwRUVGhpcyBwYWdlIHdhcyByZWFwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0EQcQNGZyYW1lX3N1cHBvcnQYdHJhaXRzIG1lc3NhZ2VzTFByb2Nlc3NNZXNzYWdlRXJyb3IAARgkQmFkRm9ybWF0AAAAHENvcnJ1cHQAAQAsVW5zdXBwb3J0ZWQAAgAoT3ZlcndlaWdodAQAKAEYV2VpZ2h0AAMAFFlpZWxkAAQARFN0YWNrTGltaXRSZWFjaGVkAAUAABUHEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkb25fZGVtYW5kGHBhbGxldBRFdmVudAQEVAABCExPbkRlbWFuZE9yZGVyUGxhY2VkDAEccGFyYV9pZGECARhQYXJhSWQAAShzcG90X3ByaWNlGAEwQmFsYW5jZU9mPFQ+AAEob3JkZXJlZF9ieQABMFQ6OkFjY291bnRJZAAABA0BQW4gb3JkZXIgd2FzIHBsYWNlZCBhdCBzb21lIHNwb3QgcHJpY2UgYW1vdW50IGJ5IG9yZGVyZXIgb3JkZXJlZF9ieTBTcG90UHJpY2VTZXQEAShzcG90X3ByaWNlGAEwQmFsYW5jZU9mPFQ+AAEEuFRoZSB2YWx1ZSBvZiB0aGUgc3BvdCBwcmljZSBoYXMgbGlrZWx5IGNoYW5nZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQZBxBccG9sa2Fkb3RfcnVudGltZV9jb21tb248cGFyYXNfcmVnaXN0cmFyGHBhbGxldBRFdmVudAQEVAABEChSZWdpc3RlcmVkCAEccGFyYV9pZGECARhQYXJhSWQAARxtYW5hZ2VyAAEwVDo6QWNjb3VudElkAAAAMERlcmVnaXN0ZXJlZAQBHHBhcmFfaWRhAgEYUGFyYUlkAAEAIFJlc2VydmVkCAEccGFyYV9pZGECARhQYXJhSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAgAcU3dhcHBlZAgBHHBhcmFfaWRhAgEYUGFyYUlkAAEgb3RoZXJfaWRhAgEYUGFyYUlkAAMABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0HQcQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uFHNsb3RzGHBhbGxldBRFdmVudAQEVAABCDhOZXdMZWFzZVBlcmlvZAQBMGxlYXNlX3BlcmlvZBABQExlYXNlUGVyaW9kT2Y8VD4AAASQQSBuZXcgYFtsZWFzZV9wZXJpb2RdYCBpcyBiZWdpbm5pbmcuGExlYXNlZBgBHHBhcmFfaWRhAgEYUGFyYUlkAAEYbGVhc2VyAAEwVDo6QWNjb3VudElkAAEwcGVyaW9kX2JlZ2luEAFATGVhc2VQZXJpb2RPZjxUPgABMHBlcmlvZF9jb3VudBABQExlYXNlUGVyaW9kT2Y8VD4AAThleHRyYV9yZXNlcnZlZBgBMEJhbGFuY2VPZjxUPgABMHRvdGFsX2Ftb3VudBgBMEJhbGFuY2VPZjxUPgABDDUBQSBwYXJhIGhhcyB3b24gdGhlIHJpZ2h0IHRvIGEgY29udGludW91cyBzZXQgb2YgbGVhc2UgcGVyaW9kcyBhcyBhIHBhcmFjaGFpbi5FAUZpcnN0IGJhbGFuY2UgaXMgYW55IGV4dHJhIGFtb3VudCByZXNlcnZlZCBvbiB0b3Agb2YgdGhlIHBhcmEncyBleGlzdGluZyBkZXBvc2l0LrBTZWNvbmQgYmFsYW5jZSBpcyB0aGUgdG90YWwgYW1vdW50IHJlc2VydmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCEHEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiBhdWN0aW9ucxhwYWxsZXQURXZlbnQEBFQAARw4QXVjdGlvblN0YXJ0ZWQMATRhdWN0aW9uX2luZGV4EAEwQXVjdGlvbkluZGV4AAEwbGVhc2VfcGVyaW9kEAFATGVhc2VQZXJpb2RPZjxUPgABGGVuZGluZxABREJsb2NrTnVtYmVyRm9yPFQ+AAAISQFBbiBhdWN0aW9uIHN0YXJ0ZWQuIFByb3ZpZGVzIGl0cyBpbmRleCBhbmQgdGhlIGJsb2NrIG51bWJlciB3aGVyZSBpdCB3aWxsIGJlZ2luIHRvFQFjbG9zZSBhbmQgdGhlIGZpcnN0IGxlYXNlIHBlcmlvZCBvZiB0aGUgcXVhZHJ1cGxldCB0aGF0IGlzIGF1Y3Rpb25lZC40QXVjdGlvbkNsb3NlZAQBNGF1Y3Rpb25faW5kZXgQATBBdWN0aW9uSW5kZXgAAQS4QW4gYXVjdGlvbiBlbmRlZC4gQWxsIGZ1bmRzIGJlY29tZSB1bnJlc2VydmVkLiBSZXNlcnZlZAwBGGJpZGRlcgABMFQ6OkFjY291bnRJZAABOGV4dHJhX3Jlc2VydmVkGAEwQmFsYW5jZU9mPFQ+AAEwdG90YWxfYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAIISQFGdW5kcyB3ZXJlIHJlc2VydmVkIGZvciBhIHdpbm5pbmcgYmlkLiBGaXJzdCBiYWxhbmNlIGlzIHRoZSBleHRyYSBhbW91bnQgcmVzZXJ2ZWQuUFNlY29uZCBpcyB0aGUgdG90YWwuKFVucmVzZXJ2ZWQIARhiaWRkZXIAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAwQpAUZ1bmRzIHdlcmUgdW5yZXNlcnZlZCBzaW5jZSBiaWRkZXIgaXMgbm8gbG9uZ2VyIGFjdGl2ZS4gYFtiaWRkZXIsIGFtb3VudF1gSFJlc2VydmVDb25maXNjYXRlZAwBHHBhcmFfaWRhAgEYUGFyYUlkAAEYbGVhc2VyAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAQIVQFTb21lb25lIGF0dGVtcHRlZCB0byBsZWFzZSB0aGUgc2FtZSBzbG90IHR3aWNlIGZvciBhIHBhcmFjaGFpbi4gVGhlIGFtb3VudCBpcyBoZWxkIGluuHJlc2VydmUgYnV0IG5vIHBhcmFjaGFpbiBzbG90IGhhcyBiZWVuIGxlYXNlZC4sQmlkQWNjZXB0ZWQUARhiaWRkZXIAATBUOjpBY2NvdW50SWQAARxwYXJhX2lkYQIBGFBhcmFJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABKGZpcnN0X3Nsb3QQAUBMZWFzZVBlcmlvZE9mPFQ+AAEkbGFzdF9zbG90EAFATGVhc2VQZXJpb2RPZjxUPgAFBMhBIG5ldyBiaWQgaGFzIGJlZW4gYWNjZXB0ZWQgYXMgdGhlIGN1cnJlbnQgd2lubmVyLjRXaW5uaW5nT2Zmc2V0CAE0YXVjdGlvbl9pbmRleBABMEF1Y3Rpb25JbmRleAABMGJsb2NrX251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAYIWQFUaGUgd2lubmluZyBvZmZzZXQgd2FzIGNob3NlbiBmb3IgYW4gYXVjdGlvbi4gVGhpcyB3aWxsIG1hcCBpbnRvIHRoZSBgV2lubmluZ2Agc3RvcmFnZRBtYXAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0JQcQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uJGNyb3dkbG9hbhhwYWxsZXQURXZlbnQEBFQAASgcQ3JlYXRlZAQBHHBhcmFfaWRhAgEYUGFyYUlkAAAEjENyZWF0ZSBhIG5ldyBjcm93ZGxvYW5pbmcgY2FtcGFpZ24uLENvbnRyaWJ1dGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEoZnVuZF9pbmRleGECARhQYXJhSWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAQRwQ29udHJpYnV0ZWQgdG8gYSBjcm93ZCBzYWxlLiBXaXRoZHJldwwBDHdobwABMFQ6OkFjY291bnRJZAABKGZ1bmRfaW5kZXhhAgEYUGFyYUlkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAIEnFdpdGhkcmV3IGZ1bGwgYmFsYW5jZSBvZiBhIGNvbnRyaWJ1dG9yLkRQYXJ0aWFsbHlSZWZ1bmRlZAQBHHBhcmFfaWRhAgEYUGFyYUlkAAMILQFUaGUgbG9hbnMgaW4gYSBmdW5kIGhhdmUgYmVlbiBwYXJ0aWFsbHkgZGlzc29sdmVkLCBpLmUuIHRoZXJlIGFyZSBzb21lIGxlZnS0b3ZlciBjaGlsZCBrZXlzIHRoYXQgc3RpbGwgbmVlZCB0byBiZSBraWxsZWQuLEFsbFJlZnVuZGVkBAEccGFyYV9pZGECARhQYXJhSWQABAScQWxsIGxvYW5zIGluIGEgZnVuZCBoYXZlIGJlZW4gcmVmdW5kZWQuJERpc3NvbHZlZAQBHHBhcmFfaWRhAgEYUGFyYUlkAAUESEZ1bmQgaXMgZGlzc29sdmVkLjxIYW5kbGVCaWRSZXN1bHQIARxwYXJhX2lkYQIBGFBhcmFJZAABGHJlc3VsdKkGAThEaXNwYXRjaFJlc3VsdAAGBPRUaGUgcmVzdWx0IG9mIHRyeWluZyB0byBzdWJtaXQgYSBuZXcgYmlkIHRvIHRoZSBTbG90cyBwYWxsZXQuGEVkaXRlZAQBHHBhcmFfaWRhAgEYUGFyYUlkAAcExFRoZSBjb25maWd1cmF0aW9uIHRvIGEgY3Jvd2Rsb2FuIGhhcyBiZWVuIGVkaXRlZC4sTWVtb1VwZGF0ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARxwYXJhX2lkYQIBGFBhcmFJZAABEG1lbW84ARxWZWM8dTg+AAgEYEEgbWVtbyBoYXMgYmVlbiB1cGRhdGVkLjxBZGRlZFRvTmV3UmFpc2UEARxwYXJhX2lkYQIBGFBhcmFJZAAJBKBBIHBhcmFjaGFpbiBoYXMgYmVlbiBtb3ZlZCB0byBgTmV3UmFpc2VgBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0KQcQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyBjb3JldGltZRhwYWxsZXQURXZlbnQEBFQAAQhQUmV2ZW51ZUluZm9SZXF1ZXN0ZWQEARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AAAQhAVRoZSBicm9rZXIgY2hhaW4gaGFzIGFza2VkIGZvciByZXZlbnVlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGJsb2NrLjBDb3JlQXNzaWduZWQEARBjb3Jl8QYBJENvcmVJbmRleAABBOxBIGNvcmUgaGFzIHJlY2VpdmVkIGEgbmV3IGFzc2lnbm1lbnQgZnJvbSB0aGUgYnJva2VyIGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldC0HDChwYWxsZXRfeGNtGHBhbGxldBRFdmVudAQEVAABYCRBdHRlbXB0ZWQEARxvdXRjb21lMQcBUHhjbTo6bGF0ZXN0OjpPdXRjb21lAAAEqEV4ZWN1dGlvbiBvZiBhbiBYQ00gbWVzc2FnZSB3YXMgYXR0ZW1wdGVkLhBTZW50EAEYb3JpZ2luEQEBIExvY2F0aW9uAAEsZGVzdGluYXRpb24RAQEgTG9jYXRpb24AARxtZXNzYWdlhQUBHFhjbTwoKT4AAShtZXNzYWdlX2lkBAEcWGNtSGFzaAABBFxBIFhDTSBtZXNzYWdlIHdhcyBzZW50LkhVbmV4cGVjdGVkUmVzcG9uc2UIARhvcmlnaW4RAQEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAAgxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABIHJlc3BvbnNlpQUBIFJlc3BvbnNlAAMIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAECFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAABNGFjdHVhbF93ZWlnaHQoARhXZWlnaHQAAUxtYXhfYnVkZ2V0ZWRfd2VpZ2h0KAEYV2VpZ2h0AAUMSQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uWQFjb3VsZCBub3QgYmUgZGlzcGF0Y2hlZCBiZWNhdXNlIHRoZSBkaXNwYXRjaCB3ZWlnaHQgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHdlaWdodORvcmlnaW5hbGx5IGJ1ZGdldGVkIGJ5IHRoaXMgcnVudGltZSBmb3IgdGhlIHF1ZXJ5IHJlc3VsdC5MTm90aWZ5RGlzcGF0Y2hFcnJvcgwBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAYIVQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlcmUgd2FzIGEgZ2VuZXJhbCBlcnJvciB3aXRoiGRpc3BhdGNoaW5nIHRoZSBub3RpZmljYXRpb24gY2FsbC5ITm90aWZ5RGVjb2RlRmFpbGVkDAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgABwxRAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgZGlzcGF0Y2ggd2FzIHVuYWJsZSB0byBiZVkBZGVjb2RlZCBpbnRvIGEgYENhbGxgOyB0aGlzIG1pZ2h0IGJlIGR1ZSB0byBkaXNwYXRjaCBmdW5jdGlvbiBoYXZpbmcgYSBzaWduYXR1cmUgd2hpY2iUaXMgbm90IGAob3JpZ2luLCBRdWVyeUlkLCBSZXNwb25zZSlgLkBJbnZhbGlkUmVzcG9uZGVyDAEYb3JpZ2luEQEBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAFEZXhwZWN0ZWRfbG9jYXRpb265BQFAT3B0aW9uPExvY2F0aW9uPgAIDFkBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBvcmlnaW4gbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNVAW5vdCBtYXRjaCB0aGF0IGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uXEludmFsaWRSZXNwb25kZXJWZXJzaW9uCAEYb3JpZ2luEQEBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAkcUQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIGV4cGVjdGVkIG9yaWdpbiBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuNFJlc3BvbnNlVGFrZW4EASBxdWVyeV9pZDABHFF1ZXJ5SWQACgTIUmVjZWl2ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVhZCBhbmQgcmVtb3ZlZC40QXNzZXRzVHJhcHBlZAwBEGhhc2g0ARBIMjU2AAEYb3JpZ2luEQEBIExvY2F0aW9uAAEYYXNzZXRzzQUBPFZlcnNpb25lZEFzc2V0cwALBLhTb21lIGFzc2V0cyBoYXZlIGJlZW4gcGxhY2VkIGluIGFuIGFzc2V0IHRyYXAuVFZlcnNpb25DaGFuZ2VOb3RpZmllZBABLGRlc3RpbmF0aW9uEQEBIExvY2F0aW9uAAEYcmVzdWx0EAEoWGNtVmVyc2lvbgABEGNvc3SRBQEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gADAwlAUFuIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gbWVzc2FnZSBoYXMgYmVlbiBhdHRlbXB0ZWQgdG8gYmUgc2VudC4A4FRoZSBjb3N0IG9mIHNlbmRpbmcgaXQgKGJvcm5lIGJ5IHRoZSBjaGFpbikgaXMgaW5jbHVkZWQuXFN1cHBvcnRlZFZlcnNpb25DaGFuZ2VkCAEgbG9jYXRpb24RAQEgTG9jYXRpb24AARx2ZXJzaW9uEAEoWGNtVmVyc2lvbgANCDkBVGhlIHN1cHBvcnRlZCB2ZXJzaW9uIG9mIGEgbG9jYXRpb24gaGFzIGJlZW4gY2hhbmdlZC4gVGhpcyBtaWdodCBiZSB0aHJvdWdoIGFuwGF1dG9tYXRpYyBub3RpZmljYXRpb24gb3IgYSBtYW51YWwgaW50ZXJ2ZW50aW9uLlBOb3RpZnlUYXJnZXRTZW5kRmFpbAwBIGxvY2F0aW9uEQEBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAEUZXJyb3JNBQEgWGNtRXJyb3IADghZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9yfHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBpdC5kTm90aWZ5VGFyZ2V0TWlncmF0aW9uRmFpbAgBIGxvY2F0aW9uSQEBRFZlcnNpb25lZExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAA8IWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcrRtaWdyYXRpbmcgdGhlIGxvY2F0aW9uIHRvIG91ciBuZXcgWENNIGZvcm1hdC5USW52YWxpZFF1ZXJpZXJWZXJzaW9uCAEYb3JpZ2luEQEBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkABAcVQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIGV4cGVjdGVkIHF1ZXJpZXIgbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjhJbnZhbGlkUXVlcmllchABGG9yaWdpbhEBASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAABQGV4cGVjdGVkX3F1ZXJpZXIRAQEgTG9jYXRpb24AAVBtYXliZV9hY3R1YWxfcXVlcmllcrkFAUBPcHRpb248TG9jYXRpb24+ABEMXQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIHF1ZXJpZXIgbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNRAW5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQgZm9yIGEgbGF0ZXIsIHZhbGlkLCByZXNwb25zZSB0b2xiZSByZWNlaXZlZCBhbmQgYWN0ZWQgdXBvbi5QVmVyc2lvbk5vdGlmeVN0YXJ0ZWQMASxkZXN0aW5hdGlvbhEBASBMb2NhdGlvbgABEGNvc3SRBQEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAEghZAUEgcmVtb3RlIGhhcyByZXF1ZXN0ZWQgWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBmcm9tIHVzIGFuZCB3ZSBoYXZlIGhvbm9yZWQgaXQuHQFBIHZlcnNpb24gaW5mb3JtYXRpb24gbWVzc2FnZSBpcyBzZW50IHRvIHRoZW0gYW5kIGl0cyBjb3N0IGlzIGluY2x1ZGVkLlhWZXJzaW9uTm90aWZ5UmVxdWVzdGVkDAEsZGVzdGluYXRpb24RAQEgTG9jYXRpb24AARBjb3N0kQUBGEFzc2V0cwABKG1lc3NhZ2VfaWQEARxYY21IYXNoABMEPQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHNlbmQgdXMgWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuYFZlcnNpb25Ob3RpZnlVbnJlcXVlc3RlZAwBLGRlc3RpbmF0aW9uEQEBIExvY2F0aW9uAAEQY29zdJEFARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAAUCCUBV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzdG9wcyBzZW5kaW5nIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZThub3RpZmljYXRpb25zLiBGZWVzUGFpZAgBGHBheWluZxEBASBMb2NhdGlvbgABEGZlZXORBQEYQXNzZXRzABUEMQFGZWVzIHdlcmUgcGFpZCBmcm9tIGEgbG9jYXRpb24gZm9yIGFuIG9wZXJhdGlvbiAob2Z0ZW4gZm9yIHVzaW5nIGBTZW5kWGNtYCkuNEFzc2V0c0NsYWltZWQMARBoYXNoNAEQSDI1NgABGG9yaWdpbhEBASBMb2NhdGlvbgABGGFzc2V0c80FATxWZXJzaW9uZWRBc3NldHMAFgTAU29tZSBhc3NldHMgaGF2ZSBiZWVuIGNsYWltZWQgZnJvbSBhbiBhc3NldCB0cmFwYFZlcnNpb25NaWdyYXRpb25GaW5pc2hlZAQBHHZlcnNpb24QAShYY21WZXJzaW9uABcEhEEgWENNIHZlcnNpb24gbWlncmF0aW9uIGZpbmlzaGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDEHECxzdGFnaW5nX3hjbQh2NBh0cmFpdHMcT3V0Y29tZQABDCBDb21wbGV0ZQQBEHVzZWQoARhXZWlnaHQAAAAoSW5jb21wbGV0ZQgBEHVzZWQoARhXZWlnaHQAARRlcnJvck0FARRFcnJvcgABABRFcnJvcgQBFGVycm9yTQUBFEVycm9yAAIAADUHEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbkRpZGVudGl0eV9taWdyYXRvchhwYWxsZXQURXZlbnQEBFQAAQg4SWRlbnRpdHlSZWFwZWQEAQx3aG8AATBUOjpBY2NvdW50SWQAAATgVGhlIGlkZW50aXR5IGFuZCBhbGwgc3ViIGFjY291bnRzIHdlcmUgcmVhcGVkIGZvciBgd2hvYC44RGVwb3NpdFVwZGF0ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASBpZGVudGl0eRgBMEJhbGFuY2VPZjxUPgABEHN1YnMYATBCYWxhbmNlT2Y8VD4AAQhBAVRoZSBkZXBvc2l0cyBoZWxkIGZvciBgd2hvYCB3ZXJlIHVwZGF0ZWQuIGBpZGVudGl0eWAgaXMgdGhlIG5ldyBkZXBvc2l0IGhlbGQgZm9yHQFpZGVudGl0eSBpbmZvLCBhbmQgYHN1YnNgIGlzIHRoZSBuZXcgZGVwb3NpdCBoZWxkIGZvciB0aGUgc3ViLWFjY291bnRzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDkHEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjhhc3NpZ25lZF9zbG90cxhwYWxsZXQURXZlbnQEBFQAARBUUGVybWFuZW50U2xvdEFzc2lnbmVkBABhAgEYUGFyYUlkAAAEzEEgcGFyYWNoYWluIHdhcyBhc3NpZ25lZCBhIHBlcm1hbmVudCBwYXJhY2hhaW4gc2xvdFRUZW1wb3JhcnlTbG90QXNzaWduZWQEAGECARhQYXJhSWQAAQTMQSBwYXJhY2hhaW4gd2FzIGFzc2lnbmVkIGEgdGVtcG9yYXJ5IHBhcmFjaGFpbiBzbG90YE1heFBlcm1hbmVudFNsb3RzQ2hhbmdlZAQBFHNsb3RzEAEMdTMyAAIE2FRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJtYW5lbnQgc2xvdHMgaGFzIGJlZW4gY2hhbmdlZGBNYXhUZW1wb3JhcnlTbG90c0NoYW5nZWQEARRzbG90cxABDHUzMgADBNhUaGUgbWF4aW11bSBudW1iZXIgb2YgdGVtcG9yYXJ5IHNsb3RzIGhhcyBiZWVuIGNoYW5nZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ9BxA4cm9jb2NvX3J1bnRpbWVEdmFsaWRhdG9yX21hbmFnZXIYcGFsbGV0FEV2ZW50BARUAAEIUFZhbGlkYXRvcnNSZWdpc3RlcmVkBADRAQFMVmVjPFQ6OlZhbGlkYXRvcklkPgAABJROZXcgdmFsaWRhdG9ycyB3ZXJlIGFkZGVkIHRvIHRoZSBzZXQuWFZhbGlkYXRvcnNEZXJlZ2lzdGVyZWQEANEBAUxWZWM8VDo6VmFsaWRhdG9ySWQ+AAEElFZhbGlkYXRvcnMgd2VyZSByZW1vdmVkIGZyb20gdGhlIHNldC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRBBwxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFdmVudAQEVAABECBNaWdyYXRlZAwBDHRvcBABDHUzMgABFGNoaWxkEAEMdTMyAAEcY29tcHV0ZUUHAUBNaWdyYXRpb25Db21wdXRlAAAIOQFHaXZlbiBudW1iZXIgb2YgYCh0b3AsIGNoaWxkKWAga2V5cyB3ZXJlIG1pZ3JhdGVkIHJlc3BlY3RpdmVseSwgd2l0aCB0aGUgZ2l2ZW4oYGNvbXB1dGVgLhxTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEEtFNvbWUgYWNjb3VudCBnb3Qgc2xhc2hlZCBieSB0aGUgZ2l2ZW4gYW1vdW50LlRBdXRvTWlncmF0aW9uRmluaXNoZWQAAgSEVGhlIGF1dG8gbWlncmF0aW9uIHRhc2sgZmluaXNoZWQuGEhhbHRlZAQBFGVycm9ySQcBIEVycm9yPFQ+AAME7E1pZ3JhdGlvbiBnb3QgaGFsdGVkIGR1ZSB0byBhbiBlcnJvciBvciBtaXNzLWNvbmZpZ3VyYXRpb24uBHBJbm5lciBldmVudHMgb2YgdGhpcyBwYWxsZXQuRQcMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXRATWlncmF0aW9uQ29tcHV0ZQABCBhTaWduZWQAAAAQQXV0bwABAABJBwxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBRFcnJvcgQEVAABGDxNYXhTaWduZWRMaW1pdHMAAASATWF4IHNpZ25lZCBsaW1pdHMgbm90IHJlc3BlY3RlZC4oS2V5VG9vTG9uZwABHLRBIGtleSB3YXMgbG9uZ2VyIHRoYW4gdGhlIGNvbmZpZ3VyZWQgbWF4aW11bS4AEQFUaGlzIG1lYW5zIHRoYXQgdGhlIG1pZ3JhdGlvbiBoYWx0ZWQgYXQgdGhlIGN1cnJlbnQgW2BQcm9ncmVzc2BdIGFuZAEBY2FuIGJlIHJlc3VtZWQgd2l0aCBhIGxhcmdlciBbYGNyYXRlOjpDb25maWc6Ok1heEtleUxlbmBdIHZhbHVlLiEBUmV0cnlpbmcgd2l0aCB0aGUgc2FtZSBbYGNyYXRlOjpDb25maWc6Ok1heEtleUxlbmBdIHZhbHVlIHdpbGwgbm90IHdvcmsuRQFUaGUgdmFsdWUgc2hvdWxkIG9ubHkgYmUgaW5jcmVhc2VkIHRvIGF2b2lkIGEgc3RvcmFnZSBtaWdyYXRpb24gZm9yIHRoZSBjdXJyZW50bHmQc3RvcmVkIFtgY3JhdGU6OlByb2dyZXNzOjpMYXN0S2V5YF0uOE5vdEVub3VnaEZ1bmRzAAIElHN1Ym1pdHRlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBmdW5kcy4oQmFkV2l0bmVzcwADBGhCYWQgd2l0bmVzcyBkYXRhIHByb3ZpZGVkLmRTaWduZWRNaWdyYXRpb25Ob3RBbGxvd2VkAAQEJQFTaWduZWQgbWlncmF0aW9uIGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgdGhlIG1heGltdW0gbGltaXQgaXMgbm90IHNldCB5ZXQuMEJhZENoaWxkUm9vdAAFBGBCYWQgY2hpbGQgcm9vdCBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuTQcMTHBhbGxldF9yb290X3Rlc3RpbmcYcGFsbGV0FEV2ZW50BARUAAEERERlZmVuc2l2ZVRlc3RDYWxsAAAEAQFFdmVudCBkaXNwYXRjaGVkIHdoZW4gdGhlIHRyaWdnZXJfZGVmZW5zaXZlIGV4dHJpbnNpYyBpcyBjYWxsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0UQcMLHBhbGxldF9zdWRvGHBhbGxldBRFdmVudAQEVAABEBRTdWRpZAQBLHN1ZG9fcmVzdWx0qQYBOERpc3BhdGNoUmVzdWx0BLRUaGUgcmVzdWx0IG9mIHRoZSBjYWxsIG1hZGUgYnkgdGhlIHN1ZG8gdXNlci4ABHBBIHN1ZG8gY2FsbCBqdXN0IHRvb2sgcGxhY2UuKEtleUNoYW5nZWQIAQxvbGShAgFQT3B0aW9uPFQ6OkFjY291bnRJZD4EtFRoZSBvbGQgc3VkbyBrZXkgKGlmIG9uZSB3YXMgcHJldmlvdXNseSBzZXQpLgEMbmV3AAEwVDo6QWNjb3VudElkBIhUaGUgbmV3IHN1ZG8ga2V5IChpZiBvbmUgd2FzIHNldCkuAQR4VGhlIHN1ZG8ga2V5IGhhcyBiZWVuIHVwZGF0ZWQuKEtleVJlbW92ZWQAAgSAVGhlIGtleSB3YXMgcGVybWFuZW50bHkgcmVtb3ZlZC4oU3Vkb0FzRG9uZQQBLHN1ZG9fcmVzdWx0qQYBOERpc3BhdGNoUmVzdWx0BLRUaGUgcmVzdWx0IG9mIHRoZSBjYWxsIG1hZGUgYnkgdGhlIHN1ZG8gdXNlci4DBMhBIFtzdWRvX2FzXShQYWxsZXQ6OnN1ZG9fYXMpIGNhbGwganVzdCB0b29rIHBsYWNlLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFUHCDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEABABDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAAWQcAAAJtAwBdBwgwZnJhbWVfc3lzdGVtWExhc3RSdW50aW1lVXBncmFkZUluZm8AAAgBMHNwZWNfdmVyc2lvbvABTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWVhBwFkc3BfcnVudGltZTo6UnVudGltZVN0cmluZwAAYQcAAAUCAGUHCDBmcmFtZV9zeXN0ZW1gQ29kZVVwZ3JhZGVBdXRob3JpemF0aW9uBARUAAAIASRjb2RlX2hhc2g0ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbiABEGJvb2wAAGkHDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9jaygBGFdlaWdodAABJG1heF9ibG9jaygBGFdlaWdodAABJHBlcl9jbGFzc20HAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAG0HDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBcQcADAEYbm9ybWFscQcBBFQAASxvcGVyYXRpb25hbHEHAQRUAAEkbWFuZGF0b3J5cQcBBFQAAHEHDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWMoARhXZWlnaHQAATRtYXhfZXh0cmluc2ljmQYBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFsmQYBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWSZBgE4T3B0aW9uPFdlaWdodD4AAHUHDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXh5BwFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AAB5Bww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUARAADAEYbm9ybWFsEAEEVAABLG9wZXJhdGlvbmFsEAEEVAABJG1hbmRhdG9yeRABBFQAAH0HCChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZDABDHU2NAABFHdyaXRlMAEMdTY0AACBBwgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lYQcBNFJ1bnRpbWVTdHJpbmcAASRpbXBsX25hbWVhBwE0UnVudGltZVN0cmluZwABRGF1dGhvcmluZ192ZXJzaW9uEAEMdTMyAAEwc3BlY192ZXJzaW9uEAEMdTMyAAEwaW1wbF92ZXJzaW9uEAEMdTMyAAEQYXBpc4UHARxBcGlzVmVjAAFMdHJhbnNhY3Rpb25fdmVyc2lvbhABDHUzMgABNHN0YXRlX3ZlcnNpb24IAQh1OAAAhQcEDENvdwQEVAGJBwAEAIkHAAAAiQcAAAKNBwCNBwAABAjdAhAAkQcMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0lQcMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAGZBwRTAAAEAJ0HARhWZWM8VD4AAJkHAAAECKEBMACdBwAAApkHAKEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAKUHARhWZWM8VD4AAKUHAAACBACpBwQYT3B0aW9uBARUAa0HAQgQTm9uZQAAABBTb21lBACtBwAAAQAArQcMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHMkUHJlRGlnZXN0AAEMHFByaW1hcnkEALEHAUBQcmltYXJ5UHJlRGlnZXN0AAEAOFNlY29uZGFyeVBsYWluBAC5BwFcU2Vjb25kYXJ5UGxhaW5QcmVEaWdlc3QAAgAwU2Vjb25kYXJ5VlJGBAC9BwFUU2Vjb25kYXJ5VlJGUHJlRGlnZXN0AAMAALEHDERzcF9jb25zZW5zdXNfYmFiZRxkaWdlc3RzQFByaW1hcnlQcmVEaWdlc3QAAAwBPGF1dGhvcml0eV9pbmRleBABVHN1cGVyOjpBdXRob3JpdHlJbmRleAABEHNsb3SlAQEQU2xvdAABNHZyZl9zaWduYXR1cmW1BwEwVnJmU2lnbmF0dXJlAAC1BxAcc3BfY29yZRxzcjI1NTE5DHZyZjBWcmZTaWduYXR1cmUAAAgBKHByZV9vdXRwdXQEATBWcmZQcmVPdXRwdXQAARRwcm9vZiUCASBWcmZQcm9vZgAAuQcMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNcU2Vjb25kYXJ5UGxhaW5QcmVEaWdlc3QAAAgBPGF1dGhvcml0eV9pbmRleBABVHN1cGVyOjpBdXRob3JpdHlJbmRleAABEHNsb3SlAQEQU2xvdAAAvQcMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNUU2Vjb25kYXJ5VlJGUHJlRGlnZXN0AAAMATxhdXRob3JpdHlfaW5kZXgQAVRzdXBlcjo6QXV0aG9yaXR5SW5kZXgAARBzbG90pQEBEFNsb3QAATR2cmZfc2lnbmF0dXJltQcBMFZyZlNpZ25hdHVyZQAAwQcIRHNwX2NvbnNlbnN1c19iYWJlWEJhYmVFcG9jaENvbmZpZ3VyYXRpb24AAAgBBGOxAQEoKHU2NCwgdTY0KQABNGFsbG93ZWRfc2xvdHO1AQEwQWxsb3dlZFNsb3RzAADFBwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAckHBFMAAAQAzQcBGFZlYzxUPgAAyQcAAAQIMBAAzQcAAALJBwDRBwwscGFsbGV0X2JhYmUYcGFsbGV0FEVycm9yBARUAAEQYEludmFsaWRFcXVpdm9jYXRpb25Qcm9vZgAABDEBQW4gZXF1aXZvY2F0aW9uIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLmBJbnZhbGlkS2V5T3duZXJzaGlwUHJvb2YAAQQxAUEga2V5IG93bmVyc2hpcCBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5YRHVwbGljYXRlT2ZmZW5jZVJlcG9ydAACBBUBQSBnaXZlbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIHZhbGlkIGJ1dCBhbHJlYWR5IHByZXZpb3VzbHkgcmVwb3J0ZWQuUEludmFsaWRDb25maWd1cmF0aW9uAAMEjFN1Ym1pdHRlZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtUHAAAEDAAYIADZBww4cGFsbGV0X2luZGljZXMYcGFsbGV0FEVycm9yBARUAAEULE5vdEFzc2lnbmVkAAAEjFRoZSBpbmRleCB3YXMgbm90IGFscmVhZHkgYXNzaWduZWQuIE5vdE93bmVyAAEEpFRoZSBpbmRleCBpcyBhc3NpZ25lZCB0byBhbm90aGVyIGFjY291bnQuFEluVXNlAAIEcFRoZSBpbmRleCB3YXMgbm90IGF2YWlsYWJsZS4sTm90VHJhbnNmZXIAAwTIVGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWNjb3VudHMgYXJlIGlkZW50aWNhbC4kUGVybWFuZW50AAQE0FRoZSBpbmRleCBpcyBwZXJtYW5lbnQgYW5kIG1heSBub3QgYmUgZnJlZWQvY2hhbmdlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu3QcMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAHhBwRTAAAEAOkHARhWZWM8VD4AAOEHDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQmFsYW5jZUxvY2sEHEJhbGFuY2UBGAAMAQhpZN0CAThMb2NrSWRlbnRpZmllcgABGGFtb3VudBgBHEJhbGFuY2UAARxyZWFzb25z5QcBHFJlYXNvbnMAAOUHDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMcUmVhc29ucwABDAxGZWUAAAAQTWlzYwABAAxBbGwAAgAA6QcAAALhBwDtBwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfEHBFMAAAQA9QcBGFZlYzxUPgAA8QcMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxSZXNlcnZlRGF0YQhEUmVzZXJ2ZUlkZW50aWZpZXIB3QIcQmFsYW5jZQEYAAgBCGlk3QIBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50GAEcQmFsYW5jZQAA9QcAAALxBwD5BwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAf0HBFMAAAQAEQgBGFZlYzxUPgAA/QcUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAEBCBxCYWxhbmNlARgACAEIaWQBCAEISWQAARhhbW91bnQYARxCYWxhbmNlAAABCAg4cm9jb2NvX3J1bnRpbWVEUnVudGltZUhvbGRSZWFzb24AAQwgUHJlaW1hZ2UEAAUIAWxwYWxsZXRfcHJlaW1hZ2U6OkhvbGRSZWFzb24AIAAMTmlzBAAJCAFYcGFsbGV0X25pczo6SG9sZFJlYXNvbgAmAEhTdGF0ZVRyaWVNaWdyYXRpb24EAA0IAZxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkhvbGRSZWFzb24A/gAABQgMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQoSG9sZFJlYXNvbgABBCBQcmVpbWFnZQAAAAAJCAwocGFsbGV0X25pcxhwYWxsZXQoSG9sZFJlYXNvbgABBChOZnRSZWNlaXB0AAAAAA0IDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0KEhvbGRSZWFzb24AAQQ8U2xhc2hGb3JNaWdyYXRlAAAAABEIAAAC/QcAFQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZCARTAAAEAB0IARhWZWM8VD4AABkIFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBxQEcQmFsYW5jZQEYAAgBCGlkxQEBCElkAAEYYW1vdW50GAEcQmFsYW5jZQAAHQgAAAIZCAAhCAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFcnJvcggEVAAESQABMDhWZXN0aW5nQmFsYW5jZQAABJxWZXN0aW5nIGJhbGFuY2UgdG9vIGhpZ2ggdG8gc2VuZCB2YWx1ZS5UTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAEEyEFjY291bnQgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBwcmV2ZW50IHdpdGhkcmF3YWwuTEluc3VmZmljaWVudEJhbGFuY2UAAgR4QmFsYW5jZSB0b28gbG93IHRvIHNlbmQgdmFsdWUuSEV4aXN0ZW50aWFsRGVwb3NpdAADBOxWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LjRFeHBlbmRhYmlsaXR5AAQEkFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50LlxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQAFBMxBIHZlc3Rpbmcgc2NoZWR1bGUgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgYWNjb3VudC4sRGVhZEFjY291bnQABgSMQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdC48VG9vTWFueVJlc2VydmVzAAcEuE51bWJlciBvZiBuYW1lZCByZXNlcnZlcyBleGNlZWQgYE1heFJlc2VydmVzYC4wVG9vTWFueUhvbGRzAAgE+E51bWJlciBvZiBob2xkcyBleGNlZWQgYFZhcmlhbnRDb3VudE9mPFQ6OlJ1bnRpbWVIb2xkUmVhc29uPmAuOFRvb01hbnlGcmVlemVzAAkEmE51bWJlciBvZiBmcmVlemVzIGV4Y2VlZCBgTWF4RnJlZXplc2AuTElzc3VhbmNlRGVhY3RpdmF0ZWQACgQBAVRoZSBpc3N1YW5jZSBjYW5ub3QgYmUgbW9kaWZpZWQgc2luY2UgaXQgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZC4kRGVsdGFaZXJvAAsEZFRoZSBkZWx0YSBjYW5ub3QgYmUgemVyby4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuJQgIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50IFJlbGVhc2VzAAEIJFYxQW5jaWVudAAAAAhWMgABAAApCAwoc3Bfc3Rha2luZxxvZmZlbmNlOE9mZmVuY2VEZXRhaWxzCCBSZXBvcnRlcgEAIE9mZmVuZGVyAS0IAAgBIG9mZmVuZGVyLQgBIE9mZmVuZGVyAAEkcmVwb3J0ZXJz0QEBNFZlYzxSZXBvcnRlcj4AAC0IAAAECADFAQAxCAAABAjEOAA1CAAABAg0EAA5CAAAAj0IAD0IAAAECAD1AQBBCAAAAhAARQgAAAQISQg4AEkIDBxzcF9jb3JlGGNyeXB0byRLZXlUeXBlSWQAAAQASAEcW3U4OyA0XQAATQgMOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFcnJvcgQEVAABFDBJbnZhbGlkUHJvb2YAAARgSW52YWxpZCBvd25lcnNoaXAgcHJvb2YuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAEEnE5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElEIGZvciBhY2NvdW50LjREdXBsaWNhdGVkS2V5AAIEZFJlZ2lzdGVyZWQgZHVwbGljYXRlIGtleS4YTm9LZXlzAAMEpE5vIGtleXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjY291bnQuJE5vQWNjb3VudAAEBBkBS2V5IHNldHRpbmcgYWNjb3VudCBpcyBub3QgbGl2ZSwgc28gaXQncyBpbXBvc3NpYmxlIHRvIGFzc29jaWF0ZSBrZXlzLgR0RXJyb3IgZm9yIHRoZSBzZXNzaW9uIHBhbGxldC5RCAg4cGFsbGV0X2dyYW5kcGEsU3RvcmVkU3RhdGUEBE4BEAEQEExpdmUAAAAwUGVuZGluZ1BhdXNlCAEwc2NoZWR1bGVkX2F0EAEETgABFGRlbGF5EAEETgABABhQYXVzZWQAAgA0UGVuZGluZ1Jlc3VtZQgBMHNjaGVkdWxlZF9hdBABBE4AARRkZWxheRABBE4AAwAAVQgIOHBhbGxldF9ncmFuZHBhTFN0b3JlZFBlbmRpbmdDaGFuZ2UIBE4BEBRMaW1pdAAAEAEwc2NoZWR1bGVkX2F0EAEETgABFGRlbGF5EAEETgABQG5leHRfYXV0aG9yaXRpZXNZCAFsQm91bmRlZEF1dGhvcml0eUxpc3Q8TGltaXQ+AAEYZm9yY2VkPQIBJE9wdGlvbjxOPgAAWQgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAHUBFMAAAQA0AEYVmVjPFQ+AABdCAw4cGFsbGV0X2dyYW5kcGEYcGFsbGV0FEVycm9yBARUAAEcLFBhdXNlRmFpbGVkAAAIBQFBdHRlbXB0IHRvIHNpZ25hbCBHUkFORFBBIHBhdXNlIHdoZW4gdGhlIGF1dGhvcml0eSBzZXQgaXNuJ3QgbGl2ZaQoZWl0aGVyIHBhdXNlZCBvciBhbHJlYWR5IHBlbmRpbmcgcGF1c2UpLjBSZXN1bWVGYWlsZWQAAQgRAUF0dGVtcHQgdG8gc2lnbmFsIEdSQU5EUEEgcmVzdW1lIHdoZW4gdGhlIGF1dGhvcml0eSBzZXQgaXNuJ3QgcGF1c2VkoChlaXRoZXIgbGl2ZSBvciBhbHJlYWR5IHBlbmRpbmcgcmVzdW1lKS40Q2hhbmdlUGVuZGluZwACBOhBdHRlbXB0IHRvIHNpZ25hbCBHUkFORFBBIGNoYW5nZSB3aXRoIG9uZSBhbHJlYWR5IHBlbmRpbmcuHFRvb1Nvb24AAwS8Q2Fubm90IHNpZ25hbCBmb3JjZWQgY2hhbmdlIHNvIHNvb24gYWZ0ZXIgbGFzdC5gSW52YWxpZEtleU93bmVyc2hpcFByb29mAAQEMQFBIGtleSBvd25lcnNoaXAgcHJvb2YgcHJvdmlkZWQgYXMgcGFydCBvZiBhbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIGludmFsaWQuYEludmFsaWRFcXVpdm9jYXRpb25Qcm9vZgAFBDEBQW4gZXF1aXZvY2F0aW9uIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLlhEdXBsaWNhdGVPZmZlbmNlUmVwb3J0AAYEFQFBIGdpdmVuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgdmFsaWQgYnV0IGFscmVhZHkgcHJldmlvdXNseSByZXBvcnRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuYQgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAEBAgRTAAAEAGUIARhWZWM8VD4AAGUIAAACAQIAaQgIPHBhbGxldF90cmVhc3VyeSBQcm9wb3NhbAgkQWNjb3VudElkAQAcQmFsYW5jZQEYABABIHByb3Bvc2VyAAEkQWNjb3VudElkAAEUdmFsdWUYARxCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASRBY2NvdW50SWQAARBib25kGAEcQmFsYW5jZQAAbQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAQQgBGFZlYzxUPgAAcQgIPHBhbGxldF90cmVhc3VyeSxTcGVuZFN0YXR1cxQkQXNzZXRLaW5kAeAwQXNzZXRCYWxhbmNlARgsQmVuZWZpY2lhcnkBSQEsQmxvY2tOdW1iZXIBECRQYXltZW50SWQBMAAYAShhc3NldF9raW5k4AEkQXNzZXRLaW5kAAEYYW1vdW50GAEwQXNzZXRCYWxhbmNlAAEsYmVuZWZpY2lhcnlJAQEsQmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tEAEsQmxvY2tOdW1iZXIAASRleHBpcmVfYXQQASxCbG9ja051bWJlcgABGHN0YXR1c3UIAVxQYXltZW50U3RhdGU8UGF5bWVudElkPgAAdQgIPHBhbGxldF90cmVhc3VyeTBQYXltZW50U3RhdGUECElkATABDBxQZW5kaW5nAAAAJEF0dGVtcHRlZAQBCGlkMAEISWQAAQAYRmFpbGVkAAIAAHkIDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVybWlsbAAABAAQAQx1MzIAAH0ICDRmcmFtZV9zdXBwb3J0IFBhbGxldElkAAAEAN0CARxbdTg7IDhdAACBCAw8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFcnJvcggEVAAESQABLDBJbnZhbGlkSW5kZXgAAASsTm8gcHJvcG9zYWwsIGJvdW50eSBvciBzcGVuZCBhdCB0aGF0IGluZGV4LkBUb29NYW55QXBwcm92YWxzAAEEgFRvbyBtYW55IGFwcHJvdmFscyBpbiB0aGUgcXVldWUuWEluc3VmZmljaWVudFBlcm1pc3Npb24AAghFAVRoZSBzcGVuZCBvcmlnaW4gaXMgdmFsaWQgYnV0IHRoZSBhbW91bnQgaXQgaXMgYWxsb3dlZCB0byBzcGVuZCBpcyBsb3dlciB0aGFuIHRoZUxhbW91bnQgdG8gYmUgc3BlbnQuTFByb3Bvc2FsTm90QXBwcm92ZWQAAwR8UHJvcG9zYWwgaGFzIG5vdCBiZWVuIGFwcHJvdmVkLlhGYWlsZWRUb0NvbnZlcnRCYWxhbmNlAAQEUQFUaGUgYmFsYW5jZSBvZiB0aGUgYXNzZXQga2luZCBpcyBub3QgY29udmVydGlibGUgdG8gdGhlIGJhbGFuY2Ugb2YgdGhlIG5hdGl2ZSBhc3NldC4wU3BlbmRFeHBpcmVkAAUEsFRoZSBzcGVuZCBoYXMgZXhwaXJlZCBhbmQgY2Fubm90IGJlIGNsYWltZWQuLEVhcmx5UGF5b3V0AAYEpFRoZSBzcGVuZCBpcyBub3QgeWV0IGVsaWdpYmxlIGZvciBwYXlvdXQuQEFscmVhZHlBdHRlbXB0ZWQABwScVGhlIHBheW1lbnQgaGFzIGFscmVhZHkgYmVlbiBhdHRlbXB0ZWQuLFBheW91dEVycm9yAAgEzFRoZXJlIHdhcyBzb21lIGlzc3VlIHdpdGggdGhlIG1lY2hhbmlzbSBvZiBwYXltZW50LjBOb3RBdHRlbXB0ZWQACQSkVGhlIHBheW91dCB3YXMgbm90IHlldCBhdHRlbXB0ZWQvY2xhaW1lZC4wSW5jb25jbHVzaXZlAAoExFRoZSBwYXltZW50IGhhcyBuZWl0aGVyIGZhaWxlZCBub3Igc3VjY2VlZGVkIHlldC4EeEVycm9yIGZvciB0aGUgdHJlYXN1cnkgcGFsbGV0LoUIAAAECAB5AQCJCAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUYVm90aW5nFBxCYWxhbmNlARgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBECRQb2xsSW5kZXgBECBNYXhWb3RlcwABCBxDYXN0aW5nBACNCAHIQ2FzdGluZzxCYWxhbmNlLCBCbG9ja051bWJlciwgUG9sbEluZGV4LCBNYXhWb3Rlcz4AAAAoRGVsZWdhdGluZwQApQgBrERlbGVnYXRpbmc8QmFsYW5jZSwgQWNjb3VudElkLCBCbG9ja051bWJlcj4AAQAAjQgMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlHENhc3RpbmcQHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQJFBvbGxJbmRleAEQIE1heFZvdGVzAAAMARR2b3Rlc5EIAdxCb3VuZGVkVmVjPChQb2xsSW5kZXgsIEFjY291bnRWb3RlPEJhbGFuY2U+KSwgTWF4Vm90ZXM+AAEsZGVsZWdhdGlvbnOdCAFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvcqEIAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AACRCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZUIBFMAAAQAmQgBGFZlYzxUPgAAlQgAAAQIEG0BAJkIAAAClQgAnQgMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxR0eXBlcyxEZWxlZ2F0aW9ucwQcQmFsYW5jZQEYAAgBFHZvdGVzGAEcQmFsYW5jZQABHGNhcGl0YWwYARxCYWxhbmNlAAChCAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUkUHJpb3JMb2NrCCxCbG9ja051bWJlcgEQHEJhbGFuY2UBGAAIABABLEJsb2NrTnVtYmVyAAAYARxCYWxhbmNlAAClCAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUoRGVsZWdhdGluZwwcQmFsYW5jZQEYJEFjY291bnRJZAEALEJsb2NrTnVtYmVyARAAFAEcYmFsYW5jZRgBHEJhbGFuY2UAARh0YXJnZXQAASRBY2NvdW50SWQAAShjb252aWN0aW9uRQIBKENvbnZpY3Rpb24AASxkZWxlZ2F0aW9uc50IAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9yoQgBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AAKkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBrQgEUwAABACxCAEYVmVjPFQ+AACtCAAABAh5ARgAsQgAAAKtCAC1CAxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nGHBhbGxldBRFcnJvcggEVAAESQABMChOb3RPbmdvaW5nAAAEUFBvbGwgaXMgbm90IG9uZ29pbmcuIE5vdFZvdGVyAAEErFRoZSBnaXZlbiBhY2NvdW50IGRpZCBub3Qgdm90ZSBvbiB0aGUgcG9sbC4wTm9QZXJtaXNzaW9uAAIEyFRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24uPE5vUGVybWlzc2lvbllldAADBFkBVGhlIGFjdG9yIGhhcyBubyBwZXJtaXNzaW9uIHRvIGNvbmR1Y3QgdGhlIGFjdGlvbiByaWdodCBub3cgYnV0IHdpbGwgZG8gaW4gdGhlIGZ1dHVyZS5EQWxyZWFkeURlbGVnYXRpbmcABASIVGhlIGFjY291bnQgaXMgYWxyZWFkeSBkZWxlZ2F0aW5nLjRBbHJlYWR5Vm90aW5nAAUIVQFUaGUgYWNjb3VudCBjdXJyZW50bHkgaGFzIHZvdGVzIGF0dGFjaGVkIHRvIGl0IGFuZCB0aGUgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIHVudGlsoHRoZXNlIGFyZSByZW1vdmVkIHRocm91Z2ggYHJlbW92ZV92b3RlYC5ESW5zdWZmaWNpZW50RnVuZHMABgT8VG9vIGhpZ2ggYSBiYWxhbmNlIHdhcyBwcm92aWRlZCB0aGF0IHRoZSBhY2NvdW50IGNhbm5vdCBhZmZvcmQuNE5vdERlbGVnYXRpbmcABwSgVGhlIGFjY291bnQgaXMgbm90IGN1cnJlbnRseSBkZWxlZ2F0aW5nLiBOb25zZW5zZQAIBJREZWxlZ2F0aW9uIHRvIG9uZXNlbGYgbWFrZXMgbm8gc2Vuc2UuPE1heFZvdGVzUmVhY2hlZAAJBIBNYXhpbXVtIG51bWJlciBvZiB2b3RlcyByZWFjaGVkLixDbGFzc05lZWRlZAAKBDkBVGhlIGNsYXNzIG11c3QgYmUgc3VwcGxpZWQgc2luY2UgaXQgaXMgbm90IGVhc2lseSBkZXRlcm1pbmFibGUgZnJvbSB0aGUgc3RhdGUuIEJhZENsYXNzAAsEhFRoZSBjbGFzcyBJRCBzdXBwbGllZCBpcyBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC65CAxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczhSZWZlcmVuZHVtSW5mbyAcVHJhY2tJZAF5ATRSdW50aW1lT3JpZ2luAVECGE1vbWVudAEQEENhbGwBfQEcQmFsYW5jZQEYFFRhbGx5AXkGJEFjY291bnRJZAEAPFNjaGVkdWxlQWRkcmVzcwFtAwEYHE9uZ29pbmcEAL0IAY0BUmVmZXJlbmR1bVN0YXR1czxUcmFja0lkLCBSdW50aW1lT3JpZ2luLCBNb21lbnQsIENhbGwsIEJhbGFuY2UsIFRhbGx5LApBY2NvdW50SWQsIFNjaGVkdWxlQWRkcmVzcyw+AAAAIEFwcHJvdmVkDAAQARhNb21lbnQAAMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAAxQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEAIFJlamVjdGVkDAAQARhNb21lbnQAAMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAAxQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAIAJENhbmNlbGxlZAwAEAEYTW9tZW50AADFCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgADACBUaW1lZE91dAwAEAEYTW9tZW50AADFCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAEABhLaWxsZWQEABABGE1vbWVudAAFAAC9CAxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlc0BSZWZlcmVuZHVtU3RhdHVzIBxUcmFja0lkAXkBNFJ1bnRpbWVPcmlnaW4BUQIYTW9tZW50ARAQQ2FsbAF9ARxCYWxhbmNlARgUVGFsbHkBeQYkQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAW0DACwBFHRyYWNreQEBHFRyYWNrSWQAARhvcmlnaW5RAgE0UnVudGltZU9yaWdpbgABIHByb3Bvc2FsfQEBEENhbGwAASRlbmFjdG1lbnRtAgFQRGlzcGF0Y2hUaW1lPE1vbWVudD4AASRzdWJtaXR0ZWQQARhNb21lbnQAAUhzdWJtaXNzaW9uX2RlcG9zaXTBCAFsRGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+AAFAZGVjaXNpb25fZGVwb3NpdMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgABIGRlY2lkaW5nyQgBeE9wdGlvbjxEZWNpZGluZ1N0YXR1czxNb21lbnQ+PgABFHRhbGx5eQYBFFRhbGx5AAEgaW5fcXVldWUgARBib29sAAEUYWxhcm3RCAGET3B0aW9uPChNb21lbnQsIFNjaGVkdWxlQWRkcmVzcyk+AADBCAxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlcxxEZXBvc2l0CCRBY2NvdW50SWQBABxCYWxhbmNlARgACAEMd2hvAAEkQWNjb3VudElkAAEYYW1vdW50GAEcQmFsYW5jZQAAxQgEGE9wdGlvbgQEVAHBCAEIEE5vbmUAAAAQU29tZQQAwQgAAAEAAMkIBBhPcHRpb24EBFQBzQgBCBBOb25lAAAAEFNvbWUEAM0IAAABAADNCAxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlczhEZWNpZGluZ1N0YXR1cwQsQmxvY2tOdW1iZXIBEAAIARRzaW5jZRABLEJsb2NrTnVtYmVyAAEoY29uZmlybWluZz0CAUxPcHRpb248QmxvY2tOdW1iZXI+AADRCAQYT3B0aW9uBARUAdUIAQgQTm9uZQAAABBTb21lBADVCAAAAQAA1QgAAAQIEG0DANkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB3QgEUwAABADhCAEYVmVjPFQ+AADdCAAABAgQGADhCAAAAt0IAOUIAAAC6QgA6QgAAAQIeQHtCADtCAxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlcyRUcmFja0luZm8IHEJhbGFuY2UBGBhNb21lbnQBEAAkARBuYW1lYQcBMCYnc3RhdGljIHN0cgABMG1heF9kZWNpZGluZxABDHUzMgABQGRlY2lzaW9uX2RlcG9zaXQYARxCYWxhbmNlAAE4cHJlcGFyZV9wZXJpb2QQARhNb21lbnQAATxkZWNpc2lvbl9wZXJpb2QQARhNb21lbnQAAThjb25maXJtX3BlcmlvZBABGE1vbWVudAABUG1pbl9lbmFjdG1lbnRfcGVyaW9kEAEYTW9tZW50AAEwbWluX2FwcHJvdmFs8QgBFEN1cnZlAAEsbWluX3N1cHBvcnTxCAEUQ3VydmUAAPEIDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzFEN1cnZlAAEMQExpbmVhckRlY3JlYXNpbmcMARhsZW5ndGjFAwEcUGVyYmlsbAABFGZsb29yxQMBHFBlcmJpbGwAARBjZWlsxQMBHFBlcmJpbGwAAABEU3RlcHBlZERlY3JlYXNpbmcQARRiZWdpbsUDARxQZXJiaWxsAAEMZW5kxQMBHFBlcmJpbGwAARBzdGVwxQMBHFBlcmJpbGwAARhwZXJpb2TFAwEcUGVyYmlsbAABAChSZWNpcHJvY2FsDAEYZmFjdG9y9QgBIEZpeGVkSTY0AAEgeF9vZmZzZXT1CAEgRml4ZWRJNjQAASB5X29mZnNldPUIASBGaXhlZEk2NAACAAD1CAw0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCBGaXhlZEk2NAAABAD5CAEMaTY0AAD5CAAABQwA/QgMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEVycm9yCARUAARJAAE4KE5vdE9uZ29pbmcAAARoUmVmZXJlbmR1bSBpcyBub3Qgb25nb2luZy4oSGFzRGVwb3NpdAABBLhSZWZlcmVuZHVtJ3MgZGVjaXNpb24gZGVwb3NpdCBpcyBhbHJlYWR5IHBhaWQuIEJhZFRyYWNrAAIEnFRoZSB0cmFjayBpZGVudGlmaWVyIGdpdmVuIHdhcyBpbnZhbGlkLhBGdWxsAAMEMQFUaGVyZSBhcmUgYWxyZWFkeSBhIGZ1bGwgY29tcGxlbWVudCBvZiByZWZlcmVuZGEgaW4gcHJvZ3Jlc3MgZm9yIHRoaXMgdHJhY2suKFF1ZXVlRW1wdHkABASAVGhlIHF1ZXVlIG9mIHRoZSB0cmFjayBpcyBlbXB0eS40QmFkUmVmZXJlbmR1bQAFBORUaGUgcmVmZXJlbmR1bSBpbmRleCBwcm92aWRlZCBpcyBpbnZhbGlkIGluIHRoaXMgY29udGV4dC4sTm90aGluZ1RvRG8ABgSsVGhlcmUgd2FzIG5vdGhpbmcgdG8gZG8gaW4gdGhlIGFkdmFuY2VtZW50LhxOb1RyYWNrAAcEoE5vIHRyYWNrIGV4aXN0cyBmb3IgdGhlIHByb3Bvc2FsIG9yaWdpbi4oVW5maW5pc2hlZAAIBAEBQW55IGRlcG9zaXQgY2Fubm90IGJlIHJlZnVuZGVkIHVudGlsIGFmdGVyIHRoZSBkZWNpc2lvbiBpcyBvdmVyLjBOb1Blcm1pc3Npb24ACQSoVGhlIGRlcG9zaXQgcmVmdW5kZXIgaXMgbm90IHRoZSBkZXBvc2l0b3IuJE5vRGVwb3NpdAAKBMxUaGUgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgc2luY2Ugbm9uZSB3YXMgbWFkZS4kQmFkU3RhdHVzAAsE0FRoZSByZWZlcmVuZHVtIHN0YXR1cyBpcyBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbi5AUHJlaW1hZ2VOb3RFeGlzdAAMBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuhFByZWltYWdlU3RvcmVkV2l0aERpZmZlcmVudExlbmd0aAANBBUBVGhlIHByZWltYWdlIGlzIHN0b3JlZCB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIHRoZSBvbmUgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgEJCGBwYWxsZXRfcmFua2VkX2NvbGxlY3RpdmUwTWVtYmVyUmVjb3JkAAAEARByYW5reQEBEFJhbmsAAAUJAAAECHkBAAAJCQAABAh5ARAADQkAAAQIEAAAEQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAAVCQxgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlGHBhbGxldBRFcnJvcggEVAAESQABLDRBbHJlYWR5TWVtYmVyAAAEcEFjY291bnQgaXMgYWxyZWFkeSBhIG1lbWJlci4kTm90TWVtYmVyAAEEYEFjY291bnQgaXMgbm90IGEgbWVtYmVyLihOb3RQb2xsaW5nAAIEuFRoZSBnaXZlbiBwb2xsIGluZGV4IGlzIHVua25vd24gb3IgaGFzIGNsb3NlZC4cT25nb2luZwADBIBUaGUgZ2l2ZW4gcG9sbCBpcyBzdGlsbCBvbmdvaW5nLjROb25lUmVtYWluaW5nAAQErFRoZXJlIGFyZSBubyBmdXJ0aGVyIHJlY29yZHMgdG8gYmUgcmVtb3ZlZC4oQ29ycnVwdGlvbgAFBGhVbmV4cGVjdGVkIGVycm9yIGluIHN0YXRlLihSYW5rVG9vTG93AAYElFRoZSBtZW1iZXIncyByYW5rIGlzIHRvbyBsb3cgdG8gdm90ZS44SW52YWxpZFdpdG5lc3MABwSYVGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIGlzIGluY29ycmVjdC4wTm9QZXJtaXNzaW9uAAgE+FRoZSBvcmlnaW4gaXMgbm90IHN1ZmZpY2llbnRseSBwcml2aWxlZ2VkIHRvIGRvIHRoZSBvcGVyYXRpb24uKFNhbWVNZW1iZXIACQTgVGhlIG5ldyBtZW1iZXIgdG8gZXhjaGFuZ2UgaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBtZW1iZXI4VG9vTWFueU1lbWJlcnMACgTMVGhlIG1heCBtZW1iZXIgY291bnQgZm9yIHRoZSByYW5rIGhhcyBiZWVuIHJlYWNoZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LhkJDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzOFJlZmVyZW5kdW1JbmZvIBxUcmFja0lkAXkBNFJ1bnRpbWVPcmlnaW4BUQIYTW9tZW50ARAQQ2FsbAF9ARxCYWxhbmNlARgUVGFsbHkBhQYkQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAW0DARgcT25nb2luZwQAHQkBjQFSZWZlcmVuZHVtU3RhdHVzPFRyYWNrSWQsIFJ1bnRpbWVPcmlnaW4sIE1vbWVudCwgQ2FsbCwgQmFsYW5jZSwgVGFsbHksCkFjY291bnRJZCwgU2NoZWR1bGVBZGRyZXNzLD4AAAAgQXBwcm92ZWQMABABGE1vbWVudAAAxQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AADFCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAQAgUmVqZWN0ZWQMABABGE1vbWVudAAAxQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AADFCAGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAgAkQ2FuY2VsbGVkDAAQARhNb21lbnQAAMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAAxQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAMAIFRpbWVkT3V0DAAQARhNb21lbnQAAMUIAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAAxQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAQAGEtpbGxlZAQAEAEYTW9tZW50AAUAAB0JDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzQFJlZmVyZW5kdW1TdGF0dXMgHFRyYWNrSWQBeQE0UnVudGltZU9yaWdpbgFRAhhNb21lbnQBEBBDYWxsAX0BHEJhbGFuY2UBGBRUYWxseQGFBiRBY2NvdW50SWQBADxTY2hlZHVsZUFkZHJlc3MBbQMALAEUdHJhY2t5AQEcVHJhY2tJZAABGG9yaWdpblECATRSdW50aW1lT3JpZ2luAAEgcHJvcG9zYWx9AQEQQ2FsbAABJGVuYWN0bWVudG0CAVBEaXNwYXRjaFRpbWU8TW9tZW50PgABJHN1Ym1pdHRlZBABGE1vbWVudAABSHN1Ym1pc3Npb25fZGVwb3NpdMEIAWxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4AAUBkZWNpc2lvbl9kZXBvc2l0xQgBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEgZGVjaWRpbmfJCAF4T3B0aW9uPERlY2lkaW5nU3RhdHVzPE1vbWVudD4+AAEUdGFsbHmFBgEUVGFsbHkAASBpbl9xdWV1ZSABEGJvb2wAARRhbGFybdEIAYRPcHRpb248KE1vbWVudCwgU2NoZWR1bGVBZGRyZXNzKT4AACEJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBbQMEUwAABABZBwEYVmVjPFQ+AAAlCQxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXJyb3IIBFQABEkAATgoTm90T25nb2luZwAABGhSZWZlcmVuZHVtIGlzIG5vdCBvbmdvaW5nLihIYXNEZXBvc2l0AAEEuFJlZmVyZW5kdW0ncyBkZWNpc2lvbiBkZXBvc2l0IGlzIGFscmVhZHkgcGFpZC4gQmFkVHJhY2sAAgScVGhlIHRyYWNrIGlkZW50aWZpZXIgZ2l2ZW4gd2FzIGludmFsaWQuEEZ1bGwAAwQxAVRoZXJlIGFyZSBhbHJlYWR5IGEgZnVsbCBjb21wbGVtZW50IG9mIHJlZmVyZW5kYSBpbiBwcm9ncmVzcyBmb3IgdGhpcyB0cmFjay4oUXVldWVFbXB0eQAEBIBUaGUgcXVldWUgb2YgdGhlIHRyYWNrIGlzIGVtcHR5LjRCYWRSZWZlcmVuZHVtAAUE5FRoZSByZWZlcmVuZHVtIGluZGV4IHByb3ZpZGVkIGlzIGludmFsaWQgaW4gdGhpcyBjb250ZXh0LixOb3RoaW5nVG9EbwAGBKxUaGVyZSB3YXMgbm90aGluZyB0byBkbyBpbiB0aGUgYWR2YW5jZW1lbnQuHE5vVHJhY2sABwSgTm8gdHJhY2sgZXhpc3RzIGZvciB0aGUgcHJvcG9zYWwgb3JpZ2luLihVbmZpbmlzaGVkAAgEAQFBbnkgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgdW50aWwgYWZ0ZXIgdGhlIGRlY2lzaW9uIGlzIG92ZXIuME5vUGVybWlzc2lvbgAJBKhUaGUgZGVwb3NpdCByZWZ1bmRlciBpcyBub3QgdGhlIGRlcG9zaXRvci4kTm9EZXBvc2l0AAoEzFRoZSBkZXBvc2l0IGNhbm5vdCBiZSByZWZ1bmRlZCBzaW5jZSBub25lIHdhcyBtYWRlLiRCYWRTdGF0dXMACwTQVGhlIHJlZmVyZW5kdW0gc3RhdHVzIGlzIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uLkBQcmVpbWFnZU5vdEV4aXN0AAwEcFRoZSBwcmVpbWFnZSBkb2VzIG5vdCBleGlzdC6EUHJlaW1hZ2VTdG9yZWRXaXRoRGlmZmVyZW50TGVuZ3RoAA0EFQFUaGUgcHJlaW1hZ2UgaXMgc3RvcmVkIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIHRoYW4gdGhlIG9uZSBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuKQkMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0FEVycm9yBARUAAEUTFVuYXZhaWxhYmxlUHJlSW1hZ2UAAATIVGhlIHByZWltYWdlIG9mIHRoZSBjYWxsIGhhc2ggY291bGQgbm90IGJlIGxvYWRlZC48VW5kZWNvZGFibGVDYWxsAAEEeFRoZSBjYWxsIGNvdWxkIG5vdCBiZSBkZWNvZGVkLmBJbnZhbGlkQ2FsbFdlaWdodFdpdG5lc3MAAgTsVGhlIHdlaWdodCBvZiB0aGUgZGVjb2RlZCBjYWxsIHdhcyBoaWdoZXIgdGhhbiB0aGUgd2l0bmVzcy5QQ2FsbElzTm90V2hpdGVsaXN0ZWQAAwR0VGhlIGNhbGwgd2FzIG5vdCB3aGl0ZWxpc3RlZC5YQ2FsbEFscmVhZHlXaGl0ZWxpc3RlZAAEBKBUaGUgY2FsbCB3YXMgYWxyZWFkeSB3aGl0ZWxpc3RlZDsgTm8tT3AuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Li0JEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXMYcGFsbGV0FEVycm9yBARUAAEYYEludmFsaWRFdGhlcmV1bVNpZ25hdHVyZQAABGxJbnZhbGlkIEV0aGVyZXVtIHNpZ25hdHVyZS5AU2lnbmVySGFzTm9DbGFpbQABBHhFdGhlcmV1bSBhZGRyZXNzIGhhcyBubyBjbGFpbS5AU2VuZGVySGFzTm9DbGFpbQACBLBBY2NvdW50IElEIHNlbmRpbmcgdHJhbnNhY3Rpb24gaGFzIG5vIGNsYWltLjBQb3RVbmRlcmZsb3cAAwhJAVRoZXJlJ3Mgbm90IGVub3VnaCBpbiB0aGUgcG90IHRvIHBheSBvdXQgc29tZSB1bnZlc3RlZCBhbW91bnQuIEdlbmVyYWxseSBpbXBsaWVzIGEwbG9naWMgZXJyb3IuQEludmFsaWRTdGF0ZW1lbnQABASQQSBuZWVkZWQgc3RhdGVtZW50IHdhcyBub3QgaW5jbHVkZWQuTFZlc3RlZEJhbGFuY2VFeGlzdHMABQSkVGhlIGFjY291bnQgYWxyZWFkeSBoYXMgYSB2ZXN0ZWQgYmFsYW5jZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuMQkMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuNQkAAAQIOQlJCQA5CQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzMFJlZ2lzdHJhdGlvbgwcQmFsYW5jZQEYNE1heEp1ZGdlbWVudHMAMElkZW50aXR5SW5mbwGxAgAMAShqdWRnZW1lbnRzPQkB/EJvdW5kZWRWZWM8KFJlZ2lzdHJhckluZGV4LCBKdWRnZW1lbnQ8QmFsYW5jZT4pLCBNYXhKdWRnZW1lbnRzPgABHGRlcG9zaXQYARxCYWxhbmNlAAEQaW5mb7ECATBJZGVudGl0eUluZm8AAD0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBQQkEUwAABABFCQEYVmVjPFQ+AABBCQAABAgQRQMARQkAAAJBCQBJCQQYT3B0aW9uBARUAVEDAQgQTm9uZQAAABBTb21lBABRAwAAAQAATQkAAAQIGFEJAFEJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEANEBARhWZWM8VD4AAFUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBWQkEUwAABABhCQEYVmVjPFQ+AABZCQQYT3B0aW9uBARUAV0JAQgQTm9uZQAAABBTb21lBABdCQAAAQAAXQkMPHBhbGxldF9pZGVudGl0eRR0eXBlczRSZWdpc3RyYXJJbmZvDBxCYWxhbmNlARgkQWNjb3VudElkAQAcSWRGaWVsZAEwAAwBHGFjY291bnQAASRBY2NvdW50SWQAAQxmZWUYARxCYWxhbmNlAAEYZmllbGRzMAEcSWRGaWVsZAAAYQkAAAJZCQBlCQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzTEF1dGhvcml0eVByb3BlcnRpZXMEGFN1ZmZpeAFpCQAIARhzdWZmaXhpCQEYU3VmZml4AAEoYWxsb2NhdGlvbhABKEFsbG9jYXRpb24AAGkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAbQkAAAQIABAAcQkMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQURXJyb3IEBFQAAWhIVG9vTWFueVN1YkFjY291bnRzAAAEXFRvbyBtYW55IHN1YnMtYWNjb3VudHMuIE5vdEZvdW5kAAEEUEFjY291bnQgaXNuJ3QgZm91bmQuIE5vdE5hbWVkAAIEUEFjY291bnQgaXNuJ3QgbmFtZWQuKEVtcHR5SW5kZXgAAwQwRW1wdHkgaW5kZXguKEZlZUNoYW5nZWQABAQ8RmVlIGlzIGNoYW5nZWQuKE5vSWRlbnRpdHkABQRITm8gaWRlbnRpdHkgZm91bmQuPFN0aWNreUp1ZGdlbWVudAAGBERTdGlja3kganVkZ2VtZW50LjhKdWRnZW1lbnRHaXZlbgAHBEBKdWRnZW1lbnQgZ2l2ZW4uQEludmFsaWRKdWRnZW1lbnQACARISW52YWxpZCBqdWRnZW1lbnQuMEludmFsaWRJbmRleAAJBFRUaGUgaW5kZXggaXMgaW52YWxpZC40SW52YWxpZFRhcmdldAAKBFhUaGUgdGFyZ2V0IGlzIGludmFsaWQuRFRvb01hbnlSZWdpc3RyYXJzAAsE6E1heGltdW0gYW1vdW50IG9mIHJlZ2lzdHJhcnMgcmVhY2hlZC4gQ2Fubm90IGFkZCBhbnkgbW9yZS44QWxyZWFkeUNsYWltZWQADARwQWNjb3VudCBJRCBpcyBhbHJlYWR5IG5hbWVkLhhOb3RTdWIADQRwU2VuZGVyIGlzIG5vdCBhIHN1Yi1hY2NvdW50LiBOb3RPd25lZAAOBIhTdWItYWNjb3VudCBpc24ndCBvd25lZCBieSBzZW5kZXIudEp1ZGdlbWVudEZvckRpZmZlcmVudElkZW50aXR5AA8E0FRoZSBwcm92aWRlZCBqdWRnZW1lbnQgd2FzIGZvciBhIGRpZmZlcmVudCBpZGVudGl0eS5YSnVkZ2VtZW50UGF5bWVudEZhaWxlZAAQBPhFcnJvciB0aGF0IG9jY3VycyB3aGVuIHRoZXJlIGlzIGFuIGlzc3VlIHBheWluZyBmb3IganVkZ2VtZW50LjRJbnZhbGlkU3VmZml4ABEEgFRoZSBwcm92aWRlZCBzdWZmaXggaXMgdG9vIGxvbmcuUE5vdFVzZXJuYW1lQXV0aG9yaXR5ABIE4FRoZSBzZW5kZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGlzc3VlIGEgdXNlcm5hbWUuME5vQWxsb2NhdGlvbgATBMRUaGUgYXV0aG9yaXR5IGNhbm5vdCBhbGxvY2F0ZSBhbnkgbW9yZSB1c2VybmFtZXMuQEludmFsaWRTaWduYXR1cmUAFASoVGhlIHNpZ25hdHVyZSBvbiBhIHVzZXJuYW1lIHdhcyBub3QgdmFsaWQuRFJlcXVpcmVzU2lnbmF0dXJlABUECQFTZXR0aW5nIHRoaXMgdXNlcm5hbWUgcmVxdWlyZXMgYSBzaWduYXR1cmUsIGJ1dCBub25lIHdhcyBwcm92aWRlZC48SW52YWxpZFVzZXJuYW1lABYEsFRoZSB1c2VybmFtZSBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlbWVudHMuNFVzZXJuYW1lVGFrZW4AFwR4VGhlIHVzZXJuYW1lIGlzIGFscmVhZHkgdGFrZW4uKE5vVXNlcm5hbWUAGASYVGhlIHJlcXVlc3RlZCB1c2VybmFtZSBkb2VzIG5vdCBleGlzdC4oTm90RXhwaXJlZAAZBC0BVGhlIHVzZXJuYW1lIGNhbm5vdCBiZSBmb3JjZWZ1bGx5IHJlbW92ZWQgYmVjYXVzZSBpdCBjYW4gc3RpbGwgYmUgYWNjZXB0ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnUJCDhwYWxsZXRfc29jaWV0eTBNZW1iZXJSZWNvcmQAABABEHJhbmsQARBSYW5rAAEcc3RyaWtlcxABLFN0cmlrZUNvdW50AAEgdm91Y2hpbmd5CQFYT3B0aW9uPFZvdWNoaW5nU3RhdHVzPgABFGluZGV4EAEMdTMyAAB5CQQYT3B0aW9uBARUAX0JAQgQTm9uZQAAABBTb21lBAB9CQAAAQAAfQkIOHBhbGxldF9zb2NpZXR5OFZvdWNoaW5nU3RhdHVzAAEIIFZvdWNoaW5nAAAAGEJhbm5lZAABAACBCQg4cGFsbGV0X3NvY2lldHkwUGF5b3V0UmVjb3JkCBxCYWxhbmNlARgoUGF5b3V0c1ZlYwGFCQAIARBwYWlkGAEcQmFsYW5jZQABHHBheW91dHOFCQEoUGF5b3V0c1ZlYwAAhQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHdCARTAAAEAOEIARhWZWM8VD4AAIkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBjQkEUwAABACVCQEYVmVjPFQ+AACNCQg4cGFsbGV0X3NvY2lldHkMQmlkCCRBY2NvdW50SWQBABxCYWxhbmNlARgADAEMd2hvAAEkQWNjb3VudElkAAEQa2luZJEJAWxCaWRLaW5kPEFjY291bnRJZCwgQmFsYW5jZT4AARR2YWx1ZRgBHEJhbGFuY2UAAJEJCDhwYWxsZXRfc29jaWV0eRxCaWRLaW5kCCRBY2NvdW50SWQBABxCYWxhbmNlARgBCBxEZXBvc2l0BAAYARxCYWxhbmNlAAAAFFZvdWNoCAAAASRBY2NvdW50SWQAABgBHEJhbGFuY2UAAQAAlQkAAAKNCQCZCQg4cGFsbGV0X3NvY2lldHkkQ2FuZGlkYWN5CCRBY2NvdW50SWQBABxCYWxhbmNlARgAFAEUcm91bmQQAShSb3VuZEluZGV4AAEQa2luZJEJAWxCaWRLaW5kPEFjY291bnRJZCwgQmFsYW5jZT4AAQxiaWQYARxCYWxhbmNlAAEUdGFsbHmdCQEUVGFsbHkAAThza2VwdGljX3N0cnVjayABEGJvb2wAAJ0JCDhwYWxsZXRfc29jaWV0eRRUYWxseQAACAEkYXBwcm92YWxzEAEkVm90ZUNvdW50AAEocmVqZWN0aW9ucxABJFZvdGVDb3VudAAAoQkAAAQIAAAApQkIOHBhbGxldF9zb2NpZXR5EFZvdGUAAAgBHGFwcHJvdmUgARBib29sAAEYd2VpZ2h0EAEMdTMyAACpCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAK0JCDhwYWxsZXRfc29jaWV0eTBJbnRha2VSZWNvcmQIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAMAQx3aG8AASRBY2NvdW50SWQAAQxiaWQYARxCYWxhbmNlAAEUcm91bmQQAShSb3VuZEluZGV4AACxCQAABAwAAJ0JALUJDDhwYWxsZXRfc29jaWV0eRhwYWxsZXQURXJyb3IIBFQABEkAAYAkTm90TWVtYmVyAAAEVFVzZXIgaXMgbm90IGEgbWVtYmVyLjRBbHJlYWR5TWVtYmVyAAEEZFVzZXIgaXMgYWxyZWFkeSBhIG1lbWJlci4kU3VzcGVuZGVkAAIESFVzZXIgaXMgc3VzcGVuZGVkLjBOb3RTdXNwZW5kZWQAAwRYVXNlciBpcyBub3Qgc3VzcGVuZGVkLiBOb1BheW91dAAEBEhOb3RoaW5nIHRvIHBheW91dC44QWxyZWFkeUZvdW5kZWQABQRgU29jaWV0eSBhbHJlYWR5IGZvdW5kZWQuPEluc3VmZmljaWVudFBvdAAGBJhOb3QgZW5vdWdoIGluIHBvdCB0byBhY2NlcHQgY2FuZGlkYXRlLjxBbHJlYWR5Vm91Y2hpbmcABwTkTWVtYmVyIGlzIGFscmVhZHkgdm91Y2hpbmcgb3IgYmFubmVkIGZyb20gdm91Y2hpbmcgYWdhaW4uTE5vdFZvdWNoaW5nT25CaWRkZXIACARcTWVtYmVyIGlzIG5vdCB2b3VjaGluZy4QSGVhZAAJBJBDYW5ub3QgcmVtb3ZlIHRoZSBoZWFkIG9mIHRoZSBjaGFpbi4cRm91bmRlcgAKBGhDYW5ub3QgcmVtb3ZlIHRoZSBmb3VuZGVyLihBbHJlYWR5QmlkAAsEcFVzZXIgaGFzIGFscmVhZHkgbWFkZSBhIGJpZC5AQWxyZWFkeUNhbmRpZGF0ZQAMBHBVc2VyIGlzIGFscmVhZHkgYSBjYW5kaWRhdGUuME5vdENhbmRpZGF0ZQANBGBVc2VyIGlzIG5vdCBhIGNhbmRpZGF0ZS4oTWF4TWVtYmVycwAOBIBUb28gbWFueSBtZW1iZXJzIGluIHRoZSBzb2NpZXR5LihOb3RGb3VuZGVyAA8EeFRoZSBjYWxsZXIgaXMgbm90IHRoZSBmb3VuZGVyLhxOb3RIZWFkABAEbFRoZSBjYWxsZXIgaXMgbm90IHRoZSBoZWFkLixOb3RBcHByb3ZlZAARBC0BVGhlIG1lbWJlcnNoaXAgY2Fubm90IGJlIGNsYWltZWQgYXMgdGhlIGNhbmRpZGF0ZSB3YXMgbm90IGNsZWFybHkgYXBwcm92ZWQuLE5vdFJlamVjdGVkABIEJQFUaGUgY2FuZGlkYXRlIGNhbm5vdCBiZSBraWNrZWQgYXMgdGhlIGNhbmRpZGF0ZSB3YXMgbm90IGNsZWFybHkgcmVqZWN0ZWQuIEFwcHJvdmVkABMEGQFUaGUgY2FuZGlkYWN5IGNhbm5vdCBiZSBkcm9wcGVkIGFzIHRoZSBjYW5kaWRhdGUgd2FzIGNsZWFybHkgYXBwcm92ZWQuIFJlamVjdGVkABQEHQFUaGUgY2FuZGlkYWN5IGNhbm5vdCBiZSBiZXN0b3dlZCBhcyB0aGUgY2FuZGlkYXRlIHdhcyBjbGVhcmx5IHJlamVjdGVkLihJblByb2dyZXNzABUEFQFUaGUgY2FuZGlkYWN5IGNhbm5vdCBiZSBjb25jbHVkZWQgYXMgdGhlIHZvdGluZyBpcyBzdGlsbCBpbiBwcm9ncmVzcy4gVG9vRWFybHkAFgRBAVRoZSBjYW5kaWRhY3kgY2Fubm90IGJlIHBydW5lZCB1bnRpbCBhIGZ1bGwgYWRkaXRpb25hbCBpbnRha2UgcGVyaW9kIGhhcyBwYXNzZWQuFFZvdGVkABcEaFRoZSBza2VwdGljIGFscmVhZHkgdm90ZWQuHEV4cGlyZWQAGATwVGhlIHNrZXB0aWMgbmVlZCBub3Qgdm90ZSBvbiBjYW5kaWRhdGVzIGZyb20gZXhwaXJlZCByb3VuZHMuJE5vdEJpZGRlcgAZBFRVc2VyIGlzIG5vdCBhIGJpZGRlci4oTm9EZWZlbmRlcgAaBHxUaGVyZSBpcyBubyBkZWZlbmRlciBjdXJyZW50bHkuIE5vdEdyb3VwABsEUEdyb3VwIGRvZXNuJ3QgZXhpc3QuPEFscmVhZHlFbGV2YXRlZAAcBLBUaGUgbWVtYmVyIGlzIGFscmVhZHkgZWxldmF0ZWQgdG8gdGhpcyByYW5rLjxBbHJlYWR5UHVuaXNoZWQAHQTcVGhlIHNrZXB0aWMgaGFzIGFscmVhZHkgYmVlbiBwdW5pc2hlZCBmb3IgdGhpcyBvZmZlbmNlLkRJbnN1ZmZpY2llbnRGdW5kcwAeBMBGdW5kcyBhcmUgaW5zdWZmaWNpZW50IHRvIHBheSBvZmYgc29jaWV0eSBkZWJ0cy4cTm9Wb3RlcwAfBNBUaGUgY2FuZGlkYXRlL2RlZmVuZGVyIGhhcyBubyBzdGFsZSB2b3RlcyB0byByZW1vdmUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrkJCDxwYWxsZXRfcmVjb3Zlcnk4UmVjb3ZlcnlDb25maWcMLEJsb2NrTnVtYmVyARAcQmFsYW5jZQEYHEZyaWVuZHMBvQkAEAEwZGVsYXlfcGVyaW9kEAEsQmxvY2tOdW1iZXIAARxkZXBvc2l0GAEcQmFsYW5jZQABHGZyaWVuZHO9CQEcRnJpZW5kcwABJHRocmVzaG9sZHkBAQx1MTYAAL0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEANEBARhWZWM8VD4AAMEJCDxwYWxsZXRfcmVjb3Zlcnk4QWN0aXZlUmVjb3ZlcnkMLEJsb2NrTnVtYmVyARAcQmFsYW5jZQEYHEZyaWVuZHMBvQkADAEcY3JlYXRlZBABLEJsb2NrTnVtYmVyAAEcZGVwb3NpdBgBHEJhbGFuY2UAARxmcmllbmRzvQkBHEZyaWVuZHMAAMUJDDxwYWxsZXRfcmVjb3ZlcnkYcGFsbGV0FEVycm9yBARUAAFAKE5vdEFsbG93ZWQAAATwVXNlciBpcyBub3QgYWxsb3dlZCB0byBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YgdGhpcyBhY2NvdW50NFplcm9UaHJlc2hvbGQAAQSMVGhyZXNob2xkIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm9ATm90RW5vdWdoRnJpZW5kcwACBNBGcmllbmRzIGxpc3QgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgdGhyZXNob2xkKE1heEZyaWVuZHMAAwSoRnJpZW5kcyBsaXN0IG11c3QgYmUgbGVzcyB0aGFuIG1heCBmcmllbmRzJE5vdFNvcnRlZAAEBMhGcmllbmRzIGxpc3QgbXVzdCBiZSBzb3J0ZWQgYW5kIGZyZWUgb2YgZHVwbGljYXRlczhOb3RSZWNvdmVyYWJsZQAFBJxUaGlzIGFjY291bnQgaXMgbm90IHNldCB1cCBmb3IgcmVjb3ZlcnlIQWxyZWFkeVJlY292ZXJhYmxlAAYErFRoaXMgYWNjb3VudCBpcyBhbHJlYWR5IHNldCB1cCBmb3IgcmVjb3Zlcnk4QWxyZWFkeVN0YXJ0ZWQABwTcQSByZWNvdmVyeSBwcm9jZXNzIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgZm9yIHRoaXMgYWNjb3VudChOb3RTdGFydGVkAAgEzEEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgbm90IHN0YXJ0ZWQgZm9yIHRoaXMgcmVzY3VlciROb3RGcmllbmQACQSoVGhpcyBhY2NvdW50IGlzIG5vdCBhIGZyaWVuZCB3aG8gY2FuIHZvdWNoLERlbGF5UGVyaW9kAAoEGQFUaGUgZnJpZW5kIG11c3Qgd2FpdCB1bnRpbCB0aGUgZGVsYXkgcGVyaW9kIHRvIHZvdWNoIGZvciB0aGlzIHJlY292ZXJ5OEFscmVhZHlWb3VjaGVkAAsEvFRoaXMgdXNlciBoYXMgYWxyZWFkeSB2b3VjaGVkIGZvciB0aGlzIHJlY292ZXJ5JFRocmVzaG9sZAAMBOhUaGUgdGhyZXNob2xkIGZvciByZWNvdmVyaW5nIHRoaXMgYWNjb3VudCBoYXMgbm90IGJlZW4gbWV0LFN0aWxsQWN0aXZlAA0E/FRoZXJlIGFyZSBzdGlsbCBhY3RpdmUgcmVjb3ZlcnkgYXR0ZW1wdHMgdGhhdCBuZWVkIHRvIGJlIGNsb3NlZDBBbHJlYWR5UHJveHkADgSsVGhpcyBhY2NvdW50IGlzIGFscmVhZHkgc2V0IHVwIGZvciByZWNvdmVyeSBCYWRTdGF0ZQAPBHhTb21lIGludGVybmFsIHN0YXRlIGlzIGJyb2tlbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuyQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFhAwRTAAAEAM0JARhWZWM8VD4AAM0JAAACYQMA0QkIOHBhbGxldF92ZXN0aW5nIFJlbGVhc2VzAAEICFYwAAAACFYxAAEAANUJDDhwYWxsZXRfdmVzdGluZxhwYWxsZXQURXJyb3IEBFQAARQoTm90VmVzdGluZwAABIRUaGUgYWNjb3VudCBnaXZlbiBpcyBub3QgdmVzdGluZy5UQXRNYXhWZXN0aW5nU2NoZWR1bGVzAAEIJQFUaGUgYWNjb3VudCBhbHJlYWR5IGhhcyBgTWF4VmVzdGluZ1NjaGVkdWxlc2AgY291bnQgb2Ygc2NoZWR1bGVzIGFuZCB0aHVzUQFjYW5ub3QgYWRkIGFub3RoZXIgb25lLiBDb25zaWRlciBtZXJnaW5nIGV4aXN0aW5nIHNjaGVkdWxlcyBpbiBvcmRlciB0byBhZGQgYW5vdGhlci4kQW1vdW50TG93AAIEBQFBbW91bnQgYmVpbmcgdHJhbnNmZXJyZWQgaXMgdG9vIGxvdyB0byBjcmVhdGUgYSB2ZXN0aW5nIHNjaGVkdWxlLmBTY2hlZHVsZUluZGV4T3V0T2ZCb3VuZHMAAwTQQW4gaW5kZXggd2FzIG91dCBvZiBib3VuZHMgb2YgdGhlIHZlc3Rpbmcgc2NoZWR1bGVzLlRJbnZhbGlkU2NoZWR1bGVQYXJhbXMABAQNAUZhaWxlZCB0byBjcmVhdGUgYSBuZXcgc2NoZWR1bGUgYmVjYXVzZSBzb21lIHBhcmFtZXRlciB3YXMgaW52YWxpZC4EdEVycm9yIGZvciB0aGUgdmVzdGluZyBwYWxsZXQu2QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHdCQRTAAAEAOUJARhWZWM8VD4AAN0JBBhPcHRpb24EBFQB4QkBCBBOb25lAAAAEFNvbWUEAOEJAAABAADhCQhAcGFsbGV0X3NjaGVkdWxlciRTY2hlZHVsZWQUEE5hbWUBBBBDYWxsAX0BLEJsb2NrTnVtYmVyARA0UGFsbGV0c09yaWdpbgFRAiRBY2NvdW50SWQBAAAUASBtYXliZV9pZMUGATBPcHRpb248TmFtZT4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGx9AQEQQ2FsbAABOG1heWJlX3BlcmlvZGljaQMBlE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyPj4AARhvcmlnaW5RAgE0UGFsbGV0c09yaWdpbgAA5QkAAALdCQDpCQhAcGFsbGV0X3NjaGVkdWxlcixSZXRyeUNvbmZpZwQYUGVyaW9kARAADAE0dG90YWxfcmV0cmllcwgBCHU4AAEkcmVtYWluaW5nCAEIdTgAARhwZXJpb2QQARhQZXJpb2QAAO0JDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFcnJvcgQEVAABFEBGYWlsZWRUb1NjaGVkdWxlAAAEZEZhaWxlZCB0byBzY2hlZHVsZSBhIGNhbGwgTm90Rm91bmQAAQR8Q2Fubm90IGZpbmQgdGhlIHNjaGVkdWxlZCBjYWxsLlxUYXJnZXRCbG9ja051bWJlckluUGFzdAACBKRHaXZlbiB0YXJnZXQgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LkhSZXNjaGVkdWxlTm9DaGFuZ2UAAwTwUmVzY2hlZHVsZSBmYWlsZWQgYmVjYXVzZSBpdCBkb2VzIG5vdCBjaGFuZ2Ugc2NoZWR1bGVkIHRpbWUuFE5hbWVkAAQE0EF0dGVtcHQgdG8gdXNlIGEgbm9uLW5hbWVkIGZ1bmN0aW9uIG9uIGEgbmFtZWQgdGFzay4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu8QkAAAQI9QkYAPUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB+QkEUwAABAD9CQEYVmVjPFQ+AAD5CQgwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQAkUHJveHlUeXBlAXkDLEJsb2NrTnVtYmVyARAADAEgZGVsZWdhdGUAASRBY2NvdW50SWQAAShwcm94eV90eXBleQMBJFByb3h5VHlwZQABFGRlbGF5EAEsQmxvY2tOdW1iZXIAAP0JAAAC+QkAAQoAAAQIBQoYAAUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCQoEUwAABAANCgEYVmVjPFQ+AAAJCggwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQAQSGFzaAE0LEJsb2NrTnVtYmVyARAADAEQcmVhbAABJEFjY291bnRJZAABJGNhbGxfaGFzaDQBEEhhc2gAARhoZWlnaHQQASxCbG9ja051bWJlcgAADQoAAAIJCgARCgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuFQoAAAQIAAQAGQoIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgkQWNjb3VudElkAQAwTWF4QXBwcm92YWxzAAAQARB3aGVuhQMBWFRpbWVwb2ludDxCbG9ja051bWJlcj4AARxkZXBvc2l0GAEcQmFsYW5jZQABJGRlcG9zaXRvcgABJEFjY291bnRJZAABJGFwcHJvdmFscx0KAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAAHQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQA0QEBGFZlYzxUPgAAIQoMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwTcTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCB3aGVuIGF0dGVtcHRpbmcgdG8gY2FuY2VsLiBOb3RPd25lcgAIBC0BT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQuLE5vVGltZXBvaW50AAkEHQFObyB0aW1lcG9pbnQgd2FzIGdpdmVuLCB5ZXQgdGhlIG11bHRpc2lnIG9wZXJhdGlvbiBpcyBhbHJlYWR5IHVuZGVyd2F5LjhXcm9uZ1RpbWVwb2ludAAKBC0BQSBkaWZmZXJlbnQgdGltZXBvaW50IHdhcyBnaXZlbiB0byB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIHRoYXQgaXMgdW5kZXJ3YXkuTFVuZXhwZWN0ZWRUaW1lcG9pbnQACwT0QSB0aW1lcG9pbnQgd2FzIGdpdmVuLCB5ZXQgbm8gbXVsdGlzaWcgb3BlcmF0aW9uIGlzIHVuZGVyd2F5LjxNYXhXZWlnaHRUb29Mb3cADATQVGhlIG1heGltdW0gd2VpZ2h0IGluZm9ybWF0aW9uIHByb3ZpZGVkIHdhcyB0b28gbG93LjRBbHJlYWR5U3RvcmVkAA0EoFRoZSBkYXRhIHRvIGJlIHN0b3JlZCBpcyBhbHJlYWR5IHN0b3JlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuJQoIPHBhbGxldF9wcmVpbWFnZUBPbGRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBABxCYWxhbmNlARgBCCxVbnJlcXVlc3RlZAgBHGRlcG9zaXQpCgFQKEFjY291bnRJZCwgQmFsYW5jZSkAAQxsZW4QAQx1MzIAAAAkUmVxdWVzdGVkDAEcZGVwb3NpdC0KAXBPcHRpb248KEFjY291bnRJZCwgQmFsYW5jZSk+AAEUY291bnQQAQx1MzIAAQxsZW49AgEsT3B0aW9uPHUzMj4AAQAAKQoAAAQIABgALQoEGE9wdGlvbgQEVAEpCgEIEE5vbmUAAAAQU29tZQQAKQoAAAEAADEKCDxwYWxsZXRfcHJlaW1hZ2U0UmVxdWVzdFN0YXR1cwgkQWNjb3VudElkAQAYVGlja2V0ATUKAQgsVW5yZXF1ZXN0ZWQIARh0aWNrZXQ5CgFMKEFjY291bnRJZCwgVGlja2V0KQABDGxlbhABDHUzMgAAACRSZXF1ZXN0ZWQMATBtYXliZV90aWNrZXQ9CgFsT3B0aW9uPChBY2NvdW50SWQsIFRpY2tldCk+AAEUY291bnQQAQx1MzIAASRtYXliZV9sZW49AgEsT3B0aW9uPHUzMj4AAQAANQoUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZURIb2xkQ29uc2lkZXJhdGlvbhQEQQAERgAEUgAERAAIRnAAAAQAGAEoRjo6QmFsYW5jZQAAOQoAAAQIADUKAD0KBBhPcHRpb24EBFQBOQoBCBBOb25lAAAAEFNvbWUEADkKAAABAABBCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAEUKDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0FEVycm9yBARUAAEgGFRvb0JpZwAABKBQcmVpbWFnZSBpcyB0b28gbGFyZ2UgdG8gc3RvcmUgb24tY2hhaW4uMEFscmVhZHlOb3RlZAABBKRQcmVpbWFnZSBoYXMgYWxyZWFkeSBiZWVuIG5vdGVkIG9uLWNoYWluLjROb3RBdXRob3JpemVkAAIEyFRoZSB1c2VyIGlzIG5vdCBhdXRob3JpemVkIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uIE5vdE5vdGVkAAME/FRoZSBwcmVpbWFnZSBjYW5ub3QgYmUgcmVtb3ZlZCBzaW5jZSBpdCBoYXMgbm90IHlldCBiZWVuIG5vdGVkLiRSZXF1ZXN0ZWQABAQJAUEgcHJlaW1hZ2UgbWF5IG5vdCBiZSByZW1vdmVkIHdoZW4gdGhlcmUgYXJlIG91dHN0YW5kaW5nIHJlcXVlc3RzLjBOb3RSZXF1ZXN0ZWQABQQtAVRoZSBwcmVpbWFnZSByZXF1ZXN0IGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIG5vIG91dHN0YW5kaW5nIHJlcXVlc3RzIGV4aXN0LhxUb29NYW55AAYEVQFNb3JlIHRoYW4gYE1BWF9IQVNIX1VQR1JBREVfQlVMS19DT1VOVGAgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIGF0IG9uY2UuGFRvb0ZldwAHBORUb28gZmV3IGhhc2hlcyB3ZXJlIHJlcXVlc3RlZCB0byBiZSB1cGdyYWRlZCAoaS5lLiB6ZXJvKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuSQoMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBRFcnJvcgQEVAABDEBVbmtub3duQXNzZXRLaW5kAAAEeFRoZSBnaXZlbiBhc3NldCBJRCBpcyB1bmtub3duLjRBbHJlYWR5RXhpc3RzAAEEUQFUaGUgZ2l2ZW4gYXNzZXQgSUQgYWxyZWFkeSBoYXMgYW4gYXNzaWduZWQgY29udmVyc2lvbiByYXRlIGFuZCBjYW5ub3QgYmUgcmUtY3JlYXRlZC4gT3ZlcmZsb3cAAgTMT3ZlcmZsb3cgb2N1cnJlZCB3aGVuIGNhbGN1bGF0aW5nIHRoZSBpbnZlcnNlIHJhdGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lk0KCDxwYWxsZXRfYm91bnRpZXMYQm91bnR5DCRBY2NvdW50SWQBABxCYWxhbmNlARgsQmxvY2tOdW1iZXIBEAAYASBwcm9wb3NlcgABJEFjY291bnRJZAABFHZhbHVlGAEcQmFsYW5jZQABDGZlZRgBHEJhbGFuY2UAATxjdXJhdG9yX2RlcG9zaXQYARxCYWxhbmNlAAEQYm9uZBgBHEJhbGFuY2UAARhzdGF0dXNRCgGQQm91bnR5U3RhdHVzPEFjY291bnRJZCwgQmxvY2tOdW1iZXI+AABRCgg8cGFsbGV0X2JvdW50aWVzMEJvdW50eVN0YXR1cwgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBEAEYIFByb3Bvc2VkAAAAIEFwcHJvdmVkAAEAGEZ1bmRlZAACADxDdXJhdG9yUHJvcG9zZWQEARxjdXJhdG9yAAEkQWNjb3VudElkAAMAGEFjdGl2ZQgBHGN1cmF0b3IAASRBY2NvdW50SWQAASh1cGRhdGVfZHVlEAEsQmxvY2tOdW1iZXIABAA0UGVuZGluZ1BheW91dAwBHGN1cmF0b3IAASRBY2NvdW50SWQAASxiZW5lZmljaWFyeQABJEFjY291bnRJZAABJHVubG9ja19hdBABLEJsb2NrTnVtYmVyAAUAAFUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAWQoMPHBhbGxldF9ib3VudGllcxhwYWxsZXQURXJyb3IIBFQABEkAASxwSW5zdWZmaWNpZW50UHJvcG9zZXJzQmFsYW5jZQAABHhQcm9wb3NlcidzIGJhbGFuY2UgaXMgdG9vIGxvdy4wSW52YWxpZEluZGV4AAEEkE5vIHByb3Bvc2FsIG9yIGJvdW50eSBhdCB0aGF0IGluZGV4LjBSZWFzb25Ub29CaWcAAgSEVGhlIHJlYXNvbiBnaXZlbiBpcyBqdXN0IHRvbyBiaWcuQFVuZXhwZWN0ZWRTdGF0dXMAAwSAVGhlIGJvdW50eSBzdGF0dXMgaXMgdW5leHBlY3RlZC44UmVxdWlyZUN1cmF0b3IABARcUmVxdWlyZSBib3VudHkgY3VyYXRvci4wSW52YWxpZFZhbHVlAAUEVEludmFsaWQgYm91bnR5IHZhbHVlLihJbnZhbGlkRmVlAAYETEludmFsaWQgYm91bnR5IGZlZS40UGVuZGluZ1BheW91dAAHCGxBIGJvdW50eSBwYXlvdXQgaXMgcGVuZGluZy74VG8gY2FuY2VsIHRoZSBib3VudHksIHlvdSBtdXN0IHVuYXNzaWduIGFuZCBzbGFzaCB0aGUgY3VyYXRvci4kUHJlbWF0dXJlAAgERQFUaGUgYm91bnRpZXMgY2Fubm90IGJlIGNsYWltZWQvY2xvc2VkIGJlY2F1c2UgaXQncyBzdGlsbCBpbiB0aGUgY291bnRkb3duIHBlcmlvZC5QSGFzQWN0aXZlQ2hpbGRCb3VudHkACQQFAVRoZSBib3VudHkgY2Fubm90IGJlIGNsb3NlZCBiZWNhdXNlIGl0IGhhcyBhY3RpdmUgY2hpbGQgYm91bnRpZXMuNFRvb01hbnlRdWV1ZWQACgSYVG9vIG1hbnkgYXBwcm92YWxzIGFyZSBhbHJlYWR5IHF1ZXVlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuXQoIVHBhbGxldF9jaGlsZF9ib3VudGllcyxDaGlsZEJvdW50eQwkQWNjb3VudElkAQAcQmFsYW5jZQEYLEJsb2NrTnVtYmVyARAAFAE0cGFyZW50X2JvdW50eRABLEJvdW50eUluZGV4AAEUdmFsdWUYARxCYWxhbmNlAAEMZmVlGAEcQmFsYW5jZQABPGN1cmF0b3JfZGVwb3NpdBgBHEJhbGFuY2UAARhzdGF0dXNhCgGkQ2hpbGRCb3VudHlTdGF0dXM8QWNjb3VudElkLCBCbG9ja051bWJlcj4AAGEKCFRwYWxsZXRfY2hpbGRfYm91bnRpZXNEQ2hpbGRCb3VudHlTdGF0dXMIJEFjY291bnRJZAEALEJsb2NrTnVtYmVyARABEBRBZGRlZAAAADxDdXJhdG9yUHJvcG9zZWQEARxjdXJhdG9yAAEkQWNjb3VudElkAAEAGEFjdGl2ZQQBHGN1cmF0b3IAASRBY2NvdW50SWQAAgA0UGVuZGluZ1BheW91dAwBHGN1cmF0b3IAASRBY2NvdW50SWQAASxiZW5lZmljaWFyeQABJEFjY291bnRJZAABJHVubG9ja19hdBABLEJsb2NrTnVtYmVyAAMAAGUKDFRwYWxsZXRfY2hpbGRfYm91bnRpZXMYcGFsbGV0FEVycm9yBARUAAEMVFBhcmVudEJvdW50eU5vdEFjdGl2ZQAABKRUaGUgcGFyZW50IGJvdW50eSBpcyBub3QgaW4gYWN0aXZlIHN0YXRlLmRJbnN1ZmZpY2llbnRCb3VudHlCYWxhbmNlAAEE5FRoZSBib3VudHkgYmFsYW5jZSBpcyBub3QgZW5vdWdoIHRvIGFkZCBuZXcgY2hpbGQtYm91bnR5LlBUb29NYW55Q2hpbGRCb3VudGllcwACBA0BTnVtYmVyIG9mIGNoaWxkIGJvdW50aWVzIGV4Y2VlZHMgbGltaXQgYE1heEFjdGl2ZUNoaWxkQm91bnR5Q291bnRgLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5pCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAd0IBFMAAAQA4QgBGFZlYzxUPgAAbQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFxCgRTAAAEAHUKARhWZWM8VD4AAHEKDChwYWxsZXRfbmlzGHBhbGxldAxCaWQIHEJhbGFuY2UBGCRBY2NvdW50SWQBAAAIARhhbW91bnQYARxCYWxhbmNlAAEMd2hvAAEkQWNjb3VudElkAAB1CgAAAnEKAHkKDChwYWxsZXRfbmlzGHBhbGxldDRTdW1tYXJ5UmVjb3JkCCxCbG9ja051bWJlcgEQHEJhbGFuY2UBGAAUATxwcm9wb3J0aW9uX293ZWS0ASxQZXJxdWludGlsbAABFGluZGV4EAEwUmVjZWlwdEluZGV4AAEYdGhhd2VktAEsUGVycXVpbnRpbGwAASxsYXN0X3BlcmlvZBABLEJsb2NrTnVtYmVyAAFAcmVjZWlwdHNfb25faG9sZBgBHEJhbGFuY2UAAH0KDChwYWxsZXRfbmlzGHBhbGxldDRSZWNlaXB0UmVjb3JkDCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEQHEJhbGFuY2UBGAAMAShwcm9wb3J0aW9utAEsUGVycXVpbnRpbGwAARRvd25lci0KAXBPcHRpb248KEFjY291bnRJZCwgQmFsYW5jZSk+AAEYZXhwaXJ5EAEsQmxvY2tOdW1iZXIAAIEKAAAECLQQAIUKDChwYWxsZXRfbmlzGHBhbGxldBRFcnJvcgQEVAABPEBEdXJhdGlvblRvb1NtYWxsAAAEpFRoZSBkdXJhdGlvbiBvZiB0aGUgYmlkIGlzIGxlc3MgdGhhbiBvbmUuOER1cmF0aW9uVG9vQmlnAAEE9FRoZSBkdXJhdGlvbiBpcyB0aGUgYmlkIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHF1ZXVlcy44QW1vdW50VG9vU21hbGwAAgTcVGhlIGFtb3VudCBvZiB0aGUgYmlkIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSBhbGxvd2VkLiRCaWRUb29Mb3cAAwhBAVRoZSBxdWV1ZSBmb3IgdGhlIGJpZCdzIGR1cmF0aW9uIGlzIGZ1bGwgYW5kIHRoZSBhbW91bnQgYmlkIGlzIHRvbyBsb3cgdG8gZ2V0IGluiHRocm91Z2ggcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGJpZC44VW5rbm93blJlY2VpcHQABARkUmVjZWlwdCBpbmRleCBpcyB1bmtub3duLiBOb3RPd25lcgAFBHROb3QgdGhlIG93bmVyIG9mIHRoZSByZWNlaXB0LihOb3RFeHBpcmVkAAYEcEJvbmQgbm90IHlldCBhdCBleHBpcnkgZGF0ZS4oVW5rbm93bkJpZAAHBKhUaGUgZ2l2ZW4gYmlkIGZvciByZXRyYWN0aW9uIGlzIG5vdCBmb3VuZC40UG9ydGlvblRvb0JpZwAIBOBUaGUgcG9ydGlvbiBzdXBwbGllZCBpcyBiZXlvbmQgdGhlIHZhbHVlIG9mIHRoZSByZWNlaXB0LiBVbmZ1bmRlZAAJBJROb3QgZW5vdWdoIGZ1bmRzIGFyZSBoZWxkIHRvIHBheSBvdXQuNEFscmVhZHlGdW5kZWQACgSwVGhlcmUgYXJlIGVub3VnaCBmdW5kcyBmb3Igd2hhdCBpcyByZXF1aXJlZC4kVGhyb3R0bGVkAAsEzFRoZSB0aGF3IHRocm90dGxlIGhhcyBiZWVuIHJlYWNoZWQgZm9yIHRoaXMgcGVyaW9kLiRNYWtlc0R1c3QADAQVAVRoZSBvcGVyYXRpb24gd291bGQgcmVzdWx0IGluIGEgcmVjZWlwdCB3b3J0aCBhbiBpbnNpZ25pZmljYW50IHZhbHVlLjxBbHJlYWR5Q29tbXVuYWwADQSAVGhlIHJlY2VpcHQgaXMgYWxyZWFkeSBjb21tdW5hbC44QWxyZWFkeVByaXZhdGUADgR8VGhlIHJlY2VpcHQgaXMgYWxyZWFkeSBwcml2YXRlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6JCgxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAeEHBFMAAAQA6QcBGFZlYzxUPgAAjQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHxBwRTAAAEAPUHARhWZWM8VD4AAJEKDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6VCgxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zNGNvbmZpZ3VyYXRpb25ESG9zdENvbmZpZ3VyYXRpb24ELEJsb2NrTnVtYmVyARAAjAE0bWF4X2NvZGVfc2l6ZRABDHUzMgABSG1heF9oZWFkX2RhdGFfc2l6ZRABDHUzMgABWG1heF91cHdhcmRfcXVldWVfY291bnQQAQx1MzIAAVRtYXhfdXB3YXJkX3F1ZXVlX3NpemUQAQx1MzIAAVxtYXhfdXB3YXJkX21lc3NhZ2Vfc2l6ZRABDHUzMgABkG1heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZRABDHUzMgABiGhybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUQAQx1MzIAAWx2YWxpZGF0aW9uX3VwZ3JhZGVfY29vbGRvd24QASxCbG9ja051bWJlcgABYHZhbGlkYXRpb25fdXBncmFkZV9kZWxheRABLEJsb2NrTnVtYmVyAAFQYXN5bmNfYmFja2luZ19wYXJhbXOtAwFIQXN5bmNCYWNraW5nUGFyYW1zAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAFkbWF4X2Rvd253YXJkX21lc3NhZ2Vfc2l6ZRABDHUzMgABkGhybXBfbWF4X3BhcmFjaGFpbl9vdXRib3VuZF9jaGFubmVscxABDHUzMgABTGhybXBfc2VuZGVyX2RlcG9zaXQYARxCYWxhbmNlAAFYaHJtcF9yZWNpcGllbnRfZGVwb3NpdBgBHEJhbGFuY2UAAWRocm1wX2NoYW5uZWxfbWF4X2NhcGFjaXR5EAEMdTMyAAFsaHJtcF9jaGFubmVsX21heF90b3RhbF9zaXplEAEMdTMyAAGMaHJtcF9tYXhfcGFyYWNoYWluX2luYm91bmRfY2hhbm5lbHMQAQx1MzIAAXRocm1wX2NoYW5uZWxfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgABPGV4ZWN1dG9yX3BhcmFtc7EDAThFeGVjdXRvclBhcmFtcwABVGNvZGVfcmV0ZW50aW9uX3BlcmlvZBABLEJsb2NrTnVtYmVyAAE4bWF4X3ZhbGlkYXRvcnM9AgEsT3B0aW9uPHUzMj4AAThkaXNwdXRlX3BlcmlvZBABMFNlc3Npb25JbmRleAABpGRpc3B1dGVfcG9zdF9jb25jbHVzaW9uX2FjY2VwdGFuY2VfcGVyaW9kEAEsQmxvY2tOdW1iZXIAATRub19zaG93X3Nsb3RzEAEMdTMyAAFAbl9kZWxheV90cmFuY2hlcxABDHUzMgABaHplcm90aF9kZWxheV90cmFuY2hlX3dpZHRoEAEMdTMyAAFAbmVlZGVkX2FwcHJvdmFscxABDHUzMgABYHJlbGF5X3ZyZl9tb2R1bG9fc2FtcGxlcxABDHUzMgABOHB2Zl92b3RpbmdfdHRsEAEwU2Vzc2lvbkluZGV4AAGAbWluaW11bV92YWxpZGF0aW9uX3VwZ3JhZGVfZGVsYXkQASxCbG9ja051bWJlcgABVG1pbmltdW1fYmFja2luZ192b3RlcxABDHUzMgABNG5vZGVfZmVhdHVyZXPtAwEwTm9kZUZlYXR1cmVzAAFYYXBwcm92YWxfdm90aW5nX3BhcmFtc8kDAVBBcHByb3ZhbFZvdGluZ1BhcmFtcwABQHNjaGVkdWxlcl9wYXJhbXPNAwFwU2NoZWR1bGVyUGFyYW1zPEJsb2NrTnVtYmVyPgAAmQoAAAKdCgCdCgAABAgQlQoAoQoQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluczRjb25maWd1cmF0aW9uGHBhbGxldBRFcnJvcgQEVAABBDxJbnZhbGlkTmV3VmFsdWUAAATcVGhlIG5ldyB2YWx1ZSBmb3IgYSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpcyBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6lCgAAAvUDAKkKAAAC+QEArQoMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxhzaGFyZWRoQWxsb3dlZFJlbGF5UGFyZW50c1RyYWNrZXIIEEhhc2gBNCxCbG9ja051bWJlcgEQAAgBGGJ1ZmZlcrEKAVhWZWNEZXF1ZTwoSGFzaCwgSGFzaCk+AAE0bGF0ZXN0X251bWJlchABLEJsb2NrTnVtYmVyAACxCgAAArUKALUKAAAECDQ0ALkKAAACvQoAvQoMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb25wQ2FuZGlkYXRlUGVuZGluZ0F2YWlsYWJpbGl0eQgESAE0BE4BEAAkARBjb3Jl8QYBJENvcmVJbmRleAABEGhhc2hJBAE0Q2FuZGlkYXRlSGFzaAABKGRlc2NyaXB0b3IJBAFYQ2FuZGlkYXRlRGVzY3JpcHRvcjxIPgABLGNvbW1pdG1lbnRzGQQBUENhbmRpZGF0ZUNvbW1pdG1lbnRzAAFIYXZhaWxhYmlsaXR5X3ZvdGVz7QMBYEJpdFZlYzx1OCwgQml0T3JkZXJMc2IwPgABHGJhY2tlcnPtAwFgQml0VmVjPHU4LCBCaXRPcmRlckxzYjA+AAFMcmVsYXlfcGFyZW50X251bWJlchABBE4AAUBiYWNrZWRfaW5fbnVtYmVyEAEETgABNGJhY2tpbmdfZ3JvdXD1BgEoR3JvdXBJbmRleAAAwQoQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0FEVycm9yBARUAAFEZFZhbGlkYXRvckluZGV4T3V0T2ZCb3VuZHMAAAR4VmFsaWRhdG9yIGluZGV4IG91dCBvZiBib3VuZHMuUFVuc2NoZWR1bGVkQ2FuZGlkYXRlAAEErENhbmRpZGF0ZSBzdWJtaXR0ZWQgYnV0IHBhcmEgbm90IHNjaGVkdWxlZC5ASGVhZERhdGFUb29MYXJnZQACBKRIZWFkIGRhdGEgZXhjZWVkcyB0aGUgY29uZmlndXJlZCBtYXhpbXVtLlBQcmVtYXR1cmVDb2RlVXBncmFkZQADBGRDb2RlIHVwZ3JhZGUgcHJlbWF0dXJlbHkuPE5ld0NvZGVUb29MYXJnZQAEBGBPdXRwdXQgY29kZSBpcyB0b28gbGFyZ2VURGlzYWxsb3dlZFJlbGF5UGFyZW50AAUI7FRoZSBjYW5kaWRhdGUncyByZWxheS1wYXJlbnQgd2FzIG5vdCBhbGxvd2VkLiBFaXRoZXIgaXQgd2FzJQFub3QgcmVjZW50IGVub3VnaCBvciBpdCBkaWRuJ3QgYWR2YW5jZSBiYXNlZCBvbiB0aGUgbGFzdCBwYXJhY2hhaW4gYmxvY2suREludmFsaWRBc3NpZ25tZW50AAYIFQFGYWlsZWQgdG8gY29tcHV0ZSBncm91cCBpbmRleCBmb3IgdGhlIGNvcmU6IGVpdGhlciBpdCdzIG91dCBvZiBib3VuZHPob3IgdGhlIHJlbGF5IHBhcmVudCBkb2Vzbid0IGJlbG9uZyB0byB0aGUgY3VycmVudCBzZXNzaW9uLkRJbnZhbGlkR3JvdXBJbmRleAAHBJxJbnZhbGlkIGdyb3VwIGluZGV4IGluIGNvcmUgYXNzaWdubWVudC5MSW5zdWZmaWNpZW50QmFja2luZwAIBJBJbnN1ZmZpY2llbnQgKG5vbi1tYWpvcml0eSkgYmFja2luZy44SW52YWxpZEJhY2tpbmcACQTkSW52YWxpZCAoYmFkIHNpZ25hdHVyZSwgdW5rbm93biB2YWxpZGF0b3IsIGV0Yy4pIGJhY2tpbmcuaFZhbGlkYXRpb25EYXRhSGFzaE1pc21hdGNoAAoExFRoZSB2YWxpZGF0aW9uIGRhdGEgaGFzaCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZC6ASW5jb3JyZWN0RG93bndhcmRNZXNzYWdlSGFuZGxpbmcACwTYVGhlIGRvd253YXJkIG1lc3NhZ2UgcXVldWUgaXMgbm90IHByb2Nlc3NlZCBjb3JyZWN0bHkuVEludmFsaWRVcHdhcmRNZXNzYWdlcwAMBB0BQXQgbGVhc3Qgb25lIHVwd2FyZCBtZXNzYWdlIHNlbnQgZG9lcyBub3QgcGFzcyB0aGUgYWNjZXB0YW5jZSBjcml0ZXJpYS5gSHJtcFdhdGVybWFya01pc2hhbmRsaW5nAA0EEQFUaGUgY2FuZGlkYXRlIGRpZG4ndCBmb2xsb3cgdGhlIHJ1bGVzIG9mIEhSTVAgd2F0ZXJtYXJrIGFkdmFuY2VtZW50LkxJbnZhbGlkT3V0Ym91bmRIcm1wAA4E1FRoZSBIUk1QIG1lc3NhZ2VzIHNlbnQgYnkgdGhlIGNhbmRpZGF0ZSBpcyBub3QgdmFsaWQuZEludmFsaWRWYWxpZGF0aW9uQ29kZUhhc2gADwTcVGhlIHZhbGlkYXRpb24gY29kZSBoYXNoIG9mIHRoZSBjYW5kaWRhdGUgaXMgbm90IHZhbGlkLkBQYXJhSGVhZE1pc21hdGNoABAIVQFUaGUgYHBhcmFfaGVhZGAgaGFzaCBpbiB0aGUgY2FuZGlkYXRlIGRlc2NyaXB0b3IgZG9lc24ndCBtYXRjaCB0aGUgaGFzaCBvZiB0aGUgYWN0dWFsdHBhcmEgaGVhZCBpbiB0aGUgY29tbWl0bWVudHMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsUKDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4TFNjcmFwZWRPbkNoYWluVm90ZXMEBEgBNAAMARxzZXNzaW9uEAEwU2Vzc2lvbkluZGV4AAGAYmFja2luZ192YWxpZGF0b3JzX3Blcl9jYW5kaWRhdGXJCgEdAVZlYzwoQ2FuZGlkYXRlUmVjZWlwdDxIPiwgVmVjPChWYWxpZGF0b3JJbmRleCwgVmFsaWRpdHlBdHRlc3RhdGlvbik+KQo+AAEgZGlzcHV0ZXNBBAFgTXVsdGlEaXNwdXRlU3RhdGVtZW50U2V0AADJCgAAAs0KAM0KAAAECO0G0QoA0QoAAALVCgDVCgAABAj1Az0EANkKEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnM4cGFyYXNfaW5oZXJlbnQYcGFsbGV0FEVycm9yBARUAAEUZFRvb01hbnlJbmNsdXNpb25JbmhlcmVudHMAAATMSW5jbHVzaW9uIGluaGVyZW50IGNhbGxlZCBtb3JlIHRoYW4gb25jZSBwZXIgYmxvY2suTEludmFsaWRQYXJlbnRIZWFkZXIAAQhVAVRoZSBoYXNoIG9mIHRoZSBzdWJtaXR0ZWQgcGFyZW50IGhlYWRlciBkb2Vzbid0IGNvcnJlc3BvbmQgdG8gdGhlIHNhdmVkIGJsb2NrIGhhc2ggb2YsdGhlIHBhcmVudC5ISW5oZXJlbnRPdmVyd2VpZ2h0AAIECQFUaGUgZGF0YSBnaXZlbiB0byB0aGUgaW5oZXJlbnQgd2lsbCByZXN1bHQgaW4gYW4gb3ZlcndlaWdodCBibG9jay6EQ2FuZGlkYXRlc0ZpbHRlcmVkRHVyaW5nRXhlY3V0aW9uAAMITQFBIGNhbmRpZGF0ZSB3YXMgZmlsdGVyZWQgZHVyaW5nIGluaGVyZW50IGV4ZWN1dGlvbi4gVGhpcyBzaG91bGQgaGF2ZSBvbmx5IGJlZW4gZG9uZUBkdXJpbmcgY3JlYXRpb24uUFVuc2NoZWR1bGVkQ2FuZGlkYXRlAAQEdFRvbyBtYW55IGNhbmRpZGF0ZXMgc3VwcGxpZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lt0KAAACpQoA4QoAAALlCgDlChBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJHNjaGVkdWxlchhwYWxsZXQwQ29yZU9jY3VwaWVkBAROARABCBBGcmVlAAAAFFBhcmFzBADpCgE0UGFyYXNFbnRyeTxOPgABAADpChBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJHNjaGVkdWxlchhwYWxsZXQoUGFyYXNFbnRyeQQETgEQAAwBKGFzc2lnbm1lbnTtCgEoQXNzaWdubWVudAABVGF2YWlsYWJpbGl0eV90aW1lb3V0cxABDHUzMgABDHR0bBABBE4AAO0KEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkc2NoZWR1bGVyGGNvbW1vbihBc3NpZ25tZW50AAEIEFBvb2wIARxwYXJhX2lkYQIBGFBhcmFJZAABKGNvcmVfaW5kZXjxBgEkQ29yZUluZGV4AAAAEEJ1bGsEAGECARhQYXJhSWQAAQAA8QoEIEJUcmVlTWFwCARLAfEGBFYB9QoABAD5CgAAAPUKAAAC6QoA+QoAAAL9CgD9CgAABAjxBvUKAAELDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXNcUHZmQ2hlY2tBY3RpdmVWb3RlU3RhdGUELEJsb2NrTnVtYmVyARAAFAEwdm90ZXNfYWNjZXB07QMBYEJpdFZlYzx1OCwgQml0T3JkZXJMc2IwPgABMHZvdGVzX3JlamVjdO0DAWBCaXRWZWM8dTgsIEJpdE9yZGVyTHNiMD4AAQxhZ2UQATBTZXNzaW9uSW5kZXgAAShjcmVhdGVkX2F0EAEsQmxvY2tOdW1iZXIAARhjYXVzZXMFCwF8VmVjPFB2ZkNoZWNrQ2F1c2U8QmxvY2tOdW1iZXI+PgAABQsAAAIJCwAJCwxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzNFB2ZkNoZWNrQ2F1c2UELEJsb2NrTnVtYmVyARABCChPbmJvYXJkaW5nBABhAgEYUGFyYUlkAAAAHFVwZ3JhZGUMAQhpZGECARhQYXJhSWQAASxpbmNsdWRlZF9hdBABLEJsb2NrTnVtYmVyAAFAdXBncmFkZV9zdHJhdGVneQ0LATxVcGdyYWRlU3RyYXRlZ3kAAQAADQsMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhczxVcGdyYWRlU3RyYXRlZ3kAAQhAU2V0R29BaGVhZFNpZ25hbAAAAFBBcHBseUF0RXhwZWN0ZWRCbG9jawABAAARCwAAAhUEABULAAACYQIAGQsMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhczRQYXJhTGlmZWN5Y2xlAAEcKE9uYm9hcmRpbmcAAAAoUGFyYXRocmVhZAABACRQYXJhY2hhaW4AAgBMVXBncmFkaW5nUGFyYXRocmVhZAADAFBEb3duZ3JhZGluZ1BhcmFjaGFpbgAEAFRPZmZib2FyZGluZ1BhcmF0aHJlYWQABQBQT2ZmYm9hcmRpbmdQYXJhY2hhaW4ABgAAHQsAAAQIYQIQACELDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXNAUGFyYVBhc3RDb2RlTWV0YQQETgEQAAgBNHVwZ3JhZGVfdGltZXMlCwFgVmVjPFJlcGxhY2VtZW50VGltZXM8Tj4+AAEsbGFzdF9wcnVuZWQ9AgEkT3B0aW9uPE4+AAAlCwAAAikLACkLDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXNAUmVwbGFjZW1lbnRUaW1lcwQETgEQAAgBLGV4cGVjdGVkX2F0EAEETgABMGFjdGl2YXRlZF9hdBABBE4AAC0LAAACHQsAMQsMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg4VXBncmFkZUdvQWhlYWQAAQgUQWJvcnQAAAAcR29BaGVhZAABAAA1CwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OEhVcGdyYWRlUmVzdHJpY3Rpb24AAQQcUHJlc2VudAAAAAA5CxBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzGHBhbGxldBRFcnJvcgQEVAABNDROb3RSZWdpc3RlcmVkAAAElFBhcmEgaXMgbm90IHJlZ2lzdGVyZWQgaW4gb3VyIHN5c3RlbS40Q2Fubm90T25ib2FyZAABBBUBUGFyYSBjYW5ub3QgYmUgb25ib2FyZGVkIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSB0cmFja2VkIGJ5IG91ciBzeXN0ZW0uOENhbm5vdE9mZmJvYXJkAAIEnFBhcmEgY2Fubm90IGJlIG9mZmJvYXJkZWQgYXQgdGhpcyB0aW1lLjRDYW5ub3RVcGdyYWRlAAME1FBhcmEgY2Fubm90IGJlIHVwZ3JhZGVkIHRvIGEgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4uPENhbm5vdERvd25ncmFkZQAEBNBQYXJhIGNhbm5vdCBiZSBkb3duZ3JhZGVkIHRvIGFuIG9uLWRlbWFuZCBwYXJhY2hhaW4uWFB2ZkNoZWNrU3RhdGVtZW50U3RhbGUABQSwVGhlIHN0YXRlbWVudCBmb3IgUFZGIHByZS1jaGVja2luZyBpcyBzdGFsZS5cUHZmQ2hlY2tTdGF0ZW1lbnRGdXR1cmUABgTsVGhlIHN0YXRlbWVudCBmb3IgUFZGIHByZS1jaGVja2luZyBpcyBmb3IgYSBmdXR1cmUgc2Vzc2lvbi6EUHZmQ2hlY2tWYWxpZGF0b3JJbmRleE91dE9mQm91bmRzAAcEpENsYWltZWQgdmFsaWRhdG9yIGluZGV4IGlzIG91dCBvZiBib3VuZHMuYFB2ZkNoZWNrSW52YWxpZFNpZ25hdHVyZQAIBMhUaGUgc2lnbmF0dXJlIGZvciB0aGUgUFZGIHByZS1jaGVja2luZyBpcyBpbnZhbGlkLkhQdmZDaGVja0RvdWJsZVZvdGUACQSwVGhlIGdpdmVuIHZhbGlkYXRvciBhbHJlYWR5IGhhcyBjYXN0IGEgdm90ZS5YUHZmQ2hlY2tTdWJqZWN0SW52YWxpZAAKBPRUaGUgZ2l2ZW4gUFZGIGRvZXMgbm90IGV4aXN0IGF0IHRoZSBtb21lbnQgb2YgcHJvY2VzcyBhIHZvdGUuRENhbm5vdFVwZ3JhZGVDb2RlAAsEzFBhcmFjaGFpbiBjYW5ub3QgY3VycmVudGx5IHNjaGVkdWxlIGEgY29kZSB1cGdyYWRlLixJbnZhbGlkQ29kZQAMBHRJbnZhbGlkIHZhbGlkYXRpb24gY29kZSBzaXplLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC49CwAAAkELAEELDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMsaW5pdGlhbGl6ZXJUQnVmZmVyZWRTZXNzaW9uQ2hhbmdlAAAMASh2YWxpZGF0b3JzqQoBQFZlYzxWYWxpZGF0b3JJZD4AARhxdWV1ZWSpCgFAVmVjPFZhbGlkYXRvcklkPgABNHNlc3Npb25faW5kZXgQATBTZXNzaW9uSW5kZXgAAEULAAACSQsASQsIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc1hJbmJvdW5kRG93bndhcmRNZXNzYWdlBCxCbG9ja051bWJlcgEQAAgBHHNlbnRfYXQQASxCbG9ja051bWJlcgABDG1zZzgBPERvd253YXJkTWVzc2FnZQAATQsMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wWEhybXBPcGVuQ2hhbm5lbFJlcXVlc3QAABgBJGNvbmZpcm1lZCABEGJvb2wAARBfYWdlEAEwU2Vzc2lvbkluZGV4AAE4c2VuZGVyX2RlcG9zaXQYARxCYWxhbmNlAAFAbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgABMG1heF9jYXBhY2l0eRABDHUzMgABOG1heF90b3RhbF9zaXplEAEMdTMyAABRCwAAAnUEAFULDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMQaHJtcCxIcm1wQ2hhbm5lbAAAIAEwbWF4X2NhcGFjaXR5EAEMdTMyAAE4bWF4X3RvdGFsX3NpemUQAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplEAEMdTMyAAEkbXNnX2NvdW50EAEMdTMyAAEodG90YWxfc2l6ZRABDHUzMgABIG1xY19oZWFkcQIBME9wdGlvbjxIYXNoPgABOHNlbmRlcl9kZXBvc2l0GAEcQmFsYW5jZQABRHJlY2lwaWVudF9kZXBvc2l0GAEcQmFsYW5jZQAAWQsAAAJdCwBdCwhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBEAAIARxzZW50X2F0EAEsQmxvY2tOdW1iZXIAARBkYXRhOAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAAYQsAAAJlCwBlCwAABAgQFQsAaQsQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBRFcnJvcgQEVAABUFRPcGVuSHJtcENoYW5uZWxUb1NlbGYAAATEVGhlIHNlbmRlciB0cmllZCB0byBvcGVuIGEgY2hhbm5lbCB0byB0aGVtc2VsdmVzLnxPcGVuSHJtcENoYW5uZWxJbnZhbGlkUmVjaXBpZW50AAEEiFRoZSByZWNpcGllbnQgaXMgbm90IGEgdmFsaWQgcGFyYS5sT3BlbkhybXBDaGFubmVsWmVyb0NhcGFjaXR5AAIEfFRoZSByZXF1ZXN0ZWQgY2FwYWNpdHkgaXMgemVyby6MT3BlbkhybXBDaGFubmVsQ2FwYWNpdHlFeGNlZWRzTGltaXQAAwTAVGhlIHJlcXVlc3RlZCBjYXBhY2l0eSBleGNlZWRzIHRoZSBnbG9iYWwgbGltaXQueE9wZW5Icm1wQ2hhbm5lbFplcm9NZXNzYWdlU2l6ZQAEBKBUaGUgcmVxdWVzdGVkIG1heGltdW0gbWVzc2FnZSBzaXplIGlzIDAumE9wZW5Icm1wQ2hhbm5lbE1lc3NhZ2VTaXplRXhjZWVkc0xpbWl0AAUEKQFUaGUgb3BlbiByZXF1ZXN0IHJlcXVlc3RlZCB0aGUgbWVzc2FnZSBzaXplIHRoYXQgZXhjZWVkcyB0aGUgZ2xvYmFsIGxpbWl0LnBPcGVuSHJtcENoYW5uZWxBbHJlYWR5RXhpc3RzAAYEaFRoZSBjaGFubmVsIGFscmVhZHkgZXhpc3RzfE9wZW5Icm1wQ2hhbm5lbEFscmVhZHlSZXF1ZXN0ZWQABwTQVGhlcmUgaXMgYWxyZWFkeSBhIHJlcXVlc3QgdG8gb3BlbiB0aGUgc2FtZSBjaGFubmVsLnBPcGVuSHJtcENoYW5uZWxMaW1pdEV4Y2VlZGVkAAgEHQFUaGUgc2VuZGVyIGFscmVhZHkgaGFzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIG91dGJvdW5kIGNoYW5uZWxzLnBBY2NlcHRIcm1wQ2hhbm5lbERvZXNudEV4aXN0AAkE4FRoZSBjaGFubmVsIGZyb20gdGhlIHNlbmRlciB0byB0aGUgb3JpZ2luIGRvZXNuJ3QgZXhpc3QuhEFjY2VwdEhybXBDaGFubmVsQWxyZWFkeUNvbmZpcm1lZAAKBIRUaGUgY2hhbm5lbCBpcyBhbHJlYWR5IGNvbmZpcm1lZC54QWNjZXB0SHJtcENoYW5uZWxMaW1pdEV4Y2VlZGVkAAsEJQFUaGUgcmVjaXBpZW50IGFscmVhZHkgaGFzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGluYm91bmQgY2hhbm5lbHMucENsb3NlSHJtcENoYW5uZWxVbmF1dGhvcml6ZWQADARVAVRoZSBvcmlnaW4gdHJpZXMgdG8gY2xvc2UgYSBjaGFubmVsIHdoZXJlIGl0IGlzIG5laXRoZXIgdGhlIHNlbmRlciBub3IgdGhlIHJlY2lwaWVudC5sQ2xvc2VIcm1wQ2hhbm5lbERvZXNudEV4aXN0AA0EnFRoZSBjaGFubmVsIHRvIGJlIGNsb3NlZCBkb2Vzbid0IGV4aXN0LnxDbG9zZUhybXBDaGFubmVsQWxyZWFkeVVuZGVyd2F5AA4EvFRoZSBjaGFubmVsIGNsb3NlIHJlcXVlc3QgaXMgYWxyZWFkeSByZXF1ZXN0ZWQuhENhbmNlbEhybXBPcGVuQ2hhbm5lbFVuYXV0aG9yaXplZAAPBF0BQ2FuY2VsaW5nIGlzIHJlcXVlc3RlZCBieSBuZWl0aGVyIHRoZSBzZW5kZXIgbm9yIHJlY2lwaWVudCBvZiB0aGUgb3BlbiBjaGFubmVsIHJlcXVlc3QuaE9wZW5Icm1wQ2hhbm5lbERvZXNudEV4aXN0ABAEfFRoZSBvcGVuIHJlcXVlc3QgZG9lc24ndCBleGlzdC58T3BlbkhybXBDaGFubmVsQWxyZWFkeUNvbmZpcm1lZAARBC0BQ2Fubm90IGNhbmNlbCBhbiBIUk1QIG9wZW4gY2hhbm5lbCByZXF1ZXN0IGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBjb25maXJtZWQuMFdyb25nV2l0bmVzcwASBIxUaGUgcHJvdmlkZWQgd2l0bmVzcyBkYXRhIGlzIHdyb25nLnBDaGFubmVsQ3JlYXRpb25Ob3RBdXRob3JpemVkABME6FRoZSBjaGFubmVsIGJldHdlZW4gdGhlc2UgdHdvIGNoYWlucyBjYW5ub3QgYmUgYXV0aG9yaXplZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQubQsAAAL9AQBxCwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OCxTZXNzaW9uSW5mbwAANAFgYWN0aXZlX3ZhbGlkYXRvcl9pbmRpY2VzpQoBTFZlYzxWYWxpZGF0b3JJbmRleD4AASxyYW5kb21fc2VlZAQBIFt1ODsgMzJdAAE4ZGlzcHV0ZV9wZXJpb2QQATBTZXNzaW9uSW5kZXgAASh2YWxpZGF0b3JzdQsBnEluZGV4ZWRWZWM8VmFsaWRhdG9ySW5kZXgsIFZhbGlkYXRvcklkPgABOGRpc2NvdmVyeV9rZXlzZQgBZFZlYzxBdXRob3JpdHlEaXNjb3ZlcnlJZD4AATxhc3NpZ25tZW50X2tleXNtCwFEVmVjPEFzc2lnbm1lbnRJZD4AAUB2YWxpZGF0b3JfZ3JvdXBzeQsBrEluZGV4ZWRWZWM8R3JvdXBJbmRleCwgVmVjPFZhbGlkYXRvckluZGV4Pj4AARxuX2NvcmVzEAEMdTMyAAFoemVyb3RoX2RlbGF5X3RyYW5jaGVfd2lkdGgQAQx1MzIAAWByZWxheV92cmZfbW9kdWxvX3NhbXBsZXMQAQx1MzIAAUBuX2RlbGF5X3RyYW5jaGVzEAEMdTMyAAE0bm9fc2hvd19zbG90cxABDHUzMgABQG5lZWRlZF9hcHByb3ZhbHMQAQx1MzIAAHULDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4KEluZGV4ZWRWZWMIBEsB9QMEVgH5AQAEAKkKARhWZWM8Vj4AAHkLDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4KEluZGV4ZWRWZWMIBEsB9QYEVgGlCgAEAN0KARhWZWM8Vj4AAH0LAAAECBBJBACBCwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODBEaXNwdXRlU3RhdGUEBE4BEAAQATh2YWxpZGF0b3JzX2Zvcu0DAXxCaXRWZWM8dTgsIGJpdHZlYzo6b3JkZXI6OkxzYjA+AAFIdmFsaWRhdG9yc19hZ2FpbnN07QMBfEJpdFZlYzx1OCwgYml0dmVjOjpvcmRlcjo6THNiMD4AARRzdGFydBABBE4AATBjb25jbHVkZWRfYXQ9AgEkT3B0aW9uPE4+AACFCwQgQlRyZWVTZXQEBFQB9QMABAClCgAAAIkLEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXMYcGFsbGV0FEVycm9yBARUAAEkdER1cGxpY2F0ZURpc3B1dGVTdGF0ZW1lbnRTZXRzAAAEqER1cGxpY2F0ZSBkaXNwdXRlIHN0YXRlbWVudCBzZXRzIHByb3ZpZGVkLlxBbmNpZW50RGlzcHV0ZVN0YXRlbWVudAABBIxBbmNpZW50IGRpc3B1dGUgc3RhdGVtZW50IHByb3ZpZGVkLmRWYWxpZGF0b3JJbmRleE91dE9mQm91bmRzAAIE6FZhbGlkYXRvciBpbmRleCBvbiBzdGF0ZW1lbnQgaXMgb3V0IG9mIGJvdW5kcyBmb3Igc2Vzc2lvbi5ASW52YWxpZFNpZ25hdHVyZQADBHxJbnZhbGlkIHNpZ25hdHVyZSBvbiBzdGF0ZW1lbnQuSER1cGxpY2F0ZVN0YXRlbWVudAAEBMxWYWxpZGF0b3Igdm90ZSBzdWJtaXR0ZWQgbW9yZSB0aGFuIG9uY2UgdG8gZGlzcHV0ZS5IU2luZ2xlU2lkZWREaXNwdXRlAAUExEEgZGlzcHV0ZSB3aGVyZSB0aGVyZSBhcmUgb25seSB2b3RlcyBvbiBvbmUgc2lkZS48TWFsaWNpb3VzQmFja2VyAAYEnEEgZGlzcHV0ZSB2b3RlIGZyb20gYSBtYWxpY2lvdXMgYmFja2VyLkxNaXNzaW5nQmFja2luZ1ZvdGVzAAcE4E5vIGJhY2tpbmcgdm90ZXMgd2VyZSBwcm92aWRlcyBhbG9uZyBkaXNwdXRlIHN0YXRlbWVudHMuSFVuY29uZmlybWVkRGlzcHV0ZQAIBLBVbmNvbmZpcm1lZCBkaXNwdXRlIHN0YXRlbWVudCBzZXRzIHByb3ZpZGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6NCxBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OCBzbGFzaGluZzhQZW5kaW5nU2xhc2hlcwAACAEQa2V5c5ELAZRCVHJlZU1hcDxWYWxpZGF0b3JJbmRleCwgVmFsaWRhdG9ySWQ+AAEQa2luZIkEAUxTbGFzaGluZ09mZmVuY2VLaW5kAACRCwQgQlRyZWVNYXAIBEsB9QMEVgH5AQAEAJULAAAAlQsAAAKZCwCZCwAABAj1A/kBAJ0LFGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXMgc2xhc2hpbmcYcGFsbGV0FEVycm9yBARUAAEYYEludmFsaWRLZXlPd25lcnNoaXBQcm9vZgAABIxUaGUga2V5IG93bmVyc2hpcCBwcm9vZiBpcyBpbnZhbGlkLkxJbnZhbGlkU2Vzc2lvbkluZGV4AAEEoFRoZSBzZXNzaW9uIGluZGV4IGlzIHRvbyBvbGQgb3IgaW52YWxpZC5QSW52YWxpZENhbmRpZGF0ZUhhc2gAAgR4VGhlIGNhbmRpZGF0ZSBoYXNoIGlzIGludmFsaWQuVEludmFsaWRWYWxpZGF0b3JJbmRleAADCAEBVGhlcmUgaXMgbm8gcGVuZGluZyBzbGFzaCBmb3IgdGhlIGdpdmVuIHZhbGlkYXRvciBpbmRleCBhbmQgdGltZRRzbG90LmBWYWxpZGF0b3JJbmRleElkTWlzbWF0Y2gABATQVGhlIHZhbGlkYXRvciBpbmRleCBkb2VzIG5vdCBtYXRjaCB0aGUgdmFsaWRhdG9yIGlkLlxEdXBsaWNhdGVTbGFzaGluZ1JlcG9ydAAFBA0BVGhlIGdpdmVuIHNsYXNoaW5nIHJlcG9ydCBpcyB2YWxpZCBidXQgYWxyZWFkeSBwcmV2aW91c2x5IHJlcG9ydGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6hCwhQcGFsbGV0X21lc3NhZ2VfcXVldWUkQm9va1N0YXRlBDRNZXNzYWdlT3JpZ2luAZEEABgBFGJlZ2luEAEkUGFnZUluZGV4AAEMZW5kEAEkUGFnZUluZGV4AAEUY291bnQQASRQYWdlSW5kZXgAAUByZWFkeV9uZWlnaGJvdXJzpQsBhE9wdGlvbjxOZWlnaGJvdXJzPE1lc3NhZ2VPcmlnaW4+PgABNG1lc3NhZ2VfY291bnQwAQx1NjQAARBzaXplMAEMdTY0AAClCwQYT3B0aW9uBARUAakLAQgQTm9uZQAAABBTb21lBACpCwAAAQAAqQsIUHBhbGxldF9tZXNzYWdlX3F1ZXVlKE5laWdoYm91cnMENE1lc3NhZ2VPcmlnaW4BkQQACAEQcHJldpEEATRNZXNzYWdlT3JpZ2luAAEQbmV4dJEEATRNZXNzYWdlT3JpZ2luAACtCwAABAiRBBAAsQsIUHBhbGxldF9tZXNzYWdlX3F1ZXVlEFBhZ2UIEFNpemUBECBIZWFwU2l6ZQAAGAEkcmVtYWluaW5nEAEQU2l6ZQABOHJlbWFpbmluZ19zaXplEAEQU2l6ZQABLGZpcnN0X2luZGV4EAEQU2l6ZQABFGZpcnN0EAEQU2l6ZQABEGxhc3QQARBTaXplAAEQaGVhcLULAZxCb3VuZGVkVmVjPHU4LCBJbnRvVTMyPEhlYXBTaXplLCBTaXplPj4AALULDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAuQsMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABJCxOb3RSZWFwYWJsZQAACEkBUGFnZSBpcyBub3QgcmVhcGFibGUgYmVjYXVzZSBpdCBoYXMgaXRlbXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBhbmQgaXMgbm90IG9sZBxlbm91Z2guGE5vUGFnZQABBIRQYWdlIHRvIGJlIHJlYXBlZCBkb2VzIG5vdCBleGlzdC4kTm9NZXNzYWdlAAIEqFRoZSByZWZlcmVuY2VkIG1lc3NhZ2UgY291bGQgbm90IGJlIGZvdW5kLkBBbHJlYWR5UHJvY2Vzc2VkAAMEAQFUaGUgbWVzc2FnZSB3YXMgYWxyZWFkeSBwcm9jZXNzZWQgYW5kIGNhbm5vdCBiZSBwcm9jZXNzZWQgYWdhaW4uGFF1ZXVlZAAEBKxUaGUgbWVzc2FnZSBpcyBxdWV1ZWQgZm9yIGZ1dHVyZSBleGVjdXRpb24uSEluc3VmZmljaWVudFdlaWdodAAFBBkBVGhlcmUgaXMgdGVtcG9yYXJpbHkgbm90IGVub3VnaCB3ZWlnaHQgdG8gY29udGludWUgc2VydmljaW5nIG1lc3NhZ2VzLmBUZW1wb3JhcmlseVVucHJvY2Vzc2FibGUABhCoVGhpcyBtZXNzYWdlIGlzIHRlbXBvcmFyaWx5IHVucHJvY2Vzc2FibGUuAFkBU3VjaCBlcnJvcnMgYXJlIGV4cGVjdGVkLCBidXQgbm90IGd1YXJhbnRlZWQsIHRvIHJlc29sdmUgdGhlbXNlbHZlcyBldmVudHVhbGx5IHRocm91Z2gkcmV0cnlpbmcuLFF1ZXVlUGF1c2VkAAcM7FRoZSBxdWV1ZSBpcyBwYXVzZWQgYW5kIG5vIG1lc3NhZ2UgY2FuIGJlIGV4ZWN1dGVkIGZyb20gaXQuAB0BVGhpcyBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGFuZCBtYXkgcmVzb2x2ZSBpbiB0aGUgZnV0dXJlIGJ5IHJlLXRyeWluZy5MUmVjdXJzaXZlRGlzYWxsb3dlZAAIBDEBQW5vdGhlciBjYWxsIGlzIGluIHByb2dyZXNzIGFuZCBuZWVkcyB0byBmaW5pc2ggYmVmb3JlIHRoaXMgY2FsbCBjYW4gaGFwcGVuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC69CxBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJG9uX2RlbWFuZBR0eXBlc0RDb3JlQWZmaW5pdHlDb3VudAAACAEoY29yZV9pbmRlePEGASRDb3JlSW5kZXgAARRjb3VudBABDHUzMgAAwQsQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRvbl9kZW1hbmQUdHlwZXM8UXVldWVTdGF0dXNUeXBlAAAQARx0cmFmZmljlQMBJEZpeGVkVTEyOAABKG5leHRfaW5kZXjFCwEoUXVldWVJbmRleAABOHNtYWxsZXN0X2luZGV4xQsBKFF1ZXVlSW5kZXgAATRmcmVlZF9pbmRpY2VzyQsBdEJpbmFyeUhlYXA8UmV2ZXJzZVF1ZXVlSW5kZXg+AADFCxBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJG9uX2RlbWFuZBR0eXBlcyhRdWV1ZUluZGV4AAAEABABDHUzMgAAyQsEKEJpbmFyeUhlYXAEBFQBzQsABADRCwAAAM0LEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkb25fZGVtYW5kFHR5cGVzRFJldmVyc2VRdWV1ZUluZGV4AAAEABABDHUzMgAA0QsAAALNCwDVCwQoQmluYXJ5SGVhcAQEVAHZCwAEAN0LAAAA2QsQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRvbl9kZW1hbmQUdHlwZXM0RW5xdWV1ZWRPcmRlcgAACAEccGFyYV9pZGECARhQYXJhSWQAAQxpZHjFCwEoUXVldWVJbmRleAAA3QsAAALZCwDhCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARgEUwAABADlCwEYVmVjPFQ+AADlCwAAAhgA6QsQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRvbl9kZW1hbmQYcGFsbGV0FEVycm9yBARUAAEIJFF1ZXVlRnVsbAAABORUaGUgb3JkZXIgcXVldWUgaXMgZnVsbCwgYHBsYWNlX29yZGVyYCB3aWxsIG5vdCBjb250aW51ZS5wU3BvdFByaWNlSGlnaGVyVGhhbk1heEFtb3VudAABCE0BVGhlIGN1cnJlbnQgc3BvdCBwcmljZSBpcyBoaWdoZXIgdGhhbiB0aGUgbWF4IGFtb3VudCBzcGVjaWZpZWQgaW4gdGhlIGBwbGFjZV9vcmRlcmBgY2FsbCwgbWFraW5nIGl0IGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lu0LAAAECBDxBgDxCwxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zRGFzc2lnbmVyX2NvcmV0aW1lIFNjaGVkdWxlBAROARAADAEsYXNzaWdubWVudHO9BAGMVmVjPChDb3JlQXNzaWdubWVudCwgUGFydHNPZjU3NjAwKT4AASBlbmRfaGludD0CASRPcHRpb248Tj4AATRuZXh0X3NjaGVkdWxlPQIBJE9wdGlvbjxOPgAA9QsMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZThDb3JlRGVzY3JpcHRvcgQETgEQAAgBFHF1ZXVl+QsBaE9wdGlvbjxRdWV1ZURlc2NyaXB0b3I8Tj4+AAEwY3VycmVudF93b3JrAQwBUE9wdGlvbjxXb3JrU3RhdGU8Tj4+AAD5CwQYT3B0aW9uBARUAf0LAQgQTm9uZQAAABBTb21lBAD9CwAAAQAA/QsMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZTxRdWV1ZURlc2NyaXB0b3IEBE4BEAAIARRmaXJzdBABBE4AARBsYXN0EAEETgAAAQwEGE9wdGlvbgQEVAEFDAEIEE5vbmUAAAAQU29tZQQABQwAAAEAAAUMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNEYXNzaWduZXJfY29yZXRpbWUkV29ya1N0YXRlBAROARAAEAEsYXNzaWdubWVudHMJDAGYVmVjPChDb3JlQXNzaWdubWVudCwgQXNzaWdubWVudFN0YXRlKT4AASBlbmRfaGludD0CASRPcHRpb248Tj4AAQxwb3N5AQEMdTE2AAEQc3RlcMkEATBQYXJ0c09mNTc2MDAAAAkMAAACDQwADQwAAAQIxQQRDAARDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zRGFzc2lnbmVyX2NvcmV0aW1lPEFzc2lnbm1lbnRTdGF0ZQAACAEUcmF0aW/JBAEwUGFydHNPZjU3NjAwAAEkcmVtYWluaW5nyQQBMFBhcnRzT2Y1NzYwMAAAFQwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZRhwYWxsZXQURXJyb3IEBFQAARhAQXNzaWdubWVudHNFbXB0eQAAADRPdmVyU2NoZWR1bGVkAAEEkEFzc2lnbm1lbnRzIHRvZ2V0aGVyIGV4Y2VlZGVkIDU3NjAwLjhVbmRlclNjaGVkdWxlZAACBJBBc3NpZ25tZW50cyB0b2dldGhlciBsZXNzIHRoYW4gNTc2MDBARGlzYWxsb3dlZEluc2VydAADCFEBYXNzaWduX2NvcmUgaXMgb25seSBhbGxvd2VkIHRvIGFwcGVuZCBuZXcgYXNzaWdubWVudHMgYXQgdGhlIGVuZCBvZiBhbHJlYWR5IGV4aXN0aW5nFG9uZXMuPER1cGxpY2F0ZUluc2VydAAEBFUBVHJpZWQgdG8gaW5zZXJ0IGEgc2NoZWR1bGUgZm9yIHRoZSBzYW1lIGNvcmUgYW5kIGJsb2NrIG51bWJlciBhcyBhbiBleGlzdGluZyBzY2hlZHVsZVBBc3NpZ25tZW50c05vdFNvcnRlZAAFBKxUcmllZCB0byBhZGQgYW4gdW5zb3J0ZWQgc2V0IG9mIGFzc2lnbm1lbnRzBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LhkMDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjxwYXJhc19yZWdpc3RyYXIgUGFyYUluZm8IHEFjY291bnQBABxCYWxhbmNlARgADAEcbWFuYWdlcgABHEFjY291bnQAARxkZXBvc2l0GAEcQmFsYW5jZQABGGxvY2tlZB0MATBPcHRpb248Ym9vbD4AAB0MBBhPcHRpb24EBFQBIAEIEE5vbmUAAAAQU29tZQQAIAAAAQAAIQwQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uPHBhcmFzX3JlZ2lzdHJhchhwYWxsZXQURXJyb3IEBFQAATg0Tm90UmVnaXN0ZXJlZAAABGRUaGUgSUQgaXMgbm90IHJlZ2lzdGVyZWQuREFscmVhZHlSZWdpc3RlcmVkAAEEdFRoZSBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuIE5vdE93bmVyAAIEnFRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvZiB0aGlzIElkLjBDb2RlVG9vTGFyZ2UAAwRcSW52YWxpZCBwYXJhIGNvZGUgc2l6ZS5ASGVhZERhdGFUb29MYXJnZQAEBHBJbnZhbGlkIHBhcmEgaGVhZCBkYXRhIHNpemUuME5vdFBhcmFjaGFpbgAFBGBQYXJhIGlzIG5vdCBhIFBhcmFjaGFpbi40Tm90UGFyYXRocmVhZAAGBLxQYXJhIGlzIG5vdCBhIFBhcmF0aHJlYWQgKG9uLWRlbWFuZCBwYXJhY2hhaW4pLkBDYW5ub3REZXJlZ2lzdGVyAAcEWENhbm5vdCBkZXJlZ2lzdGVyIHBhcmE8Q2Fubm90RG93bmdyYWRlAAgELQFDYW5ub3Qgc2NoZWR1bGUgZG93bmdyYWRlIG9mIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluIHRvIG9uLWRlbWFuZCBwYXJhY2hhaW40Q2Fubm90VXBncmFkZQAJBCUBQ2Fubm90IHNjaGVkdWxlIHVwZ3JhZGUgb2Ygb24tZGVtYW5kIHBhcmFjaGFpbiB0byBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbihQYXJhTG9ja2VkAAoISQFQYXJhIGlzIGxvY2tlZCBmcm9tIG1hbmlwdWxhdGlvbiBieSB0aGUgbWFuYWdlci4gTXVzdCB1c2UgcGFyYWNoYWluIG9yIHJlbGF5IGNoYWluLGdvdmVybmFuY2UuLE5vdFJlc2VydmVkAAsE0FRoZSBJRCBnaXZlbiBmb3IgcmVnaXN0cmF0aW9uIGhhcyBub3QgYmVlbiByZXNlcnZlZC4sSW52YWxpZENvZGUADAR8VGhlIHZhbGlkYXRpb24gY29kZSBpcyBpbnZhbGlkLihDYW5ub3RTd2FwAA0IUQFDYW5ub3QgcGVyZm9ybSBhIHBhcmFjaGFpbiBzbG90IC8gbGlmZWN5Y2xlIHN3YXAuIENoZWNrIHRoYXQgdGhlIHN0YXRlIG9mIGJvdGggcGFyYXOEYXJlIGNvcnJlY3QgZm9yIHRoZSBzd2FwIHRvIHdvcmsuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiUMAAACLQoAKQwQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uFHNsb3RzGHBhbGxldBRFcnJvcgQEVAABCERQYXJhTm90T25ib2FyZGluZwAABIxUaGUgcGFyYWNoYWluIElEIGlzIG5vdCBvbmJvYXJkaW5nLihMZWFzZUVycm9yAAEEiFRoZXJlIHdhcyBhbiBlcnJvciB3aXRoIHRoZSBsZWFzZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuLQwAAAQIAGECADEMAAADJAAAADUMADUMBBhPcHRpb24EBFQBOQwBCBBOb25lAAAAEFNvbWUEADkMAAABAAA5DAAABAwAYQIYAD0MEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiBhdWN0aW9ucxhwYWxsZXQURXJyb3IEBFQAARxEQXVjdGlvbkluUHJvZ3Jlc3MAAASQVGhpcyBhdWN0aW9uIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MuRExlYXNlUGVyaW9kSW5QYXN0AAEEgFRoZSBsZWFzZSBwZXJpb2QgaXMgaW4gdGhlIHBhc3QuRFBhcmFOb3RSZWdpc3RlcmVkAAIEWFBhcmEgaXMgbm90IHJlZ2lzdGVyZWRETm90Q3VycmVudEF1Y3Rpb24AAwRYTm90IGEgY3VycmVudCBhdWN0aW9uLihOb3RBdWN0aW9uAAQEPE5vdCBhbiBhdWN0aW9uLjBBdWN0aW9uRW5kZWQABQRoQXVjdGlvbiBoYXMgYWxyZWFkeSBlbmRlZC5AQWxyZWFkeUxlYXNlZE91dAAGBNhUaGUgcGFyYSBpcyBhbHJlYWR5IGxlYXNlZCBvdXQgZm9yIHBhcnQgb2YgdGhpcyByYW5nZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuQQwMXHBvbGthZG90X3J1bnRpbWVfY29tbW9uJGNyb3dkbG9hbiBGdW5kSW5mbxAkQWNjb3VudElkAQAcQmFsYW5jZQEYLEJsb2NrTnVtYmVyARAsTGVhc2VQZXJpb2QBEAAoASRkZXBvc2l0b3IAASRBY2NvdW50SWQAASB2ZXJpZmllcrEEAUxPcHRpb248TXVsdGlTaWduZXI+AAEcZGVwb3NpdBgBHEJhbGFuY2UAARhyYWlzZWQYARxCYWxhbmNlAAEMZW5kEAEsQmxvY2tOdW1iZXIAAQxjYXAYARxCYWxhbmNlAAFEbGFzdF9jb250cmlidXRpb25FDAF0TGFzdENvbnRyaWJ1dGlvbjxCbG9ja051bWJlcj4AATBmaXJzdF9wZXJpb2QQASxMZWFzZVBlcmlvZAABLGxhc3RfcGVyaW9kEAEsTGVhc2VQZXJpb2QAAShmdW5kX2luZGV4EAEkRnVuZEluZGV4AABFDAxccG9sa2Fkb3RfcnVudGltZV9jb21tb24kY3Jvd2Rsb2FuQExhc3RDb250cmlidXRpb24ELEJsb2NrTnVtYmVyARABDBROZXZlcgAAACRQcmVFbmRpbmcEABABDHUzMgABABhFbmRpbmcEABABLEJsb2NrTnVtYmVyAAIAAEkMEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4YcGFsbGV0FEVycm9yBARUAAFcREZpcnN0UGVyaW9kSW5QYXN0AAAE9FRoZSBjdXJyZW50IGxlYXNlIHBlcmlvZCBpcyBtb3JlIHRoYW4gdGhlIGZpcnN0IGxlYXNlIHBlcmlvZC5kRmlyc3RQZXJpb2RUb29GYXJJbkZ1dHVyZQABBBEBVGhlIGZpcnN0IGxlYXNlIHBlcmlvZCBuZWVkcyB0byBhdCBsZWFzdCBiZSBsZXNzIHRoYW4gMyBgbWF4X3ZhbHVlYC5sTGFzdFBlcmlvZEJlZm9yZUZpcnN0UGVyaW9kAAIE6Exhc3QgbGVhc2UgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIGZpcnN0IGxlYXNlIHBlcmlvZC5gTGFzdFBlcmlvZFRvb0ZhckluRnV0dXJlAAMELQFUaGUgbGFzdCBsZWFzZSBwZXJpb2QgY2Fubm90IGJlIG1vcmUgdGhhbiAzIHBlcmlvZHMgYWZ0ZXIgdGhlIGZpcnN0IHBlcmlvZC48Q2Fubm90RW5kSW5QYXN0AAQERQFUaGUgY2FtcGFpZ24gZW5kcyBiZWZvcmUgdGhlIGN1cnJlbnQgYmxvY2sgbnVtYmVyLiBUaGUgZW5kIG11c3QgYmUgaW4gdGhlIGZ1dHVyZS5ERW5kVG9vRmFySW5GdXR1cmUABQTAVGhlIGVuZCBkYXRlIGZvciB0aGlzIGNyb3dkbG9hbiBpcyBub3Qgc2Vuc2libGUuIE92ZXJmbG93AAYEWFRoZXJlIHdhcyBhbiBvdmVyZmxvdy5QQ29udHJpYnV0aW9uVG9vU21hbGwABwToVGhlIGNvbnRyaWJ1dGlvbiB3YXMgYmVsb3cgdGhlIG1pbmltdW0sIGBNaW5Db250cmlidXRpb25gLjRJbnZhbGlkUGFyYUlkAAgETEludmFsaWQgZnVuZCBpbmRleC4sQ2FwRXhjZWVkZWQACQSQQ29udHJpYnV0aW9ucyBleGNlZWQgbWF4aW11bSBhbW91bnQuWENvbnRyaWJ1dGlvblBlcmlvZE92ZXIACgSoVGhlIGNvbnRyaWJ1dGlvbiBwZXJpb2QgaGFzIGFscmVhZHkgZW5kZWQuNEludmFsaWRPcmlnaW4ACwSMVGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwgaXMgaW52YWxpZC4wTm90UGFyYWNoYWluAAwEyFRoaXMgY3Jvd2Rsb2FuIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBwYXJhY2hhaW4uLExlYXNlQWN0aXZlAA0EFQFUaGlzIHBhcmFjaGFpbiBsZWFzZSBpcyBzdGlsbCBhY3RpdmUgYW5kIHJldGlyZW1lbnQgY2Fubm90IHlldCBiZWdpbi5AQmlkT3JMZWFzZUFjdGl2ZQAOBDEBVGhpcyBwYXJhY2hhaW4ncyBiaWQgb3IgbGVhc2UgaXMgc3RpbGwgYWN0aXZlIGFuZCB3aXRoZHJhdyBjYW5ub3QgeWV0IGJlZ2luLjBGdW5kTm90RW5kZWQADwSAVGhlIGNyb3dkbG9hbiBoYXMgbm90IHlldCBlbmRlZC48Tm9Db250cmlidXRpb25zABAE0FRoZXJlIGFyZSBubyBjb250cmlidXRpb25zIHN0b3JlZCBpbiB0aGlzIGNyb3dkbG9hbi5ITm90UmVhZHlUb0Rpc3NvbHZlABEIVQFUaGUgY3Jvd2Rsb2FuIGlzIG5vdCByZWFkeSB0byBkaXNzb2x2ZS4gUG90ZW50aWFsbHkgc3RpbGwgaGFzIGEgc2xvdCBvciBpbiByZXRpcmVtZW50HHBlcmlvZC5ASW52YWxpZFNpZ25hdHVyZQASBEhJbnZhbGlkIHNpZ25hdHVyZS4wTWVtb1Rvb0xhcmdlABMEfFRoZSBwcm92aWRlZCBtZW1vIGlzIHRvbyBsYXJnZS5EQWxyZWFkeUluTmV3UmFpc2UAFASEVGhlIGZ1bmQgaXMgYWxyZWFkeSBpbiBgTmV3UmFpc2VgSFZyZkRlbGF5SW5Qcm9ncmVzcwAVBLRObyBjb250cmlidXRpb25zIGFsbG93ZWQgZHVyaW5nIHRoZSBWUkYgZGVsYXk0Tm9MZWFzZVBlcmlvZAAWBC0BQSBsZWFzZSBwZXJpb2QgaGFzIG5vdCBzdGFydGVkIHlldCwgZHVlIHRvIGFuIG9mZnNldCBpbiB0aGUgc3RhcnRpbmcgYmxvY2suBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lk0MEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgY29yZXRpbWUYcGFsbGV0FEVycm9yBARUAAEMJE5vdEJyb2tlcgAABCkBVGhlIHBhcmFpZCBtYWtpbmcgdGhlIGNhbGwgaXMgbm90IHRoZSBjb3JldGltZSBicm9rZXJhZ2Ugc3lzdGVtIHBhcmFjaGFpbi5YUmVxdWVzdGVkRnV0dXJlUmV2ZW51ZQABCEUBUmVxdWVzdGVkIHJldmVudWUgaW5mb3JtYXRpb24gYHdoZW5gIHBhcmFtZXRlciB3YXMgaW4gdGhlIGZ1dHVyZSBmcm9tIHRoZSBjdXJyZW50NGJsb2NrIGhlaWdodC5MQXNzZXRUcmFuc2ZlckZhaWxlZAACBLxGYWlsZWQgdG8gdHJhbnNmZXIgYXNzZXRzIHRvIHRoZSBjb3JldGltZSBjaGFpbgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5RDAwocGFsbGV0X3hjbRhwYWxsZXQsUXVlcnlTdGF0dXMELEJsb2NrTnVtYmVyARABDBxQZW5kaW5nEAEkcmVzcG9uZGVySQEBRFZlcnNpb25lZExvY2F0aW9uAAFMbWF5YmVfbWF0Y2hfcXVlcmllclUMAWRPcHRpb248VmVyc2lvbmVkTG9jYXRpb24+AAEwbWF5YmVfbm90aWZ5WQwBQE9wdGlvbjwodTgsIHU4KT4AARx0aW1lb3V0EAEsQmxvY2tOdW1iZXIAAAA8VmVyc2lvbk5vdGlmaWVyCAEYb3JpZ2luSQEBRFZlcnNpb25lZExvY2F0aW9uAAEkaXNfYWN0aXZlIAEQYm9vbAABABRSZWFkeQgBIHJlc3BvbnNlYQwBRFZlcnNpb25lZFJlc3BvbnNlAAEIYXQQASxCbG9ja051bWJlcgACAABVDAQYT3B0aW9uBARUAUkBAQgQTm9uZQAAABBTb21lBABJAQAAAQAAWQwEGE9wdGlvbgQEVAFdDAEIEE5vbmUAAAAQU29tZQQAXQwAAAEAAF0MAAAECAgIAGEMCAx4Y21EVmVyc2lvbmVkUmVzcG9uc2UAAQwIVjIEAPkEATB2Mjo6UmVzcG9uc2UAAgAIVjMEAEEFATB2Mzo6UmVzcG9uc2UAAwAIVjQEAKUFATB2NDo6UmVzcG9uc2UABAAAZQwAAAQIEEkBAGkMAAAEDDAoEABtDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAXEMBFMAAAQAdQwBGFZlYzxUPgAAcQwAAAQISQEQAHUMAAACcQwAeQwMKHBhbGxldF94Y20YcGFsbGV0VFZlcnNpb25NaWdyYXRpb25TdGFnZQABEFxNaWdyYXRlU3VwcG9ydGVkVmVyc2lvbgAAAFxNaWdyYXRlVmVyc2lvbk5vdGlmaWVycwABAFBOb3RpZnlDdXJyZW50VGFyZ2V0cwQAfQwBPE9wdGlvbjxWZWM8dTg+PgACAGhNaWdyYXRlQW5kTm90aWZ5T2xkVGFyZ2V0cwADAAB9DAQYT3B0aW9uBARUATgBCBBOb25lAAAAEFNvbWUEADgAAAEAAIEMAAAEDBAAAQYAhQwMKHBhbGxldF94Y20YcGFsbGV0aFJlbW90ZUxvY2tlZEZ1bmdpYmxlUmVjb3JkCEhDb25zdW1lcklkZW50aWZpZXIBxQEwTWF4Q29uc3VtZXJzAAAQARhhbW91bnQYARB1MTI4AAEUb3duZXJJAQFEVmVyc2lvbmVkTG9jYXRpb24AARhsb2NrZXJJAQFEVmVyc2lvbmVkTG9jYXRpb24AASRjb25zdW1lcnOJDAHQQm91bmRlZFZlYzwoQ29uc3VtZXJJZGVudGlmaWVyLCB1MTI4KSwgTWF4Q29uc3VtZXJzPgAAiQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGNDARTAAAEAJEMARhWZWM8VD4AAI0MAAAECMUBGACRDAAAAo0MAJUMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBmQwEUwAABACdDAEYVmVjPFQ+AACZDAAABAgYSQEAnQwAAAKZDAChDAwocGFsbGV0X3hjbRhwYWxsZXQURXJyb3IEBFQAAWAsVW5yZWFjaGFibGUAAAhdAVRoZSBkZXNpcmVkIGRlc3RpbmF0aW9uIHdhcyB1bnJlYWNoYWJsZSwgZ2VuZXJhbGx5IGJlY2F1c2UgdGhlcmUgaXMgYSBubyB3YXkgb2Ygcm91dGluZxh0byBpdC4sU2VuZEZhaWx1cmUAAQhBAVRoZXJlIHdhcyBzb21lIG90aGVyIGlzc3VlIChpLmUuIG5vdCB0byBkbyB3aXRoIHJvdXRpbmcpIGluIHNlbmRpbmcgdGhlIG1lc3NhZ2UuyFBlcmhhcHMgYSBsYWNrIG9mIHNwYWNlIGZvciBidWZmZXJpbmcgdGhlIG1lc3NhZ2UuIEZpbHRlcmVkAAIEnFRoZSBtZXNzYWdlIGV4ZWN1dGlvbiBmYWlscyB0aGUgZmlsdGVyLkhVbndlaWdoYWJsZU1lc3NhZ2UAAwS0VGhlIG1lc3NhZ2UncyB3ZWlnaHQgY291bGQgbm90IGJlIGRldGVybWluZWQuYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQAEBNxUaGUgZGVzdGluYXRpb24gYExvY2F0aW9uYCBwcm92aWRlZCBjYW5ub3QgYmUgaW52ZXJ0ZWQuFEVtcHR5AAUEgFRoZSBhc3NldHMgdG8gYmUgc2VudCBhcmUgZW1wdHkuOENhbm5vdFJlYW5jaG9yAAYENQFDb3VsZCBub3QgcmUtYW5jaG9yIHRoZSBhc3NldHMgdG8gZGVjbGFyZSB0aGUgZmVlcyBmb3IgdGhlIGRlc3RpbmF0aW9uIGNoYWluLjRUb29NYW55QXNzZXRzAAcExFRvbyBtYW55IGFzc2V0cyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci40SW52YWxpZE9yaWdpbgAIBHhPcmlnaW4gaXMgaW52YWxpZCBmb3Igc2VuZGluZy4oQmFkVmVyc2lvbgAJBCEBVGhlIHZlcnNpb24gb2YgdGhlIGBWZXJzaW9uZWRgIHZhbHVlIHVzZWQgaXMgbm90IGFibGUgdG8gYmUgaW50ZXJwcmV0ZWQuLEJhZExvY2F0aW9uAAoIQQFUaGUgZ2l2ZW4gbG9jYXRpb24gY291bGQgbm90IGJlIHVzZWQgKGUuZy4gYmVjYXVzZSBpdCBjYW5ub3QgYmUgZXhwcmVzc2VkIGluIHRoZWBkZXNpcmVkIHZlcnNpb24gb2YgWENNKS44Tm9TdWJzY3JpcHRpb24ACwS8VGhlIHJlZmVyZW5jZWQgc3Vic2NyaXB0aW9uIGNvdWxkIG5vdCBiZSBmb3VuZC5EQWxyZWFkeVN1YnNjcmliZWQADAQRAVRoZSBsb2NhdGlvbiBpcyBpbnZhbGlkIHNpbmNlIGl0IGFscmVhZHkgaGFzIGEgc3Vic2NyaXB0aW9uIGZyb20gdXMuWENhbm5vdENoZWNrT3V0VGVsZXBvcnQADQQpAUNvdWxkIG5vdCBjaGVjay1vdXQgdGhlIGFzc2V0cyBmb3IgdGVsZXBvcnRhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4uKExvd0JhbGFuY2UADgRBAVRoZSBvd25lciBkb2VzIG5vdCBvd24gKGFsbCkgb2YgdGhlIGFzc2V0IHRoYXQgdGhleSB3aXNoIHRvIGRvIHRoZSBvcGVyYXRpb24gb24uMFRvb01hbnlMb2NrcwAPBMBUaGUgYXNzZXQgb3duZXIgaGFzIHRvbyBtYW55IGxvY2tzIG9uIHRoZSBhc3NldC5MQWNjb3VudE5vdFNvdmVyZWlnbgAQBDEBVGhlIGdpdmVuIGFjY291bnQgaXMgbm90IGFuIGlkZW50aWZpYWJsZSBzb3ZlcmVpZ24gYWNjb3VudCBmb3IgYW55IGxvY2F0aW9uLihGZWVzTm90TWV0ABEEKQFUaGUgb3BlcmF0aW9uIHJlcXVpcmVkIGZlZXMgdG8gYmUgcGFpZCB3aGljaCB0aGUgaW5pdGlhdG9yIGNvdWxkIG5vdCBtZWV0LjBMb2NrTm90Rm91bmQAEgT0QSByZW1vdGUgbG9jayB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGRhdGEgY291bGQgbm90IGJlIGZvdW5kLhRJblVzZQATBEkBVGhlIHVubG9jayBvcGVyYXRpb24gY2Fubm90IHN1Y2NlZWQgYmVjYXVzZSB0aGVyZSBhcmUgc3RpbGwgY29uc3VtZXJzIG9mIHRoZSBsb2NrLmhJbnZhbGlkQXNzZXRVbmtub3duUmVzZXJ2ZQAVBPBJbnZhbGlkIGFzc2V0LCByZXNlcnZlIGNoYWluIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGZvciBpdC54SW52YWxpZEFzc2V0VW5zdXBwb3J0ZWRSZXNlcnZlABYERQFJbnZhbGlkIGFzc2V0LCBkbyBub3Qgc3VwcG9ydCByZW1vdGUgYXNzZXQgcmVzZXJ2ZXMgd2l0aCBkaWZmZXJlbnQgZmVlcyByZXNlcnZlcy48VG9vTWFueVJlc2VydmVzABcESQFUb28gbWFueSBhc3NldHMgd2l0aCBkaWZmZXJlbnQgcmVzZXJ2ZSBsb2NhdGlvbnMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuYExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZQAYBHxMb2NhbCBYQ00gZXhlY3V0aW9uIGluY29tcGxldGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqUMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBQIEUwAABACpDAEYVmVjPFQ+AACpDAAAAgUCAK0MDDBwYWxsZXRfYmVlZnkYcGFsbGV0FEVycm9yBARUAAEcYEludmFsaWRLZXlPd25lcnNoaXBQcm9vZgAABDEBQSBrZXkgb3duZXJzaGlwIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLmBJbnZhbGlkRG91YmxlVm90aW5nUHJvb2YAAQQxAUEgZG91YmxlIHZvdGluZyBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5YSW52YWxpZEZvcmtWb3RpbmdQcm9vZgACBCkBQSBmb3JrIHZvdGluZyBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC50SW52YWxpZEZ1dHVyZUJsb2NrVm90aW5nUHJvb2YAAwRJAUEgZnV0dXJlIGJsb2NrIHZvdGluZyBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC58SW52YWxpZEVxdWl2b2NhdGlvblByb29mU2Vzc2lvbgAEBMBUaGUgc2Vzc2lvbiBvZiB0aGUgZXF1aXZvY2F0aW9uIHByb29mIGlzIGludmFsaWRYRHVwbGljYXRlT2ZmZW5jZVJlcG9ydAAFBBUBQSBnaXZlbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIHZhbGlkIGJ1dCBhbHJlYWR5IHByZXZpb3VzbHkgcmVwb3J0ZWQuUEludmFsaWRDb25maWd1cmF0aW9uAAYEjFN1Ym1pdHRlZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrEMDEhzcF9jb25zZW5zdXNfYmVlZnkMbW1yREJlZWZ5QXV0aG9yaXR5U2V0BFhBdXRob3JpdHlTZXRDb21taXRtZW50ATQADAEIaWQwAVRjcmF0ZTo6VmFsaWRhdG9yU2V0SWQAAQxsZW4QAQx1MzIAAURrZXlzZXRfY29tbWl0bWVudDQBWEF1dGhvcml0eVNldENvbW1pdG1lbnQAALUMEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbkhwYXJhc19zdWRvX3dyYXBwZXIYcGFsbGV0FEVycm9yBARUAAEkPFBhcmFEb2VzbnRFeGlzdAAABKhUaGUgc3BlY2lmaWVkIHBhcmFjaGFpbiBpcyBub3QgcmVnaXN0ZXJlZC5EUGFyYUFscmVhZHlFeGlzdHMAAQS4VGhlIHNwZWNpZmllZCBwYXJhY2hhaW4gaXMgYWxyZWFkeSByZWdpc3RlcmVkLlRFeGNlZWRzTWF4TWVzc2FnZVNpemUAAghBAUEgRE1QIG1lc3NhZ2UgY291bGRuJ3QgYmUgc2VudCBiZWNhdXNlIGl0IGV4Y2VlZHMgdGhlIG1heGltdW0gc2l6ZSBhbGxvd2VkIGZvciBhRGRvd253YXJkIG1lc3NhZ2UuOENvdWxkbnRDbGVhbnVwAAMEgENvdWxkIG5vdCBzY2hlZHVsZSBwYXJhIGNsZWFudXAuNE5vdFBhcmF0aHJlYWQABAScTm90IGEgcGFyYXRocmVhZCAob24tZGVtYW5kIHBhcmFjaGFpbikuME5vdFBhcmFjaGFpbgAFBHhOb3QgYSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbi40Q2Fubm90VXBncmFkZQAGBPhDYW5ub3QgdXBncmFkZSBvbi1kZW1hbmQgcGFyYWNoYWluIHRvIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluLjxDYW5ub3REb3duZ3JhZGUABwTYQ2Fubm90IGRvd25ncmFkZSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbiB0byBvbi1kZW1hbmQuMFRvb01hbnlDb3JlcwAIBMxUaGVyZSBhcmUgbW9yZSBjb3JlcyB0aGFuIHN1cHBvcnRlZCBieSB0aGUgcnVudGltZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuuQwMXHBvbGthZG90X3J1bnRpbWVfY29tbW9uOGFzc2lnbmVkX3Nsb3RzWFBhcmFjaGFpblRlbXBvcmFyeVNsb3QIJEFjY291bnRJZAEALExlYXNlUGVyaW9kARAAFAEcbWFuYWdlcgABJEFjY291bnRJZAABMHBlcmlvZF9iZWdpbhABLExlYXNlUGVyaW9kAAEwcGVyaW9kX2NvdW50EAEsTGVhc2VQZXJpb2QAAShsYXN0X2xlYXNlPQIBTE9wdGlvbjxMZWFzZVBlcmlvZD4AASxsZWFzZV9jb3VudBABDHUzMgAAvQwQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uOGFzc2lnbmVkX3Nsb3RzGHBhbGxldBRFcnJvcgQEVAABJDxQYXJhRG9lc250RXhpc3QAAASoVGhlIHNwZWNpZmllZCBwYXJhY2hhaW4gaXMgbm90IHJlZ2lzdGVyZWQuNE5vdFBhcmF0aHJlYWQAAQScTm90IGEgcGFyYXRocmVhZCAob24tZGVtYW5kIHBhcmFjaGFpbikuNENhbm5vdFVwZ3JhZGUAAgjMQ2Fubm90IHVwZ3JhZGUgb24tZGVtYW5kIHBhcmFjaGFpbiB0byBsZWFzZSBob2xkaW5nKHBhcmFjaGFpbi48Q2Fubm90RG93bmdyYWRlAAMIrENhbm5vdCBkb3duZ3JhZGUgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4gdG8ob24tZGVtYW5kLkxTbG90QWxyZWFkeUFzc2lnbmVkAAQEtFBlcm1hbmVudCBvciBUZW1wb3Jhcnkgc2xvdCBhbHJlYWR5IGFzc2lnbmVkLjxTbG90Tm90QXNzaWduZWQABQTIUGVybWFuZW50IG9yIFRlbXBvcmFyeSBzbG90IGhhcyBub3QgYmVlbiBhc3NpZ25lZC5IT25nb2luZ0xlYXNlRXhpc3RzAAYEgEFuIG9uZ29pbmcgbGVhc2UgYWxyZWFkeSBleGlzdHMuZE1heFBlcm1hbmVudFNsb3RzRXhjZWVkZWQABwBkTWF4VGVtcG9yYXJ5U2xvdHNFeGNlZWRlZAAIAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7BDAwscGFsbGV0X3N1ZG8YcGFsbGV0FEVycm9yBARUAAEELFJlcXVpcmVTdWRvAAAEgFNlbmRlciBtdXN0IGJlIHRoZSBTdWRvIGFjY291bnQuBGhFcnJvciBmb3IgdGhlIFN1ZG8gcGFsbGV0LsUMAAAEJMkMzQzRDNUM2QzhDOUM6QztDADJDBAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNUY2hlY2tfbm9uX3plcm9fc2VuZGVySENoZWNrTm9uWmVyb1NlbmRlcgQEVAAAAADNDBAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNIY2hlY2tfc3BlY192ZXJzaW9uQENoZWNrU3BlY1ZlcnNpb24EBFQAAAAA0QwQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zQGNoZWNrX3R4X3ZlcnNpb244Q2hlY2tUeFZlcnNpb24EBFQAAAAA1QwQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zNGNoZWNrX2dlbmVzaXMwQ2hlY2tHZW5lc2lzBARUAAAAANkMEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczxjaGVja19tb3J0YWxpdHk4Q2hlY2tNb3J0YWxpdHkEBFQAAAQA3QwBDEVyYQAA3QwQKHNwX3J1bnRpbWUcZ2VuZXJpYwxlcmEMRXJhAAEBBCBJbW1vcnRhbAAAABxNb3J0YWwxBAAIAAABABxNb3J0YWwyBAAIAAACABxNb3J0YWwzBAAIAAADABxNb3J0YWw0BAAIAAAEABxNb3J0YWw1BAAIAAAFABxNb3J0YWw2BAAIAAAGABxNb3J0YWw3BAAIAAAHABxNb3J0YWw4BAAIAAAIABxNb3J0YWw5BAAIAAAJACBNb3J0YWwxMAQACAAACgAgTW9ydGFsMTEEAAgAAAsAIE1vcnRhbDEyBAAIAAAMACBNb3J0YWwxMwQACAAADQAgTW9ydGFsMTQEAAgAAA4AIE1vcnRhbDE1BAAIAAAPACBNb3J0YWwxNgQACAAAEAAgTW9ydGFsMTcEAAgAABEAIE1vcnRhbDE4BAAIAAASACBNb3J0YWwxOQQACAAAEwAgTW9ydGFsMjAEAAgAABQAIE1vcnRhbDIxBAAIAAAVACBNb3J0YWwyMgQACAAAFgAgTW9ydGFsMjMEAAgAABcAIE1vcnRhbDI0BAAIAAAYACBNb3J0YWwyNQQACAAAGQAgTW9ydGFsMjYEAAgAABoAIE1vcnRhbDI3BAAIAAAbACBNb3J0YWwyOAQACAAAHAAgTW9ydGFsMjkEAAgAAB0AIE1vcnRhbDMwBAAIAAAeACBNb3J0YWwzMQQACAAAHwAgTW9ydGFsMzIEAAgAACAAIE1vcnRhbDMzBAAIAAAhACBNb3J0YWwzNAQACAAAIgAgTW9ydGFsMzUEAAgAACMAIE1vcnRhbDM2BAAIAAAkACBNb3J0YWwzNwQACAAAJQAgTW9ydGFsMzgEAAgAACYAIE1vcnRhbDM5BAAIAAAnACBNb3J0YWw0MAQACAAAKAAgTW9ydGFsNDEEAAgAACkAIE1vcnRhbDQyBAAIAAAqACBNb3J0YWw0MwQACAAAKwAgTW9ydGFsNDQEAAgAACwAIE1vcnRhbDQ1BAAIAAAtACBNb3J0YWw0NgQACAAALgAgTW9ydGFsNDcEAAgAAC8AIE1vcnRhbDQ4BAAIAAAwACBNb3J0YWw0OQQACAAAMQAgTW9ydGFsNTAEAAgAADIAIE1vcnRhbDUxBAAIAAAzACBNb3J0YWw1MgQACAAANAAgTW9ydGFsNTMEAAgAADUAIE1vcnRhbDU0BAAIAAA2ACBNb3J0YWw1NQQACAAANwAgTW9ydGFsNTYEAAgAADgAIE1vcnRhbDU3BAAIAAA5ACBNb3J0YWw1OAQACAAAOgAgTW9ydGFsNTkEAAgAADsAIE1vcnRhbDYwBAAIAAA8ACBNb3J0YWw2MQQACAAAPQAgTW9ydGFsNjIEAAgAAD4AIE1vcnRhbDYzBAAIAAA/ACBNb3J0YWw2NAQACAAAQAAgTW9ydGFsNjUEAAgAAEEAIE1vcnRhbDY2BAAIAABCACBNb3J0YWw2NwQACAAAQwAgTW9ydGFsNjgEAAgAAEQAIE1vcnRhbDY5BAAIAABFACBNb3J0YWw3MAQACAAARgAgTW9ydGFsNzEEAAgAAEcAIE1vcnRhbDcyBAAIAABIACBNb3J0YWw3MwQACAAASQAgTW9ydGFsNzQEAAgAAEoAIE1vcnRhbDc1BAAIAABLACBNb3J0YWw3NgQACAAATAAgTW9ydGFsNzcEAAgAAE0AIE1vcnRhbDc4BAAIAABOACBNb3J0YWw3OQQACAAATwAgTW9ydGFsODAEAAgAAFAAIE1vcnRhbDgxBAAIAABRACBNb3J0YWw4MgQACAAAUgAgTW9ydGFsODMEAAgAAFMAIE1vcnRhbDg0BAAIAABUACBNb3J0YWw4NQQACAAAVQAgTW9ydGFsODYEAAgAAFYAIE1vcnRhbDg3BAAIAABXACBNb3J0YWw4OAQACAAAWAAgTW9ydGFsODkEAAgAAFkAIE1vcnRhbDkwBAAIAABaACBNb3J0YWw5MQQACAAAWwAgTW9ydGFsOTIEAAgAAFwAIE1vcnRhbDkzBAAIAABdACBNb3J0YWw5NAQACAAAXgAgTW9ydGFsOTUEAAgAAF8AIE1vcnRhbDk2BAAIAABgACBNb3J0YWw5NwQACAAAYQAgTW9ydGFsOTgEAAgAAGIAIE1vcnRhbDk5BAAIAABjACRNb3J0YWwxMDAEAAgAAGQAJE1vcnRhbDEwMQQACAAAZQAkTW9ydGFsMTAyBAAIAABmACRNb3J0YWwxMDMEAAgAAGcAJE1vcnRhbDEwNAQACAAAaAAkTW9ydGFsMTA1BAAIAABpACRNb3J0YWwxMDYEAAgAAGoAJE1vcnRhbDEwNwQACAAAawAkTW9ydGFsMTA4BAAIAABsACRNb3J0YWwxMDkEAAgAAG0AJE1vcnRhbDExMAQACAAAbgAkTW9ydGFsMTExBAAIAABvACRNb3J0YWwxMTIEAAgAAHAAJE1vcnRhbDExMwQACAAAcQAkTW9ydGFsMTE0BAAIAAByACRNb3J0YWwxMTUEAAgAAHMAJE1vcnRhbDExNgQACAAAdAAkTW9ydGFsMTE3BAAIAAB1ACRNb3J0YWwxMTgEAAgAAHYAJE1vcnRhbDExOQQACAAAdwAkTW9ydGFsMTIwBAAIAAB4ACRNb3J0YWwxMjEEAAgAAHkAJE1vcnRhbDEyMgQACAAAegAkTW9ydGFsMTIzBAAIAAB7ACRNb3J0YWwxMjQEAAgAAHwAJE1vcnRhbDEyNQQACAAAfQAkTW9ydGFsMTI2BAAIAAB+ACRNb3J0YWwxMjcEAAgAAH8AJE1vcnRhbDEyOAQACAAAgAAkTW9ydGFsMTI5BAAIAACBACRNb3J0YWwxMzAEAAgAAIIAJE1vcnRhbDEzMQQACAAAgwAkTW9ydGFsMTMyBAAIAACEACRNb3J0YWwxMzMEAAgAAIUAJE1vcnRhbDEzNAQACAAAhgAkTW9ydGFsMTM1BAAIAACHACRNb3J0YWwxMzYEAAgAAIgAJE1vcnRhbDEzNwQACAAAiQAkTW9ydGFsMTM4BAAIAACKACRNb3J0YWwxMzkEAAgAAIsAJE1vcnRhbDE0MAQACAAAjAAkTW9ydGFsMTQxBAAIAACNACRNb3J0YWwxNDIEAAgAAI4AJE1vcnRhbDE0MwQACAAAjwAkTW9ydGFsMTQ0BAAIAACQACRNb3J0YWwxNDUEAAgAAJEAJE1vcnRhbDE0NgQACAAAkgAkTW9ydGFsMTQ3BAAIAACTACRNb3J0YWwxNDgEAAgAAJQAJE1vcnRhbDE0OQQACAAAlQAkTW9ydGFsMTUwBAAIAACWACRNb3J0YWwxNTEEAAgAAJcAJE1vcnRhbDE1MgQACAAAmAAkTW9ydGFsMTUzBAAIAACZACRNb3J0YWwxNTQEAAgAAJoAJE1vcnRhbDE1NQQACAAAmwAkTW9ydGFsMTU2BAAIAACcACRNb3J0YWwxNTcEAAgAAJ0AJE1vcnRhbDE1OAQACAAAngAkTW9ydGFsMTU5BAAIAACfACRNb3J0YWwxNjAEAAgAAKAAJE1vcnRhbDE2MQQACAAAoQAkTW9ydGFsMTYyBAAIAACiACRNb3J0YWwxNjMEAAgAAKMAJE1vcnRhbDE2NAQACAAApAAkTW9ydGFsMTY1BAAIAAClACRNb3J0YWwxNjYEAAgAAKYAJE1vcnRhbDE2NwQACAAApwAkTW9ydGFsMTY4BAAIAACoACRNb3J0YWwxNjkEAAgAAKkAJE1vcnRhbDE3MAQACAAAqgAkTW9ydGFsMTcxBAAIAACrACRNb3J0YWwxNzIEAAgAAKwAJE1vcnRhbDE3MwQACAAArQAkTW9ydGFsMTc0BAAIAACuACRNb3J0YWwxNzUEAAgAAK8AJE1vcnRhbDE3NgQACAAAsAAkTW9ydGFsMTc3BAAIAACxACRNb3J0YWwxNzgEAAgAALIAJE1vcnRhbDE3OQQACAAAswAkTW9ydGFsMTgwBAAIAAC0ACRNb3J0YWwxODEEAAgAALUAJE1vcnRhbDE4MgQACAAAtgAkTW9ydGFsMTgzBAAIAAC3ACRNb3J0YWwxODQEAAgAALgAJE1vcnRhbDE4NQQACAAAuQAkTW9ydGFsMTg2BAAIAAC6ACRNb3J0YWwxODcEAAgAALsAJE1vcnRhbDE4OAQACAAAvAAkTW9ydGFsMTg5BAAIAAC9ACRNb3J0YWwxOTAEAAgAAL4AJE1vcnRhbDE5MQQACAAAvwAkTW9ydGFsMTkyBAAIAADAACRNb3J0YWwxOTMEAAgAAMEAJE1vcnRhbDE5NAQACAAAwgAkTW9ydGFsMTk1BAAIAADDACRNb3J0YWwxOTYEAAgAAMQAJE1vcnRhbDE5NwQACAAAxQAkTW9ydGFsMTk4BAAIAADGACRNb3J0YWwxOTkEAAgAAMcAJE1vcnRhbDIwMAQACAAAyAAkTW9ydGFsMjAxBAAIAADJACRNb3J0YWwyMDIEAAgAAMoAJE1vcnRhbDIwMwQACAAAywAkTW9ydGFsMjA0BAAIAADMACRNb3J0YWwyMDUEAAgAAM0AJE1vcnRhbDIwNgQACAAAzgAkTW9ydGFsMjA3BAAIAADPACRNb3J0YWwyMDgEAAgAANAAJE1vcnRhbDIwOQQACAAA0QAkTW9ydGFsMjEwBAAIAADSACRNb3J0YWwyMTEEAAgAANMAJE1vcnRhbDIxMgQACAAA1AAkTW9ydGFsMjEzBAAIAADVACRNb3J0YWwyMTQEAAgAANYAJE1vcnRhbDIxNQQACAAA1wAkTW9ydGFsMjE2BAAIAADYACRNb3J0YWwyMTcEAAgAANkAJE1vcnRhbDIxOAQACAAA2gAkTW9ydGFsMjE5BAAIAADbACRNb3J0YWwyMjAEAAgAANwAJE1vcnRhbDIyMQQACAAA3QAkTW9ydGFsMjIyBAAIAADeACRNb3J0YWwyMjMEAAgAAN8AJE1vcnRhbDIyNAQACAAA4AAkTW9ydGFsMjI1BAAIAADhACRNb3J0YWwyMjYEAAgAAOIAJE1vcnRhbDIyNwQACAAA4wAkTW9ydGFsMjI4BAAIAADkACRNb3J0YWwyMjkEAAgAAOUAJE1vcnRhbDIzMAQACAAA5gAkTW9ydGFsMjMxBAAIAADnACRNb3J0YWwyMzIEAAgAAOgAJE1vcnRhbDIzMwQACAAA6QAkTW9ydGFsMjM0BAAIAADqACRNb3J0YWwyMzUEAAgAAOsAJE1vcnRhbDIzNgQACAAA7AAkTW9ydGFsMjM3BAAIAADtACRNb3J0YWwyMzgEAAgAAO4AJE1vcnRhbDIzOQQACAAA7wAkTW9ydGFsMjQwBAAIAADwACRNb3J0YWwyNDEEAAgAAPEAJE1vcnRhbDI0MgQACAAA8gAkTW9ydGFsMjQzBAAIAADzACRNb3J0YWwyNDQEAAgAAPQAJE1vcnRhbDI0NQQACAAA9QAkTW9ydGFsMjQ2BAAIAAD2ACRNb3J0YWwyNDcEAAgAAPcAJE1vcnRhbDI0OAQACAAA+AAkTW9ydGFsMjQ5BAAIAAD5ACRNb3J0YWwyNTAEAAgAAPoAJE1vcnRhbDI1MQQACAAA+wAkTW9ydGFsMjUyBAAIAAD8ACRNb3J0YWwyNTMEAAgAAP0AJE1vcnRhbDI1NAQACAAA/gAkTW9ydGFsMjU1BAAIAAD/AADhDBAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMsY2hlY2tfbm9uY2UoQ2hlY2tOb25jZQQEVAAABADwASBUOjpOb25jZQAA5QwQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zMGNoZWNrX3dlaWdodCxDaGVja1dlaWdodAQEVAAAAADpDAhocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnRgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW50BARUAAAEAAEBATBCYWxhbmNlT2Y8VD4AAO0MCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbkRDaGVja01ldGFkYXRhSGFzaAQEVAAABAEQbW9kZfEMARBNb2RlAADxDAh0ZnJhbWVfbWV0YWRhdGFfaGFzaF9leHRlbnNpb24QTW9kZQABCCBEaXNhYmxlZAAAABxFbmFibGVkAAEAAPUMCDhyb2NvY29fcnVudGltZRxSdW50aW1lAAAAAPkMEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2sUQmxvY2sIGEhlYWRlcgGdASRFeHRyaW5zaWMB/QwACAEYaGVhZGVynQEBGEhlYWRlcgABKGV4dHJpbnNpY3MBDQE4VmVjPEV4dHJpbnNpYz4AAP0MEChzcF9ydW50aW1lHGdlbmVyaWNMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBwQEQQ2FsbAGBASRTaWduYXR1cmUBTQMURXh0cmEBxQwABAA4AAAAAQ0AAAL9DAAFDQgoc3BfcnVudGltZVhFeHRyaW5zaWNJbmNsdXNpb25Nb2RlAAEINEFsbEV4dHJpbnNpY3MAAAA0T25seUluaGVyZW50cwABAAAJDQQYUmVzdWx0CARUAQ0NBEUBEQ0BCAhPawQADQ0AAAAADEVycgQAEQ0AAAEAAA0NAAACAQYAEQ0MQHhjbV9ydW50aW1lX2FwaXMQZmVlcxRFcnJvcgABGDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQBMV2VpZ2h0Tm90Q29tcHV0YWJsZQACAExVbmhhbmRsZWRYY21WZXJzaW9uAAMANEFzc2V0Tm90Rm91bmQABAAoVW5yb3V0YWJsZQAFAAAVDQQYUmVzdWx0CARUASgERQERDQEICE9rBAAoAAAAAAxFcnIEABENAAABAAAZDQQYUmVzdWx0CARUARgERQERDQEICE9rBAAYAAAAAAxFcnIEABENAAABAAAdDQQYUmVzdWx0CARUAc0FBEUBEQ0BCAhPawQAzQUAAAAADEVycgQAEQ0AAAEAACENBBhSZXN1bHQIBFQBJQ0ERQE9DQEICE9rBAAlDQAAAAAMRXJyBAA9DQAAAQAAJQ0MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkRDYWxsRHJ5UnVuRWZmZWN0cwQURXZlbnQBVAAQAUBleGVjdXRpb25fcmVzdWx0kQYBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAE4ZW1pdHRlZF9ldmVudHMpDQEoVmVjPEV2ZW50PgABJGxvY2FsX3hjbS0NAWBPcHRpb248VmVyc2lvbmVkWGNtPCgpPj4AAThmb3J3YXJkZWRfeGNtczENAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAAKQ0AAAJUAC0NBBhPcHRpb24EBFQB0QQBCBBOb25lAAAAEFNvbWUEANEEAAABAAAxDQAAAjUNADUNAAAECEkBOQ0AOQ0AAALRBAA9DQxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuFEVycm9yAAEINFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAABBDQQYUmVzdWx0CARUAUUNBEUBPQ0BCAhPawQARQ0AAAAADEVycgQAPQ0AAAEAAEUNDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW5AWGNtRHJ5UnVuRWZmZWN0cwQURXZlbnQBVAAMAUBleGVjdXRpb25fcmVzdWx0MQcBHE91dGNvbWUAAThlbWl0dGVkX2V2ZW50cykNAShWZWM8RXZlbnQ+AAE4Zm9yd2FyZGVkX3hjbXMxDQG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AAEkNBBhSZXN1bHQIBFQBAARFAU0NAQgIT2sEAAAAAAAADEVycgQATQ0AAAEAAE0NDEB4Y21fcnVudGltZV9hcGlzLGNvbnZlcnNpb25zFEVycm9yAAEILFVuc3VwcG9ydGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAAUQ0IHHNwX2NvcmU4T3BhcXVlTWV0YWRhdGEAAAQAOAEcVmVjPHU4PgAAVQ0EGE9wdGlvbgQEVAFRDQEIEE5vbmUAAAAQU29tZQQAUQ0AAAEAAFkNBBhSZXN1bHQIBFQBqQYERQFdDQEICE9rBACpBgAAAAAMRXJyBABdDQAAAQAAXQ0MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlgVHJhbnNhY3Rpb25WYWxpZGl0eUVycm9yAAEIHEludmFsaWQEAGENAUhJbnZhbGlkVHJhbnNhY3Rpb24AAAAcVW5rbm93bgQAZQ0BSFVua25vd25UcmFuc2FjdGlvbgABAABhDQwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUhJbnZhbGlkVHJhbnNhY3Rpb24AASwQQ2FsbAAAABxQYXltZW50AAEAGEZ1dHVyZQACABRTdGFsZQADACBCYWRQcm9vZgAEAERBbmNpZW50QmlydGhCbG9jawAFAERFeGhhdXN0c1Jlc291cmNlcwAGABhDdXN0b20EAAgBCHU4AAcAMEJhZE1hbmRhdG9yeQAIAExNYW5kYXRvcnlWYWxpZGF0aW9uAAkAJEJhZFNpZ25lcgAKAABlDQwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUhVbmtub3duVHJhbnNhY3Rpb24AAQwwQ2Fubm90TG9va3VwAAAATE5vVW5zaWduZWRWYWxpZGF0b3IAAQAYQ3VzdG9tBAAIAQh1OAACAABpDQgwc3BfaW5oZXJlbnRzMEluaGVyZW50RGF0YQAABAEQZGF0YW0NAZRCVHJlZU1hcDxJbmhlcmVudElkZW50aWZpZXIsIFZlYzx1OD4+AABtDQQgQlRyZWVNYXAIBEsB3QIEVgE4AAQAcQ0AAABxDQAAAnUNAHUNAAAECN0COAB5DQgwc3BfaW5oZXJlbnRzUENoZWNrSW5oZXJlbnRzUmVzdWx0AAAMARBva2F5IAEQYm9vbAABLGZhdGFsX2Vycm9yIAEQYm9vbAABGGVycm9yc2kNATBJbmhlcmVudERhdGEAAH0NDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5RFRyYW5zYWN0aW9uU291cmNlAAEMHEluQmxvY2sAAAAUTG9jYWwAAQAgRXh0ZXJuYWwAAgAAgQ0EGFJlc3VsdAgEVAGFDQRFAV0NAQgIT2sEAIUNAAAAAAxFcnIEAF0NAAABAACFDQwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUBWYWxpZFRyYW5zYWN0aW9uAAAUASBwcmlvcml0eTABTFRyYW5zYWN0aW9uUHJpb3JpdHkAASByZXF1aXJlc5EBAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXORAQFMVmVjPFRyYW5zYWN0aW9uVGFnPgABJGxvbmdldml0eTABUFRyYW5zYWN0aW9uTG9uZ2V2aXR5AAEkcHJvcGFnYXRlIAEQYm9vbAAAiQ0AAAQI3QqNDQCNDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OERHcm91cFJvdGF0aW9uSW5mbwQETgEQAAwBTHNlc3Npb25fc3RhcnRfYmxvY2sQAQROAAFgZ3JvdXBfcm90YXRpb25fZnJlcXVlbmN5EAEETgABDG5vdxABBE4AAJENAAAClQ0AlQ0MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgkQ29yZVN0YXRlCARIATQETgEQAQwgT2NjdXBpZWQEAJkNAUhPY2N1cGllZENvcmU8SCwgTj4AAAAkU2NoZWR1bGVkBAChDQE0U2NoZWR1bGVkQ29yZQABABBGcmVlAAIAAJkNDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4ME9jY3VwaWVkQ29yZQgESAE0BE4BEAAgAVBuZXh0X3VwX29uX2F2YWlsYWJsZZ0NAVRPcHRpb248U2NoZWR1bGVkQ29yZT4AAThvY2N1cGllZF9zaW5jZRABBE4AASx0aW1lX291dF9hdBABBE4AAUxuZXh0X3VwX29uX3RpbWVfb3V0nQ0BVE9wdGlvbjxTY2hlZHVsZWRDb3JlPgABMGF2YWlsYWJpbGl0ee0DAXxCaXRWZWM8dTgsIGJpdHZlYzo6b3JkZXI6OkxzYjA+AAFEZ3JvdXBfcmVzcG9uc2libGX1BgEoR3JvdXBJbmRleAABOGNhbmRpZGF0ZV9oYXNoSQQBNENhbmRpZGF0ZUhhc2gAAVBjYW5kaWRhdGVfZGVzY3JpcHRvcgkEAVhDYW5kaWRhdGVEZXNjcmlwdG9yPEg+AACdDQQYT3B0aW9uBARUAaENAQgQTm9uZQAAABBTb21lBAChDQAAAQAAoQ0MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0U2NoZWR1bGVkQ29yZQAACAEccGFyYV9pZGECAQhJZAABIGNvbGxhdG9ypQ0BSE9wdGlvbjxDb2xsYXRvcklkPgAApQ0EGE9wdGlvbgQEVAENBAEIEE5vbmUAAAAQU29tZQQADQQAAAEAAKkNDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4WE9jY3VwaWVkQ29yZUFzc3VtcHRpb24AAQwgSW5jbHVkZWQAAAAgVGltZWRPdXQAAQAQRnJlZQACAACtDQQYT3B0aW9uBARUAbENAQgQTm9uZQAAABBTb21lBACxDQAAAQAAsQ0MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEIBEgBNAROARAAEAEscGFyZW50X2hlYWQ1BAEgSGVhZERhdGEAAUxyZWxheV9wYXJlbnRfbnVtYmVyEAEETgABZHJlbGF5X3BhcmVudF9zdG9yYWdlX3Jvb3Q0AQRIAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAC1DQQYT3B0aW9uBARUAbkNAQgQTm9uZQAAABBTb21lBAC5DQAAAQAAuQ0AAAQIsQ0VBAC9DQQYT3B0aW9uBARUAQUEAQgQTm9uZQAAABBTb21lBAAFBAAAAQAAwQ0AAALFDQDFDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODhDYW5kaWRhdGVFdmVudAQESAE0AQw8Q2FuZGlkYXRlQmFja2VkEADtBgFMQ2FuZGlkYXRlUmVjZWlwdDxIPgAANQQBIEhlYWREYXRhAADxBgEkQ29yZUluZGV4AAD1BgEoR3JvdXBJbmRleAAAAERDYW5kaWRhdGVJbmNsdWRlZBAA7QYBTENhbmRpZGF0ZVJlY2VpcHQ8SD4AADUEASBIZWFkRGF0YQAA8QYBJENvcmVJbmRleAAA9QYBKEdyb3VwSW5kZXgAAQBEQ2FuZGlkYXRlVGltZWRPdXQMAO0GAUxDYW5kaWRhdGVSZWNlaXB0PEg+AAA1BAEgSGVhZERhdGEAAPEGASRDb3JlSW5kZXgAAgAAyQ0EIEJUcmVlTWFwCARLAWECBFYBWQsABADNDQAAAM0NAAAC0Q0A0Q0AAAQIYQJZCwDVDQQYT3B0aW9uBARUAcUKAQgQTm9uZQAAABBTb21lBADFCgAAAQAA2Q0EGE9wdGlvbgQEVAFxCwEIEE5vbmUAAAAQU29tZQQAcQsAAAEAAN0NBBhPcHRpb24EBFQBFQQBCBBOb25lAAAAEFNvbWUEABUEAAABAADhDQAAAuUNAOUNAAAEDBBJBIELAOkNBBhPcHRpb24EBFQBsQMBCBBOb25lAAAAEFNvbWUEALEDAAABAADtDQAAAvENAPENAAAEDBBJBI0LAPUNBBhPcHRpb24EBFQB+Q0BCBBOb25lAAAAEFNvbWUEAPkNAAABAAD5DRBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OCBzbGFzaGluZ1xPcGFxdWVLZXlPd25lcnNoaXBQcm9vZgAABAA4ARxWZWM8dTg+AAD9DQQYT3B0aW9uBARUAcUBAQgQTm9uZQAAABBTb21lBADFAQAAAQAAAQ4EGE9wdGlvbgQEVAEFDgEIEE5vbmUAAAAQU29tZQQABQ4AAAEAAAUOEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmcwQmFja2luZ1N0YXRlCARIATQETgEQAAgBLGNvbnN0cmFpbnRzCQ4BOENvbnN0cmFpbnRzPE4+AAFQcGVuZGluZ19hdmFpbGFiaWxpdHkpDgGcVmVjPENhbmRpZGF0ZVBlbmRpbmdBdmFpbGFiaWxpdHk8SCwgTj4+AAAJDhBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODRhc3luY19iYWNraW5nLENvbnN0cmFpbnRzBAROARAAOAFcbWluX3JlbGF5X3BhcmVudF9udW1iZXIQAQROAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAE0bWF4X2NvZGVfc2l6ZRABDHUzMgABNHVtcF9yZW1haW5pbmcQAQx1MzIAAUx1bXBfcmVtYWluaW5nX2J5dGVzEAEMdTMyAAFkbWF4X3VtcF9udW1fcGVyX2NhbmRpZGF0ZRABDHUzMgABWGRtcF9yZW1haW5pbmdfbWVzc2FnZXNBCAEYVmVjPE4+AAEwaHJtcF9pbmJvdW5kDQ4BZEluYm91bmRIcm1wTGltaXRhdGlvbnM8Tj4AAURocm1wX2NoYW5uZWxzX291dBEOAaRWZWM8KElkLCBPdXRib3VuZEhybXBDaGFubmVsTGltaXRhdGlvbnMpPgABaG1heF9ocm1wX251bV9wZXJfY2FuZGlkYXRlEAEMdTMyAAE8cmVxdWlyZWRfcGFyZW50NQQBIEhlYWREYXRhAAFQdmFsaWRhdGlvbl9jb2RlX2hhc2gVBAFIVmFsaWRhdGlvbkNvZGVIYXNoAAFMdXBncmFkZV9yZXN0cmljdGlvbh0OAWhPcHRpb248VXBncmFkZVJlc3RyaWN0aW9uPgABWGZ1dHVyZV92YWxpZGF0aW9uX2NvZGUhDgF8T3B0aW9uPChOLCBWYWxpZGF0aW9uQ29kZUhhc2gpPgAADQ4QTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0YXN5bmNfYmFja2luZ1hJbmJvdW5kSHJtcExpbWl0YXRpb25zBAROARAABAFAdmFsaWRfd2F0ZXJtYXJrc0EIARhWZWM8Tj4AABEOAAACFQ4AFQ4AAAQIYQIZDgAZDhBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODRhc3luY19iYWNraW5neE91dGJvdW5kSHJtcENoYW5uZWxMaW1pdGF0aW9ucwAACAE8Ynl0ZXNfcmVtYWluaW5nEAEMdTMyAAFIbWVzc2FnZXNfcmVtYWluaW5nEAEMdTMyAAAdDgQYT3B0aW9uBARUATULAQgQTm9uZQAAABBTb21lBAA1CwAAAQAAIQ4EGE9wdGlvbgQEVAElDgEIEE5vbmUAAAAQU29tZQQAJQ4AAAEAACUOAAAECBAVBAApDgAAAi0OAC0OEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmdwQ2FuZGlkYXRlUGVuZGluZ0F2YWlsYWJpbGl0eQgESAE0BE4BEAAUAThjYW5kaWRhdGVfaGFzaEkEATRDYW5kaWRhdGVIYXNoAAEoZGVzY3JpcHRvcgkEAVhDYW5kaWRhdGVEZXNjcmlwdG9yPEg+AAEsY29tbWl0bWVudHMZBAFQQ2FuZGlkYXRlQ29tbWl0bWVudHMAAUxyZWxheV9wYXJlbnRfbnVtYmVyEAEETgABMG1heF9wb3Zfc2l6ZRABDHUzMgAAMQ4EIEJUcmVlTWFwCARLAfEGBFYBFQsABAA1DgAAADUOAAACOQ4AOQ4AAAQI8QYVCwA9DgAAAgUEAEEOBBhPcHRpb24EBFQBRQ4BCBBOb25lAAAAEFNvbWUEAEUOAAABAABFDghIc3BfY29uc2Vuc3VzX2JlZWZ5MFZhbGlkYXRvclNldAQsQXV0aG9yaXR5SWQBBQIACAEodmFsaWRhdG9yc6kMAUBWZWM8QXV0aG9yaXR5SWQ+AAEIaWQwAThWYWxpZGF0b3JTZXRJZAAASQ4IKHNwX3J1bnRpbWUsT3BhcXVlVmFsdWUAAAQAOAEcVmVjPHU4PgAATQ4ISHNwX2NvbnNlbnN1c19iZWVmeTxGb3JrVm90aW5nUHJvb2YMGEhlYWRlcgGdAQhJZAEFAjRBbmNlc3RyeVByb29mAUkOAAwBEHZvdGURBgG4Vm90ZU1lc3NhZ2U8SGVhZGVyOjpOdW1iZXIsIElkLCBJZDo6U2lnbmF0dXJlPgABOGFuY2VzdHJ5X3Byb29mSQ4BNEFuY2VzdHJ5UHJvb2YAARhoZWFkZXKdAQEYSGVhZGVyAABRDgQYT3B0aW9uBARUAUkOAQgQTm9uZQAAABBTb21lBABJDgAAAQAAVQ4EGFJlc3VsdAgEVAE0BEUBWQ4BCAhPawQANAAAAAAMRXJyBABZDgAAAQAAWQ4IRHNwX21tcl9wcmltaXRpdmVzFEVycm9yAAEoQEludmFsaWROdW1lcmljT3AAAAAQUHVzaAABABxHZXRSb290AAIAGENvbW1pdAADADRHZW5lcmF0ZVByb29mAAQAGFZlcmlmeQAFADBMZWFmTm90Rm91bmQABgBEUGFsbGV0Tm90SW5jbHVkZWQABwBASW52YWxpZExlYWZJbmRleAAIAFRJbnZhbGlkQmVzdEtub3duQmxvY2sACQAAXQ4EGFJlc3VsdAgEVAEwBEUBWQ4BCAhPawQAMAAAAAAMRXJyBABZDgAAAQAAYQ4EGFJlc3VsdAgEVAFlDgRFAVkOAQgIT2sEAGUOAAAAAAxFcnIEAFkOAAABAABlDgAABAhpDnEOAGkOAAACbQ4AbQ4IRHNwX21tcl9wcmltaXRpdmVzTEVuY29kYWJsZU9wYXF1ZUxlYWYAAAQAOAEcVmVjPHU4PgAAcQ4IRHNwX21tcl9wcmltaXRpdmVzJExlYWZQcm9vZgQQSGFzaAE0AAwBMGxlYWZfaW5kaWNlc3UOAThWZWM8TGVhZkluZGV4PgABKGxlYWZfY291bnQwASROb2RlSW5kZXgAARRpdGVtc40DASRWZWM8SGFzaD4AAHUOAAACMAB5DgQYUmVzdWx0CARUAcUBBEUBWQ4BCAhPawQAxQEAAAAADEVycgQAWQ4AAAEAAH0OCERzcF9jb25zZW5zdXNfYmFiZURCYWJlQ29uZmlndXJhdGlvbgAAGAE0c2xvdF9kdXJhdGlvbjABDHU2NAABMGVwb2NoX2xlbmd0aDABDHU2NAABBGOxAQEoKHU2NCwgdTY0KQABLGF1dGhvcml0aWVznQcBnFZlYzwoQXV0aG9yaXR5SWQsIEJhYmVBdXRob3JpdHlXZWlnaHQpPgABKHJhbmRvbW5lc3MEAShSYW5kb21uZXNzAAE0YWxsb3dlZF9zbG90c7UBATBBbGxvd2VkU2xvdHMAAIEOCERzcF9jb25zZW5zdXNfYmFiZRRFcG9jaAAAGAEsZXBvY2hfaW5kZXgwAQx1NjQAAShzdGFydF9zbG90pQEBEFNsb3QAASBkdXJhdGlvbjABDHU2NAABLGF1dGhvcml0aWVznQcBnFZlYzwoQXV0aG9yaXR5SWQsIEJhYmVBdXRob3JpdHlXZWlnaHQpPgABKHJhbmRvbW5lc3MEAShSYW5kb21uZXNzAAEYY29uZmlnwQcBWEJhYmVFcG9jaENvbmZpZ3VyYXRpb24AAIUOBBhPcHRpb24EBFQBiQ4BCBBOb25lAAAAEFNvbWUEAIkOAAABAACJDghEc3BfY29uc2Vuc3VzX2JhYmVcT3BhcXVlS2V5T3duZXJzaGlwUHJvb2YAAAQAOAEcVmVjPHU4PgAAjQ4EGE9wdGlvbgQEVAGRDgEIEE5vbmUAAAAQU29tZQQAkQ4AAAEAAJEOAAAClQ4AlQ4AAAQIOEkIAJkODGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlc0xSdW50aW1lRGlzcGF0Y2hJbmZvCBxCYWxhbmNlARgYV2VpZ2h0ASgADAEYd2VpZ2h0KAEYV2VpZ2h0AAEUY2xhc3NgATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWUYARxCYWxhbmNlAACdDgxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQEYAAgBNGluY2x1c2lvbl9mZWWhDgF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXAYARxCYWxhbmNlAAChDgQYT3B0aW9uBARUAaUOAQgQTm9uZQAAABBTb21lBAClDgAAAQAApQ4MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQEYAAwBIGJhc2VfZmVlGAEcQmFsYW5jZQABHGxlbl9mZWUYARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZRgBHEJhbGFuY2UAAKkOBBhSZXN1bHQIBFQBxQEERQFhBwEICE9rBADFAQAAAAAMRXJyBABhBwAAAQAArQ4EGE9wdGlvbgQEVAFhBwEIEE5vbmUAAAAQU29tZQQAYQcAAAEAALEOAAACYQcAtQ4IOHJvY29jb19ydW50aW1lMFJ1bnRpbWVFcnJvcgABwBhTeXN0ZW0EAJEHAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAAAEEJhYmUEANEHAWxwYWxsZXRfYmFiZTo6RXJyb3I8UnVudGltZT4AAQAcSW5kaWNlcwQA2QcBeHBhbGxldF9pbmRpY2VzOjpFcnJvcjxSdW50aW1lPgADACBCYWxhbmNlcwQAIQgBfHBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZT4ABAAcU2Vzc2lvbgQATQgBeHBhbGxldF9zZXNzaW9uOjpFcnJvcjxSdW50aW1lPgAIABxHcmFuZHBhBABdCAF4cGFsbGV0X2dyYW5kcGE6OkVycm9yPFJ1bnRpbWU+AAoAIFRyZWFzdXJ5BACBCAF8cGFsbGV0X3RyZWFzdXJ5OjpFcnJvcjxSdW50aW1lPgASAEBDb252aWN0aW9uVm90aW5nBAC1CAGgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nOjpFcnJvcjxSdW50aW1lPgAUACRSZWZlcmVuZGEEAP0IAYBwYWxsZXRfcmVmZXJlbmRhOjpFcnJvcjxSdW50aW1lPgAVAFBGZWxsb3dzaGlwQ29sbGVjdGl2ZQQAFQkBOQFwYWxsZXRfcmFua2VkX2NvbGxlY3RpdmU6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZTo6Ckluc3RhbmNlMT4AFgBMRmVsbG93c2hpcFJlZmVyZW5kYQQAJQkB9HBhbGxldF9yZWZlcmVuZGE6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF9yZWZlcmVuZGE6Okluc3RhbmNlMj4AFwAkV2hpdGVsaXN0BAApCQGAcGFsbGV0X3doaXRlbGlzdDo6RXJyb3I8UnVudGltZT4ALAAYQ2xhaW1zBAAtCQFYY2xhaW1zOjpFcnJvcjxSdW50aW1lPgATABxVdGlsaXR5BAAxCQF4cGFsbGV0X3V0aWxpdHk6OkVycm9yPFJ1bnRpbWU+ABgAIElkZW50aXR5BABxCQF8cGFsbGV0X2lkZW50aXR5OjpFcnJvcjxSdW50aW1lPgAZABxTb2NpZXR5BAC1CQF4cGFsbGV0X3NvY2lldHk6OkVycm9yPFJ1bnRpbWU+ABoAIFJlY292ZXJ5BADFCQF8cGFsbGV0X3JlY292ZXJ5OjpFcnJvcjxSdW50aW1lPgAbABxWZXN0aW5nBADVCQF4cGFsbGV0X3Zlc3Rpbmc6OkVycm9yPFJ1bnRpbWU+ABwAJFNjaGVkdWxlcgQA7QkBgHBhbGxldF9zY2hlZHVsZXI6OkVycm9yPFJ1bnRpbWU+AB0AFFByb3h5BAARCgFwcGFsbGV0X3Byb3h5OjpFcnJvcjxSdW50aW1lPgAeACBNdWx0aXNpZwQAIQoBfHBhbGxldF9tdWx0aXNpZzo6RXJyb3I8UnVudGltZT4AHwAgUHJlaW1hZ2UEAEUKAXxwYWxsZXRfcHJlaW1hZ2U6OkVycm9yPFJ1bnRpbWU+ACAAJEFzc2V0UmF0ZQQASQoBhHBhbGxldF9hc3NldF9yYXRlOjpFcnJvcjxSdW50aW1lPgAnACBCb3VudGllcwQAWQoBfHBhbGxldF9ib3VudGllczo6RXJyb3I8UnVudGltZT4AIwA0Q2hpbGRCb3VudGllcwQAZQoBlHBhbGxldF9jaGlsZF9ib3VudGllczo6RXJyb3I8UnVudGltZT4AKAAMTmlzBACFCgFocGFsbGV0X25pczo6RXJyb3I8UnVudGltZT4AJgBYTmlzQ291bnRlcnBhcnRCYWxhbmNlcwQAkQoB7HBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZSwgcGFsbGV0X2JhbGFuY2VzOjpJbnN0YW5jZTI+AC0ANENvbmZpZ3VyYXRpb24EAKEKAaBwYXJhY2hhaW5zX2NvbmZpZ3VyYXRpb246OkVycm9yPFJ1bnRpbWU+ADMANFBhcmFJbmNsdXNpb24EAMEKAZBwYXJhY2hhaW5zX2luY2x1c2lvbjo6RXJyb3I8UnVudGltZT4ANQAwUGFyYUluaGVyZW50BADZCgGkcGFyYWNoYWluc19wYXJhc19pbmhlcmVudDo6RXJyb3I8UnVudGltZT4ANgAUUGFyYXMEADkLAYBwYXJhY2hhaW5zX3BhcmFzOjpFcnJvcjxSdW50aW1lPgA4ABBIcm1wBABpCwF8cGFyYWNoYWluc19ocm1wOjpFcnJvcjxSdW50aW1lPgA8ADRQYXJhc0Rpc3B1dGVzBACJCwGMcGFyYWNoYWluc19kaXNwdXRlczo6RXJyb3I8UnVudGltZT4APgA0UGFyYXNTbGFzaGluZwQAnQsBjHBhcmFjaGFpbnNfc2xhc2hpbmc6OkVycm9yPFJ1bnRpbWU+AD8AME1lc3NhZ2VRdWV1ZQQAuQsBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgBAAGhPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlcgQA6QsBkHBhcmFjaGFpbnNfb25fZGVtYW5kOjpFcnJvcjxSdW50aW1lPgBCAGhDb3JldGltZUFzc2lnbm1lbnRQcm92aWRlcgQAFQwBsHBhcmFjaGFpbnNfYXNzaWduZXJfY29yZXRpbWU6OkVycm9yPFJ1bnRpbWU+AEQAJFJlZ2lzdHJhcgQAIQwBfHBhcmFzX3JlZ2lzdHJhcjo6RXJyb3I8UnVudGltZT4ARgAUU2xvdHMEACkMAVRzbG90czo6RXJyb3I8UnVudGltZT4ARwAgQXVjdGlvbnMEAD0MAWBhdWN0aW9uczo6RXJyb3I8UnVudGltZT4ASAAkQ3Jvd2Rsb2FuBABJDAFkY3Jvd2Rsb2FuOjpFcnJvcjxSdW50aW1lPgBJACBDb3JldGltZQQATQwBYGNvcmV0aW1lOjpFcnJvcjxSdW50aW1lPgBKACRYY21QYWxsZXQEAKEMAWhwYWxsZXRfeGNtOjpFcnJvcjxSdW50aW1lPgBjABRCZWVmeQQArQwBcHBhbGxldF9iZWVmeTo6RXJyb3I8UnVudGltZT4A8ABAUGFyYXNTdWRvV3JhcHBlcgQAtQwBiHBhcmFzX3N1ZG9fd3JhcHBlcjo6RXJyb3I8UnVudGltZT4A+gA0QXNzaWduZWRTbG90cwQAvQwBeGFzc2lnbmVkX3Nsb3RzOjpFcnJvcjxSdW50aW1lPgD7AEhTdGF0ZVRyaWVNaWdyYXRpb24EAEkHAaxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb246OkVycm9yPFJ1bnRpbWU+AP4AEFN1ZG8EAMEMAWxwYWxsZXRfc3Vkbzo6RXJyb3I8UnVudGltZT4A/wAADQEYU3lzdGVtARhTeXN0ZW1IHEFjY291bnQBAQQCAAxBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACABOggVGhlIGZ1bGwgYWNjb3VudCBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQgSUQuOEV4dHJpbnNpY0NvdW50AAAQBAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay5ASW5oZXJlbnRzQXBwbGllZAEAIAQABKQgV2hldGhlciBhbGwgaW5oZXJlbnRzIGhhdmUgYmVlbiBhcHBsaWVkLixCbG9ja1dlaWdodAEAJBgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay5AQWxsRXh0cmluc2ljc0xlbgAAEAQABEEBIFRvdGFsIGxlbmd0aCAoaW4gYnl0ZXMpIGZvciBhbGwgZXh0cmluc2ljcyBwdXQgdG9nZXRoZXIsIGZvciB0aGUgY3VycmVudCBibG9jay4kQmxvY2tIYXNoAQEEBRA0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJggTWFwIG9mIGJsb2NrIG51bWJlcnMgdG8gYmxvY2sgaGFzaGVzLjRFeHRyaW5zaWNEYXRhAQEEBRA4BAAEPQEgRXh0cmluc2ljcyBkYXRhIGZvciB0aGUgY3VycmVudCBibG9jayAobWFwcyBhbiBleHRyaW5zaWMncyBpbmRleCB0byBpdHMgZGF0YSkuGE51bWJlcgEAEBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuKFBhcmVudEhhc2gBADSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcCBIYXNoIG9mIHRoZSBwcmV2aW91cyBibG9jay4YRGlnZXN0AQA8BAAE8CBEaWdlc3Qgb2YgdGhlIGN1cnJlbnQgYmxvY2ssIGFsc28gcGFydCBvZiB0aGUgYmxvY2sgaGVhZGVyLhhFdmVudHMBAEwEABygIEV2ZW50cyBkZXBvc2l0ZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAdASBOT1RFOiBUaGUgaXRlbSBpcyB1bmJvdW5kIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5ldmVyIGJlIHJlYWQgb24gY2hhaW4u0CBJdCBjb3VsZCBvdGhlcndpc2UgaW5mbGF0ZSB0aGUgUG9WIHNpemUgb2YgYSBibG9jay4ALQEgRXZlbnRzIGhhdmUgYSBsYXJnZSBpbi1tZW1vcnkgc2l6ZS4gQm94IHRoZSBldmVudHMgdG8gbm90IGdvIG91dC1vZi1tZW1vcnn8IGp1c3QgaW4gY2FzZSBzb21lb25lIHN0aWxsIHJlYWRzIHRoZW0gZnJvbSB3aXRoaW4gdGhlIHJ1bnRpbWUuKEV2ZW50Q291bnQBABAQAAAAAAS4IFRoZSBudW1iZXIgb2YgZXZlbnRzIGluIHRoZSBgRXZlbnRzPFQ+YCBsaXN0LixFdmVudFRvcGljcwEBBAI0WQcEACglASBNYXBwaW5nIGJldHdlZW4gYSB0b3BpYyAocmVwcmVzZW50ZWQgYnkgVDo6SGFzaCkgYW5kIGEgdmVjdG9yIG9mIGluZGV4ZXOUIG9mIGV2ZW50cyBpbiB0aGUgYDxFdmVudHM8VD4+YCBsaXN0LgBRASBBbGwgdG9waWMgdmVjdG9ycyBoYXZlIGRldGVybWluaXN0aWMgc3RvcmFnZSBsb2NhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSB0b3BpYy4gVGhpc0UBIGFsbG93cyBsaWdodC1jbGllbnRzIHRvIGxldmVyYWdlIHRoZSBjaGFuZ2VzIHRyaWUgc3RvcmFnZSB0cmFja2luZyBtZWNoYW5pc20gYW5k5CBpbiBjYXNlIG9mIGNoYW5nZXMgZmV0Y2ggdGhlIGxpc3Qgb2YgZXZlbnRzIG9mIGludGVyZXN0LgBZASBUaGUgdmFsdWUgaGFzIHRoZSB0eXBlIGAoQmxvY2tOdW1iZXJGb3I8VD4sIEV2ZW50SW5kZXgpYCBiZWNhdXNlIGlmIHdlIHVzZWQgb25seSBqdXN0TQEgdGhlIGBFdmVudEluZGV4YCB0aGVuIGluIGNhc2UgaWYgdGhlIHRvcGljIGhhcyB0aGUgc2FtZSBjb250ZW50cyBvbiB0aGUgbmV4dCBibG9jawEBIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCB0aHVzIHRoZSBldmVudCBtaWdodCBiZSBsb3N0LkhMYXN0UnVudGltZVVwZ3JhZGUAAF0HBAAEVQEgU3RvcmVzIHRoZSBgc3BlY192ZXJzaW9uYCBhbmQgYHNwZWNfbmFtZWAgb2Ygd2hlbiB0aGUgbGFzdCBydW50aW1lIHVwZ3JhZGUgaGFwcGVuZWQuVFVwZ3JhZGVkVG9VMzJSZWZDb3VudAEAIAQABE0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IGB0eXBlIFJlZkNvdW50YCBpcyBgdTMyYC4gRmFsc2UgKGRlZmF1bHQpIGlmIG5vdC5gVXBncmFkZWRUb1RyaXBsZVJlZkNvdW50AQAgBAAIXQEgVHJ1ZSBpZiB3ZSBoYXZlIHVwZ3JhZGVkIHNvIHRoYXQgQWNjb3VudEluZm8gY29udGFpbnMgdGhyZWUgdHlwZXMgb2YgYFJlZkNvdW50YC4gRmFsc2VIIChkZWZhdWx0KSBpZiBub3QuOEV4ZWN1dGlvblBoYXNlAABVBwQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suREF1dGhvcml6ZWRVcGdyYWRlAABlBwQABLggYFNvbWVgIGlmIGEgY29kZSB1cGdyYWRlIGhhcyBiZWVuIGF1dGhvcml6ZWQuAYUBAVgYMEJsb2NrV2VpZ2h0c2kH+QGCzoRjAAsAIEqp0QET//////////+C2WsXAAELoNkEkVgBE6NwPQrXo3C9AQsAmPc+XQET/////////78BAACC2WsXAAELoGFX+8wBE6NwPQrXo3D9AQsAIEqp0QET//////////8BBwCIUmp0EwAAAAAAAABAgtlrFwAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4sQmxvY2tMZW5ndGh1BzAAADwAAABQAAAAUAAEqCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBibG9jayAoaW4gYnl0ZXMpLjhCbG9ja0hhc2hDb3VudBAQABAAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4gRGJXZWlnaHR9B0BAeH0BAAAAAADh9QUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuHFZlcnNpb26BB0EEGHJvY29jb0hwYXJpdHktcm9jb2NvLXYyLjAAAAAAwIAPAAAAAABM32rLaJkHYJsFAAAAb/Uu6Fjmxb0BAAAAkbHIsWMo65IBAAAAn/tQWqc41pwBAAAAN+OX/HyR9eQCAAAAQP461AH4lZoGAAAA0ryYl+7QjxUDAAAA94sni+U/RUwCAAAArywCl6I+bT0LAAAASeqvG1SKDLAFAAAAkdXfGLDSz1gCAAAA7ZnFrLJe7fUDAAAAy8ol458UI4cCAAAAaHrUStN/A8IBAAAAqzwFcikf64sBAAAAvJ2JkE9bkj8BAAAAN8i7E1CpoqgEAAAAKl6SRlU5nmABAAAA+8V3uddH79YBAAAAGgAAAAEEhCBHZXQgdGhlIGNoYWluJ3MgaW4tY29kZSB2ZXJzaW9uLihTUzU4UHJlZml4eQEIKgAUqCBUaGUgZGVzaWduYXRlZCBTUzU4IHByZWZpeCBvZiB0aGlzIGNoYWluLgA5ASBUaGlzIHJlcGxhY2VzIHRoZSAic3M1OEZvcm1hdCIgcHJvcGVydHkgZGVjbGFyZWQgaW4gdGhlIGNoYWluIHNwZWMuIFJlYXNvbiBpczEBIHRoYXQgdGhlIHJ1bnRpbWUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIHByZWZpeCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiBpdCBhc3AgYW4gaWRlbnRpZmllciBvZiB0aGUgY2hhaW4uAZEHAAAQQmFiZQEQQmFiZUQoRXBvY2hJbmRleAEAMCAAAAAAAAAAAARUIEN1cnJlbnQgZXBvY2ggaW5kZXguLEF1dGhvcml0aWVzAQCVBwQABGwgQ3VycmVudCBlcG9jaCBhdXRob3JpdGllcy4sR2VuZXNpc1Nsb3QBAKUBIAAAAAAAAAAACPggVGhlIHNsb3QgYXQgd2hpY2ggdGhlIGZpcnN0IGVwb2NoIGFjdHVhbGx5IHN0YXJ0ZWQuIFRoaXMgaXMgMJAgdW50aWwgdGhlIGZpcnN0IGJsb2NrIG9mIHRoZSBjaGFpbi4sQ3VycmVudFNsb3QBAKUBIAAAAAAAAAAABFQgQ3VycmVudCBzbG90IG51bWJlci4oUmFuZG9tbmVzcwEABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi4IFRoZSBlcG9jaCByYW5kb21uZXNzIGZvciB0aGUgKmN1cnJlbnQqIGVwb2NoLgAsICMgU2VjdXJpdHkABQEgVGhpcyBNVVNUIE5PVCBiZSB1c2VkIGZvciBnYW1ibGluZywgYXMgaXQgY2FuIGJlIGluZmx1ZW5jZWQgYnkgYfggbWFsaWNpb3VzIHZhbGlkYXRvciBpbiB0aGUgc2hvcnQgdGVybS4gSXQgTUFZIGJlIHVzZWQgaW4gbWFueRUBIGNyeXB0b2dyYXBoaWMgcHJvdG9jb2xzLCBob3dldmVyLCBzbyBsb25nIGFzIG9uZSByZW1lbWJlcnMgdGhhdCB0aGlzFQEgKGxpa2UgZXZlcnl0aGluZyBlbHNlIG9uLWNoYWluKSBpdCBpcyBwdWJsaWMuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUFASB1c2VkIHdoZXJlIGEgbnVtYmVyIGlzIG5lZWRlZCB0aGF0IGNhbm5vdCBoYXZlIGJlZW4gY2hvc2VuIGJ5IGFuDQEgYWR2ZXJzYXJ5LCBmb3IgcHVycG9zZXMgc3VjaCBhcyBwdWJsaWMtY29pbiB6ZXJvLWtub3dsZWRnZSBwcm9vZnMuYFBlbmRpbmdFcG9jaENvbmZpZ0NoYW5nZQAArQEEAARhASBQZW5kaW5nIGVwb2NoIGNvbmZpZ3VyYXRpb24gY2hhbmdlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHdoZW4gdGhlIG5leHQgZXBvY2ggaXMgZW5hY3RlZC44TmV4dFJhbmRvbW5lc3MBAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEXCBOZXh0IGVwb2NoIHJhbmRvbW5lc3MuPE5leHRBdXRob3JpdGllcwEAlQcEAARgIE5leHQgZXBvY2ggYXV0aG9yaXRpZXMuMFNlZ21lbnRJbmRleAEAEBAAAAAAJHwgUmFuZG9tbmVzcyB1bmRlciBjb25zdHJ1Y3Rpb24uAPggV2UgbWFrZSBhIHRyYWRlLW9mZiBiZXR3ZWVuIHN0b3JhZ2UgYWNjZXNzZXMgYW5kIGxpc3QgbGVuZ3RoLgEBIFdlIHN0b3JlIHRoZSB1bmRlci1jb25zdHJ1Y3Rpb24gcmFuZG9tbmVzcyBpbiBzZWdtZW50cyBvZiB1cCB0b5QgYFVOREVSX0NPTlNUUlVDVElPTl9TRUdNRU5UX0xFTkdUSGAuAOwgT25jZSBhIHNlZ21lbnQgcmVhY2hlcyB0aGlzIGxlbmd0aCwgd2UgYmVnaW4gdGhlIG5leHQgb25lLgkBIFdlIHJlc2V0IGFsbCBzZWdtZW50cyBhbmQgcmV0dXJuIHRvIGAwYCBhdCB0aGUgYmVnaW5uaW5nIG9mIGV2ZXJ5HCBlcG9jaC5EVW5kZXJDb25zdHJ1Y3Rpb24BAQQFEKEHBAAEFQEgVFdPWC1OT1RFOiBgU2VnbWVudEluZGV4YCBpcyBhbiBpbmNyZWFzaW5nIGludGVnZXIsIHNvIHRoaXMgaXMgb2theS4sSW5pdGlhbGl6ZWQAAKkHBAAIAQEgVGVtcG9yYXJ5IHZhbHVlIChjbGVhcmVkIGF0IGJsb2NrIGZpbmFsaXphdGlvbikgd2hpY2ggaXMgYFNvbWVgHQEgaWYgcGVyLWJsb2NrIGluaXRpYWxpemF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciBjdXJyZW50IGJsb2NrLkxBdXRob3JWcmZSYW5kb21uZXNzAQDFBgQAEBUBIFRoaXMgZmllbGQgc2hvdWxkIGFsd2F5cyBiZSBwb3B1bGF0ZWQgZHVyaW5nIGJsb2NrIHByb2Nlc3NpbmcgdW5sZXNzGQEgc2Vjb25kYXJ5IHBsYWluIHNsb3RzIGFyZSBlbmFibGVkICh3aGljaCBkb24ndCBjb250YWluIGEgVlJGIG91dHB1dCkuAEkBIEl0IGlzIHNldCBpbiBgb25fZmluYWxpemVgLCBiZWZvcmUgaXQgd2lsbCBjb250YWluIHRoZSB2YWx1ZSBmcm9tIHRoZSBsYXN0IGJsb2NrLihFcG9jaFN0YXJ0AQBtAyAAAAAAAAAAABRdASBUaGUgYmxvY2sgbnVtYmVycyB3aGVuIHRoZSBsYXN0IGFuZCBjdXJyZW50IGVwb2NoIGhhdmUgc3RhcnRlZCwgcmVzcGVjdGl2ZWx5IGBOLTFgIGFuZBQgYE5gLkkBIE5PVEU6IFdlIHRyYWNrIHRoaXMgaXMgaW4gb3JkZXIgdG8gYW5ub3RhdGUgdGhlIGJsb2NrIG51bWJlciB3aGVuIGEgZ2l2ZW4gcG9vbCBvZlkBIGVudHJvcHkgd2FzIGZpeGVkIChpLmUuIGl0IHdhcyBrbm93biB0byBjaGFpbiBvYnNlcnZlcnMpLiBTaW5jZSBlcG9jaHMgYXJlIGRlZmluZWQgaW5ZASBzbG90cywgd2hpY2ggbWF5IGJlIHNraXBwZWQsIHRoZSBibG9jayBudW1iZXJzIG1heSBub3QgbGluZSB1cCB3aXRoIHRoZSBzbG90IG51bWJlcnMuIExhdGVuZXNzAQAQEAAAAAAU2CBIb3cgbGF0ZSB0aGUgY3VycmVudCBibG9jayBpcyBjb21wYXJlZCB0byBpdHMgcGFyZW50LgAVASBUaGlzIGVudHJ5IGlzIHBvcHVsYXRlZCBhcyBwYXJ0IG9mIGJsb2NrIGV4ZWN1dGlvbiBhbmQgaXMgY2xlYW5lZCB1cBEBIG9uIGJsb2NrIGZpbmFsaXphdGlvbi4gUXVlcnlpbmcgdGhpcyBzdG9yYWdlIGVudHJ5IG91dHNpZGUgb2YgYmxvY2uwIGV4ZWN1dGlvbiBjb250ZXh0IHNob3VsZCBhbHdheXMgeWllbGQgemVyby4sRXBvY2hDb25maWcAAMEHBAAIYQEgVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXJyZW50IGVwb2NoLiBTaG91bGQgbmV2ZXIgYmUgYE5vbmVgIGFzIGl0IGlzIGluaXRpYWxpemVkIGluJCBnZW5lc2lzLjxOZXh0RXBvY2hDb25maWcAAMEHBAAILQEgVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBuZXh0IGVwb2NoLCBgTm9uZWAgaWYgdGhlIGNvbmZpZyB3aWxsIG5vdCBjaGFuZ2XoICh5b3UgY2FuIGZhbGxiYWNrIHRvIGBFcG9jaENvbmZpZ2AgaW5zdGVhZCBpbiB0aGF0IGNhc2UpLjRTa2lwcGVkRXBvY2hzAQDFBwQAICkBIEEgbGlzdCBvZiB0aGUgbGFzdCAxMDAgc2tpcHBlZCBlcG9jaHMgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHNlc3Npb24gaW5kZXhwIHdoZW4gdGhlIGVwb2NoIHdhcyBza2lwcGVkLgAxASBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgdmFsaWRhdGluZyBlcXVpdm9jYXRpb24gcHJvb2ZzLiBBbiBlcXVpdm9jYXRpb24gcHJvb2Y1ASBtdXN0IGNvbnRhaW5zIGEga2V5LW93bmVyc2hpcCBwcm9vZiBmb3IgYSBnaXZlbiBzZXNzaW9uLCB0aGVyZWZvcmUgd2UgbmVlZCBhOQEgd2F5IHRvIHRpZSB0b2dldGhlciBzZXNzaW9ucyBhbmQgZXBvY2ggaW5kaWNlcywgaS5lLiB3ZSBuZWVkIHRvIHZhbGlkYXRlIHRoYXQpASBhIHZhbGlkYXRvciB3YXMgdGhlIG93bmVyIG9mIGEgZ2l2ZW4ga2V5IG9uIGEgZ2l2ZW4gc2Vzc2lvbiwgYW5kIHdoYXQgdGhlsCBhY3RpdmUgZXBvY2ggaW5kZXggd2FzIGR1cmluZyB0aGF0IHNlc3Npb24uAZUBABA0RXBvY2hEdXJhdGlvbjAgWAIAAAAAAAAM7CBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNsb3RzLCB0aGF0IGVhY2ggZXBvY2ggc2hvdWxkIGxhc3QuGQEgTk9URTogQ3VycmVudGx5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGVwb2NoIGR1cmF0aW9uIGFmdGVyIQEgdGhlIGNoYWluIGhhcyBzdGFydGVkLiBBdHRlbXB0aW5nIHRvIGRvIHNvIHdpbGwgYnJpY2sgYmxvY2sgcHJvZHVjdGlvbi5ERXhwZWN0ZWRCbG9ja1RpbWUwIHAXAAAAAAAAFAUBIFRoZSBleHBlY3RlZCBhdmVyYWdlIGJsb2NrIHRpbWUgYXQgd2hpY2ggQkFCRSBzaG91bGQgYmUgY3JlYXRpbmcRASBibG9ja3MuIFNpbmNlIEJBQkUgaXMgcHJvYmFiaWxpc3RpYyBpdCBpcyBub3QgdHJpdmlhbCB0byBmaWd1cmUgb3V0BQEgd2hhdCB0aGUgZXhwZWN0ZWQgYXZlcmFnZSBibG9jayB0aW1lIHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgc2xvdAkBIGR1cmF0aW9uIGFuZCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyIGBjYCAod2hlcmUgYDEgLSBjYCByZXByZXNlbnRzoCB0aGUgcHJvYmFiaWxpdHkgb2YgYSBzbG90IGJlaW5nIGVtcHR5KS44TWF4QXV0aG9yaXRpZXMQEKCGAQAEiCBNYXggbnVtYmVyIG9mIGF1dGhvcml0aWVzIGFsbG93ZWQ0TWF4Tm9taW5hdG9ycxAQAAAAAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBub21pbmF0b3JzIGZvciBlYWNoIHZhbGlkYXRvci4B0QcBACRUaW1lc3RhbXABJFRpbWVzdGFtcAgMTm93AQAwIAAAAAAAAAAABKAgVGhlIGN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suJERpZFVwZGF0ZQEAIAQAENggV2hldGhlciB0aGUgdGltZXN0YW1wIGhhcyBiZWVuIHVwZGF0ZWQgaW4gdGhpcyBibG9jay4AVQEgVGhpcyB2YWx1ZSBpcyB1cGRhdGVkIHRvIGB0cnVlYCB1cG9uIHN1Y2Nlc3NmdWwgc3VibWlzc2lvbiBvZiBhIHRpbWVzdGFtcCBieSBhIG5vZGUuRQEgSXQgaXMgdGhlbiBjaGVja2VkIGF0IHRoZSBlbmQgb2YgZWFjaCBibG9jayBleGVjdXRpb24gaW4gdGhlIGBvbl9maW5hbGl6ZWAgaG9vay4BuQEABDRNaW5pbXVtUGVyaW9kMCC4CwAAAAAAABiMIFRoZSBtaW5pbXVtIHBlcmlvZCBiZXR3ZWVuIGJsb2Nrcy4ATQEgQmUgYXdhcmUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgKmV4cGVjdGVkKiBwZXJpb2QgdGhhdCB0aGUgYmxvY2sgcHJvZHVjdGlvbkkBIGFwcGFyYXR1cyBwcm92aWRlcy4gWW91ciBjaG9zZW4gY29uc2Vuc3VzIHN5c3RlbSB3aWxsIGdlbmVyYWxseSB3b3JrIHdpdGggdGhpcyB0b2EBIGRldGVybWluZSBhIHNlbnNpYmxlIGJsb2NrIHRpbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgQXVyYSBwYWxsZXQgaXQgd2lsbCBiZSBkb3VibGUgdGhpc3AgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAIAHEluZGljZXMBHEluZGljZXMEIEFjY291bnRzAAEEAhDVBwQABIggVGhlIGxvb2t1cCBmcm9tIGluZGV4IHRvIGFjY291bnQuAb0BAXwEHERlcG9zaXQYQDShrsYAAAAAAAAAAAAAAAAErCBUaGUgZGVwb3NpdCBuZWVkZWQgZm9yIHJlc2VydmluZyBhbiBpbmRleC4B2QcDACBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBABhAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS5ASW5hY3RpdmVJc3N1YW5jZQEAGEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uHEFjY291bnQBAQQCABQBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4UTG9ja3MBAQQCAN0HBAAQuCBBbnkgbGlxdWlkaXR5IGxvY2tzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYCBSZXNlcnZlcwEBBAIA7QcEAAykIE5hbWVkIHJlc2VydmVzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AUSG9sZHMBAQQCAPkHBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLhxGcmVlemVzAQEEAgAVCAQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuAc0BAYAQSEV4aXN0ZW50aWFsRGVwb3NpdBhAVaD8AQAAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEgTWF4TG9ja3MQEDIAAAAQ9CBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9ja3MgdGhhdCBzaG91bGQgZXhpc3Qgb24gYW4gYWNjb3VudC7cIE5vdCBzdHJpY3RseSBlbmZvcmNlZCwgYnV0IHVzZWQgZm9yIHdlaWdodCBlc3RpbWF0aW9uLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gLE1heFJlc2VydmVzEBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYChNYXhGcmVlemVzEBABAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgEhCAQAKFBhcmFtZXRlcnMBKFBhcmFtZXRlcnMEKFBhcmFtZXRlcnMAAQQCjKwEAARMIFN0b3JlZCBwYXJhbWV0ZXJzLgHZAQGIAAAGAEhUcmFuc2FjdGlvblBheW1lbnQBSFRyYW5zYWN0aW9uUGF5bWVudAhETmV4dEZlZU11bHRpcGxpZXIBAJUDQAAAZKeztuANAAAAAAAAAAAAOFN0b3JhZ2VWZXJzaW9uAQAlCAQAAAABvARgT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyCAQFVFkBIEEgZmVlIG11bHRpcGxpZXIgZm9yIGBPcGVyYXRpb25hbGAgZXh0cmluc2ljcyB0byBjb21wdXRlICJ2aXJ0dWFsIHRpcCIgdG8gYm9vc3QgdGhlaXIsIGBwcmlvcml0eWAAUQEgVGhpcyB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBgZmluYWxfZmVlYCB0byBvYnRhaW4gYSAidmlydHVhbCB0aXAiIHRoYXQgaXMgbGF0ZXL0IGFkZGVkIHRvIGEgdGlwIGNvbXBvbmVudCBpbiByZWd1bGFyIGBwcmlvcml0eWAgY2FsY3VsYXRpb25zLk0BIEl0IG1lYW5zIHRoYXQgYSBgTm9ybWFsYCB0cmFuc2FjdGlvbiBjYW4gZnJvbnQtcnVuIGEgc2ltaWxhcmx5LXNpemVkIGBPcGVyYXRpb25hbGBBASBleHRyaW5zaWMgKHdpdGggbm8gdGlwKSwgYnkgaW5jbHVkaW5nIGEgdGlwIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgdmlydHVhbCB0aXAuADwgYGBgcnVzdCxpZ25vcmVAIC8vIEZvciBgTm9ybWFsYIwgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXApOwBUIC8vIEZvciBgT3BlcmF0aW9uYWxgEQEgbGV0IHZpcnR1YWxfdGlwID0gKGluY2x1c2lvbl9mZWUgKyB0aXApICogT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyO8QgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXAgKyB2aXJ0dWFsX3RpcCk7ECBgYGAAUQEgTm90ZSB0aGF0IHNpbmNlIHdlIHVzZSBgZmluYWxfZmVlYCB0aGUgbXVsdGlwbGllciBhcHBsaWVzIGFsc28gdG8gdGhlIHJlZ3VsYXIgYHRpcGBdASBzZW50IHdpdGggdGhlIHRyYW5zYWN0aW9uLiBTbywgbm90IG9ubHkgZG9lcyB0aGUgdHJhbnNhY3Rpb24gZ2V0IGEgcHJpb3JpdHkgYnVtcCBiYXNlZGEBIG9uIHRoZSBgaW5jbHVzaW9uX2ZlZWAsIGJ1dCB3ZSBhbHNvIGFtcGxpZnkgdGhlIGltcGFjdCBvZiB0aXBzIGFwcGxpZWQgdG8gYE9wZXJhdGlvbmFsYDggdHJhbnNhY3Rpb25zLgAhAChBdXRob3JzaGlwAShBdXRob3JzaGlwBBhBdXRob3IAAAAEAARkIEF1dGhvciBvZiBjdXJyZW50IGJsb2NrLgAAAAAFACBPZmZlbmNlcwEgT2ZmZW5jZXMIHFJlcG9ydHMAAQQFNCkIBAAESQEgVGhlIHByaW1hcnkgc3RydWN0dXJlIHRoYXQgaG9sZHMgYWxsIG9mZmVuY2UgcmVjb3JkcyBrZXllZCBieSByZXBvcnQgaWRlbnRpZmllcnMuWENvbmN1cnJlbnRSZXBvcnRzSW5kZXgBAQgFBTEIjQMEAAQpASBBIHZlY3RvciBvZiByZXBvcnRzIG9mIHRoZSBzYW1lIGtpbmQgdGhhdCBoYXBwZW5lZCBhdCB0aGUgc2FtZSB0aW1lIHNsb3QuAAHAAAAHAChIaXN0b3JpY2FsAShIaXN0b3JpY2FsCEhIaXN0b3JpY2FsU2Vzc2lvbnMAAQQFEDUIBAAEXQEgTWFwcGluZyBmcm9tIGhpc3RvcmljYWwgc2Vzc2lvbiBpbmRpY2VzIHRvIHNlc3Npb24tZGF0YSByb290IGhhc2ggYW5kIHZhbGlkYXRvciBjb3VudC4sU3RvcmVkUmFuZ2UAAG0DBAAE5CBUaGUgcmFuZ2Ugb2YgaGlzdG9yaWNhbCBzZXNzaW9ucyB3ZSBzdG9yZS4gW2ZpcnN0LCBsYXN0KQAAAAAiABxTZXNzaW9uARxTZXNzaW9uHChWYWxpZGF0b3JzAQDRAQQABHwgVGhlIGN1cnJlbnQgc2V0IG9mIHZhbGlkYXRvcnMuMEN1cnJlbnRJbmRleAEAEBAAAAAABHggQ3VycmVudCBpbmRleCBvZiB0aGUgc2Vzc2lvbi40UXVldWVkQ2hhbmdlZAEAIAQACDkBIFRydWUgaWYgdGhlIHVuZGVybHlpbmcgZWNvbm9taWMgaWRlbnRpdGllcyBvciB3ZWlnaHRpbmcgYmVoaW5kIHRoZSB2YWxpZGF0b3JzpCBoYXMgY2hhbmdlZCBpbiB0aGUgcXVldWVkIHZhbGlkYXRvciBzZXQuKFF1ZXVlZEtleXMBADkIBAAIPQEgVGhlIHF1ZXVlZCBrZXlzIGZvciB0aGUgbmV4dCBzZXNzaW9uLiBXaGVuIHRoZSBuZXh0IHNlc3Npb24gYmVnaW5zLCB0aGVzZSBrZXlz4CB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZGF0b3IncyBzZXNzaW9uIGtleXMuSERpc2FibGVkVmFsaWRhdG9ycwEAQQgEABSAIEluZGljZXMgb2YgZGlzYWJsZWQgdmFsaWRhdG9ycy4APQEgVGhlIHZlYyBpcyBhbHdheXMga2VwdCBzb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZmluZCB3aGV0aGVyIGEgZ2l2ZW4gdmFsaWRhdG9yIGlzPQEgZGlzYWJsZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC4gSXQgZ2V0cyBjbGVhcmVkIHdoZW4gYG9uX3Nlc3Npb25fZW5kaW5nYCByZXR1cm5zZCBhIG5ldyBzZXQgb2YgaWRlbnRpdGllcy4gTmV4dEtleXMAAQQFAPUBBAAEnCBUaGUgbmV4dCBzZXNzaW9uIGtleXMgZm9yIGEgdmFsaWRhdG9yLiBLZXlPd25lcgABBAVFCAAEAAQJASBUaGUgb3duZXIgb2YgYSBrZXkuIFRoZSBrZXkgaXMgdGhlIGBLZXlUeXBlSWRgICsgdGhlIGVuY29kZWQga2V5LgHxAQHIAAFNCAgAHEdyYW5kcGEBHEdyYW5kcGEcFFN0YXRlAQBRCAQABJAgU3RhdGUgb2YgdGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC40UGVuZGluZ0NoYW5nZQAAVQgEAATEIFBlbmRpbmcgY2hhbmdlOiAoc2lnbmFsZWQgYXQsIHNjaGVkdWxlZCBjaGFuZ2UpLihOZXh0Rm9yY2VkAAAQBAAEvCBuZXh0IGJsb2NrIG51bWJlciB3aGVyZSB3ZSBjYW4gZm9yY2UgYSBjaGFuZ2UuHFN0YWxsZWQAAG0DBAAEkCBgdHJ1ZWAgaWYgd2UgYXJlIGN1cnJlbnRseSBzdGFsbGVkLjBDdXJyZW50U2V0SWQBADAgAAAAAAAAAAAIXQEgVGhlIG51bWJlciBvZiBjaGFuZ2VzIChib3RoIGluIHRlcm1zIG9mIGtleXMgYW5kIHVuZGVybHlpbmcgZWNvbm9taWMgcmVzcG9uc2liaWxpdGllcynEIGluIHRoZSAic2V0IiBvZiBHcmFuZHBhIHZhbGlkYXRvcnMgZnJvbSBnZW5lc2lzLjBTZXRJZFNlc3Npb24AAQQFMBAEAChZASBBIG1hcHBpbmcgZnJvbSBncmFuZHBhIHNldCBJRCB0byB0aGUgaW5kZXggb2YgdGhlICptb3N0IHJlY2VudCogc2Vzc2lvbiBmb3Igd2hpY2ggaXRzaCBtZW1iZXJzIHdlcmUgcmVzcG9uc2libGUuAEUBIFRoaXMgaXMgb25seSB1c2VkIGZvciB2YWxpZGF0aW5nIGVxdWl2b2NhdGlvbiBwcm9vZnMuIEFuIGVxdWl2b2NhdGlvbiBwcm9vZiBtdXN0TQEgY29udGFpbnMgYSBrZXktb3duZXJzaGlwIHByb29mIGZvciBhIGdpdmVuIHNlc3Npb24sIHRoZXJlZm9yZSB3ZSBuZWVkIGEgd2F5IHRvIHRpZUUBIHRvZ2V0aGVyIHNlc3Npb25zIGFuZCBHUkFORFBBIHNldCBpZHMsIGkuZS4gd2UgbmVlZCB0byB2YWxpZGF0ZSB0aGF0IGEgdmFsaWRhdG9yQQEgd2FzIHRoZSBvd25lciBvZiBhIGdpdmVuIGtleSBvbiBhIGdpdmVuIHNlc3Npb24sIGFuZCB3aGF0IHRoZSBhY3RpdmUgc2V0IElEIHdhc1QgZHVyaW5nIHRoYXQgc2Vzc2lvbi4AuCBUV09YLU5PVEU6IGBTZXRJZGAgaXMgbm90IHVuZGVyIHVzZXIgY29udHJvbC4sQXV0aG9yaXRpZXMBAFkIBAAEhCBUaGUgY3VycmVudCBsaXN0IG9mIGF1dGhvcml0aWVzLgENAgHMDDhNYXhBdXRob3JpdGllcxAQoIYBAARcIE1heCBBdXRob3JpdGllcyBpbiB1c2U0TWF4Tm9taW5hdG9ycxAQAAAAAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBub21pbmF0b3JzIGZvciBlYWNoIHZhbGlkYXRvci5YTWF4U2V0SWRTZXNzaW9uRW50cmllczAgqAAAAAAAAAAYOQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgdG8ga2VlcCBpbiB0aGUgc2V0IGlkIHRvIHNlc3Npb24gaW5kZXggbWFwcGluZy4AMQEgU2luY2UgdGhlIGBTZXRJZFNlc3Npb25gIG1hcCBpcyBvbmx5IHVzZWQgZm9yIHZhbGlkYXRpbmcgZXF1aXZvY2F0aW9ucyB0aGlzKQEgdmFsdWUgc2hvdWxkIHJlbGF0ZSB0byB0aGUgYm9uZGluZyBkdXJhdGlvbiBvZiB3aGF0ZXZlciBzdGFraW5nIHN5c3RlbSBpczUBIGJlaW5nIHVzZWQgKGlmIGFueSkuIElmIGVxdWl2b2NhdGlvbiBoYW5kbGluZyBpcyBub3QgZW5hYmxlZCB0aGVuIHRoaXMgdmFsdWU0IGNhbiBiZSB6ZXJvLgFdCAoASEF1dGhvcml0eURpc2NvdmVyeQFIQXV0aG9yaXR5RGlzY292ZXJ5CBBLZXlzAQBhCAQABIwgS2V5cyBvZiB0aGUgY3VycmVudCBhdXRob3JpdHkgc2V0LiBOZXh0S2V5cwEAYQgEAASAIEtleXMgb2YgdGhlIG5leHQgYXV0aG9yaXR5IHNldC4AAAAADAAgVHJlYXN1cnkBIFRyZWFzdXJ5GDRQcm9wb3NhbENvdW50AQAQEAAAAAAEpCBOdW1iZXIgb2YgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuJFByb3Bvc2FscwABBAUQaQgEAAR8IFByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLixEZWFjdGl2YXRlZAEAGEAAAAAAAAAAAAAAAAAAAAAABPAgVGhlIGFtb3VudCB3aGljaCBoYXMgYmVlbiByZXBvcnRlZCBhcyBpbmFjdGl2ZSB0byBDdXJyZW5jeS4kQXBwcm92YWxzAQBtCAQABPggUHJvcG9zYWwgaW5kaWNlcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBidXQgbm90IHlldCBhd2FyZGVkLihTcGVuZENvdW50AQAQEAAAAAAEpCBUaGUgY291bnQgb2Ygc3BlbmRzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuGFNwZW5kcwABBAUQcQgEAATQIFNwZW5kcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBhbmQgYmVpbmcgcHJvY2Vzc2VkLgE5AgHcFCxTcGVuZFBlcmlvZBAQgFEBAASIIFBlcmlvZCBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc3BlbmRzLhBCdXJueQgQ0AcAAAQRASBQZXJjZW50YWdlIG9mIHNwYXJlIGZ1bmRzIChpZiBhbnkpIHRoYXQgYXJlIGJ1cm50IHBlciBzcGVuZCBwZXJpb2QuIFBhbGxldElkfQggcHkvdHJzcnkEGQEgVGhlIHRyZWFzdXJ5J3MgcGFsbGV0IGlkLCB1c2VkIGZvciBkZXJpdmluZyBpdHMgc292ZXJlaWduIGFjY291bnQgSUQuME1heEFwcHJvdmFscxAQZAAAAAwVASBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXBwcm92YWxzIHRoYXQgY2FuIHdhaXQgaW4gdGhlIHNwZW5kaW5nIHF1ZXVlLgBNASBOT1RFOiBUaGlzIHBhcmFtZXRlciBpcyBhbHNvIHVzZWQgd2l0aGluIHRoZSBCb3VudGllcyBQYWxsZXQgZXh0ZW5zaW9uIGlmIGVuYWJsZWQuMFBheW91dFBlcmlvZBAQgJcGAAQZASBUaGUgcGVyaW9kIGR1cmluZyB3aGljaCBhbiBhcHByb3ZlZCB0cmVhc3VyeSBzcGVuZCBoYXMgdG8gYmUgY2xhaW1lZC4BgQgSAEBDb252aWN0aW9uVm90aW5nAUBDb252aWN0aW9uVm90aW5nCCRWb3RpbmdGb3IBAQgFBYUIiQjYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHUBIEFsbCB2b3RpbmcgZm9yIGEgcGFydGljdWxhciB2b3RlciBpbiBhIHBhcnRpY3VsYXIgdm90aW5nIGNsYXNzLiBXZSBzdG9yZSB0aGUgYmFsYW5jZSBmb3IgdGhlnCBudW1iZXIgb2Ygdm90ZXMgdGhhdCB3ZSBoYXZlIHJlY29yZGVkLjRDbGFzc0xvY2tzRm9yAQEEBQCpCAQADGkBIFRoZSB2b3RpbmcgY2xhc3NlcyB3aGljaCBoYXZlIGEgbm9uLXplcm8gbG9jayByZXF1aXJlbWVudCBhbmQgdGhlIGxvY2sgYW1vdW50cyB3aGljaCB0aGV5bQEgcmVxdWlyZS4gVGhlIGFjdHVhbCBhbW91bnQgbG9ja2VkIG9uIGJlaGFsZiBvZiB0aGlzIHBhbGxldCBzaG91bGQgYWx3YXlzIGJlIHRoZSBtYXhpbXVtIG9mLCB0aGlzIGxpc3QuAUECAWkBCCBNYXhWb3RlcxAQAAIAABDwIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHZvdGVzIGFuIGFjY291bnQgbWF5IGhhdmUuAFUBIEFsc28gdXNlZCB0byBjb21wdXRlIHdlaWdodCwgYW4gb3Zlcmx5IGxhcmdlIHZhbHVlIGNhbiBsZWFkIHRvIGV4dHJpbnNpY3Mgd2l0aCBsYXJnZcAgd2VpZ2h0IGVzdGltYXRpb246IHNlZSBgZGVsZWdhdGVgIGZvciBpbnN0YW5jZS5EVm90ZUxvY2tpbmdQZXJpb2QQEMCJAQAQkCBUaGUgbWluaW11bSBwZXJpb2Qgb2Ygdm90ZSBsb2NraW5nLgBlASBJdCBzaG91bGQgYmUgbm8gc2hvcnRlciB0aGFuIGVuYWN0bWVudCBwZXJpb2QgdG8gZW5zdXJlIHRoYXQgaW4gdGhlIGNhc2Ugb2YgYW4gYXBwcm92YWwsSQEgdGhvc2Ugc3VjY2Vzc2Z1bCB2b3RlcnMgYXJlIGxvY2tlZCBpbnRvIHRoZSBjb25zZXF1ZW5jZXMgdGhhdCB0aGVpciB2b3RlcyBlbnRhaWwuAbUIFAAkUmVmZXJlbmRhASRSZWZlcmVuZGEUPFJlZmVyZW5kdW1Db3VudAEAEBAAAAAABDEBIFRoZSBuZXh0IGZyZWUgcmVmZXJlbmR1bSBpbmRleCwgYWthIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHN0YXJ0ZWQgc28gZmFyLkRSZWZlcmVuZHVtSW5mb0ZvcgABBAIQuQgEAAS0IEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgYW55IGdpdmVuIHJlZmVyZW5kdW0uKFRyYWNrUXVldWUBAQQFeQHZCAQAEF0BIFRoZSBzb3J0ZWQgbGlzdCBvZiByZWZlcmVuZGEgcmVhZHkgdG8gYmUgZGVjaWRlZCBidXQgbm90IHlldCBiZWluZyBkZWNpZGVkLCBvcmRlcmVkIGJ5fCBjb252aWN0aW9uLXdlaWdodGVkIGFwcHJvdmFscy4AQQEgVGhpcyBzaG91bGQgYmUgZW1wdHkgaWYgYERlY2lkaW5nQ291bnRgIGlzIGxlc3MgdGhhbiBgVHJhY2tJbmZvOjptYXhfZGVjaWRpbmdgLjREZWNpZGluZ0NvdW50AQEEBXkBEBAAAAAABMQgVGhlIG51bWJlciBvZiByZWZlcmVuZGEgYmVpbmcgZGVjaWRlZCBjdXJyZW50bHkuKE1ldGFkYXRhT2YAAQQCEDQEABgFASBUaGUgbWV0YWRhdGEgaXMgYSBnZW5lcmFsIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcgdGhlIHJlZmVyZW5kdW0uSQEgVGhlIGBIYXNoYCByZWZlcnMgdG8gdGhlIHByZWltYWdlIG9mIHRoZSBgUHJlaW1hZ2VzYCBwcm92aWRlciB3aGljaCBjYW4gYmUgYSBKU09OiCBkdW1wIG9yIElQRlMgaGFzaCBvZiBhIEpTT04gZmlsZS4AdQEgQ29uc2lkZXIgYSBnYXJiYWdlIGNvbGxlY3Rpb24gZm9yIGEgbWV0YWRhdGEgb2YgZmluaXNoZWQgcmVmZXJlbmR1bXMgdG8gYHVucmVxdWVzdGAgKHJlbW92ZSlEIGxhcmdlIHByZWltYWdlcy4BTQIBdQEURFN1Ym1pc3Npb25EZXBvc2l0GED/4PUFAAAAAAAAAAAAAAAABDUBIFRoZSBtaW5pbXVtIGFtb3VudCB0byBiZSB1c2VkIGFzIGEgZGVwb3NpdCBmb3IgYSBwdWJsaWMgcmVmZXJlbmR1bSBwcm9wb3NhbC4kTWF4UXVldWVkEBBkAAAABOQgTWF4aW11bSBzaXplIG9mIHRoZSByZWZlcmVuZHVtIHF1ZXVlIGZvciBhIHNpbmdsZSB0cmFjay5EVW5kZWNpZGluZ1RpbWVvdXQQEIATAwAIVQEgVGhlIG51bWJlciBvZiBibG9ja3MgYWZ0ZXIgc3VibWlzc2lvbiB0aGF0IGEgcmVmZXJlbmR1bSBtdXN0IGJlZ2luIGJlaW5nIGRlY2lkZWQgYnku5CBPbmNlIHRoaXMgcGFzc2VzLCB0aGVuIGFueW9uZSBtYXkgY2FuY2VsIHRoZSByZWZlcmVuZHVtLjRBbGFybUludGVydmFsEBABAAAADF0BIFF1YW50aXphdGlvbiBsZXZlbCBmb3IgdGhlIHJlZmVyZW5kdW0gd2FrZXVwIHNjaGVkdWxlci4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgcmVzdWx0IGluXQEgZmV3ZXIgc3RvcmFnZSByZWFkcy93cml0ZXMgbmVlZGVkIGZvciBzbWFsbGVyIHZvdGVycywgYnV0IGFsc28gcmVzdWx0IGluIGRlbGF5cyB0byB0aGVVASBhdXRvbWF0aWMgcmVmZXJlbmR1bSBzdGF0dXMgY2hhbmdlcy4gRXhwbGljaXQgc2VydmljaW5nIGluc3RydWN0aW9ucyBhcmUgdW5hZmZlY3RlZC4YVHJhY2tz5QipFTwAABByb290AQAAAID4uTYqLwEAAAAAAAAAAABQAAAAyAAAAHgAAAAyAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAABlzR0BAEh3aGl0ZWxpc3RlZF9jYWxsZXJkAAAAQP94BVEeAAAAAAAAAAAAADwAAADIAAAAKAAAAB4AAAAC7JclEAAAAAB7VzwXAAAAAEI5LxIAAAAAAg4AhAAAAAAA1uYfAQAAAAA5YnkCAAAAAAoANHN0YWtpbmdfYWRtaW4KAAAAoH+8gigPAAAAAAAAAAAAAFAAAADIAAAAUAAAAB4AAAAAyUMwJABlzR0Aypo7Al1veAAAAAAA6C7tAAAAAACMaIn//////wsAJHRyZWFzdXJlcgoAAAAgsyUaCAMAAAAAAAAAAAAAUAAAAMgAAABQAAAAMgAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAAAAMqaOwAAAAAAZc0dDAAsbGVhc2VfYWRtaW4KAAAAoH+8gigPAAAAAAAAAAAAAFAAAADIAAAAUAAAAB4AAAAAyUMwJABlzR0Aypo7Al1veAAAAAAA6C7tAAAAAACMaIn//////w0AQGZlbGxvd3NoaXBfYWRtaW4KAAAAoH+8gigPAAAAAAAAAAAAAFAAAADIAAAAUAAAAB4AAAAAyUMwJABlzR0Aypo7Al1veAAAAAAA6C7tAAAAAACMaIn//////w4ANGdlbmVyYWxfYWRtaW4KAAAAoH+8gigPAAAAAAAAAAAAAFAAAADIAAAAUAAAAB4AAAACkNc+DQAAAABXQ94TAAAAAFRD3hMAAAAAAlmi9AIAAAAAoylrBQAAAAAua0r9/////w8ANGF1Y3Rpb25fYWRtaW4KAAAAoH+8gigPAAAAAAAAAAAAAFAAAADIAAAAUAAAAB4AAAACkNc+DQAAAABXQ94TAAAAAFRD3hMAAAAAAlmi9AIAAAAAoylrBQAAAAAua0r9/////xQAUHJlZmVyZW5kdW1fY2FuY2VsbGVy6AMAAED/eAVRHgAAAAAAAAAAAABQAAAAjAAAAFAAAAAeAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8VAERyZWZlcmVuZHVtX2tpbGxlcugDAABA/FwblZcAAAAAAAAAAAAAUAAAAMgAAABQAAAAHgAAAADJQzAkAGXNHQDKmjsCXW94AAAAAADoLu0AAAAAAIxoif//////HgAwc21hbGxfdGlwcGVyyAAAAP/g9QUAAAAAAAAAAAAAAAAKAAAAjAAAACgAAAAKAAAAAEmRSRUAZc0dAMqaOwL5uhgAAAAAACpNMQAAAAAAa1nn//////8fAChiaWdfdGlwcGVyZAAAAPbJmjsAAAAAAAAAAAAAAAAoAAAAjAAAAHgAAAAeAAAAAEmRSRUAZc0dAMqaOwJpTz8AAAAAADWWfQAAAAAA5TTB//////8gADRzbWFsbF9zcGVuZGVyMgAAAJzjC1QCAAAAAAAAAAAAAABkAAAAyAAAAGQAAAAyAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8hADhtZWRpdW1fc3BlbmRlcjIAAAA4xxeoBAAAAAAAAAAAAAAAZAAAAMgAAAB4AAAAMgAAAABbAfYwAGXNHQDKmjsCEWHbAAAAAAC/0aoBAAAAACCXKv//////IgAsYmlnX3NwZW5kZXIyAAAAcI4vUAkAAAAAAAAAAAAAAGQAAADIAAAAjAAAADIAAAAAAMqaOwBlzR0Aypo7AkE8sAEAAAAAdV00AwAAAABF0WX+/////wTgIEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgdGhlIGRpZmZlcmVudCByZWZlcmVuZHVtIHRyYWNrcy4B/QgVAFBGZWxsb3dzaGlwQ29sbGVjdGl2ZQFQRmVsbG93c2hpcENvbGxlY3RpdmUYLE1lbWJlckNvdW50AQEEBXkBEBAAAAAACGkBIFRoZSBudW1iZXIgb2YgbWVtYmVycyBpbiB0aGUgY29sbGVjdGl2ZSB3aG8gaGF2ZSBhdCBsZWFzdCB0aGUgcmFuayBhY2NvcmRpbmcgdG8gdGhlIGluZGV4MCBvZiB0aGUgdmVjLhxNZW1iZXJzAAEEBQABCQQABJwgVGhlIGN1cnJlbnQgbWVtYmVycyBvZiB0aGUgY29sbGVjdGl2ZS4kSWRUb0luZGV4AAEIBQUFCRAEAARhASBUaGUgaW5kZXggb2YgZWFjaCByYW5rcydzIG1lbWJlciBpbnRvIHRoZSBncm91cCBvZiBtZW1iZXJzIHdobyBoYXZlIGF0IGxlYXN0IHRoYXQgcmFuay4kSW5kZXhUb0lkAAEIBQUJCQAEAAhdASBUaGUgbWVtYmVycyBpbiB0aGUgY29sbGVjdGl2ZSBieSBpbmRleC4gQWxsIGluZGljZXMgaW4gdGhlIHJhbmdlIGAwLi5NZW1iZXJDb3VudGAgd2lsbGUBIHJldHVybiBgU29tZWAsIGhvd2V2ZXIgYSBtZW1iZXIncyBpbmRleCBpcyBub3QgZ3VhcmFudGVlZCB0byByZW1haW4gdW5jaGFuZ2VkIG92ZXIgdGltZS4YVm90aW5nAAEIAgUNCYEGBAAEtCBWb3RlcyBvbiBhIGdpdmVuIHByb3Bvc2FsLCBpZiBpdCBpcyBvbmdvaW5nLjRWb3RpbmdDbGVhbnVwAAEEAhARCQQAAAF1AgF9BgABFQkWAExGZWxsb3dzaGlwUmVmZXJlbmRhAUxGZWxsb3dzaGlwUmVmZXJlbmRhFDxSZWZlcmVuZHVtQ291bnQBABAQAAAAAAQxASBUaGUgbmV4dCBmcmVlIHJlZmVyZW5kdW0gaW5kZXgsIGFrYSB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBzdGFydGVkIHNvIGZhci5EUmVmZXJlbmR1bUluZm9Gb3IAAQQCEBkJBAAEtCBJbmZvcm1hdGlvbiBjb25jZXJuaW5nIGFueSBnaXZlbiByZWZlcmVuZHVtLihUcmFja1F1ZXVlAQEEBXkBIQkEABBdASBUaGUgc29ydGVkIGxpc3Qgb2YgcmVmZXJlbmRhIHJlYWR5IHRvIGJlIGRlY2lkZWQgYnV0IG5vdCB5ZXQgYmVpbmcgZGVjaWRlZCwgb3JkZXJlZCBieXwgY29udmljdGlvbi13ZWlnaHRlZCBhcHByb3ZhbHMuAEEBIFRoaXMgc2hvdWxkIGJlIGVtcHR5IGlmIGBEZWNpZGluZ0NvdW50YCBpcyBsZXNzIHRoYW4gYFRyYWNrSW5mbzo6bWF4X2RlY2lkaW5nYC40RGVjaWRpbmdDb3VudAEBBAV5ARAQAAAAAATEIFRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIGJlaW5nIGRlY2lkZWQgY3VycmVudGx5LihNZXRhZGF0YU9mAAEEAhA0BAAYBQEgVGhlIG1ldGFkYXRhIGlzIGEgZ2VuZXJhbCBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIHRoZSByZWZlcmVuZHVtLkkBIFRoZSBgSGFzaGAgcmVmZXJzIHRvIHRoZSBwcmVpbWFnZSBvZiB0aGUgYFByZWltYWdlc2AgcHJvdmlkZXIgd2hpY2ggY2FuIGJlIGEgSlNPToggZHVtcCBvciBJUEZTIGhhc2ggb2YgYSBKU09OIGZpbGUuAHUBIENvbnNpZGVyIGEgZ2FyYmFnZSBjb2xsZWN0aW9uIGZvciBhIG1ldGFkYXRhIG9mIGZpbmlzaGVkIHJlZmVyZW5kdW1zIHRvIGB1bnJlcXVlc3RgIChyZW1vdmUpRCBsYXJnZSBwcmVpbWFnZXMuAXkCAYkGFERTdWJtaXNzaW9uRGVwb3NpdBhAAAAAAAAAAAAAAAAAAAAAAAQ1ASBUaGUgbWluaW11bSBhbW91bnQgdG8gYmUgdXNlZCBhcyBhIGRlcG9zaXQgZm9yIGEgcHVibGljIHJlZmVyZW5kdW0gcHJvcG9zYWwuJE1heFF1ZXVlZBAQZAAAAATkIE1heGltdW0gc2l6ZSBvZiB0aGUgcmVmZXJlbmR1bSBxdWV1ZSBmb3IgYSBzaW5nbGUgdHJhY2suRFVuZGVjaWRpbmdUaW1lb3V0EBDAiQEACFUBIFRoZSBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIHN1Ym1pc3Npb24gdGhhdCBhIHJlZmVyZW5kdW0gbXVzdCBiZWdpbiBiZWluZyBkZWNpZGVkIGJ5LuQgT25jZSB0aGlzIHBhc3NlcywgdGhlbiBhbnlvbmUgbWF5IGNhbmNlbCB0aGUgcmVmZXJlbmR1bS40QWxhcm1JbnRlcnZhbBAQAQAAAAxdASBRdWFudGl6YXRpb24gbGV2ZWwgZm9yIHRoZSByZWZlcmVuZHVtIHdha2V1cCBzY2hlZHVsZXIuIEEgaGlnaGVyIG51bWJlciB3aWxsIHJlc3VsdCBpbl0BIGZld2VyIHN0b3JhZ2UgcmVhZHMvd3JpdGVzIG5lZWRlZCBmb3Igc21hbGxlciB2b3RlcnMsIGJ1dCBhbHNvIHJlc3VsdCBpbiBkZWxheXMgdG8gdGhlVQEgYXV0b21hdGljIHJlZmVyZW5kdW0gc3RhdHVzIGNoYW5nZXMuIEV4cGxpY2l0IHNlcnZpY2luZyBpbnN0cnVjdGlvbnMgYXJlIHVuYWZmZWN0ZWQuGFRyYWNrc+UIzQsoAAAoY2FuZGlkYXRlcwoAAACc4wtUAgAAAAAAAAAAAAAALAEAAMCJAQAsAQAACgAAAAAAypo7AGXNHQDKmjsAAMqaOwAAAAAAZc0dAQAcbWVtYmVycwoAAAD2yZo7AAAAAAAAAAAAAAAALAEAAMCJAQAsAQAACgAAAAAAypo7AGXNHQDKmjsAAMqaOwAAAAAAZc0dAgAscHJvZmljaWVudHMKAAAA9smaOwAAAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQMAHGZlbGxvd3MKAAAA9smaOwAAAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQQAOHNlbmlvciBmZWxsb3dzCgAAAPbJmjsAAAAAAAAAAAAAAAAsAQAAwIkBACwBAAAKAAAAAADKmjsAZc0dAMqaOwAAypo7AAAAAABlzR0FABxleHBlcnRzCgAAAP/g9QUAAAAAAAAAAAAAAAAsAQAAwIkBACwBAAAKAAAAAADKmjsAZc0dAMqaOwAAypo7AAAAAABlzR0GADhzZW5pb3IgZXhwZXJ0cwoAAAD/4PUFAAAAAAAAAAAAAAAALAEAAMCJAQAsAQAACgAAAAAAypo7AGXNHQDKmjsAAMqaOwAAAAAAZc0dBwAcbWFzdGVycwoAAAD/4PUFAAAAAAAAAAAAAAAALAEAAMCJAQAsAQAACgAAAAAAypo7AGXNHQDKmjsAAMqaOwAAAAAAZc0dCAA4c2VuaW9yIG1hc3RlcnMKAAAA/+D1BQAAAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQkANGdyYW5kIG1hc3RlcnMKAAAA/+D1BQAAAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQTgIEluZm9ybWF0aW9uIGNvbmNlcm5pbmcgdGhlIGRpZmZlcmVudCByZWZlcmVuZHVtIHRyYWNrcy4BJQkXABxPcmlnaW5zAAAAAAArACRXaGl0ZWxpc3QBJFdoaXRlbGlzdAQ8V2hpdGVsaXN0ZWRDYWxsAAEEBTTFAQQAAAF9AgGNBgABKQksABhDbGFpbXMBGENsYWltcxQYQ2xhaW1zAAEEBo0CGAQAABRUb3RhbAEAGEAAAAAAAAAAAAAAAAAAAAAAABxWZXN0aW5nAAEEBo0ClQIEABB4IFZlc3Rpbmcgc2NoZWR1bGUgZm9yIGEgY2xhaW0uDQEgRmlyc3QgYmFsYW5jZSBpcyB0aGUgdG90YWwgYW1vdW50IHRoYXQgc2hvdWxkIGJlIGhlbGQgZm9yIHZlc3Rpbmcu5CBTZWNvbmQgYmFsYW5jZSBpcyBob3cgbXVjaCBzaG91bGQgYmUgdW5sb2NrZWQgcGVyIGJsb2NrLswgVGhlIGJsb2NrIG51bWJlciBpcyB3aGVuIHRoZSB2ZXN0aW5nIHNob3VsZCBzdGFydC4cU2lnbmluZwABBAaNAp0CBAAEwCBUaGUgc3RhdGVtZW50IGtpbmQgdGhhdCBtdXN0IGJlIHNpZ25lZCwgaWYgYW55LiRQcmVjbGFpbXMAAQQGAI0CBAAELQEgUHJlLWNsYWltZWQgRXRoZXJldW0gYWNjb3VudHMsIGJ5IHRoZSBBY2NvdW50IElEIHRoYXQgdGhleSBhcmUgY2xhaW1lZCB0by4BgQIBoQYEGFByZWZpeDiAfFBheSBST0NzIHRvIHRoZSBSb2NvY28gYWNjb3VudDoAAS0JEwAcVXRpbGl0eQABpQIBpQYETGJhdGNoZWRfY2FsbHNfbGltaXQQEKoqAAAEqCBUaGUgbGltaXQgb24gdGhlIG51bWJlciBvZiBiYXRjaGVkIGNhbGxzLgExCRgAIElkZW50aXR5ASBJZGVudGl0eRwoSWRlbnRpdHlPZgABBAUANQkEABBpASBJbmZvcm1hdGlvbiB0aGF0IGlzIHBlcnRpbmVudCB0byBpZGVudGlmeSB0aGUgZW50aXR5IGJlaGluZCBhbiBhY2NvdW50LiBGaXJzdCBpdGVtIGlzIHRoZeAgcmVnaXN0cmF0aW9uLCBzZWNvbmQgaXMgdGhlIGFjY291bnQncyBwcmltYXJ5IHVzZXJuYW1lLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guHFN1cGVyT2YAAQQCAEEDBAAIYQEgVGhlIHN1cGVyLWlkZW50aXR5IG9mIGFuIGFsdGVybmF0aXZlICJzdWIiIGlkZW50aXR5IHRvZ2V0aGVyIHdpdGggaXRzIG5hbWUsIHdpdGhpbiB0aGF0UQEgY29udGV4dC4gSWYgdGhlIGFjY291bnQgaXMgbm90IHNvbWUgb3RoZXIgYWNjb3VudCdzIHN1Yi1pZGVudGl0eSwgdGhlbiBqdXN0IGBOb25lYC4YU3Vic09mAQEEBQBNCUQAAAAAAAAAAAAAAAAAAAAAABS4IEFsdGVybmF0aXZlICJzdWIiIGlkZW50aXRpZXMgb2YgdGhpcyBhY2NvdW50LgAdASBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgZGVwb3NpdCwgdGhlIHNlY29uZCBpcyBhIHZlY3RvciBvZiB0aGUgYWNjb3VudHMuAMAgVFdPWC1OT1RFOiBPSyDigJUgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4oUmVnaXN0cmFycwEAVQkEABBNASBUaGUgc2V0IG9mIHJlZ2lzdHJhcnMuIE5vdCBleHBlY3RlZCB0byBnZXQgdmVyeSBiaWcgYXMgY2FuIG9ubHkgYmUgYWRkZWQgdGhyb3VnaCBhqCBzcGVjaWFsIG9yaWdpbiAobGlrZWx5IGEgY291bmNpbCBtb3Rpb24pLgApASBUaGUgaW5kZXggaW50byB0aGlzIGNhbiBiZSBjYXN0IHRvIGBSZWdpc3RyYXJJbmRleGAgdG8gZ2V0IGEgdmFsaWQgdmFsdWUuTFVzZXJuYW1lQXV0aG9yaXRpZXMAAQQFAGUJBAAE9CBBIG1hcCBvZiB0aGUgYWNjb3VudHMgd2hvIGFyZSBhdXRob3JpemVkIHRvIGdyYW50IHVzZXJuYW1lcy5EQWNjb3VudE9mVXNlcm5hbWUAAQQCUQMABAAUbQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0LiBUaGUgdmFsdWUgc2hvdWxkZQEgYmUgYSBrZXkgaW4gdGhlIGBJZGVudGl0eU9mYCBtYXAsIGJ1dCBpdCBtYXkgbm90IGlmIHRoZSB1c2VyIGhhcyBjbGVhcmVkIHRoZWlyIGlkZW50aXR5LgBpASBNdWx0aXBsZSB1c2VybmFtZXMgbWF5IG1hcCB0byB0aGUgc2FtZSBgQWNjb3VudElkYCwgYnV0IGBJZGVudGl0eU9mYCB3aWxsIG9ubHkgbWFwIHRvIG9uZUggcHJpbWFyeSB1c2VybmFtZS5AUGVuZGluZ1VzZXJuYW1lcwABBAJRA20JBAAYbQEgVXNlcm5hbWVzIHRoYXQgYW4gYXV0aG9yaXR5IGhhcyBncmFudGVkLCBidXQgdGhhdCB0aGUgYWNjb3VudCBjb250cm9sbGVyIGhhcyBub3QgY29uZmlybWVkcQEgdGhhdCB0aGV5IHdhbnQgaXQuIFVzZWQgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBgQWNjb3VudElkYCBjYW5ub3QgcHJvdmlkZSBhIHNpZ25hdHVyZV0BIGJlY2F1c2UgdGhleSBhcmUgYSBwdXJlIHByb3h5LCBtdWx0aXNpZywgZXRjLiBJbiBvcmRlciB0byBjb25maXJtIGl0LCB0aGV5IHNob3VsZCBjYWxsbCBbYENhbGw6OmFjY2VwdF91c2VybmFtZWBdLgAdASBGaXJzdCB0dXBsZSBpdGVtIGlzIHRoZSBhY2NvdW50IGFuZCBzZWNvbmQgaXMgdGhlIGFjY2VwdGFuY2UgZGVhZGxpbmUuAa0CAa0GIDBCYXNpY0RlcG9zaXQYQAhM0sIHAAAAAAAAAAAAAAAE2CBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgYSByZWdpc3RlcmVkIGlkZW50aXR5LixCeXRlRGVwb3NpdBhAtNwyAAAAAAAAAAAAAAAAAAQdASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgZW5jb2RlZCBieXRlIGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuRFN1YkFjY291bnREZXBvc2l0GEBoQl2NAQAAAAAAAAAAAAAADGUBIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgc3ViYWNjb3VudC4gVGhpcyBzaG91bGQgYWNjb3VudCBmb3IgdGhlIGZhY3RlASB0aGF0IG9uZSBzdG9yYWdlIGl0ZW0ncyB2YWx1ZSB3aWxsIGluY3JlYXNlIGJ5IHRoZSBzaXplIG9mIGFuIGFjY291bnQgSUQsIGFuZCB0aGVyZSB3aWxsNQEgYmUgYW5vdGhlciB0cmllIGl0ZW0gd2hvc2UgdmFsdWUgaXMgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCBwbHVzIDMyIGJ5dGVzLjhNYXhTdWJBY2NvdW50cxAQZAAAAAQNASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3ViLWFjY291bnRzIGFsbG93ZWQgcGVyIGlkZW50aWZpZWQgYWNjb3VudC40TWF4UmVnaXN0cmFycxAQFAAAAAhNASBNYXhpbXVtIG51bWJlciBvZiByZWdpc3RyYXJzIGFsbG93ZWQgaW4gdGhlIHN5c3RlbS4gTmVlZGVkIHRvIGJvdW5kIHRoZSBjb21wbGV4aXR5fCBvZiwgZS5nLiwgdXBkYXRpbmcganVkZ2VtZW50cy5kUGVuZGluZ1VzZXJuYW1lRXhwaXJhdGlvbhAQwIkBAAQVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyB3aXRoaW4gd2hpY2ggYSB1c2VybmFtZSBncmFudCBtdXN0IGJlIGFjY2VwdGVkLjxNYXhTdWZmaXhMZW5ndGgQEAcAAAAEgCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBzdWZmaXguRE1heFVzZXJuYW1lTGVuZ3RoEBAgAAAABGEBIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLCBpbmNsdWRpbmcgaXRzIHN1ZmZpeCBhbmQgYW55IHN5c3RlbS1hZGRlZCBkZWxpbWl0ZXJzLgFxCRkAHFNvY2lldHkBHFNvY2lldHlQKFBhcmFtZXRlcnMAALUGBAAE3CBUaGUgbWF4IG51bWJlciBvZiBtZW1iZXJzIGZvciB0aGUgc29jaWV0eSBhdCBvbmUgdGltZS4MUG90AQAYQAAAAAAAAAAAAAAAAAAAAAAEQQEgQW1vdW50IG9mIG91ciBhY2NvdW50IGJhbGFuY2UgdGhhdCBpcyBzcGVjaWZpY2FsbHkgZm9yIHRoZSBuZXh0IHJvdW5kJ3MgYmlkKHMpLhxGb3VuZGVyAAAABAAESCBUaGUgZmlyc3QgbWVtYmVyLhBIZWFkAAAABAAEQQEgVGhlIG1vc3QgcHJpbWFyeSBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IGFwcHJvdmVkIHJhbmsgMCBtZW1iZXJzIGluIHRoZSBzb2NpZXR5LhRSdWxlcwAANAQACFEBIEEgaGFzaCBvZiB0aGUgcnVsZXMgb2YgdGhpcyBzb2NpZXR5IGNvbmNlcm5pbmcgbWVtYmVyc2hpcC4gQ2FuIG9ubHkgYmUgc2V0IG9uY2UgYW5kVCBvbmx5IGJ5IHRoZSBmb3VuZGVyLhxNZW1iZXJzAAEEBQB1CQQABCEBIFRoZSBjdXJyZW50IG1lbWJlcnMgYW5kIHRoZWlyIHJhbmsuIERvZXNuJ3QgaW5jbHVkZSBgU3VzcGVuZGVkTWVtYmVyc2AuHFBheW91dHMBAQQFAIEJRAAAAAAAAAAAAAAAAAAAAAAABNwgSW5mb3JtYXRpb24gcmVnYXJkaW5nIHJhbmstMCBwYXlvdXRzLCBwYXN0IGFuZCBmdXR1cmUuLE1lbWJlckNvdW50AQAQEAAAAAAESQEgVGhlIG51bWJlciBvZiBpdGVtcyBpbiBgTWVtYmVyc2AgY3VycmVudGx5LiAoRG9lc24ndCBpbmNsdWRlIGBTdXNwZW5kZWRNZW1iZXJzYC4pNE1lbWJlckJ5SW5kZXgAAQQFEAAEAAhdASBUaGUgY3VycmVudCBpdGVtcyBpbiBgTWVtYmVyc2Aga2V5ZWQgYnkgdGhlaXIgdW5pcXVlIGluZGV4LiBLZXlzIGFyZSBkZW5zZWx5IHBvcHVsYXRlZMwgYDAuLk1lbWJlckNvdW50YCAoZG9lcyBub3QgaW5jbHVkZSBgTWVtYmVyQ291bnRgKS5AU3VzcGVuZGVkTWVtYmVycwABBAUAdQkEAAQBASBUaGUgc2V0IG9mIHN1c3BlbmRlZCBtZW1iZXJzLCB3aXRoIHRoZWlyIG9sZCBtZW1iZXJzaGlwIHJlY29yZC4oUm91bmRDb3VudAEAEBAAAAAABKAgVGhlIG51bWJlciBvZiByb3VuZHMgd2hpY2ggaGF2ZSBwYXNzZWQuEEJpZHMBAIkJBAAE6CBUaGUgY3VycmVudCBiaWRzLCBzdG9yZWQgb3JkZXJlZCBieSB0aGUgdmFsdWUgb2YgdGhlIGJpZC4oQ2FuZGlkYXRlcwABBAIAmQkEAAAcU2tlcHRpYwAAAAQABFQgVGhlIGN1cnJlbnQgc2tlcHRpYy4UVm90ZXMAAQgFBaEJpQkEAATQIERvdWJsZSBtYXAgZnJvbSBDYW5kaWRhdGUgLT4gVm90ZXIgLT4gKE1heWJlKSBWb3RlLjxWb3RlQ2xlYXJDdXJzb3IAAQQFAKkJBAAE9CBDbGVhci1jdXJzb3IgZm9yIFZvdGUsIG1hcCBmcm9tIENhbmRpZGF0ZSAtPiAoTWF5YmUpIEN1cnNvci4gTmV4dEhlYWQAAK0JBAAMdQEgQXQgdGhlIGVuZCBvZiB0aGUgY2xhaW0gcGVyaW9kLCB0aGlzIGNvbnRhaW5zIHRoZSBtb3N0IHJlY2VudGx5IGFwcHJvdmVkIG1lbWJlcnMgKGFsb25nIHdpdGhlASB0aGVpciBiaWQgYW5kIHJvdW5kIElEKSB3aG8gaXMgZnJvbSB0aGUgbW9zdCByZWNlbnQgcm91bmQgd2l0aCB0aGUgbG93ZXN0IGJpZC4gVGhleSB3aWxsXCBiZWNvbWUgdGhlIG5ldyBgSGVhZGAuTENoYWxsZW5nZVJvdW5kQ291bnQBABAQAAAAAARZASBUaGUgbnVtYmVyIG9mIGNoYWxsZW5nZSByb3VuZHMgdGhlcmUgaGF2ZSBiZWVuLiBVc2VkIHRvIGlkZW50aWZ5IHN0YWxlIERlZmVuZGVyVm90ZXMuJERlZmVuZGluZwAAsQkEAARZASBUaGUgZGVmZW5kaW5nIG1lbWJlciBjdXJyZW50bHkgYmVpbmcgY2hhbGxlbmdlZCwgYWxvbmcgd2l0aCBhIHJ1bm5pbmcgdGFsbHkgb2Ygdm90ZXMuNERlZmVuZGVyVm90ZXMAAQgFBQ0JpQkEAATIIFZvdGVzIGZvciB0aGUgZGVmZW5kZXIsIGtleWVkIGJ5IGNoYWxsZW5nZSByb3VuZC4BVQMBsQYkIFBhbGxldElkfQggcHkvc29jaWUEaCBUaGUgc29jaWV0aWVzJ3MgcGFsbGV0IGlkMEdyYWNlU3RyaWtlcxAQAQAAAAQJASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RyaWtlcyBiZWZvcmUgYSBtZW1iZXIgZ2V0cyBmdW5kcyBzbGFzaGVkLixQZXJpb2RTcGVuZBhAkNkSDYQBAAAAAAAAAAAAAAQtASBUaGUgYW1vdW50IG9mIGluY2VudGl2ZSBwYWlkIHdpdGhpbiBlYWNoIHBlcmlvZC4gRG9lc24ndCBpbmNsdWRlIFZvdGVyVGlwLjBWb3RpbmdQZXJpb2QQEEAZAQAIPQEgVGhlIG51bWJlciBvZiBibG9ja3Mgb24gd2hpY2ggbmV3IGNhbmRpZGF0ZXMgc2hvdWxkIGJlIHZvdGVkIG9uLiBUb2dldGhlciB3aXRoTQEgYENsYWltUGVyaW9kYCwgdGhpcyBzdW1zIHRvIHRoZSBudW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gY2FuZGlkYXRlIGludGFrZSBwZXJpb2RzLixDbGFpbVBlcmlvZBAQgHAAAAhNASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBvbiB3aGljaCBuZXcgY2FuZGlkYXRlcyBjYW4gY2xhaW0gdGhlaXIgbWVtYmVyc2hpcCBhbmQgYmUgdGhlMCBuYW1lZCBoZWFkLjxNYXhMb2NrRHVyYXRpb24QEABO7QAEpCBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgcGF5b3V0IGxvY2suPENoYWxsZW5nZVBlcmlvZBAQwIkBAATQIFRoZSBudW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gbWVtYmVyc2hpcCBjaGFsbGVuZ2VzLihNYXhQYXlvdXRzEBAIAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXlvdXRzIGEgbWVtYmVyIG1heSBoYXZlIHdhaXRpbmcgdW5jbGFpbWVkLhxNYXhCaWRzEBAAAgAABJAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGJpZHMgYXQgb25jZS4BtQkaACBSZWNvdmVyeQEgUmVjb3ZlcnkMLFJlY292ZXJhYmxlAAEEBQC5CQQABAkBIFRoZSBzZXQgb2YgcmVjb3ZlcmFibGUgYWNjb3VudHMgYW5kIHRoZWlyIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24uQEFjdGl2ZVJlY292ZXJpZXMAAQgFBaEJwQkEABBoIEFjdGl2ZSByZWNvdmVyeSBhdHRlbXB0cy4AFQEgRmlyc3QgYWNjb3VudCBpcyB0aGUgYWNjb3VudCB0byBiZSByZWNvdmVyZWQsIGFuZCB0aGUgc2Vjb25kIGFjY291bnSsIGlzIHRoZSB1c2VyIHRyeWluZyB0byByZWNvdmVyIHRoZSBhY2NvdW50LhRQcm94eQABBAIAAAQADJAgVGhlIGxpc3Qgb2YgYWxsb3dlZCBwcm94eSBhY2NvdW50cy4A+CBNYXAgZnJvbSB0aGUgdXNlciB3aG8gY2FuIGFjY2VzcyBpdCB0byB0aGUgcmVjb3ZlcmVkIGFjY291bnQuAVkDAbkGEERDb25maWdEZXBvc2l0QmFzZRhABCZp4QMAAAAAAAAAAAAAABBVASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgcmVjb3ZlcnkgY29uZmlndXJhdGlvbi4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzqCBgMiArIHNpemVvZihCbG9ja051bWJlciwgQmFsYW5jZSlgIGJ5dGVzLkxGcmllbmREZXBvc2l0RmFjdG9yGECaUFdjAAAAAAAAAAAAAAAAFC0BIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBhZGRpdGlvbmFsIHVzZXIgd2hlbiBjcmVhdGluZyBhIHJlY292ZXJ5PCBjb25maWd1cmF0aW9uLgBNASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyBgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzIG1vcmUgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlHCB2YWx1ZS4oTWF4RnJpZW5kcxAQCQAAABgNASBUaGUgbWF4aW11bSBhbW91bnQgb2YgZnJpZW5kcyBhbGxvd2VkIGluIGEgcmVjb3ZlcnkgY29uZmlndXJhdGlvbi4ADQEgTk9URTogVGhlIHRocmVzaG9sZCBwcm9ncmFtbWVkIGluIHRoaXMgUGFsbGV0IHVzZXMgdTE2LCBzbyBpdCBkb2VzCQEgbm90IHJlYWxseSBtYWtlIHNlbnNlIHRvIGhhdmUgYSBsaW1pdCBoZXJlIGdyZWF0ZXIgdGhhbiB1MTY6Ok1BWC4VASBCdXQgYWxzbywgdGhhdCBpcyBhIGxvdCBtb3JlIHRoYW4geW91IHNob3VsZCBwcm9iYWJseSBzZXQgdGhpcyB2YWx1ZTQgdG8gYW55d2F5Li4uPFJlY292ZXJ5RGVwb3NpdBhABCZp4QMAAAAAAAAAAAAAABwdASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIHN0YXJ0aW5nIGEgcmVjb3ZlcnkuADUBIFRoaXMgaXMgcHJpbWFyaWx5IGhlbGQgZm9yIGRldGVycmluZyBtYWxpY2lvdXMgcmVjb3ZlcnkgYXR0ZW1wdHMsIGFuZCBzaG91bGQpASBoYXZlIGEgdmFsdWUgbGFyZ2UgZW5vdWdoIHRoYXQgYSBiYWQgYWN0b3Igd291bGQgY2hvb3NlIG5vdCB0byBwbGFjZSB0aGlzKQEgZGVwb3NpdC4gSXQgYWxzbyBhY3RzIHRvIGZ1bmQgYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpc0EBIGBzaXplb2YoQmxvY2tOdW1iZXIsIEJhbGFuY2UgKyBUICogQWNjb3VudElkKWAgYnl0ZXMuIFdoZXJlIFQgaXMgYSBjb25maWd1cmFibGUsIHRocmVzaG9sZC4BxQkbABxWZXN0aW5nARxWZXN0aW5nCBxWZXN0aW5nAAEEAgDJCQQABNggSW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSB2ZXN0aW5nIG9mIGEgZ2l2ZW4gYWNjb3VudC44U3RvcmFnZVZlcnNpb24BANEJBAAMfCBTdG9yYWdlIHZlcnNpb24gb2YgdGhlIHBhbGxldC4AMQEgTmV3IG5ldHdvcmtzIHN0YXJ0IHdpdGggbGF0ZXN0IHZlcnNpb24sIGFzIGRldGVybWluZWQgYnkgdGhlIGdlbmVzaXMgYnVpbGQuAV0DAb0GCERNaW5WZXN0ZWRUcmFuc2ZlchhANKGuxgAAAAAAAAAAAAAAAAToIFRoZSBtaW5pbXVtIGFtb3VudCB0cmFuc2ZlcnJlZCB0byBjYWxsIGB2ZXN0ZWRfdHJhbnNmZXJgLkxNYXhWZXN0aW5nU2NoZWR1bGVzEBAcAAAAAAHVCRwAJFNjaGVkdWxlcgEkU2NoZWR1bGVyEDxJbmNvbXBsZXRlU2luY2UAABAEAAAYQWdlbmRhAQEEBRDZCQQABE0BIEl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRoZSBibG9jayBudW1iZXIgdGhhdCB0aGV5IHNob3VsZCBiZSBleGVjdXRlZCBvbi4cUmV0cmllcwABBAJtA+kJBAAEIQEgUmV0cnkgY29uZmlndXJhdGlvbnMgZm9yIGl0ZW1zIHRvIGJlIGV4ZWN1dGVkLCBpbmRleGVkIGJ5IHRhc2sgYWRkcmVzcy4YTG9va3VwAAEEBQRtAwQAEPggTG9va3VwIGZyb20gYSBuYW1lIHRvIHRoZSBibG9jayBudW1iZXIgYW5kIGluZGV4IG9mIHRoZSB0YXNrLgBZASBGb3IgdjMgLT4gdjQgdGhlIHByZXZpb3VzbHkgdW5ib3VuZGVkIGlkZW50aXRpZXMgYXJlIEJsYWtlMi0yNTYgaGFzaGVkIHRvIGZvcm0gdGhlIHY0MCBpZGVudGl0aWVzLgFlAwHBBgg0TWF4aW11bVdlaWdodChACwCAbod0ARPMzMzMzMzMzAQpASBUaGUgbWF4aW11bSB3ZWlnaHQgdGhhdCBtYXkgYmUgc2NoZWR1bGVkIHBlciBibG9jayBmb3IgYW55IGRpc3BhdGNoYWJsZXMuUE1heFNjaGVkdWxlZFBlckJsb2NrEBAyAAAAFB0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzY2hlZHVsZWQgY2FsbHMgaW4gdGhlIHF1ZXVlIGZvciBhIHNpbmdsZSBibG9jay4AGCBOT1RFOlEBICsgRGVwZW5kZW50IHBhbGxldHMnIGJlbmNobWFya3MgbWlnaHQgcmVxdWlyZSBhIGhpZ2hlciBsaW1pdCBmb3IgdGhlIHNldHRpbmcuIFNldCBhxCBoaWdoZXIgbGltaXQgdW5kZXIgYHJ1bnRpbWUtYmVuY2htYXJrc2AgZmVhdHVyZS4B7QkdABRQcm94eQEUUHJveHkIHFByb3hpZXMBAQQFAPEJRAAAAAAAAAAAAAAAAAAAAAAACEUBIFRoZSBzZXQgb2YgYWNjb3VudCBwcm94aWVzLiBNYXBzIHRoZSBhY2NvdW50IHdoaWNoIGhhcyBkZWxlZ2F0ZWQgdG8gdGhlIGFjY291bnRzIQEgd2hpY2ggYXJlIGJlaW5nIGRlbGVnYXRlZCB0bywgdG9nZXRoZXIgd2l0aCB0aGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdC40QW5ub3VuY2VtZW50cwEBBAUAAQpEAAAAAAAAAAAAAAAAAAAAAAAErCBUaGUgYW5ub3VuY2VtZW50cyBtYWRlIGJ5IHRoZSBwcm94eSAoa2V5KS4BcQMByQYYQFByb3h5RGVwb3NpdEJhc2UYQLB9O4cPAAAAAAAAAAAAAAAQEQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIHByb3h5LgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMlASBgc2l6ZW9mKEJhbGFuY2UpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXMgYHNpemVvZihBY2NvdW50SWQpYCBieXRlcy5IUHJveHlEZXBvc2l0RmFjdG9yGEA0c44GAAAAAAAAAAAAAAAAFLwgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHByb3h5IGFkZGVkLgA1ASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyAzMiBieXRlcyBwbHVzIGFuIGluc3RhbmNlIG9mIGBQcm94eVR5cGVgIG1vcmUgaW50byBhYQEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuIFRodXMsIHdoZW4gY29uZmlndXJpbmcgYFByb3h5RGVwb3NpdEZhY3RvcmAgb25lIHNob3VsZCB0YWtl9CBpbnRvIGFjY291bnQgYDMyICsgcHJveHlfdHlwZS5lbmNvZGUoKS5sZW4oKWAgYnl0ZXMgb2YgZGF0YS4oTWF4UHJveGllcxAQIAAAAATwIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBwcm94aWVzIGFsbG93ZWQgZm9yIGEgc2luZ2xlIGFjY291bnQuKE1heFBlbmRpbmcQECAAAAAERQEgVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUtZGVsYXllZCBhbm5vdW5jZW1lbnRzIHRoYXQgYXJlIGFsbG93ZWQgdG8gYmUgcGVuZGluZy5cQW5ub3VuY2VtZW50RGVwb3NpdEJhc2UYQLB9O4cPAAAAAAAAAAAAAAAQMQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhbiBhbm5vdW5jZW1lbnQuAEkBIFRoaXMgaXMgaGVsZCB3aGVuIGEgbmV3IHN0b3JhZ2UgaXRlbSBob2xkaW5nIGEgYEJhbGFuY2VgIGlzIGNyZWF0ZWQgKHR5cGljYWxseSAxNiAgYnl0ZXMpLmRBbm5vdW5jZW1lbnREZXBvc2l0RmFjdG9yGEBo5hwNAAAAAAAAAAAAAAAAENQgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIGFubm91bmNlbWVudCBtYWRlLgBZASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyBhbiBgQWNjb3VudElkYCwgYEhhc2hgIGFuZCBgQmxvY2tOdW1iZXJgICh0eXBpY2FsbHkgNjggYnl0ZXMpjCBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuAREKHgAgTXVsdGlzaWcBIE11bHRpc2lnBCRNdWx0aXNpZ3MAAQgFAhUKGQoEAASUIFRoZSBzZXQgb2Ygb3BlbiBtdWx0aXNpZyBvcGVyYXRpb25zLgF9AwHNBgwsRGVwb3NpdEJhc2UYQPB1IJcPAAAAAAAAAAAAAAAYWQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbiBvciB0b4Qgc3RvcmUgYSBkaXNwYXRjaCBjYWxsIGZvciBsYXRlci4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzMQEgYDQgKyBzaXplb2YoKEJsb2NrTnVtYmVyLCBCYWxhbmNlLCBBY2NvdW50SWQpKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzgCBgMzIgKyBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuNERlcG9zaXRGYWN0b3IYQICWWwYAAAAAAAAAAAAAAAAMVQEgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHVuaXQgdGhyZXNob2xkIHdoZW4gY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24uACUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIG1vcmUgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLjhNYXhTaWduYXRvcmllcxAQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4BIQofACBQcmVpbWFnZQEgUHJlaW1hZ2UMJFN0YXR1c0ZvcgABBAY0JQoEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guQFJlcXVlc3RTdGF0dXNGb3IAAQQGNDEKBAAEkCBUaGUgcmVxdWVzdCBzdGF0dXMgb2YgYSBnaXZlbiBoYXNoLixQcmVpbWFnZUZvcgABBAY1CEEKBAAAAYkDAdEGAAFFCiAAJEFzc2V0UmF0ZQEkQXNzZXRSYXRlBFhDb252ZXJzaW9uUmF0ZVRvTmF0aXZlAAEEAuCVAwQADB0BIE1hcHMgYW4gYXNzZXQgdG8gaXRzIGZpeGVkIHBvaW50IHJlcHJlc2VudGF0aW9uIGluIHRoZSBuYXRpdmUgYmFsYW5jZS4ATQEgRS5nLiBgbmF0aXZlX2Ftb3VudCA9IGFzc2V0X2Ftb3VudCAqIENvbnZlcnNpb25SYXRlVG9OYXRpdmU6OjxUPjo6Z2V0KGFzc2V0X2tpbmQpYAGRAwHVBgABSQonACBCb3VudGllcwEgQm91bnRpZXMQLEJvdW50eUNvdW50AQAQEAAAAAAEwCBOdW1iZXIgb2YgYm91bnR5IHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLiBCb3VudGllcwABBAUQTQoEAAR4IEJvdW50aWVzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuSEJvdW50eURlc2NyaXB0aW9ucwABBAUQVQoEAASAIFRoZSBkZXNjcmlwdGlvbiBvZiBlYWNoIGJvdW50eS48Qm91bnR5QXBwcm92YWxzAQBtCAQABOwgQm91bnR5IGluZGljZXMgdGhhdCBoYXZlIGJlZW4gYXBwcm92ZWQgYnV0IG5vdCB5ZXQgZnVuZGVkLgGZAwHZBiREQm91bnR5RGVwb3NpdEJhc2UYQDShrsYAAAAAAAAAAAAAAAAE6CBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgcGxhY2luZyBhIGJvdW50eSBwcm9wb3NhbC5gQm91bnR5RGVwb3NpdFBheW91dERlbGF5EBAA4QAABFkBIFRoZSBkZWxheSBwZXJpb2QgZm9yIHdoaWNoIGEgYm91bnR5IGJlbmVmaWNpYXJ5IG5lZWQgdG8gd2FpdCBiZWZvcmUgY2xhaW0gdGhlIHBheW91dC5IQm91bnR5VXBkYXRlUGVyaW9kEBCAxhMABGwgQm91bnR5IGR1cmF0aW9uIGluIGJsb2Nrcy5gQ3VyYXRvckRlcG9zaXRNdWx0aXBsaWVyeQgQIKEHABAZASBUaGUgY3VyYXRvciBkZXBvc2l0IGlzIGNhbGN1bGF0ZWQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjdXJhdG9yIGZlZS4AOQEgVGhpcyBkZXBvc2l0IGhhcyBvcHRpb25hbCB1cHBlciBhbmQgbG93ZXIgYm91bmRzIHdpdGggYEN1cmF0b3JEZXBvc2l0TWF4YCBhbmRUIGBDdXJhdG9yRGVwb3NpdE1pbmAuREN1cmF0b3JEZXBvc2l0TWF46QFEAQQmaeEDAAAAAAAAAAAAAAAESQEgTWF4aW11bSBhbW91bnQgb2YgZnVuZHMgdGhhdCBzaG91bGQgYmUgcGxhY2VkIGluIGEgZGVwb3NpdCBmb3IgbWFraW5nIGEgcHJvcG9zYWwuREN1cmF0b3JEZXBvc2l0TWlu6QFEAVJD3hMAAAAAAAAAAAAAAAAESQEgTWluaW11bSBhbW91bnQgb2YgZnVuZHMgdGhhdCBzaG91bGQgYmUgcGxhY2VkIGluIGEgZGVwb3NpdCBmb3IgbWFraW5nIGEgcHJvcG9zYWwuSEJvdW50eVZhbHVlTWluaW11bRhAaEJdjQEAAAAAAAAAAAAAAARwIE1pbmltdW0gdmFsdWUgZm9yIGEgYm91bnR5LkhEYXRhRGVwb3NpdFBlckJ5dGUYQFWg/AEAAAAAAAAAAAAAAAAEYQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgcGVyIGJ5dGUgd2l0aGluIHRoZSB0aXAgcmVwb3J0IHJlYXNvbiBvciBib3VudHkgZGVzY3JpcHRpb24uTE1heGltdW1SZWFzb25MZW5ndGgQEABAAAAMiCBNYXhpbXVtIGFjY2VwdGFibGUgcmVhc29uIGxlbmd0aC4AZQEgQmVuY2htYXJrcyBkZXBlbmQgb24gdGhpcyB2YWx1ZSwgYmUgc3VyZSB0byB1cGRhdGUgd2VpZ2h0cyBmaWxlIHdoZW4gY2hhbmdpbmcgdGhpcyB2YWx1ZQFZCiMANENoaWxkQm91bnRpZXMBNENoaWxkQm91bnRpZXMUQENoaWxkQm91bnR5Q291bnQBABAQAAAAAASAIE51bWJlciBvZiB0b3RhbCBjaGlsZCBib3VudGllcy5MUGFyZW50Q2hpbGRCb3VudGllcwEBBAUQEBAAAAAACLAgTnVtYmVyIG9mIGNoaWxkIGJvdW50aWVzIHBlciBwYXJlbnQgYm91bnR5LuAgTWFwIG9mIHBhcmVudCBib3VudHkgaW5kZXggdG8gbnVtYmVyIG9mIGNoaWxkIGJvdW50aWVzLjRDaGlsZEJvdW50aWVzAAEIBQVtA10KBAAElCBDaGlsZCBib3VudGllcyB0aGF0IGhhdmUgYmVlbiBhZGRlZC5cQ2hpbGRCb3VudHlEZXNjcmlwdGlvbnMAAQQFEFUKBAAEmCBUaGUgZGVzY3JpcHRpb24gb2YgZWFjaCBjaGlsZC1ib3VudHkuTENoaWxkcmVuQ3VyYXRvckZlZXMBAQQFEBhAAAAAAAAAAAAAAAAAAAAAAAQBASBUaGUgY3VtdWxhdGl2ZSBjaGlsZC1ib3VudHkgY3VyYXRvciBmZWUgZm9yIGVhY2ggcGFyZW50IGJvdW50eS4BnQMB3QYIZE1heEFjdGl2ZUNoaWxkQm91bnR5Q291bnQQEGQAAAAEHQEgTWF4aW11bSBudW1iZXIgb2YgY2hpbGQgYm91bnRpZXMgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBwYXJlbnQgYm91bnR5LlxDaGlsZEJvdW50eVZhbHVlTWluaW11bRhApIa8JwAAAAAAAAAAAAAAAASIIE1pbmltdW0gdmFsdWUgZm9yIGEgY2hpbGQtYm91bnR5LgFlCigADE5pcwEMTmlzECxRdWV1ZVRvdGFscwEAaQrJXbEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGEBIFRoZSB0b3RhbHMgb2YgaXRlbXMgYW5kIGJhbGFuY2VzIHdpdGhpbiBlYWNoIHF1ZXVlLiBTYXZlcyBhIGxvdCBvZiBzdG9yYWdlIHJlYWRzIGluIHRoZYAgY2FzZSBvZiBzcGFyc2VseSBwYWNrZWQgcXVldWVzLgBtASBUaGUgdmVjdG9yIGlzIGluZGV4ZWQgYnkgZHVyYXRpb24gaW4gYFBlcmlvZGBzLCBvZmZzZXQgYnkgb25lLCBzbyBpbmZvcm1hdGlvbiBvbiB0aGUgcXVldWXUIHdob3NlIGR1cmF0aW9uIGlzIG9uZSBgUGVyaW9kYCB3b3VsZCBiZSBzdG9yYWdlIGAwYC4YUXVldWVzAQEEAhBtCgQABOAgVGhlIHF1ZXVlcyBvZiBiaWRzLiBJbmRleGVkIGJ5IGR1cmF0aW9uIChpbiBgUGVyaW9kYHMpLhxTdW1tYXJ5AQB5CqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLAgU3VtbWFyeSBpbmZvcm1hdGlvbiBvdmVyIHRoZSBnZW5lcmFsIHN0YXRlLiBSZWNlaXB0cwABBAIQfQoEAARBASBUaGUgY3VycmVudGx5IG91dHN0YW5kaW5nIHJlY2VpcHRzLCBpbmRleGVkIGFjY29yZGluZyB0byB0aGUgb3JkZXIgb2YgY3JlYXRpb24uAaEDAeEGKCBQYWxsZXRJZH0IIHB5L25pcyAgBBkBIFRoZSB0cmVhc3VyeSdzIHBhbGxldCBpZCwgdXNlZCBmb3IgZGVyaXZpbmcgaXRzIHNvdmVyZWlnbiBhY2NvdW50IElELihRdWV1ZUNvdW50EBAsAQAACF0BIE51bWJlciBvZiBkdXJhdGlvbiBxdWV1ZXMgaW4gdG90YWwuIFRoaXMgc2V0cyB0aGUgbWF4aW11bSBkdXJhdGlvbiBzdXBwb3J0ZWQsIHdoaWNoIGlzjCB0aGlzIHZhbHVlIG11bHRpcGxpZWQgYnkgYFBlcmlvZGAuLE1heFF1ZXVlTGVuEBDoAwAADPAgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCBtYXkgYmUgaW4gZWFjaCBkdXJhdGlvbiBxdWV1ZS4AaCBNdXN0IGJlIGxhcmdlciB0aGFuIHplcm8uMEZpZm9RdWV1ZUxlbhAQ+gAAAAwJASBQb3J0aW9uIG9mIHRoZSBxdWV1ZSB3aGljaCBpcyBmcmVlIGZyb20gb3JkZXJpbmcgYW5kIGp1c3QgYSBGSUZPLgCcIE11c3QgYmUgbm8gZ3JlYXRlciB0aGFuIGBNYXhRdWV1ZUxlbmAuKEJhc2VQZXJpb2QQEICXBgAIQQEgVGhlIGJhc2UgcGVyaW9kIGZvciB0aGUgZHVyYXRpb24gcXVldWVzLiBUaGlzIGlzIHRoZSBjb21tb24gbXVsdGlwbGUgYWNyb3NzIGFsbMwgc3VwcG9ydGVkIGZyZWV6aW5nIGR1cmF0aW9ucyB0aGF0IGNhbiBiZSBiaWQgdXBvbi4YTWluQmlkGEAAQHoQ81oAAAAAAAAAAAAAGCEBIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBmdW5kcyB0aGF0IG1heSBiZSBwbGFjZWQgaW4gYSBiaWQuIE5vdGUgdGhhdCB0aGlzYQEgZG9lcyBub3QgYWN0dWFsbHkgbGltaXQgdGhlIGFtb3VudCB3aGljaCBtYXkgYmUgcmVwcmVzZW50ZWQgaW4gYSByZWNlaXB0IHNpbmNlIGJpZHMgbWF5bCBiZSBzcGxpdCB1cCBieSB0aGUgc3lzdGVtLgBlASBJdCBzaG91bGQgYmUgYXQgbGVhc3QgYmlnIGVub3VnaCB0byBlbnN1cmUgdGhhdCB0aGVyZSBpcyBubyBwb3NzaWJsZSBzdG9yYWdlIHNwYW0gYXR0YWNrZCBvciBxdWV1ZS1maWxsaW5nIGF0dGFjay4oTWluUmVjZWlwdLQgAOh2SBcAAAAIVQEgVGhlIG1pbmltdW0gYW1vdW50IG9mIGZ1bmRzIHdoaWNoIG1heSBpbnRlbnRpb25hbGx5IGJlIGxlZnQgcmVtYWluaW5nIHVuZGVyIGEgc2luZ2xlJCByZWNlaXB0LjBJbnRha2VQZXJpb2QQEDIAAAAQXQEgVGhlIG51bWJlciBvZiBibG9ja3MgYmV0d2VlbiBjb25zZWN1dGl2ZSBhdHRlbXB0cyB0byBkZXF1ZXVlIGJpZHMgYW5kIGNyZWF0ZSByZWNlaXB0cy4AXQEgQSBsYXJnZXIgdmFsdWUgcmVzdWx0cyBpbiBmZXdlciBzdG9yYWdlIGhpdHMgZWFjaCBibG9jaywgYnV0IGEgc2xvd2VyIHBlcmlvZCB0byBnZXQgdG8wIHRoZSB0YXJnZXQuPE1heEludGFrZVdlaWdodCg8BwDQ7ZAuE5mZmZmZmZkZDFUBIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBiaWRzIHRoYXQgY2FuIGNvbnNvbGlkYXRlZCBpbnRvIHJlY2VpcHRzIGluIGEgc2luZ2xlIGludGFrZS4gQV0BIGxhcmdlciB2YWx1ZSBoZXJlIG1lYW5zIGxlc3Mgb2YgdGhlIGJsb2NrIGF2YWlsYWJsZSBmb3IgdHJhbnNhY3Rpb25zIHNob3VsZCB0aGVyZSBiZSBhOCBnbHV0IG9mIGJpZHMuMFRoYXdUaHJvdHRsZYEKMAAA2emsLXgDBQAAAARJASBUaGUgbWF4aW11bSBwcm9wb3J0aW9uIHdoaWNoIG1heSBiZSB0aGF3ZWQgYW5kIHRoZSBwZXJpb2Qgb3ZlciB3aGljaCBpdCBpcyByZXNldC4BhQomAFhOaXNDb3VudGVycGFydEJhbGFuY2VzAVhOaXNDb3VudGVycGFydEJhbGFuY2VzHDRUb3RhbElzc3VhbmNlAQAYQAAAAAAAAAAAAAAAAAAAAAAEmCBUaGUgdG90YWwgdW5pdHMgaXNzdWVkIGluIHRoZSBzeXN0ZW0uQEluYWN0aXZlSXNzdWFuY2UBABhAAAAAAAAAAAAAAAAAAAAAAAQJASBUaGUgdG90YWwgdW5pdHMgb2Ygb3V0c3RhbmRpbmcgZGVhY3RpdmF0ZWQgYmFsYW5jZSBpbiB0aGUgc3lzdGVtLhxBY2NvdW50AQEEAgAUAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYAkBIFRoZSBCYWxhbmNlcyBwYWxsZXQgZXhhbXBsZSBvZiBzdG9yaW5nIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7GQIgICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTdG9yYWdlTWFwU2hpbTxTZWxmOjpBY2NvdW50PFJ1bnRpbWU+LCBmcmFtZV9zeXN0ZW06OlByb3ZpZGVyPFJ1bnRpbWU+LCBBY2NvdW50SWQsIFNlbGY6OkFjY291bnREYXRhPEJhbGFuY2U+PgwgIH0QIGBgYAAVASBZb3UgY2FuIGFsc28gc3RvcmUgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudCBpbiB0aGUgYFN5c3RlbWAgcGFsbGV0LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUge3QgICB0eXBlIEFjY291bnRTdG9yZSA9IFN5c3RlbQwgIH0QIGBgYABRASBCdXQgdGhpcyBjb21lcyB3aXRoIHRyYWRlb2Zmcywgc3RvcmluZyBhY2NvdW50IGJhbGFuY2VzIGluIHRoZSBzeXN0ZW0gcGFsbGV0IHN0b3Jlc20BIGBmcmFtZV9zeXN0ZW1gIGRhdGEgYWxvbmdzaWRlIHRoZSBhY2NvdW50IGRhdGEgY29udHJhcnkgdG8gc3RvcmluZyBhY2NvdW50IGJhbGFuY2VzIGluIHRoZSkBIGBCYWxhbmNlc2AgcGFsbGV0LCB3aGljaCB1c2VzIGEgYFN0b3JhZ2VNYXBgIHRvIHN0b3JlIGJhbGFuY2VzIGRhdGEgb25seS5BASBOT1RFOiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0aGUgY2FzZSB0aGF0IHRoaXMgcGFsbGV0IGlzIHVzZWQgdG8gc3RvcmUgYmFsYW5jZXMuFExvY2tzAQEEAgCJCgQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AgUmVzZXJ2ZXMBAQQCAI0KBAAMpCBOYW1lZCByZXNlcnZlcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gFEhvbGRzAQEEAgD5BwQABGwgSG9sZHMgb24gYWNjb3VudCBiYWxhbmNlcy4cRnJlZXplcwEBBAIAFQgEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgGlAwHlBhBIRXhpc3RlbnRpYWxEZXBvc2l0GEAA5AtUAgAAAAAAAAAAAAAAIEEBIFRoZSBtaW5pbXVtIGFtb3VudCByZXF1aXJlZCB0byBrZWVwIGFuIGFjY291bnQgb3Blbi4gTVVTVCBCRSBHUkVBVEVSIFRIQU4gWkVSTyEAWQEgSWYgeW91ICpyZWFsbHkqIG5lZWQgaXQgdG8gYmUgemVybywgeW91IGNhbiBlbmFibGUgdGhlIGZlYXR1cmUgYGluc2VjdXJlX3plcm9fZWRgIGZvcmEBIHRoaXMgcGFsbGV0LiBIb3dldmVyLCB5b3UgZG8gc28gYXQgeW91ciBvd24gcmlzazogdGhpcyB3aWxsIG9wZW4gdXAgYSBtYWpvciBEb1MgdmVjdG9yLlkBIEluIGNhc2UgeW91IGhhdmUgbXVsdGlwbGUgc291cmNlcyBvZiBwcm92aWRlciByZWZlcmVuY2VzLCB5b3UgbWF5IGFsc28gZ2V0IHVuZXhwZWN0ZWSMIGJlaGF2aW91ciBpZiB5b3Ugc2V0IHRoaXMgdG8gemVyby4A8CBCb3R0b20gbGluZTogRG8geW91cnNlbGYgYSBmYXZvdXIgYW5kIG1ha2UgaXQgYXQgbGVhc3Qgb25lISBNYXhMb2NrcxAQBAAAABD0IFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NrcyB0aGF0IHNob3VsZCBleGlzdCBvbiBhbiBhY2NvdW50LtwgTm90IHN0cmljdGx5IGVuZm9yY2VkLCBidXQgdXNlZCBmb3Igd2VpZ2h0IGVzdGltYXRpb24uAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AsTWF4UmVzZXJ2ZXMQEAQAAAAMDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gKE1heEZyZWV6ZXMQEAEAAAAEYQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGluZGl2aWR1YWwgZnJlZXplIGxvY2tzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQgYXQgYW55IHRpbWUuAZEKLQBAUGFyYWNoYWluc09yaWdpbgAAAAAAMhB5ASBUaGVyZSBpcyBubyB3YXkgdG8gcmVnaXN0ZXIgYW4gb3JpZ2luIHR5cGUgaW4gYGNvbnN0cnVjdF9ydW50aW1lYCB3aXRob3V0IGEgcGFsbGV0IHRoZSBvcmlnaW4wIGJlbG9uZ3MgdG8uAHUBIFRoaXMgbW9kdWxlIGZ1bGZpbGxzIG9ubHkgdGhlIHNpbmdsZSBwdXJwb3NlIG9mIGhvdXNpbmcgdGhlIGBPcmlnaW5gIGluIGBjb25zdHJ1Y3RfcnVudGltZWAuNENvbmZpZ3VyYXRpb24BNENvbmZpZ3VyYXRpb24MMEFjdGl2ZUNvbmZpZwEAlQpBAwAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAGQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAABAAAAAQAAAAEAAAAAAQAAAAAAAAAAAAAAECcAAICy5g6Aw8kBgJaYAAAAAAAAAAAAAAAAAAUAAAAEyCBUaGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uOFBlbmRpbmdDb25maWdzAQCZCgQAHHwgUGVuZGluZyBjb25maWd1cmF0aW9uIGNoYW5nZXMuAFkBIFRoaXMgaXMgYSBsaXN0IG9mIGNvbmZpZ3VyYXRpb24gY2hhbmdlcywgZWFjaCB3aXRoIGEgc2Vzc2lvbiBpbmRleCBhdCB3aGljaCBpdCBzaG91bGQwIGJlIGFwcGxpZWQuAGEBIFRoZSBsaXN0IGlzIHNvcnRlZCBhc2NlbmRpbmcgYnkgc2Vzc2lvbiBpbmRleC4gQWxzbywgdGhpcyBsaXN0IGNhbiBvbmx5IGNvbnRhaW4gYXQgbW9zdPwgMiBpdGVtczogZm9yIHRoZSBuZXh0IHNlc3Npb24gYW5kIGZvciB0aGUgYHNjaGVkdWxlZF9zZXNzaW9uYC5YQnlwYXNzQ29uc2lzdGVuY3lDaGVjawEAIAQACGEBIElmIHRoaXMgaXMgc2V0LCB0aGVuIHRoZSBjb25maWd1cmF0aW9uIHNldHRlcnMgd2lsbCBieXBhc3MgdGhlIGNvbnNpc3RlbmN5IGNoZWNrcy4gVGhpc7QgaXMgbWVhbnQgdG8gYmUgdXNlZCBvbmx5IGFzIHRoZSBsYXN0IHJlc29ydC4BqQMAAAGhCjMALFBhcmFzU2hhcmVkASxQYXJhc1NoYXJlZBBMQ3VycmVudFNlc3Npb25JbmRleAEAEBAAAAAABGwgVGhlIGN1cnJlbnQgc2Vzc2lvbiBpbmRleC5YQWN0aXZlVmFsaWRhdG9ySW5kaWNlcwEApQoEAAgJASBBbGwgdGhlIHZhbGlkYXRvcnMgYWN0aXZlbHkgcGFydGljaXBhdGluZyBpbiBwYXJhY2hhaW4gY29uc2Vuc3VzLrAgSW5kaWNlcyBhcmUgaW50byB0aGUgYnJvYWRlciB2YWxpZGF0b3Igc2V0LkxBY3RpdmVWYWxpZGF0b3JLZXlzAQCpCgQACFUBIFRoZSBwYXJhY2hhaW4gYXR0ZXN0YXRpb24ga2V5cyBvZiB0aGUgdmFsaWRhdG9ycyBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIHBhcmFjaGFpbh0BIGNvbnNlbnN1cy4gVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgbGVuZ3RoIGFzIGBBY3RpdmVWYWxpZGF0b3JJbmRpY2VzYC5MQWxsb3dlZFJlbGF5UGFyZW50cwEArQoUAAAAAAAEbCBBbGwgYWxsb3dlZCByZWxheS1wYXJlbnRzLgHRAwAAADQANFBhcmFJbmNsdXNpb24BNFBhcmFJbmNsdXNpb24ECFYxAAEEBWECuQoEABRhASBDYW5kaWRhdGVzIHBlbmRpbmcgYXZhaWxhYmlsaXR5IGJ5IGBQYXJhSWRgLiBUaGV5IGZvcm0gYSBjaGFpbiBzdGFydGluZyBmcm9tIHRoZSBsYXRlc3RsIGluY2x1ZGVkIGhlYWQgb2YgdGhlIHBhcmEuYQEgVXNlIGEgZGlmZmVyZW50IHByZWZpeCBwb3N0LW1pZ3JhdGlvbiB0byB2MSwgc2luY2UgdGhlIHYwIGBQZW5kaW5nQXZhaWxhYmlsaXR5YCBzdG9yYWdlcQEgd291bGQgb3RoZXJ3aXNlIGhhdmUgdGhlIGV4YWN0IHNhbWUgcHJlZml4IHdoaWNoIGNvdWxkIGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvdXIgd2hlbiBkb2luZzwgdGhlIG1pZ3JhdGlvbi4B1QMB6QYAAcEKNQAwUGFyYUluaGVyZW50ATBQYXJhSW5oZXJlbnQIIEluY2x1ZGVkAADFAQQAGOwgV2hldGhlciB0aGUgcGFyYXMgaW5oZXJlbnQgd2FzIGluY2x1ZGVkIHdpdGhpbiB0aGlzIGJsb2NrLgBpASBUaGUgYE9wdGlvbjwoKT5gIGlzIGVmZmVjdGl2ZWx5IGEgYGJvb2xgLCBidXQgaXQgbmV2ZXIgaGl0cyBzdG9yYWdlIGluIHRoZSBgTm9uZWAgdmFyaWFudLwgZHVlIHRvIHRoZSBndWFyYW50ZWVzIG9mIEZSQU1FJ3Mgc3RvcmFnZSBBUElzLgBJASBJZiB0aGlzIGlzIGBOb25lYCBhdCB0aGUgZW5kIG9mIHRoZSBibG9jaywgd2UgcGFuaWMgYW5kIHJlbmRlciB0aGUgYmxvY2sgaW52YWxpZC4wT25DaGFpblZvdGVzAADFCgQABEUBIFNjcmFwZWQgb24gY2hhaW4gZGF0YSBmb3IgZXh0cmFjdGluZyByZXNvbHZlZCBkaXNwdXRlcyBhcyB3ZWxsIGFzIGJhY2tpbmcgdm90ZXMuAdkDAAAB2Qo2ADRQYXJhU2NoZWR1bGVyATRQYXJhU2NoZWR1bGVyEDxWYWxpZGF0b3JHcm91cHMBAN0KBAAcbQEgQWxsIHRoZSB2YWxpZGF0b3IgZ3JvdXBzLiBPbmUgZm9yIGVhY2ggY29yZS4gSW5kaWNlcyBhcmUgaW50byBgQWN0aXZlVmFsaWRhdG9yc2AgLSBub3QgdGhlbQEgYnJvYWRlciBzZXQgb2YgUG9sa2Fkb3QgdmFsaWRhdG9ycywgYnV0IGluc3RlYWQganVzdCB0aGUgc3Vic2V0IHVzZWQgZm9yIHBhcmFjaGFpbnMgZHVyaW5nOCB0aGlzIHNlc3Npb24uAEkBIEJvdW5kOiBUaGUgbnVtYmVyIG9mIGNvcmVzIGlzIHRoZSBzdW0gb2YgdGhlIG51bWJlcnMgb2YgcGFyYWNoYWlucyBhbmQgcGFyYXRocmVhZGkBIG11bHRpcGxleGVycy4gUmVhc29uYWJseSwgMTAwLTEwMDAuIFRoZSBkb21pbmFudCBmYWN0b3IgaXMgdGhlIG51bWJlciBvZiB2YWxpZGF0b3JzOiBzYWZlUCB1cHBlciBib3VuZCBhdCAxMGsuREF2YWlsYWJpbGl0eUNvcmVzAQDhCgQAGHEBIE9uZSBlbnRyeSBmb3IgZWFjaCBhdmFpbGFiaWxpdHkgY29yZS4gVGhlIGkndGggcGFyYWNoYWluIGJlbG9uZ3MgdG8gdGhlIGkndGggY29yZSwgd2l0aCB0aGXwIHJlbWFpbmluZyBjb3JlcyBhbGwgYmVpbmcgb24gZGVtYW5kIHBhcmFjaGFpbiBtdWx0aXBsZXhlcnMuANggQm91bmRlZCBieSB0aGUgbWF4aW11bSBvZiBlaXRoZXIgb2YgdGhlc2UgdHdvIHZhbHVlczrkICAgKiBUaGUgbnVtYmVyIG9mIHBhcmFjaGFpbnMgYW5kIHBhcmF0aHJlYWQgbXVsdGlwbGV4ZXJzRQEgICAqIFRoZSBudW1iZXIgb2YgdmFsaWRhdG9ycyBkaXZpZGVkIGJ5IGBjb25maWd1cmF0aW9uLm1heF92YWxpZGF0b3JzX3Blcl9jb3JlYC5EU2Vzc2lvblN0YXJ0QmxvY2sBABAQAAAAABxpASBUaGUgYmxvY2sgbnVtYmVyIHdoZXJlIHRoZSBzZXNzaW9uIHN0YXJ0IG9jY3VycmVkLiBVc2VkIHRvIHRyYWNrIGhvdyBtYW55IGdyb3VwIHJvdGF0aW9uczwgaGF2ZSBvY2N1cnJlZC4AVQEgTm90ZSB0aGF0IGluIHRoZSBjb250ZXh0IG9mIHBhcmFjaGFpbnMgbW9kdWxlcyB0aGUgc2Vzc2lvbiBjaGFuZ2UgaXMgc2lnbmFsZWQgZHVyaW5nYQEgdGhlIGJsb2NrIGFuZCBlbmFjdGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrIChhdCB0aGUgZmluYWxpemF0aW9uIHN0YWdlLCB0byBiZSBleGFjdCkuWQEgVGh1cyBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzIHRoZSBlZmZlY3Qgb2YgdGhlIHNlc3Npb24gY2hhbmdlIGlzIG9ic2VydmVkIGF0IHRoZWUBIGJsb2NrIGZvbGxvd2luZyB0aGUgc2Vzc2lvbiBjaGFuZ2UsIGJsb2NrIG51bWJlciBvZiB3aGljaCB3ZSBzYXZlIGluIHRoaXMgc3RvcmFnZSB2YWx1ZS4oQ2xhaW1RdWV1ZQEA8QoEAAxZASBPbmUgZW50cnkgZm9yIGVhY2ggYXZhaWxhYmlsaXR5IGNvcmUuIFRoZSBgVmVjRGVxdWVgIHJlcHJlc2VudHMgdGhlIGFzc2lnbm1lbnRzIHRvIGJlUQEgc2NoZWR1bGVkIG9uIHRoYXQgY29yZS4gVGhlIHZhbHVlIGNvbnRhaW5lZCBoZXJlIHdpbGwgbm90IGJlIHZhbGlkIGFmdGVyIHRoZSBlbmQgb2ZpASBhIGJsb2NrLiBSdW50aW1lIEFQSXMgc2hvdWxkIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHNjaGVkdWxlZCBjb3JlcyBmb3IgdGhlIHVwY29taW5nIGJsb2NrLgAAAAA3ABRQYXJhcwEUUGFyYXNUQFB2ZkFjdGl2ZVZvdGVNYXAAAQQFFQQBCwQAELQgQWxsIGN1cnJlbnRseSBhY3RpdmUgUFZGIHByZS1jaGVja2luZyB2b3Rlcy4ALCBJbnZhcmlhbnQ6dQEgLSBUaGVyZSBhcmUgbm8gUFZGIHByZS1jaGVja2luZyB2b3RlcyB0aGF0IGV4aXN0cyBpbiBsaXN0IGJ1dCBub3QgaW4gdGhlIHNldCBhbmQgdmljZSB2ZXJzYS5EUHZmQWN0aXZlVm90ZUxpc3QBABELBAAENQEgVGhlIGxpc3Qgb2YgYWxsIGN1cnJlbnRseSBhY3RpdmUgUFZGIHZvdGVzLiBBdXhpbGlhcnkgdG8gYFB2ZkFjdGl2ZVZvdGVNYXBgLihQYXJhY2hhaW5zAQAVCwQAEGkBIEFsbCBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbnMuIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGBQYXJhSWRgLiBPbiBkZW1hbmQgcGFyYWNoYWlucyBhcmUgbm90KCBpbmNsdWRlZC4A6CBDb25zaWRlciB1c2luZyB0aGUgW2BQYXJhY2hhaW5zQ2FjaGVgXSB0eXBlIG9mIG1vZGlmeWluZy44UGFyYUxpZmVjeWNsZXMAAQQFYQIZCwQABLwgVGhlIGN1cnJlbnQgbGlmZWN5Y2xlIG9mIGEgYWxsIGtub3duIFBhcmEgSURzLhRIZWFkcwABBAVhAjUEBAAEoCBUaGUgaGVhZC1kYXRhIG9mIGV2ZXJ5IHJlZ2lzdGVyZWQgcGFyYS5ETW9zdFJlY2VudENvbnRleHQAAQQFYQIQBAAEKQEgVGhlIGNvbnRleHQgKHJlbGF5LWNoYWluIGJsb2NrIG51bWJlcikgb2YgdGhlIG1vc3QgcmVjZW50IHBhcmFjaGFpbiBoZWFkLjxDdXJyZW50Q29kZUhhc2gAAQQFYQIVBAQADLQgVGhlIHZhbGlkYXRpb24gY29kZSBoYXNoIG9mIGV2ZXJ5IGxpdmUgcGFyYS4A5CBDb3JyZXNwb25kaW5nIGNvZGUgY2FuIGJlIHJldHJpZXZlZCB3aXRoIFtgQ29kZUJ5SGFzaGBdLjBQYXN0Q29kZUhhc2gAAQQFHQsVBAQAEGEBIEFjdHVhbCBwYXN0IGNvZGUgaGFzaCwgaW5kaWNhdGVkIGJ5IHRoZSBwYXJhIGlkIGFzIHdlbGwgYXMgdGhlIGJsb2NrIG51bWJlciBhdCB3aGljaCBpdEQgYmVjYW1lIG91dGRhdGVkLgDkIENvcnJlc3BvbmRpbmcgY29kZSBjYW4gYmUgcmV0cmlldmVkIHdpdGggW2BDb2RlQnlIYXNoYF0uMFBhc3RDb2RlTWV0YQEBBAVhAiELCAAADEkBIFBhc3QgY29kZSBvZiBwYXJhY2hhaW5zLiBUaGUgcGFyYWNoYWlucyB0aGVtc2VsdmVzIG1heSBub3QgYmUgcmVnaXN0ZXJlZCBhbnltb3JlLEkBIGJ1dCB3ZSBhbHNvIGtlZXAgdGhlaXIgY29kZSBvbi1jaGFpbiBmb3IgdGhlIHNhbWUgYW1vdW50IG9mIHRpbWUgYXMgb3V0ZGF0ZWQgY29kZbAgdG8ga2VlcCBpdCBhdmFpbGFibGUgZm9yIGFwcHJvdmFsIGNoZWNrZXJzLjxQYXN0Q29kZVBydW5pbmcBAC0LBAAYaQEgV2hpY2ggcGFyYXMgaGF2ZSBwYXN0IGNvZGUgdGhhdCBuZWVkcyBwcnVuaW5nIGFuZCB0aGUgcmVsYXktY2hhaW4gYmxvY2sgYXQgd2hpY2ggdGhlIGNvZGVpASB3YXMgcmVwbGFjZWQuIE5vdGUgdGhhdCB0aGlzIGlzIHRoZSBhY3R1YWwgaGVpZ2h0IG9mIHRoZSBpbmNsdWRlZCBibG9jaywgbm90IHRoZSBleHBlY3RlZD0BIGhlaWdodCBhdCB3aGljaCB0aGUgY29kZSB1cGdyYWRlIHdvdWxkIGJlIGFwcGxpZWQsIGFsdGhvdWdoIHRoZXkgbWF5IGJlIGVxdWFsLm0BIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSBlbnRpcmUgYWNjZXB0YW5jZSBwZXJpb2QgaXMgY292ZXJlZCwgbm90IGFuIG9mZnNldCBhY2NlcHRhbmNlIHBlcmlvZG0BIHN0YXJ0aW5nIGZyb20gdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHBhcmFjaGFpbiBwZXJjZWl2ZXMgYSBjb2RlIHVwZ3JhZGUgYXMgaGF2aW5nIG9jY3VycmVkLlUBIE11bHRpcGxlIGVudHJpZXMgZm9yIGEgc2luZ2xlIHBhcmEgYXJlIHBlcm1pdHRlZC4gT3JkZXJlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyLkhGdXR1cmVDb2RlVXBncmFkZXMAAQQFYQIQBAAQPQEgVGhlIGJsb2NrIG51bWJlciBhdCB3aGljaCB0aGUgcGxhbm5lZCBjb2RlIGNoYW5nZSBpcyBleHBlY3RlZCBmb3IgYSBwYXJhY2hhaW4uAGUBIFRoZSBjaGFuZ2Ugd2lsbCBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmaXJzdCBwYXJhYmxvY2sgZm9yIHRoaXMgSUQgaW5jbHVkZWQgd2hpY2ggZXhlY3V0ZXMZASBpbiB0aGUgY29udGV4dCBvZiBhIHJlbGF5IGNoYWluIGJsb2NrIHdpdGggYSBudW1iZXIgPj0gYGV4cGVjdGVkX2F0YC5QRnV0dXJlQ29kZVVwZ3JhZGVzQXQBAC0LBAAgrCBUaGUgbGlzdCBvZiB1cGNvbWluZyBmdXR1cmUgY29kZSB1cGdyYWRlcy4AbQEgRWFjaCBpdGVtIGlzIGEgcGFpciBvZiB0aGUgcGFyYWNoYWluIGFuZCB0aGUgZXhwZWN0ZWQgYmxvY2sgYXQgd2hpY2ggdGhlIHVwZ3JhZGUgc2hvdWxkIGJlUQEgYXBwbGllZC4gVGhlIHVwZ3JhZGUgd2lsbCBiZSBhcHBsaWVkIGF0IHRoZSBnaXZlbiByZWxheSBjaGFpbiBibG9jay4gSW4gY29udHJhc3QgdG91ASBbYEZ1dHVyZUNvZGVVcGdyYWRlc2BdIHRoaXMgY29kZSB1cGdyYWRlIHdpbGwgYmUgYXBwbGllZCByZWdhcmRsZXNzIHRoZSBwYXJhY2hhaW4gbWFraW5nIGFueUQgcHJvZ3Jlc3Mgb3Igbm90LgCMIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGJsb2NrIG51bWJlci44RnV0dXJlQ29kZUhhc2gAAQQFYQIVBAQADJwgVGhlIGFjdHVhbCBmdXR1cmUgY29kZSBoYXNoIG9mIGEgcGFyYS4A5CBDb3JyZXNwb25kaW5nIGNvZGUgY2FuIGJlIHJldHJpZXZlZCB3aXRoIFtgQ29kZUJ5SGFzaGBdLlBVcGdyYWRlR29BaGVhZFNpZ25hbAABBAVhAjELBAAodQEgVGhpcyBpcyB1c2VkIGJ5IHRoZSByZWxheS1jaGFpbiB0byBjb21tdW5pY2F0ZSB0byBhIHBhcmFjaGFpbiBhIGdvLWFoZWFkIHdpdGggaW4gdGhlIHVwZ3JhZGUsIHByb2NlZHVyZS4AdQEgVGhpcyB2YWx1ZSBpcyBhYnNlbnQgd2hlbiB0aGVyZSBhcmUgbm8gdXBncmFkZXMgc2NoZWR1bGVkIG9yIGR1cmluZyB0aGUgdGltZSB0aGUgcmVsYXkgY2hhaW5VASBwZXJmb3JtcyB0aGUgY2hlY2tzLiBJdCBpcyBzZXQgYXQgdGhlIGZpcnN0IHJlbGF5LWNoYWluIGJsb2NrIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmd1ASBwYXJhY2hhaW4gY2FuIHN3aXRjaCBpdHMgdXBncmFkZSBmdW5jdGlvbi4gQXMgc29vbiBhcyB0aGUgcGFyYWNoYWluJ3MgYmxvY2sgaXMgaW5jbHVkZWQsIHRoZXAgdmFsdWUgZ2V0cyByZXNldCB0byBgTm9uZWAuAGUBIE5PVEUgdGhhdCB0aGlzIGZpZWxkIGlzIHVzZWQgYnkgcGFyYWNoYWlucyB2aWEgbWVya2xlIHN0b3JhZ2UgcHJvb2ZzLCB0aGVyZWZvcmUgY2hhbmdpbmfEIHRoZSBmb3JtYXQgd2lsbCByZXF1aXJlIG1pZ3JhdGlvbiBvZiBwYXJhY2hhaW5zLmBVcGdyYWRlUmVzdHJpY3Rpb25TaWduYWwAAQQFYQI1CwQAJGkBIFRoaXMgaXMgdXNlZCBieSB0aGUgcmVsYXktY2hhaW4gdG8gY29tbXVuaWNhdGUgdGhhdCB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zIGZvciBwZXJmb3JtaW5nfCBhbiB1cGdyYWRlIGZvciB0aGlzIHBhcmFjaGFpbi4AWQEgVGhpcyBtYXkgYmUgYSBiZWNhdXNlIHRoZSBwYXJhY2hhaW4gd2FpdHMgZm9yIHRoZSB1cGdyYWRlIGNvb2xkb3duIHRvIGV4cGlyZS4gQW5vdGhlcm0BIHBvdGVudGlhbCB1c2UgY2FzZSBpcyB3aGVuIHdlIHdhbnQgdG8gcGVyZm9ybSBzb21lIG1haW50ZW5hbmNlIChzdWNoIGFzIHN0b3JhZ2UgbWlncmF0aW9uKeAgd2UgY291bGQgcmVzdHJpY3QgdXBncmFkZXMgdG8gbWFrZSB0aGUgcHJvY2VzcyBzaW1wbGVyLgBlASBOT1RFIHRoYXQgdGhpcyBmaWVsZCBpcyB1c2VkIGJ5IHBhcmFjaGFpbnMgdmlhIG1lcmtsZSBzdG9yYWdlIHByb29mcywgdGhlcmVmb3JlIGNoYW5naW5nxCB0aGUgZm9ybWF0IHdpbGwgcmVxdWlyZSBtaWdyYXRpb24gb2YgcGFyYWNoYWlucy5AVXBncmFkZUNvb2xkb3ducwEALQsEAAxRASBUaGUgbGlzdCBvZiBwYXJhY2hhaW5zIHRoYXQgYXJlIGF3YWl0aW5nIGZvciB0aGVpciB1cGdyYWRlIHJlc3RyaWN0aW9uIHRvIGNvb2xkb3duLgCMIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGJsb2NrIG51bWJlci5AVXBjb21pbmdVcGdyYWRlcwEALQsEABiQIFRoZSBsaXN0IG9mIHVwY29taW5nIGNvZGUgdXBncmFkZXMuAHEBIEVhY2ggaXRlbSBpcyBhIHBhaXIgb2Ygd2hpY2ggcGFyYSBwZXJmb3JtcyBhIGNvZGUgdXBncmFkZSBhbmQgYXQgd2hpY2ggcmVsYXktY2hhaW4gYmxvY2sgaXRAIGlzIGV4cGVjdGVkIGF0LgCMIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGJsb2NrIG51bWJlci4wQWN0aW9uc1F1ZXVlAQEEBRAVCwQABBUBIFRoZSBhY3Rpb25zIHRvIHBlcmZvcm0gZHVyaW5nIHRoZSBzdGFydCBvZiBhIHNwZWNpZmljIHNlc3Npb24gaW5kZXguUFVwY29taW5nUGFyYXNHZW5lc2lzAAEEBWECQQYEABCgIFVwY29taW5nIHBhcmFzIGluc3RhbnRpYXRpb24gYXJndW1lbnRzLgBlASBOT1RFIHRoYXQgYWZ0ZXIgUFZGIHByZS1jaGVja2luZyBpcyBlbmFibGVkIHRoZSBwYXJhIGdlbmVzaXMgYXJnIHdpbGwgaGF2ZSBpdCdzIGNvZGUgc2V0YQEgdG8gZW1wdHkuIEluc3RlYWQsIHRoZSBjb2RlIHdpbGwgYmUgc2F2ZWQgaW50byB0aGUgc3RvcmFnZSByaWdodCBhd2F5IHZpYSBgQ29kZUJ5SGFzaGAuOENvZGVCeUhhc2hSZWZzAQEEBhUEEBAAAAAABCkBIFRoZSBudW1iZXIgb2YgcmVmZXJlbmNlIG9uIHRoZSB2YWxpZGF0aW9uIGNvZGUgaW4gW2BDb2RlQnlIYXNoYF0gc3RvcmFnZS4oQ29kZUJ5SGFzaAABBAYVBDEEBAAQkCBWYWxpZGF0aW9uIGNvZGUgc3RvcmVkIGJ5IGl0cyBoYXNoLgAxASBUaGlzIHN0b3JhZ2UgaXMgY29uc2lzdGVudCB3aXRoIFtgRnV0dXJlQ29kZUhhc2hgXSwgW2BDdXJyZW50Q29kZUhhc2hgXSBhbmRIIFtgUGFzdENvZGVIYXNoYF0uAWUEAfkGBEBVbnNpZ25lZFByaW9yaXR5MCD//////////wABOQs4ACxJbml0aWFsaXplcgEsSW5pdGlhbGl6ZXIIOEhhc0luaXRpYWxpemVkAADFAQQAICEBIFdoZXRoZXIgdGhlIHBhcmFjaGFpbnMgbW9kdWxlcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aGluIHRoaXMgYmxvY2suACUBIFNlbWFudGljYWxseSBhIGBib29sYCwgYnV0IHRoaXMgZ3VhcmFudGVlcyBpdCBzaG91bGQgbmV2ZXIgaGl0IHRoZSB0cmllLGkBIGFzIHRoaXMgaXMgY2xlYXJlZCBpbiBgb25fZmluYWxpemVgIGFuZCBGcmFtZSBvcHRpbWl6ZXMgYE5vbmVgIHZhbHVlcyB0byBiZSBlbXB0eSB2YWx1ZXMuAHEBIEFzIGEgYGJvb2xgLCBgc2V0KGZhbHNlKWAgYW5kIGByZW1vdmUoKWAgYm90aCBsZWFkIHRvIHRoZSBuZXh0IGBnZXQoKWAgYmVpbmcgZmFsc2UsIGJ1dCBvbmV1ASBvZiB0aGVtIHdyaXRlcyB0byB0aGUgdHJpZSBhbmQgb25lIGRvZXMgbm90LiBUaGlzIGNvbmZ1c2lvbiBtYWtlcyBgT3B0aW9uPCgpPmAgbW9yZSBzdWl0YWJsZZAgZm9yIHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyB2YXJpYWJsZS5YQnVmZmVyZWRTZXNzaW9uQ2hhbmdlcwEAPQsEABxZASBCdWZmZXJlZCBzZXNzaW9uIGNoYW5nZXMgYWxvbmcgd2l0aCB0aGUgYmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZXkgc2hvdWxkIGJlIGFwcGxpZWQuAF0BIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgZW1wdHkgb3Igb25lIGVsZW1lbnQgbG9uZy4gQXBhcnQgZnJvbSB0aGF0IHRoaXMgaXRlbSBuZXZlciBoaXRzNCB0aGUgc3RvcmFnZS4AaQEgSG93ZXZlciB0aGlzIGlzIGEgYFZlY2AgcmVnYXJkbGVzcyB0byBoYW5kbGUgdmFyaW91cyBlZGdlIGNhc2VzIHRoYXQgbWF5IG9jY3VyIGF0IHJ1bnRpbWXAIHVwZ3JhZGUgYm91bmRhcmllcyBvciBpZiBnb3Zlcm5hbmNlIGludGVydmVuZXMuAW0EAAAAOQAMRG1wAQxEbXAMVERvd253YXJkTWVzc2FnZVF1ZXVlcwEBBAVhAkULBAAE0CBUaGUgZG93bndhcmQgbWVzc2FnZXMgYWRkcmVzc2VkIGZvciBhIGNlcnRhaW4gcGFyYS5kRG93bndhcmRNZXNzYWdlUXVldWVIZWFkcwEBBAVhAjSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJQEgQSBtYXBwaW5nIHRoYXQgc3RvcmVzIHRoZSBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIE1RQyBoZWFkIGZvciBlYWNoIHBhcmEuAJAgRWFjaCBsaW5rIGluIHRoaXMgY2hhaW4gaGFzIGEgZm9ybTp4IGAocHJldl9oZWFkLCBCLCBIKE0pKWAsIHdoZXJl6CAtIGBwcmV2X2hlYWRgOiBpcyB0aGUgcHJldmlvdXMgaGVhZCBoYXNoIG9yIHplcm8gaWYgbm9uZS4hASAtIGBCYDogaXMgdGhlIHJlbGF5LWNoYWluIGJsb2NrIG51bWJlciBpbiB3aGljaCBhIG1lc3NhZ2Ugd2FzIGFwcGVuZGVkLtQgLSBgSChNKWA6IGlzIHRoZSBoYXNoIG9mIHRoZSBtZXNzYWdlIGJlaW5nIGFwcGVuZGVkLkREZWxpdmVyeUZlZUZhY3RvcgEBBAVhApUDQAAAZKeztuANAAAAAAAAAAAExCBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieS4AAAAAOgAQSHJtcAEQSHJtcDBcSHJtcE9wZW5DaGFubmVsUmVxdWVzdHMAAQQFdQRNCwQAGLwgVGhlIHNldCBvZiBwZW5kaW5nIEhSTVAgb3BlbiBjaGFubmVsIHJlcXVlc3RzLgDAIFRoZSBzZXQgaXMgYWNjb21wYW5pZWQgYnkgYSBsaXN0IGZvciBpdGVyYXRpb24uACwgSW52YXJpYW50Oj0BIC0gVGhlcmUgYXJlIG5vIGNoYW5uZWxzIHRoYXQgZXhpc3RzIGluIGxpc3QgYnV0IG5vdCBpbiB0aGUgc2V0IGFuZCB2aWNlIHZlcnNhLmxIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0c0xpc3QBAFELBAAAbEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RDb3VudAEBBAVhAhAQAAAAAAxlASBUaGlzIG1hcHBpbmcgdHJhY2tzIGhvdyBtYW55IG9wZW4gY2hhbm5lbCByZXF1ZXN0cyBhcmUgaW5pdGlhdGVkIGJ5IGEgZ2l2ZW4gc2VuZGVyIHBhcmEuWQEgSW52YXJpYW50OiBgSHJtcE9wZW5DaGFubmVsUmVxdWVzdHNgIHNob3VsZCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtcyB0aGF0IGhhcwUBIGAoWCwgXylgIGFzIHRoZSBudW1iZXIgb2YgYEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RDb3VudGAgZm9yIGBYYC58SHJtcEFjY2VwdGVkQ2hhbm5lbFJlcXVlc3RDb3VudAEBBAVhAhAQAAAAAAxxASBUaGlzIG1hcHBpbmcgdHJhY2tzIGhvdyBtYW55IG9wZW4gY2hhbm5lbCByZXF1ZXN0cyB3ZXJlIGFjY2VwdGVkIGJ5IGEgZ2l2ZW4gcmVjaXBpZW50IHBhcmEubQEgSW52YXJpYW50OiBgSHJtcE9wZW5DaGFubmVsUmVxdWVzdHNgIHNob3VsZCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtcyBgKF8sIFgpYCB3aXRoVQEgYGNvbmZpcm1lZGAgc2V0IHRvIHRydWUsIGFzIHRoZSBudW1iZXIgb2YgYEhybXBBY2NlcHRlZENoYW5uZWxSZXF1ZXN0Q291bnRgIGZvciBgWGAuYEhybXBDbG9zZUNoYW5uZWxSZXF1ZXN0cwABBAV1BMUBBAAccQEgQSBzZXQgb2YgcGVuZGluZyBIUk1QIGNsb3NlIGNoYW5uZWwgcmVxdWVzdHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgY2xvc2VkIGR1cmluZyB0aGUgc2Vzc2lvbiEBIGNoYW5nZS4gVXNlZCBmb3IgY2hlY2tpbmcgaWYgYSBnaXZlbiBjaGFubmVsIGlzIHJlZ2lzdGVyZWQgZm9yIGNsb3N1cmUuAMAgVGhlIHNldCBpcyBhY2NvbXBhbmllZCBieSBhIGxpc3QgZm9yIGl0ZXJhdGlvbi4ALCBJbnZhcmlhbnQ6PQEgLSBUaGVyZSBhcmUgbm8gY2hhbm5lbHMgdGhhdCBleGlzdHMgaW4gbGlzdCBidXQgbm90IGluIHRoZSBzZXQgYW5kIHZpY2UgdmVyc2EucEhybXBDbG9zZUNoYW5uZWxSZXF1ZXN0c0xpc3QBAFELBAAAOEhybXBXYXRlcm1hcmtzAAEEBWECEAQAELggVGhlIEhSTVAgd2F0ZXJtYXJrIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHBhcmEuLCBJbnZhcmlhbnQ6VQEgLSBlYWNoIHBhcmEgYFBgIHVzZWQgaGVyZSBhcyBhIGtleSBzaG91bGQgc2F0aXNmeSBgUGFyYXM6OmlzX3ZhbGlkX3BhcmEoUClgIHdpdGhpbiBhLCAgIHNlc3Npb24uMEhybXBDaGFubmVscwABBAV1BFULBAAMtCBIUk1QIGNoYW5uZWwgZGF0YSBhc3NvY2lhdGVkIHdpdGggZWFjaCBwYXJhLiwgSW52YXJpYW50OnUBIC0gZWFjaCBwYXJ0aWNpcGFudCBpbiB0aGUgY2hhbm5lbCBzaG91bGQgc2F0aXNmeSBgUGFyYXM6OmlzX3ZhbGlkX3BhcmEoUClgIHdpdGhpbiBhIHNlc3Npb24uYEhybXBJbmdyZXNzQ2hhbm5lbHNJbmRleAEBBAVhAhULBAA0cQEgSW5ncmVzcy9lZ3Jlc3MgaW5kZXhlcyBhbGxvdyB0byBmaW5kIGFsbCB0aGUgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIGdpdmVuIHRoZSBvcHBvc2l0ZSBzaWRlLhQgSS5lLgAhASAoYSkgaW5ncmVzcyBpbmRleCBhbGxvd3MgdG8gZmluZCBhbGwgdGhlIHNlbmRlcnMgZm9yIGEgZ2l2ZW4gcmVjaXBpZW50Lh0BIChiKSBlZ3Jlc3MgaW5kZXggYWxsb3dzIHRvIGZpbmQgYWxsIHRoZSByZWNpcGllbnRzIGZvciBhIGdpdmVuIHNlbmRlci4AMCBJbnZhcmlhbnRzOlEBIC0gZm9yIGVhY2ggaW5ncmVzcyBpbmRleCBlbnRyeSBmb3IgYFBgIGVhY2ggaXRlbSBgSWAgaW4gdGhlIGluZGV4IHNob3VsZCBwcmVzZW50IGlueCAgIGBIcm1wQ2hhbm5lbHNgIGFzIGAoSSwgUClgLk0BIC0gZm9yIGVhY2ggZWdyZXNzIGluZGV4IGVudHJ5IGZvciBgUGAgZWFjaCBpdGVtIGBFYCBpbiB0aGUgaW5kZXggc2hvdWxkIHByZXNlbnQgaW54ICAgYEhybXBDaGFubmVsc2AgYXMgYChQLCBFKWAuAQEgLSB0aGVyZSBzaG91bGQgYmUgbm8gb3RoZXIgZGFuZ2xpbmcgY2hhbm5lbHMgaW4gYEhybXBDaGFubmVsc2AuaCAtIHRoZSB2ZWN0b3JzIGFyZSBzb3J0ZWQuXEhybXBFZ3Jlc3NDaGFubmVsc0luZGV4AQEEBWECFQsEAABMSHJtcENoYW5uZWxDb250ZW50cwEBBAV1BFkLBAAIrCBTdG9yYWdlIGZvciB0aGUgbWVzc2FnZXMgZm9yIGVhY2ggY2hhbm5lbC5lASBJbnZhcmlhbnQ6IGNhbm5vdCBiZSBub24tZW1wdHkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgY2hhbm5lbCBpbiBgSHJtcENoYW5uZWxzYCBpcyBgTm9uZWAuSEhybXBDaGFubmVsRGlnZXN0cwEBBAVhAmELBAAYaQEgTWFpbnRhaW5zIGEgbWFwcGluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFuc3dlciB0aGUgcXVlc3Rpb246IFdoYXQgcGFyYXMgc2VudCBhIG1lc3NhZ2UgYXTkIHRoZSBnaXZlbiBibG9jayBudW1iZXIgZm9yIGEgZ2l2ZW4gcmVjZWl2ZXIuIEludmFyaWFudHM6qCAtIFRoZSBpbm5lciBgVmVjPFBhcmFJZD5gIGlzIG5ldmVyIGVtcHR5LuggLSBUaGUgaW5uZXIgYFZlYzxQYXJhSWQ+YCBjYW5ub3Qgc3RvcmUgdHdvIHNhbWUgYFBhcmFJZGAubQEgLSBUaGUgb3V0ZXIgdmVjdG9yIGlzIHNvcnRlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyIGFuZCBjYW5ub3Qgc3RvcmUgdHdvIGl0ZW1zIHdpdGggdGhlVCAgIHNhbWUgYmxvY2sgbnVtYmVyLgFxBAH9BgABaQs8ADxQYXJhU2Vzc2lvbkluZm8BPFBhcmFTZXNzaW9uSW5mbxRQQXNzaWdubWVudEtleXNVbnNhZmUBAG0LBAAMpCBBc3NpZ25tZW50IGtleXMgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24ubQEgTm90ZSB0aGF0IHRoaXMgQVBJIGlzIHByaXZhdGUgZHVlIHRvIGl0IGJlaW5nIHByb25lIHRvICdvZmYtYnktb25lJyBhdCBzZXNzaW9uIGJvdW5kYXJpZXMurCBXaGVuIGluIGRvdWJ0LCB1c2UgYFNlc3Npb25zYCBBUEkgaW5zdGVhZC5URWFybGllc3RTdG9yZWRTZXNzaW9uAQAQEAAAAAAEAQEgVGhlIGVhcmxpZXN0IHNlc3Npb24gZm9yIHdoaWNoIHByZXZpb3VzIHNlc3Npb24gaW5mbyBpcyBzdG9yZWQuIFNlc3Npb25zAAEEBhBxCwQADKQgU2Vzc2lvbiBpbmZvcm1hdGlvbiBpbiBhIHJvbGxpbmcgd2luZG93LjUBIFNob3VsZCBoYXZlIGFuIGVudHJ5IGluIHJhbmdlIGBFYXJsaWVzdFN0b3JlZFNlc3Npb24uLj1DdXJyZW50U2Vzc2lvbkluZGV4YC51ASBEb2VzIG5vdCBoYXZlIGFueSBlbnRyaWVzIGJlZm9yZSB0aGUgc2Vzc2lvbiBpbmRleCBpbiB0aGUgZmlyc3Qgc2Vzc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uLixBY2NvdW50S2V5cwABBAYQ0QEEAARxASBUaGUgdmFsaWRhdG9yIGFjY291bnQga2V5cyBvZiB0aGUgdmFsaWRhdG9ycyBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIHBhcmFjaGFpbiBjb25zZW5zdXMuVFNlc3Npb25FeGVjdXRvclBhcmFtcwABBAYQsQMEAATEIEV4ZWN1dG9yIHBhcmFtZXRlciBzZXQgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiBpbmRleAAAAAA9ADRQYXJhc0Rpc3B1dGVzATRQYXJhc0Rpc3B1dGVzFERMYXN0UHJ1bmVkU2Vzc2lvbgAAEAQACAEBIFRoZSBsYXN0IHBydW5lZCBzZXNzaW9uLCBpZiBhbnkuIEFsbCBkYXRhIHN0b3JlZCBieSB0aGlzIG1vZHVsZVQgcmVmZXJlbmNlcyBzZXNzaW9ucy4gRGlzcHV0ZXMAAQgFAn0LgQsEAAQFASBBbGwgb25nb2luZyBvciBjb25jbHVkZWQgZGlzcHV0ZXMgZm9yIHRoZSBsYXN0IHNldmVyYWwgc2Vzc2lvbnMuREJhY2tlcnNPbkRpc3B1dGVzAAEIBQJ9C4ULBAAInCBCYWNraW5nIHZvdGVzIHN0b3JlZCBmb3IgZWFjaCBkaXNwdXRlLowgVGhpcyBzdG9yYWdlIGlzIHVzZWQgZm9yIHNsYXNoaW5nLiBJbmNsdWRlZAABCAUCfQsQBAAIRQEgQWxsIGluY2x1ZGVkIGJsb2NrcyBvbiB0aGUgY2hhaW4sIGFzIHdlbGwgYXMgdGhlIGJsb2NrIG51bWJlciBpbiB0aGlzIGNoYWluIHRoYXRZASBzaG91bGQgYmUgcmV2ZXJ0ZWQgYmFjayB0byBpZiB0aGUgY2FuZGlkYXRlIGlzIGRpc3B1dGVkIGFuZCBkZXRlcm1pbmVkIHRvIGJlIGludmFsaWQuGEZyb3plbgEAPQIEABARASBXaGV0aGVyIHRoZSBjaGFpbiBpcyBmcm96ZW4uIFN0YXJ0cyBhcyBgTm9uZWAuIFdoZW4gdGhpcyBpcyBgU29tZWAsNQEgdGhlIGNoYWluIHdpbGwgbm90IGFjY2VwdCBhbnkgbmV3IHBhcmFjaGFpbiBibG9ja3MgZm9yIGJhY2tpbmcgb3IgaW5jbHVzaW9uLAkBIGFuZCBpdHMgdmFsdWUgaW5kaWNhdGVzIHRoZSBsYXN0IHZhbGlkIGJsb2NrIG51bWJlciBpbiB0aGUgY2hhaW4u+CBJdCBjYW4gb25seSBiZSBzZXQgYmFjayB0byBgTm9uZWAgYnkgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24uAXkEAQEHAAGJCz4ANFBhcmFzU2xhc2hpbmcBNFBhcmFzU2xhc2hpbmcIQFVuYXBwbGllZFNsYXNoZXMAAQgFAn0LjQsEAASQIFZhbGlkYXRvcnMgcGVuZGluZyBkaXNwdXRlIHNsYXNoZXMuSFZhbGlkYXRvclNldENvdW50cwABBAUQEAQABIQgYFZhbGlkYXRvclNldENvdW50YCBwZXIgc2Vzc2lvbi4BfQQAAAGdCz8AME1lc3NhZ2VRdWV1ZQEwTWVzc2FnZVF1ZXVlDDBCb29rU3RhdGVGb3IBAQQFkQShC3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATMIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgKG5vbi1lbXB0eSkgcGFnZXMuLFNlcnZpY2VIZWFkAACRBAQABLwgVGhlIG9yaWdpbiBhdCB3aGljaCB3ZSBzaG91bGQgYmVnaW4gc2VydmljaW5nLhRQYWdlcwABCAUFrQuxCwQABIggVGhlIG1hcCBvZiBwYWdlIGluZGljZXMgdG8gcGFnZXMuAY0EAQ0HECBIZWFwU2l6ZRAQAIAAABQ9ASBUaGUgc2l6ZSBvZiB0aGUgcGFnZTsgdGhpcyBpbXBsaWVzIHRoZSBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSB3aGljaCBjYW4gYmUgc2VudC4AWQEgQSBnb29kIHZhbHVlIGRlcGVuZHMgb24gdGhlIGV4cGVjdGVkIG1lc3NhZ2Ugc2l6ZXMsIHRoZWlyIHdlaWdodHMsIHRoZSB3ZWlnaHQgdGhhdCBpc10BIGF2YWlsYWJsZSBmb3IgcHJvY2Vzc2luZyB0aGVtIGFuZCB0aGUgbWF4aW1hbCBuZWVkZWQgbWVzc2FnZSBzaXplLiBUaGUgbWF4aW1hbCBtZXNzYWdlEQEgc2l6ZSBpcyBzbGlnaHRseSBsb3dlciB0aGFuIHRoaXMgYXMgZGVmaW5lZCBieSBbYE1heE1lc3NhZ2VMZW5PZmBdLiBNYXhTdGFsZRAQYAAAAAxdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhbGUgcGFnZXMgKGkuZS4gb2Ygb3ZlcndlaWdodCBtZXNzYWdlcykgYWxsb3dlZCBiZWZvcmUgY3VsbGluZ1EBIGNhbiBoYXBwZW4uIE9uY2UgdGhlcmUgYXJlIG1vcmUgc3RhbGUgcGFnZXMgdGhhbiB0aGlzLCB0aGVuIGhpc3RvcmljYWwgcGFnZXMgbWF5IGJl/CBkcm9wcGVkLCBldmVuIGlmIHRoZXkgY29udGFpbiB1bnByb2Nlc3NlZCBvdmVyd2VpZ2h0IG1lc3NhZ2VzLjRTZXJ2aWNlV2VpZ2h0mQZAAQcAoNshXRMzMzMzMzMzMxhBASBUaGUgYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB3aGljaCBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yqCBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2luaXRpYWxpemVgLgD8IFRoaXMgbWF5IGJlIGxlZ2l0aW1hdGVseSBgTm9uZWAgaW4gdGhlIGNhc2UgdGhhdCB5b3Ugd2lsbCBjYWxsXQEgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBtYW51YWxseSBvciBzZXQgW2BTZWxmOjpJZGxlTWF4U2VydmljZVdlaWdodGBdIHRvIGhhdmVUIGl0IHJ1biBpbiBgb25faWRsZWAuUElkbGVNYXhTZXJ2aWNlV2VpZ2h0mQZAAQcAoNshXRMzMzMzMzMzMxRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgG5C0AAaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyAWhPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlchQ4UGFyYUlkQWZmaW5pdHkAAQQFYQK9CwQADHEBIE1hcHMgYSBgUGFyYUlkYCB0byBgQ29yZUluZGV4YCBhbmQga2VlcHMgdHJhY2sgb2YgaG93IG1hbnkgYXNzaWdubWVudHMgdGhlIHNjaGVkdWxlciBoYXMgaW5dASBpdCdzIGxvb2thaGVhZC4gS2VlcGluZyB0cmFjayBvZiB0aGlzIGFmZmluaXR5IHByZXZlbnRzIHBhcmFsbGVsIGV4ZWN1dGlvbiBvZiB0aGUgc2FtZZwgYFBhcmFJZGAgb24gdHdvIG9yIG1vcmUgYENvcmVJbmRleGBlcy4sUXVldWVTdGF0dXMBAMELZAAAZKeztuANAAAAAAAAAAAAAAAAAAAAAAAE3CBPdmVyYWxsIHN0YXR1cyBvZiBxdWV1ZSAoYm90aCBmcmVlICsgYWZmaW5pdHkgZW50cmllcyksRnJlZUVudHJpZXMBANULBAAEYQEgUHJpb3JpdHkgcXVldWUgZm9yIGFsbCBvcmRlcnMgd2hpY2ggZG9uJ3QgeWV0IChvciBub3QgYW55IG1vcmUpIGhhdmUgYW55IGNvcmUgYWZmaW5pdHkuPEFmZmluaXR5RW50cmllcwEBBAXxBtULBAAESQEgUXVldWUgZW50cmllcyB0aGF0IGFyZSBjdXJyZW50bHkgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIGNvcmUgZHVlIHRvIGNvcmUgYWZmaW5pdHkuHFJldmVudWUBAOELBAAE/CBLZWVwcyB0cmFjayBvZiBhY2N1bXVsYXRlZCByZXZlbnVlIGZyb20gb24gZGVtYW5kIG9yZGVyIHNhbGVzLgGZBAEVBwxMVHJhZmZpY0RlZmF1bHRWYWx1ZZUDQAAAZKeztuANAAAAAAAAAAAEzCBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHNwb3QgdHJhZmZpYyBtdWx0aXBsaWVyLlBNYXhIaXN0b3JpY2FsUmV2ZW51ZRAQoAAAAAjUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBibG9ja3Mgc29tZSBoaXN0b3JpY2FsIHJldmVudWVgIGluZm9ybWF0aW9uIHN0b3JlZCBmb3IuIFBhbGxldElkfQggcHkvb25kbWQEtCBJZGVudGlmaWVyIGZvciB0aGUgaW50ZXJuYWwgcmV2ZW51ZSBiYWxhbmNlLgHpC0IAaENvcmV0aW1lQXNzaWdubWVudFByb3ZpZGVyAWhDb3JldGltZUFzc2lnbm1lbnRQcm92aWRlcgg0Q29yZVNjaGVkdWxlcwABBATtC/ELBAAQbCBTY2hlZHVsZWQgYXNzaWdubWVudCBzZXRzLgBtASBBc3NpZ25tZW50cyBhcyBvZiB0aGUgZ2l2ZW4gYmxvY2sgbnVtYmVyLiBUaGV5IHdpbGwgZ28gaW50byBzdGF0ZSBvbmNlIHRoZSBibG9jayBudW1iZXIgaXPQIHJlYWNoZWQgKGFuZCByZXBsYWNlIHdoYXRldmVyIHdhcyBpbiB0aGVyZSBiZWZvcmUpLjxDb3JlRGVzY3JpcHRvcnMBAQQE8Qb1CwgAABCgIEFzc2lnbm1lbnRzIHdoaWNoIGFyZSBjdXJyZW50bHkgYWN0aXZlLgBpASBUaGV5IHdpbGwgYmUgcGlja2VkIGZyb20gYFBlbmRpbmdBc3NpZ25tZW50c2Agb25jZSB3ZSByZWFjaCB0aGUgc2NoZWR1bGVkIGJsb2NrIG51bWJlciBpblggYFBlbmRpbmdBc3NpZ25tZW50c2AuAAAAARUMRAAkUmVnaXN0cmFyASRSZWdpc3RyYXIMLFBlbmRpbmdTd2FwAAEEBWECYQIEAARkIFBlbmRpbmcgc3dhcCBvcGVyYXRpb25zLhRQYXJhcwABBAVhAhkMBAAQBQEgQW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgZWFjaCBwYXJhIGFuZCB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yLgBxASBUaGUgZ2l2ZW4gYWNjb3VudCBJRCBpcyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGNvZGUgYW5kIGluaXRpYWwgaGVhZCBkYXRhLCBidXQgbWF5VQEgb25seSBkbyBzbyBpZiBpdCBpc24ndCB5ZXQgcmVnaXN0ZXJlZC4gKEFmdGVyIHRoYXQsIGl0J3MgdXAgdG8gZ292ZXJuYW5jZSB0byBkbyBzby4pOE5leHRGcmVlUGFyYUlkAQBhAhAAAAAABGAgVGhlIG5leHQgZnJlZSBgUGFyYUlkYC4BnQQBGQcILFBhcmFEZXBvc2l0GEAAgMo5YSQAAAAAAAAAAAAACNQgVGhlIGRlcG9zaXQgdG8gYmUgcGFpZCB0byBydW4gYSBvbi1kZW1hbmQgcGFyYWNoYWluLj0BIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGNvc3QgZm9yIHN0b3JpbmcgdGhlIGdlbmVzaXMgaGVhZCBhbmQgdmFsaWRhdGlvbiBjb2RlLkhEYXRhRGVwb3NpdFBlckJ5dGUYQFWg/AEAAAAAAAAAAAAAAAAExCBUaGUgZGVwb3NpdCB0byBiZSBwYWlkIHBlciBieXRlIHN0b3JlZCBvbiBjaGFpbi4BIQxGABRTbG90cwEUU2xvdHMEGExlYXNlcwEBBAVhAiUMBABAFQEgQW1vdW50cyBoZWxkIG9uIGRlcG9zaXQgZm9yIGVhY2ggKHBvc3NpYmx5IGZ1dHVyZSkgbGVhc2VkIHBhcmFjaGFpbi4AYQEgVGhlIGFjdHVhbCBhbW91bnQgbG9ja2VkIG9uIGl0cyBiZWhhbGYgYnkgYW55IGFjY291bnQgYXQgYW55IHRpbWUgaXMgdGhlIG1heGltdW0gb2YgdGhlKQEgc2Vjb25kIHZhbHVlcyBvZiB0aGUgaXRlbXMgaW4gdGhpcyBsaXN0IHdob3NlIGZpcnN0IHZhbHVlIGlzIHRoZSBhY2NvdW50LgBhASBUaGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBpcyB0aGUgYW1vdW50IGxvY2tlZCBmb3IgdGhlIGN1cnJlbnQgTGVhc2UgUGVyaW9kLiBGb2xsb3dpbmewIGl0ZW1zIGFyZSBmb3IgdGhlIHN1YnNlcXVlbnQgbGVhc2UgcGVyaW9kcy4AYQEgVGhlIGRlZmF1bHQgdmFsdWUgKGFuIGVtcHR5IGxpc3QpIGltcGxpZXMgdGhhdCB0aGUgcGFyYWNoYWluIG5vIGxvbmdlciBleGlzdHMgKG9yIG5ldmVytCBleGlzdGVkKSBhcyBmYXIgYXMgdGhpcyBwYWxsZXQgaXMgY29uY2VybmVkLgBRASBJZiBhIHBhcmFjaGFpbiBkb2Vzbid0IGV4aXN0ICp5ZXQqIGJ1dCBpcyBzY2hlZHVsZWQgdG8gZXhpc3QgaW4gdGhlIGZ1dHVyZSwgdGhlbiBpdGEBIHdpbGwgYmUgbGVmdC1wYWRkZWQgd2l0aCBvbmUgb3IgbW9yZSBgTm9uZWBzIHRvIGRlbm90ZSB0aGUgZmFjdCB0aGF0IG5vdGhpbmcgaXMgaGVsZCBvbl0BIGRlcG9zaXQgZm9yIHRoZSBub24tZXhpc3RlbnQgY2hhaW4gY3VycmVudGx5LCBidXQgaXMgaGVsZCBhdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUuANwgSXQgaXMgaWxsZWdhbCBmb3IgYSBgTm9uZWAgdmFsdWUgdG8gdHJhaWwgaW4gdGhlIGxpc3QuAaEEAR0HCCxMZWFzZVBlcmlvZBAQQDgAAATcIFRoZSBudW1iZXIgb2YgYmxvY2tzIG92ZXIgd2hpY2ggYSBzaW5nbGUgcGVyaW9kIGxhc3RzLixMZWFzZU9mZnNldBAQAAAAAATUIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRvIG9mZnNldCBlYWNoIGxlYXNlIHBlcmlvZCBieS4BKQxHACBBdWN0aW9ucwEgQXVjdGlvbnMQOEF1Y3Rpb25Db3VudGVyAQAQEAAAAAAEjCBOdW1iZXIgb2YgYXVjdGlvbnMgc3RhcnRlZCBzbyBmYXIuLEF1Y3Rpb25JbmZvAABtAwQAFPggSW5mb3JtYXRpb24gcmVsYXRpbmcgdG8gdGhlIGN1cnJlbnQgYXVjdGlvbiwgaWYgdGhlcmUgaXMgb25lLgBFASBUaGUgZmlyc3QgaXRlbSBpbiB0aGUgdHVwbGUgaXMgdGhlIGxlYXNlIHBlcmlvZCBpbmRleCB0aGF0IHRoZSBmaXJzdCBvZiB0aGUgZm91clEBIGNvbnRpZ3VvdXMgbGVhc2UgcGVyaW9kcyBvbiBhdWN0aW9uIGlzIGZvci4gVGhlIHNlY29uZCBpcyB0aGUgYmxvY2sgbnVtYmVyIHdoZW4gdGhlXQEgYXVjdGlvbiB3aWxsICJiZWdpbiB0byBlbmQiLCBpLmUuIHRoZSBmaXJzdCBibG9jayBvZiB0aGUgRW5kaW5nIFBlcmlvZCBvZiB0aGUgYXVjdGlvbi48UmVzZXJ2ZWRBbW91bnRzAAEEBS0MGAQACDEBIEFtb3VudHMgY3VycmVudGx5IHJlc2VydmVkIGluIHRoZSBhY2NvdW50cyBvZiB0aGUgYmlkZGVycyBjdXJyZW50bHkgd2lubmluZzggKHN1Yi0pcmFuZ2VzLhxXaW5uaW5nAAEEBRAxDAQADGEBIFRoZSB3aW5uaW5nIGJpZHMgZm9yIGVhY2ggb2YgdGhlIDEwIHJhbmdlcyBhdCBlYWNoIHNhbXBsZSBpbiB0aGUgZmluYWwgRW5kaW5nIFBlcmlvZCBvZkkBIHRoZSBjdXJyZW50IGF1Y3Rpb24uIFRoZSBtYXAncyBrZXkgaXMgdGhlIDAtYmFzZWQgaW5kZXggaW50byB0aGUgU2FtcGxlIFNpemUuIFRoZR0BIGZpcnN0IHNhbXBsZSBvZiB0aGUgZW5kaW5nIHBlcmlvZCBpcyAwOyB0aGUgbGFzdCBpcyBgU2FtcGxlIFNpemUgLSAxYC4BpQQBIQcQMEVuZGluZ1BlcmlvZBAQQBkBAAQdASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBvdmVyIHdoaWNoIGFuIGF1Y3Rpb24gbWF5IGJlIHJldHJvYWN0aXZlbHkgZW5kZWQuMFNhbXBsZUxlbmd0aBAQFAAAAAzwIFRoZSBsZW5ndGggb2YgZWFjaCBzYW1wbGUgdG8gdGFrZSBkdXJpbmcgdGhlIGVuZGluZyBwZXJpb2QuANQgYEVuZGluZ1BlcmlvZGAgLyBgU2FtcGxlTGVuZ3RoYCA9IFRvdGFsICMgb2YgU2FtcGxlczhTbG90UmFuZ2VDb3VudBAQJAAAAABMTGVhc2VQZXJpb2RzUGVyU2xvdBAQCAAAAAABPQxIACRDcm93ZGxvYW4BJENyb3dkbG9hbhAURnVuZHMAAQQFYQJBDAQABGggSW5mbyBvbiBhbGwgb2YgdGhlIGZ1bmRzLiBOZXdSYWlzZQEAFQsEAAhVASBUaGUgZnVuZHMgdGhhdCBoYXZlIGhhZCBhZGRpdGlvbmFsIGNvbnRyaWJ1dGlvbnMgZHVyaW5nIHRoZSBsYXN0IGJsb2NrLiBUaGlzIGlzIHVzZWQVASBpbiBvcmRlciB0byBkZXRlcm1pbmUgd2hpY2ggZnVuZHMgc2hvdWxkIHN1Ym1pdCBuZXcgb3IgdXBkYXRlZCBiaWRzLjBFbmRpbmdzQ291bnQBABAQAAAAAAQpASBUaGUgbnVtYmVyIG9mIGF1Y3Rpb25zIHRoYXQgaGF2ZSBlbnRlcmVkIGludG8gdGhlaXIgZW5kaW5nIHBlcmlvZCBzbyBmYXIuNE5leHRGdW5kSW5kZXgBABAQAAAAAASoIFRyYWNrZXIgZm9yIHRoZSBuZXh0IGF2YWlsYWJsZSBmdW5kIGluZGV4Aa0EASUHDCBQYWxsZXRJZH0IIHB5L2NmdW5kCA0BIGBQYWxsZXRJZGAgZm9yIHRoZSBjcm93ZGxvYW4gcGFsbGV0LiBBbiBhcHByb3ByaWF0ZSB2YWx1ZSBjb3VsZCBiZWQgYFBhbGxldElkKCpiInB5L2NmdW5kIilgPE1pbkNvbnRyaWJ1dGlvbhhAGOR2SBcAAAAAAAAAAAAAAAhhASBUaGUgbWluaW11bSBhbW91bnQgdGhhdCBtYXkgYmUgY29udHJpYnV0ZWQgaW50byBhIGNyb3dkbG9hbi4gU2hvdWxkIGFsbW9zdCBjZXJ0YWlubHkgYmV8IGF0IGxlYXN0IGBFeGlzdGVudGlhbERlcG9zaXRgLjxSZW1vdmVLZXlzTGltaXQQEOgDAAAE5CBNYXggbnVtYmVyIG9mIHN0b3JhZ2Uga2V5cyB0byByZW1vdmUgcGVyIGV4dHJpbnNpYyBjYWxsLgFJDEkAIENvcmV0aW1lAAG5BAEpBwggQnJva2VySWQQEO0DAAAEiCBUaGUgUGFyYUlkIG9mIHRoZSBjb3JldGltZSBjaGFpbi5EQnJva2VyUG90TG9jYXRpb24VAYwBAQBtb2RscHkvYnJva2UAAAAAAAAAAAAAAAAAAAAAAAAAAASEIFRoZSBjb3JldGltZSBjaGFpbiBwb3QgbG9jYXRpb24uAU0MSgAkWGNtUGFsbGV0ASRYY21QYWxsZXQ4MFF1ZXJ5Q291bnRlcgEAMCAAAAAAAAAAAASIIFRoZSBsYXRlc3QgYXZhaWxhYmxlIHF1ZXJ5IGluZGV4LhxRdWVyaWVzAAEEAjBRDAQABFQgVGhlIG9uZ29pbmcgcXVlcmllcy4oQXNzZXRUcmFwcwEBBAY0EBAAAAAAEGggVGhlIGV4aXN0aW5nIGFzc2V0IHRyYXBzLgBhASBLZXkgaXMgdGhlIGJsYWtlMiAyNTYgaGFzaCBvZiAob3JpZ2luLCB2ZXJzaW9uZWQgYEFzc2V0c2ApIHBhaXIuIFZhbHVlIGlzIHRoZSBudW1iZXIgb2YdASB0aW1lcyB0aGlzIHBhaXIgaGFzIGJlZW4gdHJhcHBlZCAodXN1YWxseSBqdXN0IDEgaWYgaXQgZXhpc3RzIGF0IGFsbCkuOFNhZmVYY21WZXJzaW9uAAAQBAAIYQEgRGVmYXVsdCB2ZXJzaW9uIHRvIGVuY29kZSBYQ00gd2hlbiBsYXRlc3QgdmVyc2lvbiBvZiBkZXN0aW5hdGlvbiBpcyB1bmtub3duLiBJZiBgTm9uZWAsPQEgdGhlbiB0aGUgZGVzdGluYXRpb25zIHdob3NlIFhDTSB2ZXJzaW9uIGlzIHVua25vd24gYXJlIGNvbnNpZGVyZWQgdW5yZWFjaGFibGUuQFN1cHBvcnRlZFZlcnNpb24AAQgFAmUMEAQABPAgVGhlIExhdGVzdCB2ZXJzaW9ucyB0aGF0IHdlIGtub3cgdmFyaW91cyBsb2NhdGlvbnMgc3VwcG9ydC5AVmVyc2lvbk5vdGlmaWVycwABCAUCZQwwBAAEBQEgQWxsIGxvY2F0aW9ucyB0aGF0IHdlIGhhdmUgcmVxdWVzdGVkIHZlcnNpb24gbm90aWZpY2F0aW9ucyBmcm9tLlBWZXJzaW9uTm90aWZ5VGFyZ2V0cwABCAUCZQxpDAQACHEBIFRoZSB0YXJnZXQgbG9jYXRpb25zIHRoYXQgYXJlIHN1YnNjcmliZWQgdG8gb3VyIHZlcnNpb24gY2hhbmdlcywgYXMgd2VsbCBhcyB0aGUgbW9zdCByZWNlbnSUIG9mIG91ciB2ZXJzaW9ucyB3ZSBpbmZvcm1lZCB0aGVtIG9mLlRWZXJzaW9uRGlzY292ZXJ5UXVldWUBAG0MBAAMZQEgRGVzdGluYXRpb25zIHdob3NlIGxhdGVzdCBYQ00gdmVyc2lvbiB3ZSB3b3VsZCBsaWtlIHRvIGtub3cuIER1cGxpY2F0ZXMgbm90IGFsbG93ZWQsIGFuZHEBIHRoZSBgdTMyYCBjb3VudGVyIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBhIHNlbmQgdG8gdGhlIGRlc3RpbmF0aW9uIGhhcyBiZWVuIGF0dGVtcHRlZCyMIHdoaWNoIGlzIHVzZWQgYXMgYSBwcmlvcml0aXphdGlvbi5AQ3VycmVudE1pZ3JhdGlvbgAAeQwEAAScIFRoZSBjdXJyZW50IG1pZ3JhdGlvbidzIHN0YWdlLCBpZiBhbnkuVFJlbW90ZUxvY2tlZEZ1bmdpYmxlcwABDAUCAoEMhQwEAATwIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gYSByZW1vdGUgY2hhaW4uPExvY2tlZEZ1bmdpYmxlcwABBAIAlQwEAATgIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gdGhpcyBjaGFpbi5UWGNtRXhlY3V0aW9uU3VzcGVuZGVkAQAgBAAEtCBHbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLjxTaG91bGRSZWNvcmRYY20BACAEABxZASBXaGV0aGVyIG9yIG5vdCBpbmNvbWluZyBYQ01zIChib3RoIGV4ZWN1dGVkIGxvY2FsbHkgYW5kIHJlY2VpdmVkKSBzaG91bGQgYmUgcmVjb3JkZWQuxCBPbmx5IG9uZSBYQ00gcHJvZ3JhbSB3aWxsIGJlIHJlY29yZGVkIGF0IGEgdGltZS4pASBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgaW4gcnVudGltZSBBUElzLCBhbmQgaXQncyBhZHZpc2VkIGl0IHN0YXlzIGZhbHNlDQEgZm9yIGFsbCBvdGhlciB1c2UgY2FzZXMsIHNvIGFzIHRvIG5vdCBkZWdyYWRlIHJlZ3VsYXIgcGVyZm9ybWFuY2UuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4sUmVjb3JkZWRYY20AAIUFBAAYSQEgSWYgW2BTaG91bGRSZWNvcmRYY21gXSBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiB0aGUgbGFzdCBYQ00gcHJvZ3JhbSBleGVjdXRlZCBsb2NhbGx5VCB3aWxsIGJlIHN0b3JlZCBoZXJlLikBIFJ1bnRpbWUgQVBJcyBjYW4gZmV0Y2ggdGhlIFhDTSB0aGF0IHdhcyBleGVjdXRlZCBieSBhY2Nlc3NpbmcgdGhpcyB2YWx1ZS4AWQEgT25seSByZWxldmFudCBpZiB0aGlzIHBhbGxldCBpcyBiZWluZyB1c2VkIGFzIHRoZSBbYHhjbV9leGVjdXRvcjo6dHJhaXRzOjpSZWNvcmRYY21gXcggaW1wbGVtZW50YXRpb24gaW4gdGhlIFhDTSBleGVjdXRvciBjb25maWd1cmF0aW9uLgHNBAEtBwABoQxjABRCZWVmeQEUQmVlZnkULEF1dGhvcml0aWVzAQClDAQABHAgVGhlIGN1cnJlbnQgYXV0aG9yaXRpZXMgc2V0OFZhbGlkYXRvclNldElkAQAwIAAAAAAAAAAABHQgVGhlIGN1cnJlbnQgdmFsaWRhdG9yIHNldCBpZDxOZXh0QXV0aG9yaXRpZXMBAKUMBAAE7CBBdXRob3JpdGllcyBzZXQgc2NoZWR1bGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgbmV4dCBzZXNzaW9uMFNldElkU2Vzc2lvbgABBAUwEAQAKFEBIEEgbWFwcGluZyBmcm9tIEJFRUZZIHNldCBJRCB0byB0aGUgaW5kZXggb2YgdGhlICptb3N0IHJlY2VudCogc2Vzc2lvbiBmb3Igd2hpY2ggaXRzaCBtZW1iZXJzIHdlcmUgcmVzcG9uc2libGUuAEUBIFRoaXMgaXMgb25seSB1c2VkIGZvciB2YWxpZGF0aW5nIGVxdWl2b2NhdGlvbiBwcm9vZnMuIEFuIGVxdWl2b2NhdGlvbiBwcm9vZiBtdXN0TQEgY29udGFpbnMgYSBrZXktb3duZXJzaGlwIHByb29mIGZvciBhIGdpdmVuIHNlc3Npb24sIHRoZXJlZm9yZSB3ZSBuZWVkIGEgd2F5IHRvIHRpZT0BIHRvZ2V0aGVyIHNlc3Npb25zIGFuZCBCRUVGWSBzZXQgaWRzLCBpLmUuIHdlIG5lZWQgdG8gdmFsaWRhdGUgdGhhdCBhIHZhbGlkYXRvckEBIHdhcyB0aGUgb3duZXIgb2YgYSBnaXZlbiBrZXkgb24gYSBnaXZlbiBzZXNzaW9uLCBhbmQgd2hhdCB0aGUgYWN0aXZlIHNldCBJRCB3YXNUIGR1cmluZyB0aGF0IHNlc3Npb24uANwgVFdPWC1OT1RFOiBgVmFsaWRhdG9yU2V0SWRgIGlzIG5vdCB1bmRlciB1c2VyIGNvbnRyb2wuMEdlbmVzaXNCbG9jawEAPQIEAAzcIEJsb2NrIG51bWJlciB3aGVyZSBCRUVGWSBjb25zZW5zdXMgaXMgZW5hYmxlZC9zdGFydGVkLmkBIEJ5IGNoYW5naW5nIHRoaXMgKHRocm91Z2ggcHJpdmlsZWdlZCBgc2V0X25ld19nZW5lc2lzKClgKSwgQkVFRlkgY29uc2Vuc3VzIGlzIGVmZmVjdGl2ZWx5rCByZXN0YXJ0ZWQgZnJvbSB0aGUgbmV3bHkgc2V0IGJsb2NrIG51bWJlci4BBQYADDhNYXhBdXRob3JpdGllcxAQoIYBAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhdXRob3JpdGllcyB0aGF0IGNhbiBiZSBhZGRlZC40TWF4Tm9taW5hdG9ycxAQAAAAAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBub21pbmF0b3JzIGZvciBlYWNoIHZhbGlkYXRvci5YTWF4U2V0SWRTZXNzaW9uRW50cmllczAgqAAAAAAAAAAYOQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgdG8ga2VlcCBpbiB0aGUgc2V0IGlkIHRvIHNlc3Npb24gaW5kZXggbWFwcGluZy4AMQEgU2luY2UgdGhlIGBTZXRJZFNlc3Npb25gIG1hcCBpcyBvbmx5IHVzZWQgZm9yIHZhbGlkYXRpbmcgZXF1aXZvY2F0aW9ucyB0aGlzKQEgdmFsdWUgc2hvdWxkIHJlbGF0ZSB0byB0aGUgYm9uZGluZyBkdXJhdGlvbiBvZiB3aGF0ZXZlciBzdGFraW5nIHN5c3RlbSBpczUBIGJlaW5nIHVzZWQgKGlmIGFueSkuIElmIGVxdWl2b2NhdGlvbiBoYW5kbGluZyBpcyBub3QgZW5hYmxlZCB0aGVuIHRoaXMgdmFsdWU0IGNhbiBiZSB6ZXJvLgGtDPAADE1tcgEMTW1yDCBSb290SGFzaAEANIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARYIExhdGVzdCBNTVIgUm9vdCBoYXNoLjhOdW1iZXJPZkxlYXZlcwEAMCAAAAAAAAAAAASwIEN1cnJlbnQgc2l6ZSBvZiB0aGUgTU1SIChudW1iZXIgb2YgbGVhdmVzKS4UTm9kZXMAAQQGMDQEABCAIEhhc2hlcyBvZiB0aGUgbm9kZXMgaW4gdGhlIE1NUi4ALQEgTm90ZSB0aGlzIGNvbGxlY3Rpb24gb25seSBjb250YWlucyBNTVIgcGVha3MsIHRoZSBpbm5lciBub2RlcyAoYW5kIGxlYXZlcym8IGFyZSBwcnVuZWQgYW5kIG9ubHkgc3RvcmVkIGluIHRoZSBPZmZjaGFpbiBEQi4AAAAA8QAcTW1yTGVhZgEcTW1yTGVhZghAQmVlZnlBdXRob3JpdGllcwEAsQywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoCBEZXRhaWxzIG9mIGN1cnJlbnQgQkVFRlkgYXV0aG9yaXR5IHNldC5QQmVlZnlOZXh0QXV0aG9yaXRpZXMBALEMsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJQgRGV0YWlscyBvZiBuZXh0IEJFRUZZIGF1dGhvcml0eSBzZXQuAFEBIFRoaXMgc3RvcmFnZSBlbnRyeSBpcyB1c2VkIGFzIGNhY2hlIGZvciBjYWxscyB0byBgdXBkYXRlX2JlZWZ5X25leHRfYXV0aG9yaXR5X3NldGAuAAAAAPIAQElkZW50aXR5TWlncmF0b3IAATkGATUHAAD4AEBQYXJhc1N1ZG9XcmFwcGVyAAE9BgAAAbUM+gA0QXNzaWduZWRTbG90cwE0QXNzaWduZWRTbG90cxw4UGVybWFuZW50U2xvdHMAAQQFYQJtAwQABB0BIEFzc2lnbmVkIHBlcm1hbmVudCBzbG90cywgd2l0aCB0aGVpciBzdGFydCBsZWFzZSBwZXJpb2QsIGFuZCBkdXJhdGlvbi5IUGVybWFuZW50U2xvdENvdW50AQAQEAAAAAAExCBOdW1iZXIgb2YgYXNzaWduZWQgKGFuZCBhY3RpdmUpIHBlcm1hbmVudCBzbG90cy44VGVtcG9yYXJ5U2xvdHMAAQQFYQK5DAQABGggQXNzaWduZWQgdGVtcG9yYXJ5IHNsb3RzLkhUZW1wb3JhcnlTbG90Q291bnQBABAQAAAAAASQIE51bWJlciBvZiBhc3NpZ25lZCB0ZW1wb3Jhcnkgc2xvdHMuYEFjdGl2ZVRlbXBvcmFyeVNsb3RDb3VudAEAEBAAAAAABPwgTnVtYmVyIG9mIGFjdGl2ZSB0ZW1wb3Jhcnkgc2xvdHMgaW4gY3VycmVudCBzbG90IGxlYXNlIHBlcmlvZC5ETWF4VGVtcG9yYXJ5U2xvdHMBABAQAAAAAATkICBUaGUgbWF4IG51bWJlciBvZiB0ZW1wb3Jhcnkgc2xvdHMgdGhhdCBjYW4gYmUgYXNzaWduZWQuRE1heFBlcm1hbmVudFNsb3RzAQAQEAAAAAAE4CBUaGUgbWF4IG51bWJlciBvZiBwZXJtYW5lbnQgc2xvdHMgdGhhdCBjYW4gYmUgYXNzaWduZWQuAUUGATkHDHhQZXJtYW5lbnRTbG90TGVhc2VQZXJpb2RMZW5ndGgQEG0BAAAE+CBUaGUgbnVtYmVyIG9mIGxlYXNlIHBlcmlvZHMgYSBwZXJtYW5lbnQgcGFyYWNoYWluIHNsb3QgbGFzdHMueFRlbXBvcmFyeVNsb3RMZWFzZVBlcmlvZExlbmd0aBAQBQAAAAT4IFRoZSBudW1iZXIgb2YgbGVhc2UgcGVyaW9kcyBhIHRlbXBvcmFyeSBwYXJhY2hhaW4gc2xvdCBsYXN0cy54TWF4VGVtcG9yYXJ5U2xvdFBlckxlYXNlUGVyaW9kEBAFAAAABBUBIFRoZSBtYXggbnVtYmVyIG9mIHRlbXBvcmFyeSBzbG90cyB0byBiZSBzY2hlZHVsZWQgcGVyIGxlYXNlIHBlcmlvZHMuAb0M+wBAVmFsaWRhdG9yTWFuYWdlcgFAVmFsaWRhdG9yTWFuYWdlcghIVmFsaWRhdG9yc1RvUmV0aXJlAQDRAQQABDUBIFZhbGlkYXRvcnMgdGhhdCBzaG91bGQgYmUgcmV0aXJlZCwgYmVjYXVzZSB0aGVpciBQYXJhY2hhaW4gd2FzIGRlcmVnaXN0ZXJlZC48VmFsaWRhdG9yc1RvQWRkAQDRAQQABIQgVmFsaWRhdG9ycyB0aGF0IHNob3VsZCBiZSBhZGRlZC4BTQYBPQcAAPwASFN0YXRlVHJpZU1pZ3JhdGlvbgFIU3RhdGVUcmllTWlncmF0aW9uDEBNaWdyYXRpb25Qcm9jZXNzAQBdBjgAAAAAAAAAAAAAAAAAABBQIE1pZ3JhdGlvbiBwcm9ncmVzcy4AXQEgVGhpcyBzdG9yZXMgdGhlIHNuYXBzaG90IG9mIHRoZSBsYXN0IG1pZ3JhdGVkIGtleXMuIEl0IGNhbiBiZSBzZXQgaW50byBtb3Rpb24gYW5kIG1vdmXUIGZvcndhcmQgYnkgYW55IG9mIHRoZSBtZWFucyBwcm92aWRlZCBieSB0aGlzIHBhbGxldC4oQXV0b0xpbWl0cwEAVQYEAAzUIFRoZSBsaW1pdHMgdGhhdCBhcmUgaW1wb3NlZCBvbiBhdXRvbWF0aWMgbWlncmF0aW9ucy4A1CBJZiBzZXQgdG8gTm9uZSwgdGhlbiBubyBhdXRvbWF0aWMgbWlncmF0aW9uIGhhcHBlbnMuYFNpZ25lZE1pZ3JhdGlvbk1heExpbWl0cwAAWQYEAAzgIFRoZSBtYXhpbXVtIGxpbWl0cyB0aGF0IHRoZSBzaWduZWQgbWlncmF0aW9uIGNvdWxkIHVzZS4AtCBJZiBub3Qgc2V0LCBubyBzaWduZWQgc3VibWlzc2lvbiBpcyBhbGxvd2VkLgFRBgFBBwQkTWF4S2V5TGVuEBAAAgAAVLQgTWF4aW1hbCBudW1iZXIgb2YgYnl0ZXMgdGhhdCBhIGtleSBjYW4gaGF2ZS4AsCBGUkFNRSBpdHNlbGYgZG9lcyBub3QgbGltaXQgdGhlIGtleSBsZW5ndGguAQEgVGhlIGNvbmNyZXRlIHZhbHVlIG11c3QgdGhlcmVmb3JlIGRlcGVuZCBvbiB5b3VyIHN0b3JhZ2UgdXNhZ2UuWQEgQSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VOTWFwYF0gZm9yIGV4YW1wbGUgY2FuIGhhdmUgYW4gYXJiaXRyYXJ5IG51bWJlciBvZkUBIGtleXMgd2hpY2ggYXJlIHRoZW4gaGFzaGVkIGFuZCBjb25jYXRlbmF0ZWQsIHJlc3VsdGluZyBpbiBhcmJpdHJhcmlseSBsb25nIGtleXMuAEEBIFVzZSB0aGUgKnN0YXRlIG1pZ3JhdGlvbiBSUEMqIHRvIHJldHJpZXZlIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3Qga2V5IGluIHlvdXIBASBzdG9yYWdlOiA8aHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL2lzc3Vlcy8xMTY0Mj4AKQEgVGhlIG1pZ3JhdGlvbiB3aWxsIGhhbHQgd2l0aCBhIGBIYWx0ZWRgIGV2ZW50IGlmIHRoaXMgdmFsdWUgaXMgdG9vIHNtYWxsLkkBIFNpbmNlIHRoZXJlIGlzIG5vIHJlYWwgcGVuYWx0eSBmcm9tIG92ZXItZXN0aW1hdGluZywgaXQgaXMgYWR2aXNlZCB0byB1c2UgYSBsYXJnZYAgdmFsdWUuIFRoZSBkZWZhdWx0IGlzIDUxMiBieXRlLgCAIFNvbWUga2V5IGxlbmd0aHMgZm9yIHJlZmVyZW5jZTrQIC0gW2BmcmFtZV9zdXBwb3J0OjpzdG9yYWdlOjpTdG9yYWdlVmFsdWVgXTogMzIgYnl0ZcggLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VNYXBgXTogNjQgYnl0ZeAgLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VEb3VibGVNYXBgXTogOTYgYnl0ZQBIIEZvciBtb3JlIGluZm8gc2VlSQEgPGh0dHBzOi8vd3d3LnNoYXdudGFicml6aS5jb20vYmxvZy9zdWJzdHJhdGUvcXVlcnlpbmctc3Vic3RyYXRlLXN0b3JhZ2UtdmlhLXJwYy8+AUkH/gAsUm9vdFRlc3RpbmcAAWkGAU0HAAD5ABBTdWRvARBTdWRvBAxLZXkAAAAEAASEIFRoZSBgQWNjb3VudElkYCBvZiB0aGUgc3VkbyBrZXkuAW0GAVEHAAHBDP8ABMEBgQFNA8UMJEhDaGVja05vblplcm9TZW5kZXLJDMUBQENoZWNrU3BlY1ZlcnNpb27NDBA4Q2hlY2tUeFZlcnNpb27RDBAwQ2hlY2tHZW5lc2lz1Qw0OENoZWNrTW9ydGFsaXR52Qw0KENoZWNrTm9uY2XhDMUBLENoZWNrV2VpZ2h05QzFAWBDaGFyZ2VUcmFuc2FjdGlvblBheW1lbnTpDMUBRENoZWNrTWV0YWRhdGFIYXNo7QzFBvUMTBBDb3JlDBx2ZXJzaW9uAIEHBJAgUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVudGltZS40ZXhlY3V0ZV9ibG9jawQUYmxvY2v5DMUBBGQgRXhlY3V0ZSB0aGUgZ2l2ZW4gYmxvY2suQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlcp0BBQ0EQQEgSW5pdGlhbGl6ZSBhIGJsb2NrIHdpdGggdGhlIGdpdmVuIGhlYWRlciBhbmQgcmV0dXJuIHRoZSBydW50aW1lIGV4ZWN1dGl2ZSBtb2RlLgQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LjRYY21QYXltZW50QXBpEHxxdWVyeV9hY2NlcHRhYmxlX3BheW1lbnRfYXNzZXRzBCx4Y21fdmVyc2lvbhAJDRS0IFJldHVybnMgYSBsaXN0IG9mIGFjY2VwdGFibGUgcGF5bWVudCBhc3NldHMuADAgIyBBcmd1bWVudHMAaCAqIGB4Y21fdmVyc2lvbmA6IFZlcnNpb24uQHF1ZXJ5X3hjbV93ZWlnaHQEHG1lc3NhZ2XRBBUNFKggUmV0dXJucyBhIHdlaWdodCBuZWVkZWQgdG8gZXhlY3V0ZSBhIFhDTS4AMCAjIEFyZ3VtZW50cwB0ICogYG1lc3NhZ2VgOiBgVmVyc2lvbmVkWGNtYC5kcXVlcnlfd2VpZ2h0X3RvX2Fzc2V0X2ZlZQgYd2VpZ2h0KBRhc3NldAEGGQ0Y6CBDb252ZXJ0cyBhIHdlaWdodCBpbnRvIGEgZmVlIGZvciB0aGUgc3BlY2lmaWVkIGBBc3NldElkYC4AMCAjIEFyZ3VtZW50cwCIICogYHdlaWdodGA6IGNvbnZlcnRpYmxlIGBXZWlnaHRgLnwgKiBgYXNzZXRgOiBgVmVyc2lvbmVkQXNzZXRJZGAuTHF1ZXJ5X2RlbGl2ZXJ5X2ZlZXMILGRlc3RpbmF0aW9uSQEcbWVzc2FnZdEEHQ0gHQEgR2V0IGRlbGl2ZXJ5IGZlZXMgZm9yIHNlbmRpbmcgYSBzcGVjaWZpYyBgbWVzc2FnZWAgdG8gYSBgZGVzdGluYXRpb25gLvQgVGhlc2UgYWx3YXlzIGNvbWUgaW4gYSBzcGVjaWZpYyBhc3NldCwgZGVmaW5lZCBieSB0aGUgY2hhaW4uADAgIyBBcmd1bWVudHOBASAqIGBtZXNzYWdlYDogVGhlIG1lc3NhZ2UgdGhhdCdsbCBiZSBzZW50LCBuZWNlc3NhcnkgYmVjYXVzZSBtb3N0IGRlbGl2ZXJ5IGZlZXMgYXJlIGJhc2VkIG9uIHRoZVwgICBzaXplIG9mIHRoZSBtZXNzYWdlLmEBICogYGRlc3RpbmF0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRvIHNlbmQgdGhlIG1lc3NhZ2UgdG8uIERpZmZlcmVudCBkZXN0aW5hdGlvbnMgbWF5IHVzZcAgICBkaWZmZXJlbnQgc2VuZGVycyB0aGF0IGNoYXJnZSBkaWZmZXJlbnQgZmVlcy4scCBBIHRyYWl0IG9mIFhDTSBwYXltZW50IEFQSS4AqCBBUEkgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3Igb2J0YWluaW5nOgDEICogdGhlIHdlaWdodCByZXF1aXJlZCB0byBleGVjdXRlIGFuIFhDTSBtZXNzYWdlLAUBICogYSBsaXN0IG9mIGFjY2VwdGFibGUgYEFzc2V0SWRgcyBmb3IgbWVzc2FnZSBleGVjdXRpb24gcGF5bWVudCwBASAqIHRoZSBjb3N0IG9mIHRoZSB3ZWlnaHQgaW4gdGhlIHNwZWNpZmllZCBhY2NlcHRhYmxlIGBBc3NldElkYC6gICogdGhlIGZlZXMgZm9yIGFuIFhDTSBtZXNzYWdlIGRlbGl2ZXJ5LgDwIFRvIGRldGVybWluZSB0aGUgZXhlY3V0aW9uIHdlaWdodCBvZiB0aGUgY2FsbHMgcmVxdWlyZWQgZm9ydQEgW2B4Y206OmxhdGVzdDo6SW5zdHJ1Y3Rpb246OlRyYW5zYWN0YF0gaW5zdHJ1Y3Rpb24sIGBUcmFuc2FjdGlvblBheW1lbnRDYWxsQXBpYCBjYW4gYmUgdXNlZC4kRHJ5UnVuQXBpCDBkcnlfcnVuX2NhbGwIGG9yaWdpblECEGNhbGyBASENBDggRHJ5IHJ1biBjYWxsLixkcnlfcnVuX3hjbQg8b3JpZ2luX2xvY2F0aW9uSQEMeGNt0QVBDQRQIERyeSBydW4gWENNIHByb2dyYW0ksQEgQVBJIGZvciBkcnktcnVubmluZyBleHRyaW5zaWNzIGFuZCBYQ00gcHJvZ3JhbXMgdG8gZ2V0IHRoZSBwcm9ncmFtcyB0aGF0IG5lZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSBmZWVzIEFQSS4AgQEgQWxsIGNhbGxzIHJldHVybiBhIHZlY3RvciBvZiB0dXBsZXMgKGxvY2F0aW9uLCB4Y20pIHdoZXJlIGVhY2ggInhjbSIgaXMgZXhlY3V0ZWQgaW4gImxvY2F0aW9uIi7kIElmIHRoZXJlJ3MgbG9jYWwgZXhlY3V0aW9uLCB0aGUgbG9jYXRpb24gd2lsbCBiZSAiSGVyZSIuHQEgVGhpcyB2ZWN0b3IgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGJvdGggZXhlY3V0aW9uIGFuZCBkZWxpdmVyeSBmZWVzLgCZASBDYWxscyBvciBYQ01zIG1pZ2h0IGZhaWwgd2hlbiBleGVjdXRlZCwgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHJlc3VsdCBvZiB0aGVzZSBjYWxscyB3aWxsIGJlIGFuIGBFcnJgLmUBIEluIHRob3NlIGNhc2VzLCB0aGVyZSBtaWdodCBzdGlsbCBiZSBhIHZhbGlkIHJlc3VsdCwgd2l0aCB0aGUgZXhlY3V0aW9uIGVycm9yIGluc2lkZSBpdC5lASBUaGUgb25seSByZWFzb25zIHdoeSB0aGVzZSBjYWxscyBtaWdodCByZXR1cm4gYW4gZXJyb3IgYXJlIGxpc3RlZCBpbiB0aGUgW2BFcnJvcmBdIGVudW0uUExvY2F0aW9uVG9BY2NvdW50QXBpBEBjb252ZXJ0X2xvY2F0aW9uBCBsb2NhdGlvbkkBSQ0EkCBDb252ZXJ0cyBgTG9jYXRpb25gIHRvIGBBY2NvdW50SWRgLgQNASBBUEkgZm9yIHVzZWZ1bCBjb252ZXJzaW9ucyBiZXR3ZWVuIFhDTSBgTG9jYXRpb25gIGFuZCBgQWNjb3VudElkYC4gTWV0YWRhdGEMIG1ldGFkYXRhAFENBIwgUmV0dXJucyB0aGUgbWV0YWRhdGEgb2YgYSBydW50aW1lLkxtZXRhZGF0YV9hdF92ZXJzaW9uBBx2ZXJzaW9uEFUNEKQgUmV0dXJucyB0aGUgbWV0YWRhdGEgYXQgYSBnaXZlbiB2ZXJzaW9uLgAFASBJZiB0aGUgZ2l2ZW4gYHZlcnNpb25gIGlzbid0IHN1cHBvcnRlZCwgdGhpcyB3aWxsIHJldHVybiBgTm9uZWAudQEgVXNlIFtgU2VsZjo6bWV0YWRhdGFfdmVyc2lvbnNgXSB0byBmaW5kIG91dCBhYm91dCBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbiBvZiB0aGUgcnVudGltZS5EbWV0YWRhdGFfdmVyc2lvbnMAQQgMpCBSZXR1cm5zIHRoZSBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbnMuAMAgVGhpcyBjYW4gYmUgdXNlZCB0byBjYWxsIGBtZXRhZGF0YV9hdF92ZXJzaW9uYC4EAQEgVGhlIGBNZXRhZGF0YWAgYXBpIHRyYWl0IHRoYXQgcmV0dXJucyBtZXRhZGF0YSBmb3IgdGhlIHJ1bnRpbWUuMEJsb2NrQnVpbGRlchA8YXBwbHlfZXh0cmluc2ljBCRleHRyaW5zaWP9DFkNEGwgQXBwbHkgdGhlIGdpdmVuIGV4dHJpbnNpYy4AOQEgUmV0dXJucyBhbiBpbmNsdXNpb24gb3V0Y29tZSB3aGljaCBzcGVjaWZpZXMgaWYgdGhpcyBleHRyaW5zaWMgaXMgaW5jbHVkZWQgaW5MIHRoaXMgYmxvY2sgb3Igbm90LjhmaW5hbGl6ZV9ibG9jawCdAQRoIEZpbmlzaCB0aGUgY3VycmVudCBibG9jay5MaW5oZXJlbnRfZXh0cmluc2ljcwQgaW5oZXJlbnRpDQENBD0BIEdlbmVyYXRlIGluaGVyZW50IGV4dHJpbnNpY3MuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLjxjaGVja19pbmhlcmVudHMIFGJsb2Nr+QwQZGF0YWkNeQ0EVQEgQ2hlY2sgdGhhdCB0aGUgaW5oZXJlbnRzIGFyZSB2YWxpZC4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uBHEBIFRoZSBgQmxvY2tCdWlsZGVyYCBhcGkgdHJhaXQgdGhhdCBwcm92aWRlcyB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eSBmb3IgYnVpbGRpbmcgYSBibG9jay5YVGFnZ2VkVHJhbnNhY3Rpb25RdWV1ZQRQdmFsaWRhdGVfdHJhbnNhY3Rpb24MGHNvdXJjZX0NCHR4/QwoYmxvY2tfaGFzaDSBDSRoIFZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbi4AZQEgVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgdHJhbnNhY3Rpb24gcG9vbCB0byBsZWFybiBkZXRhaWxzIGFib3V0IGdpdmVuIHRyYW5zYWN0aW9uLkUBIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbWFrZSBzdXJlIHRvIHZlcmlmeSB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIHRyYW5zYWN0aW9uTQEgYWdhaW5zdCBjdXJyZW50IHN0YXRlLiBUaGUgZ2l2ZW4gYGJsb2NrX2hhc2hgIGNvcnJlc3BvbmRzIHRvIHRoZSBoYXNoIG9mIHRoZSBibG9ja3wgdGhhdCBpcyB1c2VkIGFzIGN1cnJlbnQgc3RhdGUuAEUBIE5vdGUgdGhhdCB0aGlzIGNhbGwgbWF5IGJlIHBlcmZvcm1lZCBieSB0aGUgcG9vbCBtdWx0aXBsZSB0aW1lcyBhbmQgdHJhbnNhY3Rpb25zpCBtaWdodCBiZSB2ZXJpZmllZCBpbiBhbnkgcG9zc2libGUgb3JkZXIuBE0BIFRoZSBgVGFnZ2VkVHJhbnNhY3Rpb25RdWV1ZWAgYXBpIHRyYWl0IGZvciBpbnRlcmZlcmluZyB3aXRoIHRoZSB0cmFuc2FjdGlvbiBxdWV1ZS5ET2ZmY2hhaW5Xb3JrZXJBcGkEPG9mZmNoYWluX3dvcmtlcgQYaGVhZGVynQHFAQTIIFN0YXJ0cyB0aGUgb2ZmLWNoYWluIHRhc2sgZm9yIGdpdmVuIGJsb2NrIGhlYWRlci4EZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS40UGFyYWNoYWluSG9zdHwodmFsaWRhdG9ycwCpCgRwIEdldCB0aGUgY3VycmVudCB2YWxpZGF0b3JzLkB2YWxpZGF0b3JfZ3JvdXBzAIkNDGUBIFJldHVybnMgdGhlIHZhbGlkYXRvciBncm91cHMgYW5kIHJvdGF0aW9uIGluZm8gbG9jYWxpemVkIGJhc2VkIG9uIHRoZSBoeXBvdGhldGljYWwgY2hpbGRhASAgb2YgYSBibG9jayB3aG9zZSBzdGF0ZSAgdGhpcyBpcyBpbnZva2VkIG9uLiBOb3RlIHRoYXQgYG5vd2AgaW4gdGhlIGBHcm91cFJvdGF0aW9uSW5mb2DQIHNob3VsZCBiZSB0aGUgc3VjY2Vzc29yIG9mIHRoZSBudW1iZXIgb2YgdGhlIGJsb2NrLkhhdmFpbGFiaWxpdHlfY29yZXMAkQ0INQEgWWllbGRzIGluZm9ybWF0aW9uIG9uIGFsbCBhdmFpbGFiaWxpdHkgY29yZXMgYXMgcmVsZXZhbnQgdG8gdGhlIGNoaWxkIGJsb2NrLj0BIENvcmVzIGFyZSBlaXRoZXIgZnJlZSBvciBvY2N1cGllZC4gRnJlZSBjb3JlcyBjYW4gaGF2ZSBwYXJhcyBhc3NpZ25lZCB0byB0aGVtLmRwZXJzaXN0ZWRfdmFsaWRhdGlvbl9kYXRhCBxwYXJhX2lkYQIoYXNzdW1wdGlvbqkNrQ0UaQEgWWllbGRzIHRoZSBwZXJzaXN0ZWQgdmFsaWRhdGlvbiBkYXRhIGZvciB0aGUgZ2l2ZW4gYFBhcmFJZGAgYWxvbmcgd2l0aCBhbiBhc3N1bXB0aW9uIHRoYXTYIHNob3VsZCBiZSB1c2VkIGlmIHRoZSBwYXJhIGN1cnJlbnRseSBvY2N1cGllcyBhIGNvcmUuAEUBIFJldHVybnMgYE5vbmVgIGlmIGVpdGhlciB0aGUgcGFyYSBpcyBub3QgcmVnaXN0ZXJlZCBvciB0aGUgYXNzdW1wdGlvbiBpcyBgRnJlZWRgmCBhbmQgdGhlIHBhcmEgYWxyZWFkeSBvY2N1cGllcyBhIGNvcmUuXGFzc3VtZWRfdmFsaWRhdGlvbl9kYXRhCBxwYXJhX2lkYQKcZXhwZWN0ZWRfcGVyc2lzdGVkX3ZhbGlkYXRpb25fZGF0YV9oYXNoNLUNDGkBIFJldHVybnMgdGhlIHBlcnNpc3RlZCB2YWxpZGF0aW9uIGRhdGEgZm9yIHRoZSBnaXZlbiBgUGFyYUlkYCBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5ndQEgdmFsaWRhdGlvbiBjb2RlIGhhc2guIEluc3RlYWQgb2YgYWNjZXB0aW5nIGFzc3VtcHRpb24gYWJvdXQgdGhlIHBhcmEsIG1hdGNoZXMgdGhlIHZhbGlkYXRpb24pASBkYXRhIGhhc2ggYWdhaW5zdCBhbiBleHBlY3RlZCBvbmUgYW5kIHlpZWxkcyBgTm9uZWAgaWYgdGhleSdyZSBub3QgZXF1YWwuYGNoZWNrX3ZhbGlkYXRpb25fb3V0cHV0cwgccGFyYV9pZGECHG91dHB1dHMZBCAEFQEgQ2hlY2tzIGlmIHRoZSBnaXZlbiB2YWxpZGF0aW9uIG91dHB1dHMgcGFzcyB0aGUgYWNjZXB0YW5jZSBjcml0ZXJpYS5cc2Vzc2lvbl9pbmRleF9mb3JfY2hpbGQAEAzwIFJldHVybnMgdGhlIHNlc3Npb24gaW5kZXggZXhwZWN0ZWQgYXQgYSBjaGlsZCBvZiB0aGUgYmxvY2suANAgVGhpcyBjYW4gYmUgdXNlZCB0byBpbnN0YW50aWF0ZSBhIGBTaWduaW5nQ29udGV4dGAuPHZhbGlkYXRpb25fY29kZQgccGFyYV9pZGECKGFzc3VtcHRpb26pDS0EEFUBIEZldGNoIHRoZSB2YWxpZGF0aW9uIGNvZGUgdXNlZCBieSBhIHBhcmEsIG1ha2luZyB0aGUgZ2l2ZW4gYE9jY3VwaWVkQ29yZUFzc3VtcHRpb25gLgBFASBSZXR1cm5zIGBOb25lYCBpZiBlaXRoZXIgdGhlIHBhcmEgaXMgbm90IHJlZ2lzdGVyZWQgb3IgdGhlIGFzc3VtcHRpb24gaXMgYEZyZWVkYJggYW5kIHRoZSBwYXJhIGFscmVhZHkgb2NjdXBpZXMgYSBjb3JlLnhjYW5kaWRhdGVfcGVuZGluZ19hdmFpbGFiaWxpdHkEHHBhcmFfaWRhAr0NCF0BIEdldCB0aGUgcmVjZWlwdCBvZiBhIGNhbmRpZGF0ZSBwZW5kaW5nIGF2YWlsYWJpbGl0eS4gVGhpcyByZXR1cm5zIGBTb21lYCBmb3IgYW55IHBhcmFzJQEgYXNzaWduZWQgdG8gb2NjdXBpZWQgY29yZXMgaW4gYGF2YWlsYWJpbGl0eV9jb3Jlc2AgYW5kIGBOb25lYCBvdGhlcndpc2UuQGNhbmRpZGF0ZV9ldmVudHMAwQ0ELQEgR2V0IGEgdmVjdG9yIG9mIGV2ZW50cyBjb25jZXJuaW5nIGNhbmRpZGF0ZXMgdGhhdCBvY2N1cnJlZCB3aXRoaW4gYSBibG9jay4wZG1xX2NvbnRlbnRzBCRyZWNpcGllbnRhAkULBD0BIEdldCBhbGwgdGhlIHBlbmRpbmcgaW5ib3VuZCBtZXNzYWdlcyBpbiB0aGUgZG93bndhcmQgbWVzc2FnZSBxdWV1ZSBmb3IgYSBwYXJhLnhpbmJvdW5kX2hybXBfY2hhbm5lbHNfY29udGVudHMEJHJlY2lwaWVudGECyQ0IZQEgR2V0IHRoZSBjb250ZW50cyBvZiBhbGwgY2hhbm5lbHMgYWRkcmVzc2VkIHRvIHRoZSBnaXZlbiByZWNpcGllbnQuIENoYW5uZWxzIHRoYXQgaGF2ZSBub5AgbWVzc2FnZXMgaW4gdGhlbSBhcmUgYWxzbyBpbmNsdWRlZC5cdmFsaWRhdGlvbl9jb2RlX2J5X2hhc2gEEGhhc2gVBC0EBJwgR2V0IHRoZSB2YWxpZGF0aW9uIGNvZGUgZnJvbSBpdHMgaGFzaC44b25fY2hhaW5fdm90ZXMA1Q0EMQEgU2NyYXBlIGRpc3B1dGUgcmVsZXZhbnQgZnJvbSBvbi1jaGFpbiwgYmFja2luZyB2b3RlcyBhbmQgcmVzb2x2ZWQgZGlzcHV0ZXMuMHNlc3Npb25faW5mbwQUaW5kZXgQ2Q0M3CBHZXQgdGhlIHNlc3Npb24gaW5mbyBmb3IgdGhlIGdpdmVuIHNlc3Npb24sIGlmIHN0b3JlZC4AGQEgTk9URTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBzaW5jZSBwYXJhY2hhaW4gaG9zdCB2ZXJzaW9uIDIuaHN1Ym1pdF9wdmZfY2hlY2tfc3RhdGVtZW50CBBzdG10aQQkc2lnbmF0dXJl+QPFAQwBASBTdWJtaXRzIGEgUFZGIHByZS1jaGVja2luZyBzdGF0ZW1lbnQgaW50byB0aGUgdHJhbnNhY3Rpb24gcG9vbC4AGQEgTk9URTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBzaW5jZSBwYXJhY2hhaW4gaG9zdCB2ZXJzaW9uIDIuVHB2ZnNfcmVxdWlyZV9wcmVjaGVjawARCwxdASBSZXR1cm5zIGNvZGUgaGFzaGVzIG9mIFBWRnMgdGhhdCByZXF1aXJlIHByZS1jaGVja2luZyBieSB2YWxpZGF0b3JzIGluIHRoZSBhY3RpdmUgc2V0LgAZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gMi5QdmFsaWRhdGlvbl9jb2RlX2hhc2gIHHBhcmFfaWRhAihhc3N1bXB0aW9uqQ3dDQyFASBGZXRjaCB0aGUgaGFzaCBvZiB0aGUgdmFsaWRhdGlvbiBjb2RlIHVzZWQgYnkgYSBwYXJhLCBtYWtpbmcgdGhlIGdpdmVuIGBPY2N1cGllZENvcmVBc3N1bXB0aW9uYC4AGQEgTk9URTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBzaW5jZSBwYXJhY2hhaW4gaG9zdCB2ZXJzaW9uIDIuIGRpc3B1dGVzAOENBHggUmV0dXJucyBhbGwgb25jaGFpbiBkaXNwdXRlcy5cc2Vzc2lvbl9leGVjdXRvcl9wYXJhbXMENHNlc3Npb25faW5kZXgQ6Q0EuCBSZXR1cm5zIGV4ZWN1dGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUgc2Vzc2lvbi5EdW5hcHBsaWVkX3NsYXNoZXMA7Q0IWQEgUmV0dXJucyBhIGxpc3Qgb2YgdmFsaWRhdG9ycyB0aGF0IGxvc3QgYSBwYXN0IHNlc3Npb24gZGlzcHV0ZSBhbmQgbmVlZCB0byBiZSBzbGFzaGVkLhkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiA1LkxrZXlfb3duZXJzaGlwX3Byb29mBDB2YWxpZGF0b3JfaWT5AfUNCMwgUmV0dXJucyBhIG1lcmtsZSBwcm9vZiBvZiBhIHZhbGlkYXRvciBzZXNzaW9uIGtleS4ZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gNS5oc3VibWl0X3JlcG9ydF9kaXNwdXRlX2xvc3QINGRpc3B1dGVfcHJvb2aBBExrZXlfb3duZXJzaGlwX3Byb29m+Q39DQwpASBTdWJtaXQgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHNsYXNoIHZhbGlkYXRvcnMgd2hvIGxvc3QgYSBkaXNwdXRlIGFib3V0fCBhIGNhbmRpZGF0ZSBvZiBhIHBhc3Qgc2Vzc2lvbi4ZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gNS5UbWluaW11bV9iYWNraW5nX3ZvdGVzABAIDQEgR2V0IHRoZSBtaW5pbXVtIG51bWJlciBvZiBiYWNraW5nIHZvdGVzIGZvciBhIHBhcmFjaGFpbiBjYW5kaWRhdGUu9CBUaGlzIGlzIGEgc3RhZ2luZyBtZXRob2QhIERvIG5vdCB1c2Ugb24gcHJvZHVjdGlvbiBydW50aW1lcyFIcGFyYV9iYWNraW5nX3N0YXRlBARfYQIBDgTkIFJldHVybnMgdGhlIHN0YXRlIG9mIHBhcmFjaGFpbiBiYWNraW5nIGZvciBhIGdpdmVuIHBhcmEuUGFzeW5jX2JhY2tpbmdfcGFyYW1zAK0DBGEBIFJldHVybnMgY2FuZGlkYXRlJ3MgYWNjZXB0YW5jZSBsaW1pdGF0aW9ucyBmb3IgYXN5bmNocm9ub3VzIGJhY2tpbmcgZm9yIGEgcmVsYXkgcGFyZW50LkxkaXNhYmxlZF92YWxpZGF0b3JzAKUKBPggUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGRpc2FibGVkIHZhbGlkYXRvcnMgYXQgdGhlIGdpdmVuIGJsb2NrLjRub2RlX2ZlYXR1cmVzAO0DCEwgR2V0IG5vZGUgZmVhdHVyZXMu9CBUaGlzIGlzIGEgc3RhZ2luZyBtZXRob2QhIERvIG5vdCB1c2Ugb24gcHJvZHVjdGlvbiBydW50aW1lcyFYYXBwcm92YWxfdm90aW5nX3BhcmFtcwDJAwSkIEFwcHJvdmFsIHZvdGluZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMsY2xhaW1fcXVldWUAMQ4EMCBDbGFpbSBxdWV1ZXxjYW5kaWRhdGVzX3BlbmRpbmdfYXZhaWxhYmlsaXR5BBxwYXJhX2lkYQI9DgRgIEVsYXN0aWMgc2NhbGluZyBzdXBwb3J0BNwgVGhlIEFQSSBmb3IgcXVlcnlpbmcgdGhlIHN0YXRlIG9mIHBhcmFjaGFpbnMgb24tY2hhaW4uIEJlZWZ5QXBpHDRiZWVmeV9nZW5lc2lzAD0CBAUBIFJldHVybiB0aGUgYmxvY2sgbnVtYmVyIHdoZXJlIEJFRUZZIGNvbnNlbnN1cyBpcyBlbmFibGVkL3N0YXJ0ZWQ0dmFsaWRhdG9yX3NldABBDgS4IFJldHVybiB0aGUgY3VycmVudCBhY3RpdmUgQkVFRlkgdmFsaWRhdG9yIHNldLhzdWJtaXRfcmVwb3J0X2RvdWJsZV92b3RpbmdfdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2YJBjxrZXlfb3duZXJfcHJvb2ZJDv0NIEUBIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhIGRvdWJsZSB2b3RpbmcgZXF1aXZvY2F0aW9uLiBUaGUgY2FsbGVy/CBtdXN0IHByb3ZpZGUgdGhlIGRvdWJsZSB2b3RpbmcgcHJvb2YgYW5kIGEga2V5IG93bmVyc2hpcCBwcm9vZvwgKHNob3VsZCBiZSBvYnRhaW5lZCB1c2luZyBgZ2VuZXJhdGVfa2V5X293bmVyc2hpcF9wcm9vZmApLiBUaGUFASBleHRyaW5zaWMgd2lsbCBiZSB1bnNpZ25lZCBhbmQgc2hvdWxkIG9ubHkgYmUgYWNjZXB0ZWQgZm9yIGxvY2FsFQEgYXV0aG9yc2hpcCAobm90IHRvIGJlIGJyb2FkY2FzdCB0byB0aGUgbmV0d29yaykuIFRoaXMgbWV0aG9kIHJldHVybnMJASBgTm9uZWAgd2hlbiBjcmVhdGlvbiBvZiB0aGUgZXh0cmluc2ljIGZhaWxzLCBlLmcuIGlmIGVxdWl2b2NhdGlvbgUBIHJlcG9ydGluZyBpcyBkaXNhYmxlZCBmb3IgdGhlIGdpdmVuIHJ1bnRpbWUgKGkuZS4gdGhpcyBtZXRob2QgaXMFASBoYXJkY29kZWQgdG8gcmV0dXJuIGBOb25lYCkuIE9ubHkgdXNlZnVsIGluIGFuIG9mZmNoYWluIGNvbnRleHQusHN1Ym1pdF9yZXBvcnRfZm9ya192b3RpbmdfdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2ZNDjxrZXlfb3duZXJfcHJvb2ZJDv0NID0BIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhIGZvcmsgdm90aW5nIGVxdWl2b2NhdGlvbi4gVGhlIGNhbGxlckEBIG11c3QgcHJvdmlkZSB0aGUgZm9yayB2b3RpbmcgcHJvb2YgKHRoZSBhbmNlc3RyeSBwcm9vZiBzaG91bGQgYmUgb2J0YWluZWQgdXNpbmc9ASBgZ2VuZXJhdGVfYW5jZXN0cnlfcHJvb2ZgKSBhbmQgYSBrZXkgb3duZXJzaGlwIHByb29mIChzaG91bGQgYmUgb2J0YWluZWQgdXNpbmdBASBgZ2VuZXJhdGVfa2V5X293bmVyc2hpcF9wcm9vZmApLiBUaGUgZXh0cmluc2ljIHdpbGwgYmUgdW5zaWduZWQgYW5kIHNob3VsZCBvbmx5TQEgYmUgYWNjZXB0ZWQgZm9yIGxvY2FsIGF1dGhvcnNoaXAgKG5vdCB0byBiZSBicm9hZGNhc3QgdG8gdGhlIG5ldHdvcmspLiBUaGlzIG1ldGhvZCkBIHJldHVybnMgYE5vbmVgIHdoZW4gY3JlYXRpb24gb2YgdGhlIGV4dHJpbnNpYyBmYWlscywgZS5nLiBpZiBlcXVpdm9jYXRpb24FASByZXBvcnRpbmcgaXMgZGlzYWJsZWQgZm9yIHRoZSBnaXZlbiBydW50aW1lIChpLmUuIHRoaXMgbWV0aG9kIGlzBQEgaGFyZGNvZGVkIHRvIHJldHVybiBgTm9uZWApLiBPbmx5IHVzZWZ1bCBpbiBhbiBvZmZjaGFpbiBjb250ZXh0LtBzdWJtaXRfcmVwb3J0X2Z1dHVyZV9ibG9ja192b3RpbmdfdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2Y1BjxrZXlfb3duZXJfcHJvb2ZJDv0NIF0BIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhIGZ1dHVyZSBibG9jayB2b3RpbmcgZXF1aXZvY2F0aW9uLiBUaGUgY2FsbGVyFQEgbXVzdCBwcm92aWRlIHRoZSBmdXR1cmUgYmxvY2sgdm90aW5nIHByb29mIGFuZCBhIGtleSBvd25lcnNoaXAgcHJvb2bsIChzaG91bGQgYmUgb2J0YWluZWQgdXNpbmcgYGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2ZgKS4VASBUaGUgZXh0cmluc2ljIHdpbGwgYmUgdW5zaWduZWQgYW5kIHNob3VsZCBvbmx5IGJlIGFjY2VwdGVkIGZvciBsb2NhbBUBIGF1dGhvcnNoaXAgKG5vdCB0byBiZSBicm9hZGNhc3QgdG8gdGhlIG5ldHdvcmspLiBUaGlzIG1ldGhvZCByZXR1cm5zCQEgYE5vbmVgIHdoZW4gY3JlYXRpb24gb2YgdGhlIGV4dHJpbnNpYyBmYWlscywgZS5nLiBpZiBlcXVpdm9jYXRpb24FASByZXBvcnRpbmcgaXMgZGlzYWJsZWQgZm9yIHRoZSBnaXZlbiBydW50aW1lIChpLmUuIHRoaXMgbWV0aG9kIGlzBQEgaGFyZGNvZGVkIHRvIHJldHVybiBgTm9uZWApLiBPbmx5IHVzZWZ1bCBpbiBhbiBvZmZjaGFpbiBjb250ZXh0LnBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mCBhzZXRfaWQwMGF1dGhvcml0eV9pZAUCUQ4sCQEgR2VuZXJhdGVzIGEgcHJvb2Ygb2Yga2V5IG93bmVyc2hpcCBmb3IgdGhlIGdpdmVuIGF1dGhvcml0eSBpbiB0aGX8IGdpdmVuIHNldC4gQW4gZXhhbXBsZSB1c2FnZSBvZiB0aGlzIG1vZHVsZSBpcyBjb3VwbGVkIHdpdGggdGhlBQEgc2Vzc2lvbiBoaXN0b3JpY2FsIG1vZHVsZSB0byBwcm92ZSB0aGF0IGEgZ2l2ZW4gYXV0aG9yaXR5IGtleSBpcw0BIHRpZWQgdG8gYSBnaXZlbiBzdGFraW5nIGlkZW50aXR5IGR1cmluZyBhIHNwZWNpZmljIHNlc3Npb24uIFByb29mcxEBIG9mIGtleSBvd25lcnNoaXAgYXJlIG5lY2Vzc2FyeSBmb3Igc3VibWl0dGluZyBlcXVpdm9jYXRpb24gcmVwb3J0cy4RASBOT1RFOiBldmVuIHRob3VnaCB0aGUgQVBJIHRha2VzIGEgYHNldF9pZGAgYXMgcGFyYW1ldGVyIHRoZSBjdXJyZW50CQEgaW1wbGVtZW50YXRpb25zIGlnbm9yZXMgdGhpcyBwYXJhbWV0ZXIgYW5kIGluc3RlYWQgcmVsaWVzIG9uIHRoaXMNASBtZXRob2QgYmVpbmcgY2FsbGVkIGF0IHRoZSBjb3JyZWN0IGJsb2NrIGhlaWdodCwgaS5lLiBhbnkgcG9pbnQgYXQVASB3aGljaCB0aGUgZ2l2ZW4gc2V0IGlkIGlzIGxpdmUgb24tY2hhaW4uIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbnMgd2lsbA0BIGluc3RlYWQgdXNlIGluZGV4ZWQgZGF0YSB0aHJvdWdoIGFuIG9mZmNoYWluIHdvcmtlciwgbm90IHJlcXVpcmluZ3ggb2xkZXIgc3RhdGVzIHRvIGJlIGF2YWlsYWJsZS5cZ2VuZXJhdGVfYW5jZXN0cnlfcHJvb2YIRHByZXZfYmxvY2tfbnVtYmVyEFxiZXN0X2tub3duX2Jsb2NrX251bWJlcj0CUQ4IRQEgR2VuZXJhdGVzIGEgcHJvb2YgdGhhdCB0aGUgYHByZXZfYmxvY2tfbnVtYmVyYCBpcyBwYXJ0IG9mIHRoZSBjYW5vbmljYWwgY2hhaW4gYXRsIGBiZXN0X2tub3duX2Jsb2NrX251bWJlcmAuBIAgQVBJIG5lY2Vzc2FyeSBmb3IgQkVFRlkgdm90ZXJzLhhNbXJBcGkUIG1tcl9yb290AFUOBIwgUmV0dXJuIHRoZSBvbi1jaGFpbiBNTVIgcm9vdCBoYXNoLjhtbXJfbGVhZl9jb3VudABdDgS4IFJldHVybiB0aGUgbnVtYmVyIG9mIE1NUiBibG9ja3MgaW4gdGhlIGNoYWluLjhnZW5lcmF0ZV9wcm9vZgg0YmxvY2tfbnVtYmVyc0EIXGJlc3Rfa25vd25fYmxvY2tfbnVtYmVyPQJhDghpASBHZW5lcmF0ZSBNTVIgcHJvb2YgZm9yIGEgc2VyaWVzIG9mIGJsb2NrIG51bWJlcnMuIElmIGBiZXN0X2tub3duX2Jsb2NrX251bWJlciA9IFNvbWUobilgLEUBIHVzZSBoaXN0b3JpY2FsIE1NUiBzdGF0ZSBhdCBnaXZlbiBibG9jayBoZWlnaHQgYG5gLiBFbHNlLCB1c2UgY3VycmVudCBNTVIgc3RhdGUuMHZlcmlmeV9wcm9vZggYbGVhdmVzaQ4UcHJvb2ZxDnkOFPQgVmVyaWZ5IE1NUiBwcm9vZiBhZ2FpbnN0IG9uLWNoYWluIE1NUiBmb3IgYSBiYXRjaCBvZiBsZWF2ZXMuAHEBIE5vdGUgdGhpcyBmdW5jdGlvbiB3aWxsIHVzZSBvbi1jaGFpbiBNTVIgcm9vdCBoYXNoIGFuZCBjaGVjayBpZiB0aGUgcHJvb2YgbWF0Y2hlcyB0aGUgaGFzaC5tASBOb3RlLCB0aGUgbGVhdmVzIHNob3VsZCBiZSBzb3J0ZWQgc3VjaCB0aGF0IGNvcnJlc3BvbmRpbmcgbGVhdmVzIGFuZCBsZWFmIGluZGljZXMgaGF2ZSB0aGWVASBzYW1lIHBvc2l0aW9uIGluIGJvdGggdGhlIGBsZWF2ZXNgIHZlY3RvciBhbmQgdGhlIGBsZWFmX2luZGljZXNgIHZlY3RvciBjb250YWluZWQgaW4gdGhlIFtMZWFmUHJvb2ZdWHZlcmlmeV9wcm9vZl9zdGF0ZWxlc3MMEHJvb3Q0GGxlYXZlc2kOFHByb29mcQ55DhwBASBWZXJpZnkgTU1SIHByb29mIGFnYWluc3QgZ2l2ZW4gcm9vdCBoYXNoIGZvciBhIGJhdGNoIG9mIGxlYXZlcy4A/CBOb3RlIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVxdWlyZSBhbnkgb24tY2hhaW4gc3RvcmFnZSAtIHRoZbwgcHJvb2YgaXMgdmVyaWZpZWQgYWdhaW5zdCBnaXZlbiBNTVIgcm9vdCBoYXNoLgBtASBOb3RlLCB0aGUgbGVhdmVzIHNob3VsZCBiZSBzb3J0ZWQgc3VjaCB0aGF0IGNvcnJlc3BvbmRpbmcgbGVhdmVzIGFuZCBsZWFmIGluZGljZXMgaGF2ZSB0aGWVASBzYW1lIHBvc2l0aW9uIGluIGJvdGggdGhlIGBsZWF2ZXNgIHZlY3RvciBhbmQgdGhlIGBsZWFmX2luZGljZXNgIHZlY3RvciBjb250YWluZWQgaW4gdGhlIFtMZWFmUHJvb2ZdBIQgQVBJIHRvIGludGVyYWN0IHdpdGggTU1SIHBhbGxldC4oR3JhbmRwYUFwaRBMZ3JhbmRwYV9hdXRob3JpdGllcwDQGD0BIEdldCB0aGUgY3VycmVudCBHUkFORFBBIGF1dGhvcml0aWVzIGFuZCB3ZWlnaHRzLiBUaGlzIHNob3VsZCBub3QgY2hhbmdlIGV4Y2VwdB0BIGZvciB3aGVuIGNoYW5nZXMgYXJlIHNjaGVkdWxlZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZGVsYXkgaGFzIHBhc3NlZC4ANQEgV2hlbiBjYWxsZWQgYXQgYmxvY2sgQiwgaXQgd2lsbCByZXR1cm4gdGhlIHNldCBvZiBhdXRob3JpdGllcyB0aGF0IHNob3VsZCBiZT0BIHVzZWQgdG8gZmluYWxpemUgZGVzY2VuZGFudHMgb2YgdGhpcyBibG9jayAoQisxLCBCKzIsIC4uLikuIFRoZSBibG9jayBCIGl0c2VsZsAgaXMgZmluYWxpemVkIGJ5IHRoZSBhdXRob3JpdGllcyBmcm9tIGJsb2NrIEItMS60c3VibWl0X3JlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2YRAjxrZXlfb3duZXJfcHJvb2ZJDv0NIBEBIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhbiBlcXVpdm9jYXRpb24uIFRoZSBjYWxsZXL4IG11c3QgcHJvdmlkZSB0aGUgZXF1aXZvY2F0aW9uIHByb29mIGFuZCBhIGtleSBvd25lcnNoaXAgcHJvb2b8IChzaG91bGQgYmUgb2J0YWluZWQgdXNpbmcgYGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2ZgKS4gVGhlBQEgZXh0cmluc2ljIHdpbGwgYmUgdW5zaWduZWQgYW5kIHNob3VsZCBvbmx5IGJlIGFjY2VwdGVkIGZvciBsb2NhbBUBIGF1dGhvcnNoaXAgKG5vdCB0byBiZSBicm9hZGNhc3QgdG8gdGhlIG5ldHdvcmspLiBUaGlzIG1ldGhvZCByZXR1cm5zCQEgYE5vbmVgIHdoZW4gY3JlYXRpb24gb2YgdGhlIGV4dHJpbnNpYyBmYWlscywgZS5nLiBpZiBlcXVpdm9jYXRpb24FASByZXBvcnRpbmcgaXMgZGlzYWJsZWQgZm9yIHRoZSBnaXZlbiBydW50aW1lIChpLmUuIHRoaXMgbWV0aG9kIGlzBQEgaGFyZGNvZGVkIHRvIHJldHVybiBgTm9uZWApLiBPbmx5IHVzZWZ1bCBpbiBhbiBvZmZjaGFpbiBjb250ZXh0LnBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mCBhzZXRfaWQwMGF1dGhvcml0eV9pZNhRDiwJASBHZW5lcmF0ZXMgYSBwcm9vZiBvZiBrZXkgb3duZXJzaGlwIGZvciB0aGUgZ2l2ZW4gYXV0aG9yaXR5IGluIHRoZfwgZ2l2ZW4gc2V0LiBBbiBleGFtcGxlIHVzYWdlIG9mIHRoaXMgbW9kdWxlIGlzIGNvdXBsZWQgd2l0aCB0aGUFASBzZXNzaW9uIGhpc3RvcmljYWwgbW9kdWxlIHRvIHByb3ZlIHRoYXQgYSBnaXZlbiBhdXRob3JpdHkga2V5IGlzDQEgdGllZCB0byBhIGdpdmVuIHN0YWtpbmcgaWRlbnRpdHkgZHVyaW5nIGEgc3BlY2lmaWMgc2Vzc2lvbi4gUHJvb2ZzEQEgb2Yga2V5IG93bmVyc2hpcCBhcmUgbmVjZXNzYXJ5IGZvciBzdWJtaXR0aW5nIGVxdWl2b2NhdGlvbiByZXBvcnRzLhEBIE5PVEU6IGV2ZW4gdGhvdWdoIHRoZSBBUEkgdGFrZXMgYSBgc2V0X2lkYCBhcyBwYXJhbWV0ZXIgdGhlIGN1cnJlbnT8IGltcGxlbWVudGF0aW9ucyBpZ25vcmUgdGhpcyBwYXJhbWV0ZXIgYW5kIGluc3RlYWQgcmVseSBvbiB0aGlzDQEgbWV0aG9kIGJlaW5nIGNhbGxlZCBhdCB0aGUgY29ycmVjdCBibG9jayBoZWlnaHQsIGkuZS4gYW55IHBvaW50IGF0FQEgd2hpY2ggdGhlIGdpdmVuIHNldCBpZCBpcyBsaXZlIG9uLWNoYWluLiBGdXR1cmUgaW1wbGVtZW50YXRpb25zIHdpbGwNASBpbnN0ZWFkIHVzZSBpbmRleGVkIGRhdGEgdGhyb3VnaCBhbiBvZmZjaGFpbiB3b3JrZXIsIG5vdCByZXF1aXJpbmd4IG9sZGVyIHN0YXRlcyB0byBiZSBhdmFpbGFibGUuOGN1cnJlbnRfc2V0X2lkADAEmCBHZXQgY3VycmVudCBHUkFORFBBIGF1dGhvcml0eSBzZXQgaWQuJAEBIEFQSXMgZm9yIGludGVncmF0aW5nIHRoZSBHUkFORFBBIGZpbmFsaXR5IGdhZGdldCBpbnRvIHJ1bnRpbWVzLsAgVGhpcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgb24gdGhlIHJ1bnRpbWUgc2lkZS4AFQEgVGhpcyBpcyBwcmltYXJpbHkgdXNlZCBmb3IgbmVnb3RpYXRpbmcgYXV0aG9yaXR5LXNldCBjaGFuZ2VzIGZvciB0aGUNASBnYWRnZXQuIEdSQU5EUEEgdXNlcyBhIHNpZ25hbGluZyBtb2RlbCBvZiBjaGFuZ2luZyBhdXRob3JpdHkgc2V0czoxASBjaGFuZ2VzIHNob3VsZCBiZSBzaWduYWxlZCB3aXRoIGEgZGVsYXkgb2YgTiBibG9ja3MsIGFuZCB0aGVuIGF1dG9tYXRpY2FsbHnkIGFwcGxpZWQgaW4gdGhlIHJ1bnRpbWUgYWZ0ZXIgdGhvc2UgTiBibG9ja3MgaGF2ZSBwYXNzZWQuAPwgVGhlIGNvbnNlbnN1cyBwcm90b2NvbCB3aWxsIGNvb3JkaW5hdGUgdGhlIGhhbmRvZmYgZXh0ZXJuYWxseS4cQmFiZUFwaRg0Y29uZmlndXJhdGlvbgB9DgSMIFJldHVybiB0aGUgY29uZmlndXJhdGlvbiBmb3IgQkFCRS5MY3VycmVudF9lcG9jaF9zdGFydAClAQTEIFJldHVybnMgdGhlIHNsb3QgdGhhdCBzdGFydGVkIHRoZSBjdXJyZW50IGVwb2NoLjRjdXJyZW50X2Vwb2NoAIEOBMQgUmV0dXJucyBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGN1cnJlbnQgZXBvY2guKG5leHRfZXBvY2gAgQ4IAQEgUmV0dXJucyBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIG5leHQgZXBvY2ggKHdoaWNoIHdhcyBhbHJlYWR5XCBwcmV2aW91c2x5IGFubm91bmNlZCkucGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2YIEHNsb3SlATBhdXRob3JpdHlfaWShAYUOLAkBIEdlbmVyYXRlcyBhIHByb29mIG9mIGtleSBvd25lcnNoaXAgZm9yIHRoZSBnaXZlbiBhdXRob3JpdHkgaW4gdGhlDQEgY3VycmVudCBlcG9jaC4gQW4gZXhhbXBsZSB1c2FnZSBvZiB0aGlzIG1vZHVsZSBpcyBjb3VwbGVkIHdpdGggdGhlBQEgc2Vzc2lvbiBoaXN0b3JpY2FsIG1vZHVsZSB0byBwcm92ZSB0aGF0IGEgZ2l2ZW4gYXV0aG9yaXR5IGtleSBpcw0BIHRpZWQgdG8gYSBnaXZlbiBzdGFraW5nIGlkZW50aXR5IGR1cmluZyBhIHNwZWNpZmljIHNlc3Npb24uIFByb29mcxEBIG9mIGtleSBvd25lcnNoaXAgYXJlIG5lY2Vzc2FyeSBmb3Igc3VibWl0dGluZyBlcXVpdm9jYXRpb24gcmVwb3J0cy4JASBOT1RFOiBldmVuIHRob3VnaCB0aGUgQVBJIHRha2VzIGEgYHNsb3RgIGFzIHBhcmFtZXRlciB0aGUgY3VycmVudAkBIGltcGxlbWVudGF0aW9ucyBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyIGFuZCBpbnN0ZWFkIHJlbGllcyBvbiB0aGlzDQEgbWV0aG9kIGJlaW5nIGNhbGxlZCBhdCB0aGUgY29ycmVjdCBibG9jayBoZWlnaHQsIGkuZS4gYW55IHBvaW50IGF08CB3aGljaCB0aGUgZXBvY2ggZm9yIHRoZSBnaXZlbiBzbG90IGlzIGxpdmUgb24tY2hhaW4uIEZ1dHVyZQkBIGltcGxlbWVudGF0aW9ucyB3aWxsIGluc3RlYWQgdXNlIGluZGV4ZWQgZGF0YSB0aHJvdWdoIGFuIG9mZmNoYWlu0CB3b3JrZXIsIG5vdCByZXF1aXJpbmcgb2xkZXIgc3RhdGVzIHRvIGJlIGF2YWlsYWJsZS60c3VibWl0X3JlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2aZATxrZXlfb3duZXJfcHJvb2aJDv0NIBEBIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhbiBlcXVpdm9jYXRpb24uIFRoZSBjYWxsZXL4IG11c3QgcHJvdmlkZSB0aGUgZXF1aXZvY2F0aW9uIHByb29mIGFuZCBhIGtleSBvd25lcnNoaXAgcHJvb2b8IChzaG91bGQgYmUgb2J0YWluZWQgdXNpbmcgYGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2ZgKS4gVGhlBQEgZXh0cmluc2ljIHdpbGwgYmUgdW5zaWduZWQgYW5kIHNob3VsZCBvbmx5IGJlIGFjY2VwdGVkIGZvciBsb2NhbBUBIGF1dGhvcnNoaXAgKG5vdCB0byBiZSBicm9hZGNhc3QgdG8gdGhlIG5ldHdvcmspLiBUaGlzIG1ldGhvZCByZXR1cm5zCQEgYE5vbmVgIHdoZW4gY3JlYXRpb24gb2YgdGhlIGV4dHJpbnNpYyBmYWlscywgZS5nLiBpZiBlcXVpdm9jYXRpb24FASByZXBvcnRpbmcgaXMgZGlzYWJsZWQgZm9yIHRoZSBnaXZlbiBydW50aW1lIChpLmUuIHRoaXMgbWV0aG9kIGlzBQEgaGFyZGNvZGVkIHRvIHJldHVybiBgTm9uZWApLiBPbmx5IHVzZWZ1bCBpbiBhbiBvZmZjaGFpbiBjb250ZXh0LgS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBCQUJFLlRBdXRob3JpdHlEaXNjb3ZlcnlBcGkELGF1dGhvcml0aWVzAGUIBBkBIFJldHJpZXZlIGF1dGhvcml0eSBpZGVudGlmaWVycyBvZiB0aGUgY3VycmVudCBhbmQgbmV4dCBhdXRob3JpdHkgc2V0LhB0IFRoZSBhdXRob3JpdHkgZGlzY292ZXJ5IGFwaS4AUQEgVGhpcyBhcGkgaXMgdXNlZCBieSB0aGUgYGNsaWVudC9hdXRob3JpdHktZGlzY292ZXJ5YCBtb2R1bGUgdG8gcmV0cmlldmUgaWRlbnRpZmllcnOcIG9mIHRoZSBjdXJyZW50IGFuZCBuZXh0IGF1dGhvcml0eSBzZXQuLFNlc3Npb25LZXlzCFRnZW5lcmF0ZV9zZXNzaW9uX2tleXMEEHNlZWR9DDgcFQEgR2VuZXJhdGUgYSBzZXQgb2Ygc2Vzc2lvbiBrZXlzIHdpdGggb3B0aW9uYWxseSB1c2luZyB0aGUgZ2l2ZW4gc2VlZC4JASBUaGUga2V5cyBzaG91bGQgYmUgc3RvcmVkIHdpdGhpbiB0aGUga2V5c3RvcmUgZXhwb3NlZCB2aWEgcnVudGltZTwgZXh0ZXJuYWxpdGllcy4AsCBUaGUgc2VlZCBuZWVkcyB0byBiZSBhIHZhbGlkIGB1dGY4YCBzdHJpbmcuANAgUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIFNDQUxFIGVuY29kZWQgcHVibGljIGtleXMuTGRlY29kZV9zZXNzaW9uX2tleXMEHGVuY29kZWQ4jQ4MmCBEZWNvZGUgdGhlIGdpdmVuIHB1YmxpYyBzZXNzaW9uIGtleXMuANwgUmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWMgcmF3IHB1YmxpYyBrZXlzICsga2V5IHR5cGUuBGggU2Vzc2lvbiBrZXlzIHJ1bnRpbWUgYXBpLjxBY2NvdW50Tm9uY2VBcGkENGFjY291bnRfbm9uY2UEHGFjY291bnQAEATAIEdldCBjdXJyZW50IGFjY291bnQgbm9uY2Ugb2YgZ2l2ZW4gYEFjY291bnRJZGAuBIAgVGhlIEFQSSB0byBxdWVyeSBhY2NvdW50IG5vbmNlLlRUcmFuc2FjdGlvblBheW1lbnRBcGkQKHF1ZXJ5X2luZm8IDHV4dP0MDGxlbhCZDgBEcXVlcnlfZmVlX2RldGFpbHMIDHV4dP0MDGxlbhCdDgBMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h0KBgATHF1ZXJ5X2xlbmd0aF90b19mZWUEGGxlbmd0aBAYAAAsQmVlZnlNbXJBcGkITGF1dGhvcml0eV9zZXRfcHJvb2YAsQwE3CBSZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgQkVFRlkgYXV0aG9yaXR5IHNldCBwcm9vZi5gbmV4dF9hdXRob3JpdHlfc2V0X3Byb29mALEMBMggUmV0dXJuIHRoZSBuZXh0L3F1ZXVlZCBCRUVGWSBhdXRob3JpdHkgc2V0IHByb29mLgSQIEFQSSB1c2VmdWwgZm9yIEJFRUZZIGxpZ2h0IGNsaWVudHMuOEdlbmVzaXNCdWlsZGVyDCxidWlsZF9zdGF0ZQQQanNvbjipDiRlASBCdWlsZCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gYSBKU09OIGJsb2Igbm90IHVzaW5nIGFueSBkZWZhdWx0cyBhbmQgc3RvcmUgaXQgaW4gdGhlJCBzdG9yYWdlLgD5ASBJbiB0aGUgY2FzZSBvZiBhIEZSQU1FLWJhc2VkIHJ1bnRpbWUsIHRoaXMgZnVuY3Rpb24gZGVzZXJpYWxpemVzIHRoZSBmdWxsIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBibG9iIGFuZFkBIHB1dHMgaXQgaW50byB0aGUgc3RvcmFnZS4gSWYgdGhlIHByb3ZpZGVkIEpTT04gYmxvYiBpcyBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSBvciB0aGW0IGRlc2VyaWFsaXphdGlvbiBmYWlscywgYW4gZXJyb3IgaXMgcmV0dXJuZWQuAF0BIFBsZWFzZSBub3RlIHRoYXQgcHJvdmlkZWQgSlNPTiBibG9iIG11c3QgY29udGFpbiBhbGwgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmaWVsZHMsIG5vXCBkZWZhdWx0cyB3aWxsIGJlIHVzZWQuKGdldF9wcmVzZXQECGlkrQ59DDhhASBSZXR1cm5zIGEgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiBgUnVudGltZUdlbmVzaXNDb25maWdgIGlkZW50aWZpZWQgYnkYIGBpZGAuAD0BIElmIGBpZGAgaXMgYE5vbmVgIHRoZSBmdW5jdGlvbiByZXR1cm5zIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVmYXVsdEkBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2Agc3RydWN0IG9mIHRoZSBydW50aW1lLiBJbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgZGVmYXVsdGAgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYC4AIQEgT3RoZXJ3aXNlIGZ1bmN0aW9uIHJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBidWlsdC1pbiwgbmFtZWRRASBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldCBpZGVudGlmaWVkIGJ5IGBpZGAsIG9yIGBOb25lYCBpZiBzdWNoIHByZXNldCBkb2VzIG5vdGUBIGV4aXN0cy4gUmV0dXJuZWQgYFZlYzx1OD5gIGNvbnRhaW5zIGJ5dGVzIG9mIEpTT04gYmxvYiAocGF0Y2gpIHdoaWNoIGNvbXByaXNlcyBhIGxpc3Qgb2ZNASAocG90ZW50aWFsbHkgbmVzdGVkKSBrZXktdmFsdWUgcGFpcnMgdGhhdCBhcmUgaW50ZW5kZWQgZm9yIGN1c3RvbWl6aW5nIHRoZSBkZWZhdWx0ZQEgcnVudGltZSBnZW5lc2lzIGNvbmZpZy4gVGhlIHBhdGNoIHNoYWxsIGJlIG1lcmdlZCAocmZjNzM4Nikgd2l0aCB0aGUgSlNPTiByZXByZXNlbnRhdGlvbmEBIG9mIHRoZSBkZWZhdWx0IGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBnZW5lc2lzIGNvbmZpZyB0aGF0IGNhboQgYmUgdXNlZCBpbiBgYnVpbGRfc3RhdGVgIG1ldGhvZC4wcHJlc2V0X25hbWVzALEOEFEBIFJldHVybnMgYSBsaXN0IG9mIGlkZW50aWZpZXJzIGZvciBhdmFpbGFibGUgYnVpbHRpbiBgUnVudGltZUdlbmVzaXNDb25maWdgIHByZXNldHMuAGEBIFRoZSBwcmVzZXRzIGZyb20gdGhlIGxpc3QgY2FuIGJlIHF1ZXJpZWQgd2l0aCBbYEdlbmVzaXNCdWlsZGVyOjpnZXRfcHJlc2V0YF0gbWV0aG9kLiBJZgEBIG5vIG5hbWVkIHByZXNldHMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBydW50aW1lIHRoZSBsaXN0IGlzIGVtcHR5LgToIEFQSSB0byBpbnRlcmFjdCB3aXRoIFJ1bnRpbWVHZW5lc2lzQ29uZmlnIGZvciB0aGUgcnVudGltZYEBVLUOAA==",G=A;export{G as default};
|