@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="bWV0YQ9FEAAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAgwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEQLEFjY291bnREYXRhARQAFAEUbm9uY2UQARROb25jZQABJGNvbnN1bWVycxABIFJlZkNvdW50AAEkcHJvdmlkZXJzEAEgUmVmQ291bnQAASxzdWZmaWNpZW50cxABIFJlZkNvdW50AAEQZGF0YRQBLEFjY291bnREYXRhAAAQAAAFBQAUDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBGAAQARBmcmVlGAEcQmFsYW5jZQABIHJlc2VydmVkGAEcQmFsYW5jZQABGGZyb3plbhgBHEJhbGFuY2UAARRmbGFncxwBKEV4dHJhRmxhZ3MAABgAAAUHABwMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEABgBEHUxMjgAACAAAAUAACQMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAAoDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1lLAEMdTY0AAEocHJvb2Zfc2l6ZSwBDHU2NAAALAAABjAAMAAABQYANAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQABAEgW3U4OyAzMl0AADgAAAIIADwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QYRGlnZXN0AAAEARBsb2dzQAE8VmVjPERpZ2VzdEl0ZW0+AABAAAACRABEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgASAFEQ29uc2Vuc3VzRW5naW5lSWQAADgBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAEABBTZWFsCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAFABRPdGhlcgQAOAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAEgAAAMEAAAACABMAAACUABQCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBVARUATQADAEUcGhhc2U9CAEUUGhhc2UAARRldmVudFQBBEUAARh0b3BpY3MVAwEYVmVjPFQ+AABUCFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lMFJ1bnRpbWVFdmVudAABtBhTeXN0ZW0EAFgBcGZyYW1lX3N5c3RlbTo6RXZlbnQ8UnVudGltZT4AAAAcSW5kaWNlcwQAfAF4cGFsbGV0X2luZGljZXM6OkV2ZW50PFJ1bnRpbWU+AAMAIEJhbGFuY2VzBACAAXxwYWxsZXRfYmFsYW5jZXM6OkV2ZW50PFJ1bnRpbWU+AAQASFRyYW5zYWN0aW9uUGF5bWVudAQAiAGocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+ACEAHFN0YWtpbmcEAIwBeHBhbGxldF9zdGFraW5nOjpFdmVudDxSdW50aW1lPgAGACBPZmZlbmNlcwQApAFYcGFsbGV0X29mZmVuY2VzOjpFdmVudAAHABxTZXNzaW9uBACsAVRwYWxsZXRfc2Vzc2lvbjo6RXZlbnQACAAcR3JhbmRwYQQAsAFUcGFsbGV0X2dyYW5kcGE6OkV2ZW50AAoAIFRyZWFzdXJ5BADAAXxwYWxsZXRfdHJlYXN1cnk6OkV2ZW50PFJ1bnRpbWU+ABIAQENvbnZpY3Rpb25Wb3RpbmcEAE0BAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkV2ZW50PFJ1bnRpbWU+ABQAJFJlZmVyZW5kYQQAUQEBgHBhbGxldF9yZWZlcmVuZGE6OkV2ZW50PFJ1bnRpbWU+ABUAUEZlbGxvd3NoaXBDb2xsZWN0aXZlBABVBwE5AXBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZTo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlOjoKSW5zdGFuY2UxPgAWAExGZWxsb3dzaGlwUmVmZXJlbmRhBABhBwH0cGFsbGV0X3JlZmVyZW5kYTo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X3JlZmVyZW5kYTo6SW5zdGFuY2UyPgAXACRXaGl0ZWxpc3QEAGUHAYBwYWxsZXRfd2hpdGVsaXN0OjpFdmVudDxSdW50aW1lPgAsAChQYXJhbWV0ZXJzBAB5BwGEcGFsbGV0X3BhcmFtZXRlcnM6OkV2ZW50PFJ1bnRpbWU+AC4AGENsYWltcwQAkQcBWGNsYWltczo6RXZlbnQ8UnVudGltZT4AEwAcVXRpbGl0eQQAlQcBVHBhbGxldF91dGlsaXR5OjpFdmVudAAYABxTb2NpZXR5BACdBwF4cGFsbGV0X3NvY2lldHk6OkV2ZW50PFJ1bnRpbWU+ABoAIFJlY292ZXJ5BAClBwF8cGFsbGV0X3JlY292ZXJ5OjpFdmVudDxSdW50aW1lPgAbABxWZXN0aW5nBACpBwF4cGFsbGV0X3Zlc3Rpbmc6OkV2ZW50PFJ1bnRpbWU+ABwAJFNjaGVkdWxlcgQArQcBgHBhbGxldF9zY2hlZHVsZXI6OkV2ZW50PFJ1bnRpbWU+AB0AFFByb3h5BAC1BwFwcGFsbGV0X3Byb3h5OjpFdmVudDxSdW50aW1lPgAeACBNdWx0aXNpZwQAuQcBfHBhbGxldF9tdWx0aXNpZzo6RXZlbnQ8UnVudGltZT4AHwAgUHJlaW1hZ2UEAL0HAXxwYWxsZXRfcHJlaW1hZ2U6OkV2ZW50PFJ1bnRpbWU+ACAAIEJvdW50aWVzBADBBwF8cGFsbGV0X2JvdW50aWVzOjpFdmVudDxSdW50aW1lPgAjADRDaGlsZEJvdW50aWVzBADFBwGUcGFsbGV0X2NoaWxkX2JvdW50aWVzOjpFdmVudDxSdW50aW1lPgAoAGhFbGVjdGlvblByb3ZpZGVyTXVsdGlQaGFzZQQAyQcB0HBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZTo6RXZlbnQ8UnVudGltZT4AJQAMTmlzBADZBwFocGFsbGV0X25pczo6RXZlbnQ8UnVudGltZT4AJgBYTmlzQ291bnRlcnBhcnRCYWxhbmNlcwQA3QcB7HBhbGxldF9iYWxhbmNlczo6RXZlbnQ8UnVudGltZSwgcGFsbGV0X2JhbGFuY2VzOjpJbnN0YW5jZTI+AC0AJFZvdGVyTGlzdAQA4QcB9HBhbGxldF9iYWdzX2xpc3Q6OkV2ZW50PFJ1bnRpbWUsIHBhbGxldF9iYWdzX2xpc3Q6Okluc3RhbmNlMT4AJwA8Tm9taW5hdGlvblBvb2xzBADlBwGccGFsbGV0X25vbWluYXRpb25fcG9vbHM6OkV2ZW50PFJ1bnRpbWU+ACkALEZhc3RVbnN0YWtlBADpBwGMcGFsbGV0X2Zhc3RfdW5zdGFrZTo6RXZlbnQ8UnVudGltZT4AKgA0UGFyYUluY2x1c2lvbgQA7QcBkHBhcmFjaGFpbnNfaW5jbHVzaW9uOjpFdmVudDxSdW50aW1lPgA1ABRQYXJhcwQA/QcBXHBhcmFjaGFpbnNfcGFyYXM6OkV2ZW50ADgAEEhybXAEAAEIAXxwYXJhY2hhaW5zX2hybXA6OkV2ZW50PFJ1bnRpbWU+ADwANFBhcmFzRGlzcHV0ZXMEAAUIAYxwYXJhY2hhaW5zX2Rpc3B1dGVzOjpFdmVudDxSdW50aW1lPgA+AGhPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlcgQAEQgBtHBhcmFjaGFpbnNfYXNzaWduZXJfb25fZGVtYW5kOjpFdmVudDxSdW50aW1lPgBAACRSZWdpc3RyYXIEABUIAXxwYXJhc19yZWdpc3RyYXI6OkV2ZW50PFJ1bnRpbWU+AEYAFFNsb3RzBAAZCAFUc2xvdHM6OkV2ZW50PFJ1bnRpbWU+AEcAIEF1Y3Rpb25zBAAdCAFgYXVjdGlvbnM6OkV2ZW50PFJ1bnRpbWU+AEgAJENyb3dkbG9hbgQAIQgBZGNyb3dkbG9hbjo6RXZlbnQ8UnVudGltZT4ASQAgQ29yZXRpbWUEACUIAWBjb3JldGltZTo6RXZlbnQ8UnVudGltZT4ASgAkWGNtUGFsbGV0BAApCAFocGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AYwAwTWVzc2FnZVF1ZXVlBAAxCAGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AGQAJEFzc2V0UmF0ZQQAOQgBhHBhbGxldF9hc3NldF9yYXRlOjpFdmVudDxSdW50aW1lPgBlAABYDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEcQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvXAEwRGlzcGF0Y2hJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvcmgBNERpc3BhdGNoRXJyb3IAATRkaXNwYXRjaF9pbmZvXAEwRGlzcGF0Y2hJbmZvAAEEUEFuIGV4dHJpbnNpYyBmYWlsZWQuLENvZGVVcGRhdGVkAAIEUGA6Y29kZWAgd2FzIHVwZGF0ZWQuKE5ld0FjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAMEaEEgbmV3IGFjY291bnQgd2FzIGNyZWF0ZWQuNEtpbGxlZEFjY291bnQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAQEWEFuIGFjY291bnQgd2FzIHJlYXBlZC4gUmVtYXJrZWQIARhzZW5kZXIAATBUOjpBY2NvdW50SWQAARBoYXNoNAEcVDo6SGFzaAAFBHBPbiBvbi1jaGFpbiByZW1hcmsgaGFwcGVuZWQuRFVwZ3JhZGVBdXRob3JpemVkCAEkY29kZV9oYXNoNAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb24gARBib29sAAYEaEFuIHVwZ3JhZGUgd2FzIGF1dGhvcml6ZWQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuXAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDBEaXNwYXRjaEluZm8AAAwBGHdlaWdodCgBGFdlaWdodAABFGNsYXNzYAE0RGlzcGF0Y2hDbGFzcwABIHBheXNfZmVlZAEQUGF5cwAAYAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDREaXNwYXRjaENsYXNzAAEMGE5vcm1hbAAAACxPcGVyYXRpb25hbAABACRNYW5kYXRvcnkAAgAAZAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaBBQYXlzAAEIDFllcwAAAAhObwABAABoCChzcF9ydW50aW1lNERpc3BhdGNoRXJyb3IAATgUT3RoZXIAAAAwQ2Fubm90TG9va3VwAAEAJEJhZE9yaWdpbgACABhNb2R1bGUEAGwBLE1vZHVsZUVycm9yAAMARENvbnN1bWVyUmVtYWluaW5nAAQALE5vUHJvdmlkZXJzAAUAQFRvb01hbnlDb25zdW1lcnMABgAUVG9rZW4EAHABKFRva2VuRXJyb3IABwAoQXJpdGhtZXRpYwQAdAE8QXJpdGhtZXRpY0Vycm9yAAgANFRyYW5zYWN0aW9uYWwEAHgBSFRyYW5zYWN0aW9uYWxFcnJvcgAJACRFeGhhdXN0ZWQACgAoQ29ycnVwdGlvbgALACxVbmF2YWlsYWJsZQAMADhSb290Tm90QWxsb3dlZAANAABsCChzcF9ydW50aW1lLE1vZHVsZUVycm9yAAAIARRpbmRleAgBCHU4AAEUZXJyb3JIAYxbdTg7IE1BWF9NT0RVTEVfRVJST1JfRU5DT0RFRF9TSVpFXQAAcAgoc3BfcnVudGltZShUb2tlbkVycm9yAAEoQEZ1bmRzVW5hdmFpbGFibGUAAAAwT25seVByb3ZpZGVyAAEAMEJlbG93TWluaW11bQACADBDYW5ub3RDcmVhdGUAAwAwVW5rbm93bkFzc2V0AAQAGEZyb3plbgAFACxVbnN1cHBvcnRlZAAGAEBDYW5ub3RDcmVhdGVIb2xkAAcANE5vdEV4cGVuZGFibGUACAAcQmxvY2tlZAAJAAB0CDRzcF9hcml0aG1ldGljPEFyaXRobWV0aWNFcnJvcgABDCRVbmRlcmZsb3cAAAAgT3ZlcmZsb3cAAQA4RGl2aXNpb25CeVplcm8AAgAAeAgoc3BfcnVudGltZUhUcmFuc2FjdGlvbmFsRXJyb3IAAQgwTGltaXRSZWFjaGVkAAAAHE5vTGF5ZXIAAQAAfAw4cGFsbGV0X2luZGljZXMYcGFsbGV0FEV2ZW50BARUAAEMNEluZGV4QXNzaWduZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARRpbmRleBABPFQ6OkFjY291bnRJbmRleAAABHRBIGFjY291bnQgaW5kZXggd2FzIGFzc2lnbmVkLihJbmRleEZyZWVkBAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgAAQS8QSBhY2NvdW50IGluZGV4IGhhcyBiZWVuIGZyZWVkIHVwICh1bmFzc2lnbmVkKS4sSW5kZXhGcm96ZW4IARRpbmRleBABPFQ6OkFjY291bnRJbmRleAABDHdobwABMFQ6OkFjY291bnRJZAACBOhBIGFjY291bnQgaW5kZXggaGFzIGJlZW4gZnJvemVuIHRvIGl0cyBjdXJyZW50IGFjY291bnQgSUQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0gAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABWBxFbmRvd2VkCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZRgBKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAEIPQFBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvdyBFeGlzdGVudGlhbERlcG9zaXQseHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlcgwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJlZRgBKFQ6OkJhbGFuY2UAAwRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC4gUmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAQE4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABSGRlc3RpbmF0aW9uX3N0YXR1c4QBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuGEJ1cm5lZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACwScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuJFN1c3BlbmRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADAQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADQSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQADgRgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UADwQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnQYAShUOjpCYWxhbmNlABAEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEQRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQASBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABQEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkGAEoVDo6QmFsYW5jZQABDG5ldxgBKFQ6OkJhbGFuY2UAFQSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIQUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjNEJhbGFuY2VTdGF0dXMAAQgQRnJlZQAAACBSZXNlcnZlZAABAACIDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQRIVHJhbnNhY3Rpb25GZWVQYWlkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEoYWN0dWFsX2ZlZRgBMEJhbGFuY2VPZjxUPgABDHRpcBgBMEJhbGFuY2VPZjxUPgAACFkBQSB0cmFuc2FjdGlvbiBmZWUgYGFjdHVhbF9mZWVgLCBvZiB3aGljaCBgdGlwYCB3YXMgYWRkZWQgdG8gdGhlIG1pbmltdW0gaW5jbHVzaW9uIGZlZSxcaGFzIGJlZW4gcGFpZCBieSBgd2hvYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSMEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0FEV2ZW50BARUAAFIHEVyYVBhaWQMASRlcmFfaW5kZXgQASBFcmFJbmRleAABQHZhbGlkYXRvcl9wYXlvdXQYATBCYWxhbmNlT2Y8VD4AASRyZW1haW5kZXIYATBCYWxhbmNlT2Y8VD4AAAhVAVRoZSBlcmEgcGF5b3V0IGhhcyBiZWVuIHNldDsgdGhlIGZpcnN0IGJhbGFuY2UgaXMgdGhlIHZhbGlkYXRvci1wYXlvdXQ7IHRoZSBzZWNvbmQgaXPAdGhlIHJlbWFpbmRlciBmcm9tIHRoZSBtYXhpbXVtIGFtb3VudCBvZiByZXdhcmQuIFJld2FyZGVkDAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAARBkZXN0kAF8UmV3YXJkRGVzdGluYXRpb248VDo6QWNjb3VudElkPgABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABBA0BVGhlIG5vbWluYXRvciBoYXMgYmVlbiByZXdhcmRlZCBieSB0aGlzIGFtb3VudCB0byB0aGlzIGRlc3RpbmF0aW9uLhxTbGFzaGVkCAEYc3Rha2VyAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAIEHQFBIHN0YWtlciAodmFsaWRhdG9yIG9yIG5vbWluYXRvcikgaGFzIGJlZW4gc2xhc2hlZCBieSB0aGUgZ2l2ZW4gYW1vdW50LjRTbGFzaFJlcG9ydGVkDAEkdmFsaWRhdG9yAAEwVDo6QWNjb3VudElkAAEgZnJhY3Rpb26UARxQZXJiaWxsAAEkc2xhc2hfZXJhEAEgRXJhSW5kZXgAAwhZAUEgc2xhc2ggZm9yIHRoZSBnaXZlbiB2YWxpZGF0b3IsIGZvciB0aGUgZ2l2ZW4gcGVyY2VudGFnZSBvZiB0aGVpciBzdGFrZSwgYXQgdGhlIGdpdmVuVGVyYSBhcyBiZWVuIHJlcG9ydGVkLmhPbGRTbGFzaGluZ1JlcG9ydERpc2NhcmRlZAQBNHNlc3Npb25faW5kZXgQATBTZXNzaW9uSW5kZXgABAgZAUFuIG9sZCBzbGFzaGluZyByZXBvcnQgZnJvbSBhIHByaW9yIGVyYSB3YXMgZGlzY2FyZGVkIGJlY2F1c2UgaXQgY291bGREbm90IGJlIHByb2Nlc3NlZC44U3Rha2Vyc0VsZWN0ZWQABQSEQSBuZXcgc2V0IG9mIHN0YWtlcnMgd2FzIGVsZWN0ZWQuGEJvbmRlZAgBFHN0YXNoAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAYQ0EFuIGFjY291bnQgaGFzIGJvbmRlZCB0aGlzIGFtb3VudC4gXFtzdGFzaCwgYW1vdW50XF0ATQFOT1RFOiBUaGlzIGV2ZW50IGlzIG9ubHkgZW1pdHRlZCB3aGVuIGZ1bmRzIGFyZSBib25kZWQgdmlhIGEgZGlzcGF0Y2hhYmxlLiBOb3RhYmx5LCEBaXQgd2lsbCBub3QgYmUgZW1pdHRlZCBmb3Igc3Rha2luZyByZXdhcmRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gc3Rha2UuIFVuYm9uZGVkCAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4ABwSQQW4gYWNjb3VudCBoYXMgdW5ib25kZWQgdGhpcyBhbW91bnQuJFdpdGhkcmF3bggBFHN0YXNoAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAgIWQFBbiBhY2NvdW50IGhhcyBjYWxsZWQgYHdpdGhkcmF3X3VuYm9uZGVkYCBhbmQgcmVtb3ZlZCB1bmJvbmRpbmcgY2h1bmtzIHdvcnRoIGBCYWxhbmNlYGRmcm9tIHRoZSB1bmxvY2tpbmcgcXVldWUuGEtpY2tlZAgBJG5vbWluYXRvcgABMFQ6OkFjY291bnRJZAABFHN0YXNoAAEwVDo6QWNjb3VudElkAAkEtEEgbm9taW5hdG9yIGhhcyBiZWVuIGtpY2tlZCBmcm9tIGEgdmFsaWRhdG9yLlRTdGFraW5nRWxlY3Rpb25GYWlsZWQACgSsVGhlIGVsZWN0aW9uIGZhaWxlZC4gTm8gbmV3IGVyYSBpcyBwbGFubmVkLhxDaGlsbGVkBAEUc3Rhc2gAATBUOjpBY2NvdW50SWQACwQhAUFuIGFjY291bnQgaGFzIHN0b3BwZWQgcGFydGljaXBhdGluZyBhcyBlaXRoZXIgYSB2YWxpZGF0b3Igb3Igbm9taW5hdG9yLjRQYXlvdXRTdGFydGVkCAEkZXJhX2luZGV4EAEgRXJhSW5kZXgAATx2YWxpZGF0b3Jfc3Rhc2gAATBUOjpBY2NvdW50SWQADASYVGhlIHN0YWtlcnMnIHJld2FyZHMgYXJlIGdldHRpbmcgcGFpZC5EVmFsaWRhdG9yUHJlZnNTZXQIARRzdGFzaAABMFQ6OkFjY291bnRJZAABFHByZWZzmAE4VmFsaWRhdG9yUHJlZnMADQSYQSB2YWxpZGF0b3IgaGFzIHNldCB0aGVpciBwcmVmZXJlbmNlcy5oU25hcHNob3RWb3RlcnNTaXplRXhjZWVkZWQEARBzaXplEAEMdTMyAA4EaFZvdGVycyBzaXplIGxpbWl0IHJlYWNoZWQubFNuYXBzaG90VGFyZ2V0c1NpemVFeGNlZWRlZAQBEHNpemUQAQx1MzIADwRsVGFyZ2V0cyBzaXplIGxpbWl0IHJlYWNoZWQuIEZvcmNlRXJhBAEQbW9kZaABHEZvcmNpbmcAEAR0QSBuZXcgZm9yY2UgZXJhIG1vZGUgd2FzIHNldC5kQ29udHJvbGxlckJhdGNoRGVwcmVjYXRlZAQBIGZhaWx1cmVzEAEMdTMyABEEpFJlcG9ydCBvZiBhIGNvbnRyb2xsZXIgYmF0Y2ggZGVwcmVjYXRpb24uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0kAg4cGFsbGV0X3N0YWtpbmdEUmV3YXJkRGVzdGluYXRpb24EJEFjY291bnRJZAEAARQYU3Rha2VkAAAAFFN0YXNoAAEAKENvbnRyb2xsZXIAAgAcQWNjb3VudAQAAAEkQWNjb3VudElkAAMAEE5vbmUABAAAlAw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmJpbGwAAAQAEAEMdTMyAACYCDhwYWxsZXRfc3Rha2luZzhWYWxpZGF0b3JQcmVmcwAACAEoY29tbWlzc2lvbpwBHFBlcmJpbGwAARxibG9ja2VkIAEQYm9vbAAAnAAABpQAoAg4cGFsbGV0X3N0YWtpbmccRm9yY2luZwABEChOb3RGb3JjaW5nAAAAIEZvcmNlTmV3AAEAJEZvcmNlTm9uZQACACxGb3JjZUFsd2F5cwADAACkDDxwYWxsZXRfb2ZmZW5jZXMYcGFsbGV0FEV2ZW50AAEEHE9mZmVuY2UIARBraW5kqAEQS2luZAABIHRpbWVzbG90OAE4T3BhcXVlVGltZVNsb3QAAAxRAVRoZXJlIGlzIGFuIG9mZmVuY2UgcmVwb3J0ZWQgb2YgdGhlIGdpdmVuIGBraW5kYCBoYXBwZW5lZCBhdCB0aGUgYHNlc3Npb25faW5kZXhgIGFuZDUBKGtpbmQtc3BlY2lmaWMpIHRpbWUgc2xvdC4gVGhpcyBldmVudCBpcyBub3QgZGVwb3NpdGVkIGZvciBkdXBsaWNhdGUgc2xhc2hlcy5MXFtraW5kLCB0aW1lc2xvdFxdLgQwRXZlbnRzIHR5cGUuqAAAAxAAAAAIAKwMOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFdmVudAABBChOZXdTZXNzaW9uBAE0c2Vzc2lvbl9pbmRleBABMFNlc3Npb25JbmRleAAACDkBTmV3IHNlc3Npb24gaGFzIGhhcHBlbmVkLiBOb3RlIHRoYXQgdGhlIGFyZ3VtZW50IGlzIHRoZSBzZXNzaW9uIGluZGV4LCBub3QgdGhlnGJsb2NrIG51bWJlciBhcyB0aGUgdHlwZSBtaWdodCBzdWdnZXN0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLAMOHBhbGxldF9ncmFuZHBhGHBhbGxldBRFdmVudAABDDhOZXdBdXRob3JpdGllcwQBNGF1dGhvcml0eV9zZXS0ATRBdXRob3JpdHlMaXN0AAAEjE5ldyBhdXRob3JpdHkgc2V0IGhhcyBiZWVuIGFwcGxpZWQuGFBhdXNlZAABBJhDdXJyZW50IGF1dGhvcml0eSBzZXQgaGFzIGJlZW4gcGF1c2VkLhxSZXN1bWVkAAIEnEN1cnJlbnQgYXV0aG9yaXR5IHNldCBoYXMgYmVlbiByZXN1bWVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLQAAAK4ALgAAAQIvDAAvAxQc3BfY29uc2Vuc3VzX2dyYW5kcGEMYXBwGFB1YmxpYwAABAAEATxlZDI1NTE5OjpQdWJsaWMAAMAMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXZlbnQIBFQABEkAATAgU3BlbmRpbmcEAUBidWRnZXRfcmVtYWluaW5nGAE8QmFsYW5jZU9mPFQsIEk+AAAE5FdlIGhhdmUgZW5kZWQgYSBzcGVuZCBwZXJpb2QgYW5kIHdpbGwgbm93IGFsbG9jYXRlIGZ1bmRzLhxBd2FyZGVkDAE4cHJvcG9zYWxfaW5kZXgQATRQcm9wb3NhbEluZGV4AAEUYXdhcmQYATxCYWxhbmNlT2Y8VCwgST4AARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGFsbG9jYXRlZC4UQnVybnQEASxidXJudF9mdW5kcxgBPEJhbGFuY2VPZjxULCBJPgACBIhTb21lIG9mIG91ciBmdW5kcyBoYXZlIGJlZW4gYnVybnQuIFJvbGxvdmVyBAFAcm9sbG92ZXJfYmFsYW5jZRgBPEJhbGFuY2VPZjxULCBJPgADBC0BU3BlbmRpbmcgaGFzIGZpbmlzaGVkOyB0aGlzIGlzIHRoZSBhbW91bnQgdGhhdCByb2xscyBvdmVyIHVudGlsIG5leHQgc3BlbmQuHERlcG9zaXQEARR2YWx1ZRgBPEJhbGFuY2VPZjxULCBJPgAEBHxTb21lIGZ1bmRzIGhhdmUgYmVlbiBkZXBvc2l0ZWQuNFNwZW5kQXBwcm92ZWQMAThwcm9wb3NhbF9pbmRleBABNFByb3Bvc2FsSW5kZXgAARhhbW91bnQYATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABMFQ6OkFjY291bnRJZAAFBJxBIG5ldyBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC48VXBkYXRlZEluYWN0aXZlCAEscmVhY3RpdmF0ZWQYATxCYWxhbmNlT2Y8VCwgST4AASxkZWFjdGl2YXRlZBgBPEJhbGFuY2VPZjxULCBJPgAGBMxUaGUgaW5hY3RpdmUgZnVuZHMgb2YgdGhlIHBhbGxldCBoYXZlIGJlZW4gdXBkYXRlZC5IQXNzZXRTcGVuZEFwcHJvdmVkGAEUaW5kZXgQAShTcGVuZEluZGV4AAEoYXNzZXRfa2luZMQBMFQ6OkFzc2V0S2luZAABGGFtb3VudBgBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnktAQE4VDo6QmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tEAFEQmxvY2tOdW1iZXJGb3I8VD4AASRleHBpcmVfYXQQAURCbG9ja051bWJlckZvcjxUPgAHBLRBIG5ldyBhc3NldCBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC5AQXNzZXRTcGVuZFZvaWRlZAQBFGluZGV4EAEoU3BlbmRJbmRleAAIBHRBbiBhcHByb3ZlZCBzcGVuZCB3YXMgdm9pZGVkLhBQYWlkCAEUaW5kZXgQAShTcGVuZEluZGV4AAEocGF5bWVudF9pZDABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACQRMQSBwYXltZW50IGhhcHBlbmVkLjRQYXltZW50RmFpbGVkCAEUaW5kZXgQAShTcGVuZEluZGV4AAEocGF5bWVudF9pZDABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACgSQQSBwYXltZW50IGZhaWxlZCBhbmQgY2FuIGJlIHJldHJpZWQuOFNwZW5kUHJvY2Vzc2VkBAEUaW5kZXgQAShTcGVuZEluZGV4AAsITQFBIHNwZW5kIHdhcyBwcm9jZXNzZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZS4gSXQgbWlnaHQgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseXBwYWlkIG9yIGl0IG1heSBoYXZlIGV4cGlyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0xAxccG9sa2Fkb3RfcnVudGltZV9jb21tb24UaW1wbHNcVmVyc2lvbmVkTG9jYXRhYmxlQXNzZXQAAQgIVjMIASBsb2NhdGlvbsgBRHhjbTo6djM6OkxvY2F0aW9uAAEgYXNzZXRfaWTwAUB4Y206OnYzOjpBc3NldElkAAMACFY0CAEgbG9jYXRpb270AUR4Y206OnY0OjpMb2NhdGlvbgABIGFzc2V0X2lkKQEBQHhjbTo6djQ6OkFzc2V0SWQABAAAyBAsc3RhZ2luZ194Y20IdjM0bXVsdGlsb2NhdGlvbjRNdWx0aUxvY2F0aW9uAAAIARxwYXJlbnRzCAEIdTgAASBpbnRlcmlvcswBJEp1bmN0aW9ucwAAzBAMeGNtCHYzJGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQA0AEgSnVuY3Rpb24AAQAIWDIIANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgACAAhYMwwA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgADAAhYNBAA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24ABAAIWDUUANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAFAAhYNhgA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAGAAhYNxwA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24ABwAIWDggANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAA0AEgSnVuY3Rpb24AANABIEp1bmN0aW9uAADQASBKdW5jdGlvbgAIAADQEAx4Y20IdjMganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBADUAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3Jr2AFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya9gBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXgsAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya9gBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V54AEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQA5AEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoCAEIdTgAARBkYXRhBAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlk6AEYQm9keUlkAAEQcGFydOwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQA3AEkTmV0d29ya0lkAAkAANQAAAYQANgEGE9wdGlvbgQEVAHcAQgQTm9uZQAAABBTb21lBADcAAABAADcEAx4Y20IdjMganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyMAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZCwBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAOAAAAMUAAAACADkAAAGGADoEAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQASAEcW3U4OyA0XQABABRJbmRleAQA1AEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAADsEAx4Y20IdjMganVuY3Rpb24gQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW501AEMdTMyAAEAIEZyYWN0aW9uCAEMbm9t1AEMdTMyAAEUZGVub23UAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub23UAQx1MzIAARRkZW5vbdQBDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub23UAQx1MzIAARRkZW5vbdQBDHUzMgAEAADwEAx4Y20IdjMobXVsdGlhc3NldBxBc3NldElkAAEIIENvbmNyZXRlBADIATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAAEASBbdTg7IDMyXQABAAD0ECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3L4ASRKdW5jdGlvbnMAAPgQLHN0YWdpbmdfeGNtCHY0JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQA/AFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBAANAQFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBAARAQFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BAAVAQFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BAAZAQFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BAAdAQFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BAAhAQFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BAAlAQFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAPwAAAMBAAAAAQEAAQEQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uIEp1bmN0aW9uAAEoJFBhcmFjaGFpbgQA1AEMdTMyAAAALEFjY291bnRJZDMyCAEcbmV0d29yawUBAURPcHRpb248TmV0d29ya0lkPgABCGlkBAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JrBQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXgsAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29yawUBAURPcHRpb248TmV0d29ya0lkPgABDGtleeABIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAOQBEHUxMjgABQAoR2VuZXJhbEtleQgBGGxlbmd0aAgBCHU4AAEQZGF0YQQBIFt1ODsgMzJdAAYAJE9ubHlDaGlsZAAHACRQbHVyYWxpdHkIAQhpZOgBGEJvZHlJZAABEHBhcnTsASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAAkBASROZXR3b3JrSWQACQAABQEEGE9wdGlvbgQEVAEJAQEIEE5vbmUAAAAQU29tZQQACQEAAAEAAAkBECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAEASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIwAQx1NjQAAShibG9ja19oYXNoBAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lkLAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAADQEAAAMCAAAAAQEAEQEAAAMDAAAAAQEAFQEAAAMEAAAAAQEAGQEAAAMFAAAAAQEAHQEAAAMGAAAAAQEAIQEAAAMHAAAAAQEAJQEAAAMIAAAAAQEAKQEQLHN0YWdpbmdfeGNtCHY0FGFzc2V0HEFzc2V0SWQAAAQA9AEgTG9jYXRpb24AAC0BCAx4Y21EVmVyc2lvbmVkTG9jYXRpb24AAQwIVjIEADEBAUR2Mjo6TXVsdGlMb2NhdGlvbgABAAhWMwQAyAFEdjM6Ok11bHRpTG9jYXRpb24AAwAIVjQEAPQBMHY0OjpMb2NhdGlvbgAEAAAxARAMeGNtCHYyNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3I1AQEkSnVuY3Rpb25zAAA1ARAMeGNtCHYyNG11bHRpbG9jYXRpb24kSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEADkBASBKdW5jdGlvbgABAAhYMggAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AAgAIWDMMADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AAwAIWDQQADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAEAAhYNRQAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24ABQAIWDYYADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24ABgAIWDccADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAHAAhYOCAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24AADkBASBKdW5jdGlvbgAAOQEBIEp1bmN0aW9uAAA5AQEgSnVuY3Rpb24ACAAAOQEQDHhjbQh2MiBqdW5jdGlvbiBKdW5jdGlvbgABJCRQYXJhY2hhaW4EANQBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcms9AQEkTmV0d29ya0lkAAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcms9AQEkTmV0d29ya0lkAAEUaW5kZXgsAQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29yaz0BASROZXR3b3JrSWQAAQxrZXngASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BADkARB1MTI4AAUAKEdlbmVyYWxLZXkEAEEBAYBXZWFrQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MzI+PgAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWRFAQEYQm9keUlkAAEQcGFydEkBASBCb2R5UGFydAAIAAA9AQwMeGNtCHYyJE5ldHdvcmtJZAABEAxBbnkAAAAUTmFtZWQEAEEBAYBXZWFrQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MzI+PgABACBQb2xrYWRvdAACABhLdXNhbWEAAwAAQQEMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AABFAQwMeGNtCHYyGEJvZHlJZAABKBBVbml0AAAAFE5hbWVkBABBAQGAV2Vha0JvdW5kZWRWZWM8dTgsIENvbnN0VTMyPDMyPj4AAQAUSW5kZXgEANQBDHUzMgACACRFeGVjdXRpdmUAAwAkVGVjaG5pY2FsAAQALExlZ2lzbGF0aXZlAAUAIEp1ZGljaWFsAAYAHERlZmVuc2UABwA4QWRtaW5pc3RyYXRpb24ACAAgVHJlYXN1cnkACQAASQEMDHhjbQh2MiBCb2R5UGFydAABFBRWb2ljZQAAABxNZW1iZXJzBAEUY291bnTUAQx1MzIAAQAgRnJhY3Rpb24IAQxub23UAQx1MzIAARRkZW5vbdQBDHUzMgACAERBdExlYXN0UHJvcG9ydGlvbggBDG5vbdQBDHUzMgABFGRlbm9t1AEMdTMyAAMASE1vcmVUaGFuUHJvcG9ydGlvbggBDG5vbdQBDHUzMgABFGRlbm9t1AEMdTMyAAQAAE0BDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0FEV2ZW50CARUAARJAAEIJERlbGVnYXRlZAgAAAEwVDo6QWNjb3VudElkAAAAATBUOjpBY2NvdW50SWQAAAQdAUFuIGFjY291bnQgaGFzIGRlbGVnYXRlZCB0aGVpciB2b3RlIHRvIGFub3RoZXIgYWNjb3VudC4gXFt3aG8sIHRhcmdldFxdLFVuZGVsZWdhdGVkBAAAATBUOjpBY2NvdW50SWQAAQT0QW4gXFthY2NvdW50XF0gaGFzIGNhbmNlbGxlZCBhIHByZXZpb3VzIGRlbGVnYXRpb24gb3BlcmF0aW9uLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFEBDEBwYWxsZXRfcmVmZXJlbmRhGHBhbGxldBRFdmVudAgEVAAESQABQCRTdWJtaXR0ZWQMARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFja1UBATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbFkBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgAEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzdWJtaXR0ZWQuVERlY2lzaW9uRGVwb3NpdFBsYWNlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAQSUVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcGxhY2VkLlxEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAgScVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuOERlcG9zaXRTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4DBGxBIGRlcG9zaXQgaGFzIGJlZW4gc2xhc2hlZC48RGVjaXNpb25TdGFydGVkEAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2tVAQE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWxZAQFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5UQcBIFQ6OlRhbGx5BLhUaGUgY3VycmVudCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBAS8QSByZWZlcmVuZHVtIGhhcyBtb3ZlZCBpbnRvIHRoZSBkZWNpZGluZyBwaGFzZS44Q29uZmlybVN0YXJ0ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBQA4Q29uZmlybUFib3J0ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBgAkQ29uZmlybWVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHlRBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBwQhAUEgcmVmZXJlbmR1bSBoYXMgZW5kZWQgaXRzIGNvbmZpcm1hdGlvbiBwaGFzZSBhbmQgaXMgcmVhZHkgZm9yIGFwcHJvdmFsLiBBcHByb3ZlZAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4IBA0BQSByZWZlcmVuZHVtIGhhcyBiZWVuIGFwcHJvdmVkIGFuZCBpdHMgcHJvcG9zYWwgaGFzIGJlZW4gc2NoZWR1bGVkLiBSZWplY3RlZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5UQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgkErEEgcHJvcG9zYWwgaGFzIGJlZW4gcmVqZWN0ZWQgYnkgcmVmZXJlbmR1bS4gVGltZWRPdXQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseVEHASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4KBNhBIHJlZmVyZW5kdW0gaGFzIGJlZW4gdGltZWQgb3V0IHdpdGhvdXQgYmVpbmcgZGVjaWRlZC4kQ2FuY2VsbGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHlRBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCwSAQSByZWZlcmVuZHVtIGhhcyBiZWVuIGNhbmNlbGxlZC4YS2lsbGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHlRBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uDAR0QSByZWZlcmVuZHVtIGhhcyBiZWVuIGtpbGxlZC5kU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuDQSkVGhlIHN1Ym1pc3Npb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC4sTWV0YWRhdGFTZXQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoNAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4OBJxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIHNldC48TWV0YWRhdGFDbGVhcmVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaDQBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDwSsTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFUBAAAFBABZARA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMkcHJlaW1hZ2VzHEJvdW5kZWQIBFQBXQEESAFJBwEMGExlZ2FjeQQBEGhhc2g0ASRIOjpPdXRwdXQAAAAYSW5saW5lBABNBwE0Qm91bmRlZElubGluZQABABhMb29rdXAIARBoYXNoNAEkSDo6T3V0cHV0AAEMbGVuEAEMdTMyAAIAAF0BCFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lLFJ1bnRpbWVDYWxsAAHMGFN5c3RlbQQAYQEBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3lzdGVtLCBSdW50aW1lPgAAABBCYWJlBABxAQGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWJlLCBSdW50aW1lPgABACRUaW1lc3RhbXAEAJUBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRpbWVzdGFtcCwgUnVudGltZT4AAgAcSW5kaWNlcwQAmQEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SW5kaWNlcywgUnVudGltZT4AAwAgQmFsYW5jZXMEAKkBAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJhbGFuY2VzLCBSdW50aW1lPgAEABxTdGFraW5nBAC1AQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFraW5nLCBSdW50aW1lPgAGABxTZXNzaW9uBADxAQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTZXNzaW9uLCBSdW50aW1lPgAIABxHcmFuZHBhBAANAgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHcmFuZHBhLCBSdW50aW1lPgAKACBUcmVhc3VyeQQAOQIBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VHJlYXN1cnksIFJ1bnRpbWU+ABIAQENvbnZpY3Rpb25Wb3RpbmcEAEECAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbnZpY3Rpb25Wb3RpbmcsIFJ1bnRpbWU+ABQAJFJlZmVyZW5kYQQAVQIBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVmZXJlbmRhLCBSdW50aW1lPgAVAFBGZWxsb3dzaGlwQ29sbGVjdGl2ZQQAfQIB5QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RmVsbG93c2hpcENvbGxlY3RpdmUsIFJ1bnRpbWU+ABYATEZlbGxvd3NoaXBSZWZlcmVuZGEEAIECAeEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEZlbGxvd3NoaXBSZWZlcmVuZGEsIFJ1bnRpbWU+ABcAJFdoaXRlbGlzdAQAhQIBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8V2hpdGVsaXN0LCBSdW50aW1lPgAsAChQYXJhbWV0ZXJzBACJAgG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhbWV0ZXJzLCBSdW50aW1lPgAuABhDbGFpbXMEALUCAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENsYWltcywgUnVudGltZT4AEwAcVXRpbGl0eQQA1QIBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VXRpbGl0eSwgUnVudGltZT4AGAAcU29jaWV0eQQA3QIBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U29jaWV0eSwgUnVudGltZT4AGgAgUmVjb3ZlcnkEAOECAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlY292ZXJ5LCBSdW50aW1lPgAbABxWZXN0aW5nBADlAgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxWZXN0aW5nLCBSdW50aW1lPgAcACRTY2hlZHVsZXIEAO0CAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNjaGVkdWxlciwgUnVudGltZT4AHQAUUHJveHkEAPkCAakBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByb3h5LCBSdW50aW1lPgAeACBNdWx0aXNpZwQABQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlzaWcsIFJ1bnRpbWU+AB8AIFByZWltYWdlBAARAwG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcmVpbWFnZSwgUnVudGltZT4AIAAgQm91bnRpZXMEABkDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJvdW50aWVzLCBSdW50aW1lPgAjADRDaGlsZEJvdW50aWVzBAAdAwHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDaGlsZEJvdW50aWVzLCBSdW50aW1lPgAoAGhFbGVjdGlvblByb3ZpZGVyTXVsdGlQaGFzZQQAIQMB/QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RWxlY3Rpb25Qcm92aWRlck11bHRpUGhhc2UsIFJ1bnRpbWU+ACUADE5pcwQAdQQBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TmlzLCBSdW50aW1lPgAmAFhOaXNDb3VudGVycGFydEJhbGFuY2VzBAB5BAHtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxOaXNDb3VudGVycGFydEJhbGFuY2VzLCBSdW50aW1lPgAtACRWb3Rlckxpc3QEAH0EAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFZvdGVyTGlzdCwgUnVudGltZT4AJwA8Tm9taW5hdGlvblBvb2xzBACBBAHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxOb21pbmF0aW9uUG9vbHMsIFJ1bnRpbWU+ACkALEZhc3RVbnN0YWtlBAC1BAHBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxGYXN0VW5zdGFrZSwgUnVudGltZT4AKgA0Q29uZmlndXJhdGlvbgQAuQQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29uZmlndXJhdGlvbiwgUnVudGltZT4AMwAsUGFyYXNTaGFyZWQEAN0EAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzU2hhcmVkLCBSdW50aW1lPgA0ADRQYXJhSW5jbHVzaW9uBADhBAHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhSW5jbHVzaW9uLCBSdW50aW1lPgA1ADBQYXJhSW5oZXJlbnQEAOUEAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFJbmhlcmVudCwgUnVudGltZT4ANgAUUGFyYXMEAHEFAakBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzLCBSdW50aW1lPgA4ACxJbml0aWFsaXplcgQAeQUBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SW5pdGlhbGl6ZXIsIFJ1bnRpbWU+ADkAEEhybXAEAH0FAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhybXAsIFJ1bnRpbWU+ADwANFBhcmFzRGlzcHV0ZXMEAIUFAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzRGlzcHV0ZXMsIFJ1bnRpbWU+AD4ANFBhcmFzU2xhc2hpbmcEAIkFAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzU2xhc2hpbmcsIFJ1bnRpbWU+AD8AaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyBACZBQH9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlciwgUnVudGltZT4AQAAkUmVnaXN0cmFyBACdBQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWdpc3RyYXIsIFJ1bnRpbWU+AEYAFFNsb3RzBAChBQGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTbG90cywgUnVudGltZT4ARwAgQXVjdGlvbnMEAKUFAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEF1Y3Rpb25zLCBSdW50aW1lPgBIACRDcm93ZGxvYW4EAK0FAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENyb3dkbG9hbiwgUnVudGltZT4ASQAgQ29yZXRpbWUEAMEFAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvcmV0aW1lLCBSdW50aW1lPgBKACRYY21QYWxsZXQEANUFAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbVBhbGxldCwgUnVudGltZT4AYwAwTWVzc2FnZVF1ZXVlBAARBwHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNZXNzYWdlUXVldWUsIFJ1bnRpbWU+AGQAJEFzc2V0UmF0ZQQAHQcBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSYXRlLCBSdW50aW1lPgBlABRCZWVmeQQAJQcBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmVlZnksIFJ1bnRpbWU+AMgAAGEBDDBmcmFtZV9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAASwYcmVtYXJrBAEYcmVtYXJrOAEcVmVjPHU4PgAADGhNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLgCIQ2FuIGJlIGV4ZWN1dGVkIGJ5IGV2ZXJ5IGBvcmlnaW5gLjhzZXRfaGVhcF9wYWdlcwQBFHBhZ2VzMAEMdTY0AAEE+FNldCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBXZWJBc3NlbWJseSBlbnZpcm9ubWVudCdzIGhlYXAuIHNldF9jb2RlBAEQY29kZTgBHFZlYzx1OD4AAgRkU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlLlxzZXRfY29kZV93aXRob3V0X2NoZWNrcwQBEGNvZGU4ARxWZWM8dTg+AAMQGQFTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUgd2l0aG91dCBkb2luZyBhbnkgY2hlY2tzIG9mIHRoZSBnaXZlbiBgY29kZWAuAFEBTm90ZSB0aGF0IHJ1bnRpbWUgdXBncmFkZXMgd2lsbCBub3QgcnVuIGlmIHRoaXMgaXMgY2FsbGVkIHdpdGggYSBub3QtaW5jcmVhc2luZyBzcGVjIHZlcnNpb24hLHNldF9zdG9yYWdlBAEUaXRlbXNlAQE0VmVjPEtleVZhbHVlPgAEBGhTZXQgc29tZSBpdGVtcyBvZiBzdG9yYWdlLjBraWxsX3N0b3JhZ2UEARBrZXlzbQEBIFZlYzxLZXk+AAUEdEtpbGwgc29tZSBpdGVtcyBmcm9tIHN0b3JhZ2UuLGtpbGxfcHJlZml4CAEYcHJlZml4OAEMS2V5AAEcc3Via2V5cxABDHUzMgAGEBEBS2lsbCBhbGwgc3RvcmFnZSBpdGVtcyB3aXRoIGEga2V5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHByZWZpeC4AOQEqKk5PVEU6KiogV2UgcmVseSBvbiB0aGUgUm9vdCBvcmlnaW4gdG8gcHJvdmlkZSB1cyB0aGUgbnVtYmVyIG9mIHN1YmtleXMgdW5kZXI9AXRoZSBwcmVmaXggd2UgYXJlIHJlbW92aW5nIHRvIGFjY3VyYXRlbHkgY2FsY3VsYXRlIHRoZSB3ZWlnaHQgb2YgdGhpcyBmdW5jdGlvbi5EcmVtYXJrX3dpdGhfZXZlbnQEARhyZW1hcms4ARxWZWM8dTg+AAcEpE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsgYW5kIGVtaXQgZXZlbnQuRGF1dGhvcml6ZV91cGdyYWRlBAEkY29kZV9oYXNoNAEcVDo6SGFzaAAJEGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi6AYXV0aG9yaXplX3VwZ3JhZGVfd2l0aG91dF9jaGVja3MEASRjb2RlX2hhc2g0ARxUOjpIYXNoAAogYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgBdAVdBUk5JTkc6IFRoaXMgYXV0aG9yaXplcyBhbiB1cGdyYWRlIHRoYXQgd2lsbCB0YWtlIHBsYWNlIHdpdGhvdXQgYW55IHNhZmV0eSBjaGVja3MsIGZvclkBZXhhbXBsZSB0aGF0IHRoZSBzcGVjIG5hbWUgcmVtYWlucyB0aGUgc2FtZSBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaW5jcmVhc2VzLiBOb3TwcmVjb21tZW5kZWQgZm9yIG5vcm1hbCB1c2UuIFVzZSBgYXV0aG9yaXplX3VwZ3JhZGVgIGluc3RlYWQuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4uYGFwcGx5X2F1dGhvcml6ZWRfdXBncmFkZQQBEGNvZGU4ARxWZWM8dTg+AAskVQFQcm92aWRlIHRoZSBwcmVpbWFnZSAocnVudGltZSBiaW5hcnkpIGBjb2RlYCBmb3IgYW4gdXBncmFkZSB0aGF0IGhhcyBiZWVuIGF1dGhvcml6ZWQuAEkBSWYgdGhlIGF1dGhvcml6YXRpb24gcmVxdWlyZWQgYSB2ZXJzaW9uIGNoZWNrLCB0aGlzIGNhbGwgd2lsbCBlbnN1cmUgdGhlIHNwZWMgbmFtZehyZW1haW5zIHVuY2hhbmdlZCBhbmQgdGhhdCB0aGUgc3BlYyB2ZXJzaW9uIGhhcyBpbmNyZWFzZWQuAFkBRGVwZW5kaW5nIG9uIHRoZSBydW50aW1lJ3MgYE9uU2V0Q29kZWAgY29uZmlndXJhdGlvbiwgdGhpcyBmdW5jdGlvbiBtYXkgZGlyZWN0bHkgYXBwbHkRAXRoZSBuZXcgYGNvZGVgIGluIHRoZSBzYW1lIGJsb2NrIG9yIGF0dGVtcHQgdG8gc2NoZWR1bGUgdGhlIHVwZ3JhZGUuAGBBbGwgb3JpZ2lucyBhcmUgYWxsb3dlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuZQEAAAJpAQBpAQAABAg4OABtAQAAAjgAcQEMLHBhbGxldF9iYWJlGHBhbGxldBBDYWxsBARUAAEMTHJlcG9ydF9lcXVpdm9jYXRpb24IAUhlcXVpdm9jYXRpb25fcHJvb2Z1AQGQQm94PEVxdWl2b2NhdGlvblByb29mPEhlYWRlckZvcjxUPj4+AAE8a2V5X293bmVyX3Byb29mhQEBQFQ6OktleU93bmVyUHJvb2YAABAJAVJlcG9ydCBhdXRob3JpdHkgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeQUBdGhlIGVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2YNAWFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlIHdpbGwwYmUgcmVwb3J0ZWQucHJlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2Z1AQGQQm94PEVxdWl2b2NhdGlvblByb29mPEhlYWRlckZvcjxUPj4+AAE8a2V5X293bmVyX3Byb29mhQEBQFQ6OktleU93bmVyUHJvb2YAASAJAVJlcG9ydCBhdXRob3JpdHkgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeQUBdGhlIGVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2YNAWFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlIHdpbGwwYmUgcmVwb3J0ZWQuDQFUaGlzIGV4dHJpbnNpYyBtdXN0IGJlIGNhbGxlZCB1bnNpZ25lZCBhbmQgaXQgaXMgZXhwZWN0ZWQgdGhhdCBvbmx5FQFibG9jayBhdXRob3JzIHdpbGwgY2FsbCBpdCAodmFsaWRhdGVkIGluIGBWYWxpZGF0ZVVuc2lnbmVkYCksIGFzIHN1Y2gVAWlmIHRoZSBibG9jayBhdXRob3IgaXMgZGVmaW5lZCBpdCB3aWxsIGJlIGRlZmluZWQgYXMgdGhlIGVxdWl2b2NhdGlvbiRyZXBvcnRlci5IcGxhbl9jb25maWdfY2hhbmdlBAEYY29uZmlniQEBUE5leHRDb25maWdEZXNjcmlwdG9yAAIQXQFQbGFuIGFuIGVwb2NoIGNvbmZpZyBjaGFuZ2UuIFRoZSBlcG9jaCBjb25maWcgY2hhbmdlIGlzIHJlY29yZGVkIGFuZCB3aWxsIGJlIGVuYWN0ZWQgb25RAXRoZSBuZXh0IGNhbGwgdG8gYGVuYWN0X2Vwb2NoX2NoYW5nZWAuIFRoZSBjb25maWcgd2lsbCBiZSBhY3RpdmF0ZWQgb25lIGVwb2NoIGFmdGVyLlkBTXVsdGlwbGUgY2FsbHMgdG8gdGhpcyBtZXRob2Qgd2lsbCByZXBsYWNlIGFueSBleGlzdGluZyBwbGFubmVkIGNvbmZpZyBjaGFuZ2UgdGhhdCBoYWRUbm90IGJlZW4gZW5hY3RlZCB5ZXQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnUBCEhzcF9jb25zZW5zdXNfc2xvdHNERXF1aXZvY2F0aW9uUHJvb2YIGEhlYWRlcgF5AQhJZAF9AQAQASBvZmZlbmRlcn0BAQhJZAABEHNsb3SBAQEQU2xvdAABMGZpcnN0X2hlYWRlcnkBARhIZWFkZXIAATRzZWNvbmRfaGVhZGVyeQEBGEhlYWRlcgAAeQEQKHNwX3J1bnRpbWUcZ2VuZXJpYxhoZWFkZXIYSGVhZGVyCBhOdW1iZXIBEBBIYXNoAAAUASxwYXJlbnRfaGFzaDQBMEhhc2g6Ok91dHB1dAABGG51bWJlctQBGE51bWJlcgABKHN0YXRlX3Jvb3Q0ATBIYXNoOjpPdXRwdXQAATxleHRyaW5zaWNzX3Jvb3Q0ATBIYXNoOjpPdXRwdXQAARhkaWdlc3Q8ARhEaWdlc3QAAH0BDERzcF9jb25zZW5zdXNfYmFiZQxhcHAYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAAgQEISHNwX2NvbnNlbnN1c19zbG90cxBTbG90AAAEADABDHU2NAAAhQEIKHNwX3Nlc3Npb248TWVtYmVyc2hpcFByb29mAAAMARxzZXNzaW9uEAEwU2Vzc2lvbkluZGV4AAEodHJpZV9ub2Rlc20BATBWZWM8VmVjPHU4Pj4AATx2YWxpZGF0b3JfY291bnQQAThWYWxpZGF0b3JDb3VudAAAiQEMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNQTmV4dENvbmZpZ0Rlc2NyaXB0b3IAAQQIVjEIAQRjjQEBKCh1NjQsIHU2NCkAATRhbGxvd2VkX3Nsb3RzkQEBMEFsbG93ZWRTbG90cwABAACNAQAABAgwMACRAQhEc3BfY29uc2Vuc3VzX2JhYmUwQWxsb3dlZFNsb3RzAAEMMFByaW1hcnlTbG90cwAAAHRQcmltYXJ5QW5kU2Vjb25kYXJ5UGxhaW5TbG90cwABAGxQcmltYXJ5QW5kU2Vjb25kYXJ5VlJGU2xvdHMAAgAAlQEMQHBhbGxldF90aW1lc3RhbXAYcGFsbGV0EENhbGwEBFQAAQQMc2V0BAEMbm93LAEkVDo6TW9tZW50AABMVFNldCB0aGUgY3VycmVudCB0aW1lLgBVAVRoaXMgY2FsbCBzaG91bGQgYmUgaW52b2tlZCBleGFjdGx5IG9uY2UgcGVyIGJsb2NrLiBJdCB3aWxsIHBhbmljIGF0IHRoZSBmaW5hbGl6YXRpb27UcGhhc2UsIGlmIHRoaXMgY2FsbCBoYXNuJ3QgYmVlbiBpbnZva2VkIGJ5IHRoYXQgdGltZS4AQQFUaGUgdGltZXN0YW1wIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhlIHByZXZpb3VzIG9uZSBieSB0aGUgYW1vdW50IHNwZWNpZmllZCBieWhbYENvbmZpZzo6TWluaW11bVBlcmlvZGBdLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX05vbmVfLgBRAVRoaXMgZGlzcGF0Y2ggY2xhc3MgaXMgX01hbmRhdG9yeV8gdG8gZW5zdXJlIGl0IGdldHMgZXhlY3V0ZWQgaW4gdGhlIGJsb2NrLiBCZSBhd2FyZVEBdGhhdCBjaGFuZ2luZyB0aGUgY29tcGxleGl0eSBvZiB0aGlzIGNhbGwgY291bGQgcmVzdWx0IGV4aGF1c3RpbmcgdGhlIHJlc291cmNlcyBpbiBhhGJsb2NrIHRvIGV4ZWN1dGUgYW55IG90aGVyIGNhbGxzLgA0IyMgQ29tcGxleGl0eTEBLSBgTygxKWAgKE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgb2YgYE9uVGltZXN0YW1wU2V0YCBtdXN0IGFsc28gYmUgYE8oMSlgKVUBLSAxIHN0b3JhZ2UgcmVhZCBhbmQgMSBzdG9yYWdlIG11dGF0aW9uIChjb2RlYyBgTygxKWAgYmVjYXVzZSBvZiBgRGlkVXBkYXRlOjp0YWtlYCBpbkAgIGBvbl9maW5hbGl6ZWAp1C0gMSBldmVudCBoYW5kbGVyIGBvbl90aW1lc3RhbXBfc2V0YC4gTXVzdCBiZSBgTygxKWAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpkBDDhwYWxsZXRfaW5kaWNlcxhwYWxsZXQQQ2FsbAQEVAABFBRjbGFpbQQBFGluZGV4EAE8VDo6QWNjb3VudEluZGV4AAAwmEFzc2lnbiBhbiBwcmV2aW91c2x5IHVuYXNzaWduZWQgaW5kZXguANxQYXltZW50OiBgRGVwb3NpdGAgaXMgcmVzZXJ2ZWQgZnJvbSB0aGUgc2VuZGVyIGFjY291bnQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A8C0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIGNsYWltZWQuIFRoaXMgbXVzdCBub3QgYmUgaW4gdXNlLgCQRW1pdHMgYEluZGV4QXNzaWduZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLiB0cmFuc2ZlcggBDG5ld50BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGluZGV4EAE8VDo6QWNjb3VudEluZGV4AAEwXQFBc3NpZ24gYW4gaW5kZXggYWxyZWFkeSBvd25lZCBieSB0aGUgc2VuZGVyIHRvIGFub3RoZXIgYWNjb3VudC4gVGhlIGJhbGFuY2UgcmVzZXJ2YXRpb264aXMgZWZmZWN0aXZlbHkgdHJhbnNmZXJyZWQgdG8gdGhlIG5ldyBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACUBLSBgaW5kZXhgOiB0aGUgaW5kZXggdG8gYmUgcmUtYXNzaWduZWQuIFRoaXMgbXVzdCBiZSBvd25lZCBieSB0aGUgc2VuZGVyLl0BLSBgbmV3YDogdGhlIG5ldyBvd25lciBvZiB0aGUgaW5kZXguIFRoaXMgZnVuY3Rpb24gaXMgYSBuby1vcCBpZiBpdCBpcyBlcXVhbCB0byBzZW5kZXIuAJBFbWl0cyBgSW5kZXhBc3NpZ25lZGAgaWYgc3VjY2Vzc2Z1bC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuEGZyZWUEARRpbmRleBABPFQ6OkFjY291bnRJbmRleAACMJRGcmVlIHVwIGFuIGluZGV4IG93bmVkIGJ5IHRoZSBzZW5kZXIuAF0BUGF5bWVudDogQW55IHByZXZpb3VzIGRlcG9zaXQgcGxhY2VkIGZvciB0aGUgaW5kZXggaXMgdW5yZXNlcnZlZCBpbiB0aGUgc2VuZGVyIGFjY291bnQuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBvd24gdGhlIGluZGV4LgANAS0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIGZyZWVkLiBUaGlzIG11c3QgYmUgb3duZWQgYnkgdGhlIHNlbmRlci4AhEVtaXRzIGBJbmRleEZyZWVkYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC44Zm9yY2VfdHJhbnNmZXIMAQxuZXedAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRpbmRleBABPFQ6OkFjY291bnRJbmRleAABGGZyZWV6ZSABEGJvb2wAAzRVAUZvcmNlIGFuIGluZGV4IHRvIGFuIGFjY291bnQuIFRoaXMgZG9lc24ndCByZXF1aXJlIGEgZGVwb3NpdC4gSWYgdGhlIGluZGV4IGlzIGFscmVhZHnoaGVsZCwgdGhlbiBhbnkgZGVwb3NpdCBpcyByZWltYnVyc2VkIHRvIGl0cyBjdXJyZW50IG93bmVyLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgCkLSBgaW5kZXhgOiB0aGUgaW5kZXggdG8gYmUgKHJlLSlhc3NpZ25lZC5dAS0gYG5ld2A6IHRoZSBuZXcgb3duZXIgb2YgdGhlIGluZGV4LiBUaGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AgaWYgaXQgaXMgZXF1YWwgdG8gc2VuZGVyLkEBLSBgZnJlZXplYDogaWYgc2V0IHRvIGB0cnVlYCwgd2lsbCBmcmVlemUgdGhlIGluZGV4IHNvIGl0IGNhbm5vdCBiZSB0cmFuc2ZlcnJlZC4AkEVtaXRzIGBJbmRleEFzc2lnbmVkYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC4YZnJlZXplBAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgABDBBAUZyZWV6ZSBhbiBpbmRleCBzbyBpdCB3aWxsIGFsd2F5cyBwb2ludCB0byB0aGUgc2VuZGVyIGFjY291bnQuIFRoaXMgY29uc3VtZXMgdGhlIGRlcG9zaXQuAFkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBoYXZlIGFsbm9uLWZyb3plbiBhY2NvdW50IGBpbmRleGAuAKwtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSBmcm96ZW4gaW4gcGxhY2UuAIhFbWl0cyBgSW5kZXhGcm96ZW5gIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6dAQwoc3BfcnVudGltZTBtdWx0aWFkZHJlc3MwTXVsdGlBZGRyZXNzCCRBY2NvdW50SWQBADBBY2NvdW50SW5kZXgBoQEBFAhJZAQAAAEkQWNjb3VudElkAAAAFEluZGV4BAClAQEwQWNjb3VudEluZGV4AAEADFJhdwQAOAEcVmVjPHU4PgACACRBZGRyZXNzMzIEAAQBIFt1ODsgMzJdAAMAJEFkZHJlc3MyMAQA4AEgW3U4OyAyMF0ABAAAoQEAAAQAAKUBAAAGoQEAqQEMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3SdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZeQBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2WdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXkAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXkAShUOjpCYWxhbmNlAAMYWQFTYW1lIGFzIHRoZSBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gY2FsbCwgYnV0IHdpdGggYSBjaGVjayB0aGF0IHRoZSB0cmFuc2ZlciB3aWxsIG5vdGBraWxsIHRoZSBvcmlnaW4gYWNjb3VudC4A6Dk5JSBvZiB0aGUgdGltZSB5b3Ugd2FudCBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gaW5zdGVhZC4A8FtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXTogc3RydWN0LlBhbGxldC5odG1sI21ldGhvZC50cmFuc2ZlcjB0cmFuc2Zlcl9hbGwIARBkZXN0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZSABEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50GAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG+tAQFEVmVjPFQ6OkFjY291bnRJZD4ABiBwVXBncmFkZSBhIHNwZWNpZmllZCBhY2NvdW50LgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC6QLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdXBncmFkZWQuAFUBVGhpcyB3aWxsIHdhaXZlIHRoZSB0cmFuc2FjdGlvbiBmZWUgaWYgYXQgbGVhc3QgYWxsIGJ1dCAxMCUgb2YgdGhlIGFjY291bnRzIG5lZWRlZCB0b0EBYmUgdXBncmFkZWQuIChXZSBsZXQgc29tZSBub3QgaGF2ZSB0byBiZSB1cGdyYWRlZCBqdXN0IGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGVYcG9zc2liaWxpdHkgb2YgY2h1cm4pLkRmb3JjZV9zZXRfYmFsYW5jZQgBDHdob50BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVl5AEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb26xAQFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRh5AEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWXkAShUOjpCYWxhbmNlAAEoa2VlcF9hbGl2ZSABEGJvb2wAChz8QnVybiB0aGUgc3BlY2lmaWVkIGxpcXVpZCBmcmVlIGJhbGFuY2UgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQuACUBSWYgdGhlIG9yaWdpbidzIGFjY291bnQgZW5kcyB1cCBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdAkBb2YgdGhlIGJ1cm4gYW5kIGBrZWVwX2FsaXZlYCBpcyBmYWxzZSwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuAFEBVW5saWtlIHNlbmRpbmcgZnVuZHMgdG8gYSBfYnVybl8gYWRkcmVzcywgd2hpY2ggbWVyZWx5IG1ha2VzIHRoZSBmdW5kcyBpbmFjY2Vzc2libGUsIQF0aGlzIGBidXJuYCBvcGVyYXRpb24gd2lsbCByZWR1Y2UgdG90YWwgaXNzdWFuY2UgYnkgdGhlIGFtb3VudCBfYnVybmVkXy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMurQEAAAIAALEBDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXNMQWRqdXN0bWVudERpcmVjdGlvbgABCCBJbmNyZWFzZQAAACBEZWNyZWFzZQABAAC1ARA4cGFsbGV0X3N0YWtpbmcYcGFsbGV0GHBhbGxldBBDYWxsBARUAAF4EGJvbmQIARR2YWx1ZeQBMEJhbGFuY2VPZjxUPgABFHBheWVlkAF8UmV3YXJkRGVzdGluYXRpb248VDo6QWNjb3VudElkPgAAQGEBVGFrZSB0aGUgb3JpZ2luIGFjY291bnQgYXMgYSBzdGFzaCBhbmQgbG9jayB1cCBgdmFsdWVgIG9mIGl0cyBiYWxhbmNlLiBgY29udHJvbGxlcmAgd2lsbIBiZSB0aGUgYWNjb3VudCB0aGF0IGNvbnRyb2xzIGl0LgAtAWB2YWx1ZWAgbXVzdCBiZSBtb3JlIHRoYW4gdGhlIGBtaW5pbXVtX2JhbGFuY2VgIHNwZWNpZmllZCBieSBgVDo6Q3VycmVuY3lgLgAhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBzdGFzaCBhY2NvdW50LgA8RW1pdHMgYEJvbmRlZGAuNCMjIENvbXBsZXhpdHnQLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBNb2RlcmF0ZSBjb21wbGV4aXR5LhwtIE8oMSkuZC0gVGhyZWUgZXh0cmEgREIgZW50cmllcy4ATQFOT1RFOiBUd28gb2YgdGhlIHN0b3JhZ2Ugd3JpdGVzIChgU2VsZjo6Ym9uZGVkYCwgYFNlbGY6OnBheWVlYCkgYXJlIF9uZXZlcl8gY2xlYW5lZFkBdW5sZXNzIHRoZSBgb3JpZ2luYCBmYWxscyBiZWxvdyBfZXhpc3RlbnRpYWwgZGVwb3NpdF8gKG9yIGVxdWFsIHRvIDApIGFuZCBnZXRzIHJlbW92ZWQgYXMgZHVzdC4oYm9uZF9leHRyYQQBOG1heF9hZGRpdGlvbmFs5AEwQmFsYW5jZU9mPFQ+AAE4YQFBZGQgc29tZSBleHRyYSBhbW91bnQgdGhhdCBoYXZlIGFwcGVhcmVkIGluIHRoZSBzdGFzaCBgZnJlZV9iYWxhbmNlYCBpbnRvIHRoZSBiYWxhbmNlIHVwMGZvciBzdGFraW5nLgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBzdGFzaCwgbm90IHRoZSBjb250cm9sbGVyLgBNAVVzZSB0aGlzIGlmIHRoZXJlIGFyZSBhZGRpdGlvbmFsIGZ1bmRzIGluIHlvdXIgc3Rhc2ggYWNjb3VudCB0aGF0IHlvdSB3aXNoIHRvIGJvbmQuVQFVbmxpa2UgW2Bib25kYF0oU2VsZjo6Ym9uZCkgb3IgW2B1bmJvbmRgXShTZWxmOjp1bmJvbmQpIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgaW1wb3NlvGFueSBsaW1pdGF0aW9uIG9uIHRoZSBhbW91bnQgdGhhdCBjYW4gYmUgYWRkZWQuADxFbWl0cyBgQm9uZGVkYC4ANCMjIENvbXBsZXhpdHnkLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkuHC0gTygxKS4YdW5ib25kBAEUdmFsdWXkATBCYWxhbmNlT2Y8VD4AAkxRAVNjaGVkdWxlIGEgcG9ydGlvbiBvZiB0aGUgc3Rhc2ggdG8gYmUgdW5sb2NrZWQgcmVhZHkgZm9yIHRyYW5zZmVyIG91dCBhZnRlciB0aGUgYm9uZPxwZXJpb2QgZW5kcy4gSWYgdGhpcyBsZWF2ZXMgYW4gYW1vdW50IGFjdGl2ZWx5IGJvbmRlZCBsZXNzIHRoYW4hAVQ6OkN1cnJlbmN5OjptaW5pbXVtX2JhbGFuY2UoKSwgdGhlbiBpdCBpcyBpbmNyZWFzZWQgdG8gdGhlIGZ1bGwgYW1vdW50LgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgBFAU9uY2UgdGhlIHVubG9jayBwZXJpb2QgaXMgZG9uZSwgeW91IGNhbiBjYWxsIGB3aXRoZHJhd191bmJvbmRlZGAgdG8gYWN0dWFsbHkgbW92Zbx0aGUgZnVuZHMgb3V0IG9mIG1hbmFnZW1lbnQgcmVhZHkgZm9yIHRyYW5zZmVyLgAxAU5vIG1vcmUgdGhhbiBhIGxpbWl0ZWQgbnVtYmVyIG9mIHVubG9ja2luZyBjaHVua3MgKHNlZSBgTWF4VW5sb2NraW5nQ2h1bmtzYClBAWNhbiBjby1leGlzdHMgYXQgdGhlIHNhbWUgdGltZS4gSWYgdGhlcmUgYXJlIG5vIHVubG9ja2luZyBjaHVua3Mgc2xvdHMgYXZhaWxhYmxlRQFbYENhbGw6OndpdGhkcmF3X3VuYm9uZGVkYF0gaXMgY2FsbGVkIHRvIHJlbW92ZSBzb21lIG9mIHRoZSBjaHVua3MgKGlmIHBvc3NpYmxlKS4AOQFJZiBhIHVzZXIgZW5jb3VudGVycyB0aGUgYEluc3VmZmljaWVudEJvbmRgIGVycm9yIHdoZW4gY2FsbGluZyB0aGlzIGV4dHJpbnNpYywZAXRoZXkgc2hvdWxkIGNhbGwgYGNoaWxsYCBmaXJzdCBpbiBvcmRlciB0byBmcmVlIHVwIHRoZWlyIGJvbmRlZCBmdW5kcy4AREVtaXRzIGBVbmJvbmRlZGAuAJRTZWUgYWxzbyBbYENhbGw6OndpdGhkcmF3X3VuYm9uZGVkYF0uRHdpdGhkcmF3X3VuYm9uZGVkBAFIbnVtX3NsYXNoaW5nX3NwYW5zEAEMdTMyAANcKQFSZW1vdmUgYW55IHVubG9ja2VkIGNodW5rcyBmcm9tIHRoZSBgdW5sb2NraW5nYCBxdWV1ZSBmcm9tIG91ciBtYW5hZ2VtZW50LgBVAVRoaXMgZXNzZW50aWFsbHkgZnJlZXMgdXAgdGhhdCBiYWxhbmNlIHRvIGJlIHVzZWQgYnkgdGhlIHN0YXNoIGFjY291bnQgdG8gZG8gd2hhdGV2ZXIkaXQgd2FudHMuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIuAEhFbWl0cyBgV2l0aGRyYXduYC4AaFNlZSBhbHNvIFtgQ2FsbDo6dW5ib25kYF0uADQjIyBQYXJhbWV0ZXJzAFEBLSBgbnVtX3NsYXNoaW5nX3NwYW5zYCBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBtZXRhZGF0YSBzbGFzaGluZyBzcGFucyB0byBjbGVhciB3aGVuVQF0aGlzIGNhbGwgcmVzdWx0cyBpbiBhIGNvbXBsZXRlIHJlbW92YWwgb2YgYWxsIHRoZSBkYXRhIHJlbGF0ZWQgdG8gdGhlIHN0YXNoIGFjY291bnQuPQFJbiB0aGlzIGNhc2UsIHRoZSBgbnVtX3NsYXNoaW5nX3NwYW5zYCBtdXN0IGJlIGxhcmdlciBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mXQFzbGFzaGluZyBzcGFucyBhc3NvY2lhdGVkIHdpdGggdGhlIHN0YXNoIGFjY291bnQgaW4gdGhlIFtgU2xhc2hpbmdTcGFuc2BdIHN0b3JhZ2UgdHlwZSwlAW90aGVyd2lzZSB0aGUgY2FsbCB3aWxsIGZhaWwuIFRoZSBjYWxsIHdlaWdodCBpcyBkaXJlY3RseSBwcm9wb3J0aW9uYWwgdG9UYG51bV9zbGFzaGluZ19zcGFuc2AuADQjIyBDb21wbGV4aXR52E8oUykgd2hlcmUgUyBpcyB0aGUgbnVtYmVyIG9mIHNsYXNoaW5nIHNwYW5zIHRvIHJlbW92ZQkBTk9URTogV2VpZ2h0IGFubm90YXRpb24gaXMgdGhlIGtpbGwgc2NlbmFyaW8sIHdlIHJlZnVuZCBvdGhlcndpc2UuIHZhbGlkYXRlBAEUcHJlZnOYAThWYWxpZGF0b3JQcmVmcwAEFOREZWNsYXJlIHRoZSBkZXNpcmUgdG8gdmFsaWRhdGUgZm9yIHRoZSBvcmlnaW4gY29udHJvbGxlci4A2EVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLiBub21pbmF0ZQQBHHRhcmdldHO5AQFkVmVjPEFjY291bnRJZExvb2t1cE9mPFQ+PgAFKA0BRGVjbGFyZSB0aGUgZGVzaXJlIHRvIG5vbWluYXRlIGB0YXJnZXRzYCBmb3IgdGhlIG9yaWdpbiBjb250cm9sbGVyLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guADQjIyBDb21wbGV4aXR5LQEtIFRoZSB0cmFuc2FjdGlvbidzIGNvbXBsZXhpdHkgaXMgcHJvcG9ydGlvbmFsIHRvIHRoZSBzaXplIG9mIGB0YXJnZXRzYCAoTikFAXdoaWNoIGlzIGNhcHBlZCBhdCBDb21wYWN0QXNzaWdubWVudHM6OkxJTUlUIChUOjpNYXhOb21pbmF0aW9ucyku1C0gQm90aCB0aGUgcmVhZHMgYW5kIHdyaXRlcyBmb2xsb3cgYSBzaW1pbGFyIHBhdHRlcm4uFGNoaWxsAAYoxERlY2xhcmUgbm8gZGVzaXJlIHRvIGVpdGhlciB2YWxpZGF0ZSBvciBub21pbmF0ZS4A2EVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgA0IyMgQ29tcGxleGl0eeQtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS5QLSBDb250YWlucyBvbmUgcmVhZC7ELSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LiRzZXRfcGF5ZWUEARRwYXllZZABfFJld2FyZERlc3RpbmF0aW9uPFQ6OkFjY291bnRJZD4ABzC0KFJlLSlzZXQgdGhlIHBheW1lbnQgdGFyZ2V0IGZvciBhIGNvbnRyb2xsZXIuAFEBRWZmZWN0cyB3aWxsIGJlIGZlbHQgaW5zdGFudGx5IChhcyBzb29uIGFzIHRoaXMgZnVuY3Rpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guADQjIyBDb21wbGV4aXR5GC0gTygxKeQtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS6ULSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLsQtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuJC0tLS0tLS0tLThzZXRfY29udHJvbGxlcgAIOEUBKFJlLSlzZXRzIHRoZSBjb250cm9sbGVyIG9mIGEgc3Rhc2ggdG8gdGhlIHN0YXNoIGl0c2VsZi4gVGhpcyBmdW5jdGlvbiBwcmV2aW91c2x5TQFhY2NlcHRlZCBhIGBjb250cm9sbGVyYCBhcmd1bWVudCB0byBzZXQgdGhlIGNvbnRyb2xsZXIgdG8gYW4gYWNjb3VudCBvdGhlciB0aGFuIHRoZVkBc3Rhc2ggaXRzZWxmLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaGFzIG5vdyBiZWVuIHJlbW92ZWQsIG5vdyBvbmx5IHNldHRpbmcgdGhlIGNvbnRyb2xsZXKMdG8gdGhlIHN0YXNoLCBpZiBpdCBpcyBub3QgYWxyZWFkeS4AUQFFZmZlY3RzIHdpbGwgYmUgZmVsdCBpbnN0YW50bHkgKGFzIHNvb24gYXMgdGhpcyBmdW5jdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KS4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgc3Rhc2gsIG5vdCB0aGUgY29udHJvbGxlci4ANCMjIENvbXBsZXhpdHkQTygxKeQtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS6ULSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLsQtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuTHNldF92YWxpZGF0b3JfY291bnQEAQxuZXfUAQx1MzIACRiQU2V0cyB0aGUgaWRlYWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4ANCMjIENvbXBsZXhpdHkQTygxKWBpbmNyZWFzZV92YWxpZGF0b3JfY291bnQEAShhZGRpdGlvbmFs1AEMdTMyAAoc6EluY3JlbWVudHMgdGhlIGlkZWFsIG51bWJlciBvZiB2YWxpZGF0b3JzIHVwIHRvIG1heGltdW0gb2aMYEVsZWN0aW9uUHJvdmlkZXJCYXNlOjpNYXhXaW5uZXJzYC4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LgA0IyMgQ29tcGxleGl0eZhTYW1lIGFzIFtgU2VsZjo6c2V0X3ZhbGlkYXRvcl9jb3VudGBdLlRzY2FsZV92YWxpZGF0b3JfY291bnQEARhmYWN0b3K9AQEcUGVyY2VudAALHBEBU2NhbGUgdXAgdGhlIGlkZWFsIG51bWJlciBvZiB2YWxpZGF0b3JzIGJ5IGEgZmFjdG9yIHVwIHRvIG1heGltdW0gb2aMYEVsZWN0aW9uUHJvdmlkZXJCYXNlOjpNYXhXaW5uZXJzYC4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LgA0IyMgQ29tcGxleGl0eZhTYW1lIGFzIFtgU2VsZjo6c2V0X3ZhbGlkYXRvcl9jb3VudGBdLjRmb3JjZV9ub19lcmFzAAw0rEZvcmNlIHRoZXJlIHRvIGJlIG5vIG5ldyBlcmFzIGluZGVmaW5pdGVseS4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LgAkIyBXYXJuaW5nABkBVGhlIGVsZWN0aW9uIHByb2Nlc3Mgc3RhcnRzIG11bHRpcGxlIGJsb2NrcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZXJhLjkBVGh1cyB0aGUgZWxlY3Rpb24gcHJvY2VzcyBtYXkgYmUgb25nb2luZyB3aGVuIHRoaXMgaXMgY2FsbGVkLiBJbiB0aGlzIGNhc2UgdGhl3GVsZWN0aW9uIHdpbGwgY29udGludWUgdW50aWwgdGhlIG5leHQgZXJhIGlzIHRyaWdnZXJlZC4ANCMjIENvbXBsZXhpdHk8LSBObyBhcmd1bWVudHMuOC0gV2VpZ2h0OiBPKDEpNGZvcmNlX25ld19lcmEADThJAUZvcmNlIHRoZXJlIHRvIGJlIGEgbmV3IGVyYSBhdCB0aGUgZW5kIG9mIHRoZSBuZXh0IHNlc3Npb24uIEFmdGVyIHRoaXMsIGl0IHdpbGwgYmWccmVzZXQgdG8gbm9ybWFsIChub24tZm9yY2VkKSBiZWhhdmlvdXIuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4AJCMgV2FybmluZwAZAVRoZSBlbGVjdGlvbiBwcm9jZXNzIHN0YXJ0cyBtdWx0aXBsZSBibG9ja3MgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGVyYS5JAUlmIHRoaXMgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIGEgbmV3IGVyYSBpcyB0cmlnZ2VyZWQsIHRoZSBlbGVjdGlvbiBwcm9jZXNzIG1heSBub3SMaGF2ZSBlbm91Z2ggYmxvY2tzIHRvIGdldCBhIHJlc3VsdC4ANCMjIENvbXBsZXhpdHk8LSBObyBhcmd1bWVudHMuOC0gV2VpZ2h0OiBPKDEpRHNldF9pbnZ1bG5lcmFibGVzBAE0aW52dWxuZXJhYmxlc60BAURWZWM8VDo6QWNjb3VudElkPgAODMhTZXQgdGhlIHZhbGlkYXRvcnMgd2hvIGNhbm5vdCBiZSBzbGFzaGVkIChpZiBhbnkpLgCEVGhlIGRpc3BhdGNoIG9yaWdpbiBtdXN0IGJlIFJvb3QuNGZvcmNlX3Vuc3Rha2UIARRzdGFzaAABMFQ6OkFjY291bnRJZAABSG51bV9zbGFzaGluZ19zcGFucxABDHUzMgAPIAkBRm9yY2UgYSBjdXJyZW50IHN0YWtlciB0byBiZWNvbWUgY29tcGxldGVseSB1bnN0YWtlZCwgaW1tZWRpYXRlbHkuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4ANCMjIFBhcmFtZXRlcnMARQEtIGBudW1fc2xhc2hpbmdfc3BhbnNgOiBSZWZlciB0byBjb21tZW50cyBvbiBbYENhbGw6OndpdGhkcmF3X3VuYm9uZGVkYF0gZm9yIG1vcmUgZGV0YWlscy5QZm9yY2VfbmV3X2VyYV9hbHdheXMAECQBAUZvcmNlIHRoZXJlIHRvIGJlIGEgbmV3IGVyYSBhdCB0aGUgZW5kIG9mIHNlc3Npb25zIGluZGVmaW5pdGVseS4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LgAkIyBXYXJuaW5nABkBVGhlIGVsZWN0aW9uIHByb2Nlc3Mgc3RhcnRzIG11bHRpcGxlIGJsb2NrcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZXJhLkkBSWYgdGhpcyBpcyBjYWxsZWQganVzdCBiZWZvcmUgYSBuZXcgZXJhIGlzIHRyaWdnZXJlZCwgdGhlIGVsZWN0aW9uIHByb2Nlc3MgbWF5IG5vdIxoYXZlIGVub3VnaCBibG9ja3MgdG8gZ2V0IGEgcmVzdWx0LlRjYW5jZWxfZGVmZXJyZWRfc2xhc2gIAQxlcmEQASBFcmFJbmRleAABNHNsYXNoX2luZGljZXPBAQEgVmVjPHUzMj4AERSUQ2FuY2VsIGVuYWN0bWVudCBvZiBhIGRlZmVycmVkIHNsYXNoLgCYQ2FuIGJlIGNhbGxlZCBieSB0aGUgYFQ6OkFkbWluT3JpZ2luYC4AAQFQYXJhbWV0ZXJzOiBlcmEgYW5kIGluZGljZXMgb2YgdGhlIHNsYXNoZXMgZm9yIHRoYXQgZXJhIHRvIGtpbGwuOHBheW91dF9zdGFrZXJzCAE8dmFsaWRhdG9yX3N0YXNoAAEwVDo6QWNjb3VudElkAAEMZXJhEAEgRXJhSW5kZXgAEjQZAVBheSBvdXQgbmV4dCBwYWdlIG9mIHRoZSBzdGFrZXJzIGJlaGluZCBhIHZhbGlkYXRvciBmb3IgdGhlIGdpdmVuIGVyYS4A6C0gYHZhbGlkYXRvcl9zdGFzaGAgaXMgdGhlIHN0YXNoIGFjY291bnQgb2YgdGhlIHZhbGlkYXRvci4xAS0gYGVyYWAgbWF5IGJlIGFueSBlcmEgYmV0d2VlbiBgW2N1cnJlbnRfZXJhIC0gaGlzdG9yeV9kZXB0aDsgY3VycmVudF9lcmFdYC4AVQFUaGUgb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiBBbnkgYWNjb3VudCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLCBldmVuIGlmdGl0IGlzIG5vdCBvbmUgb2YgdGhlIHN0YWtlcnMuAEkBVGhlIHJld2FyZCBwYXlvdXQgY291bGQgYmUgcGFnZWQgaW4gY2FzZSB0aGVyZSBhcmUgdG9vIG1hbnkgbm9taW5hdG9ycyBiYWNraW5nIHRoZV0BYHZhbGlkYXRvcl9zdGFzaGAuIFRoaXMgY2FsbCB3aWxsIHBheW91dCB1bnBhaWQgcGFnZXMgaW4gYW4gYXNjZW5kaW5nIG9yZGVyLiBUbyBjbGFpbSBhtHNwZWNpZmljIHBhZ2UsIHVzZSBgcGF5b3V0X3N0YWtlcnNfYnlfcGFnZWAuYADwSWYgYWxsIHBhZ2VzIGFyZSBjbGFpbWVkLCBpdCByZXR1cm5zIGFuIGVycm9yIGBJbnZhbGlkUGFnZWAuGHJlYm9uZAQBFHZhbHVl5AEwQmFsYW5jZU9mPFQ+ABMc3FJlYm9uZCBhIHBvcnRpb24gb2YgdGhlIHN0YXNoIHNjaGVkdWxlZCB0byBiZSB1bmxvY2tlZC4A1FRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgdGhlIGNvbnRyb2xsZXIuADQjIyBDb21wbGV4aXR50C0gVGltZSBjb21wbGV4aXR5OiBPKEwpLCB3aGVyZSBMIGlzIHVubG9ja2luZyBjaHVua3OILSBCb3VuZGVkIGJ5IGBNYXhVbmxvY2tpbmdDaHVua3NgLihyZWFwX3N0YXNoCAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAAUhudW1fc2xhc2hpbmdfc3BhbnMQAQx1MzIAFEhdAVJlbW92ZSBhbGwgZGF0YSBzdHJ1Y3R1cmVzIGNvbmNlcm5pbmcgYSBzdGFrZXIvc3Rhc2ggb25jZSBpdCBpcyBhdCBhIHN0YXRlIHdoZXJlIGl0IGNhbgUBYmUgY29uc2lkZXJlZCBgZHVzdGAgaW4gdGhlIHN0YWtpbmcgc3lzdGVtLiBUaGUgcmVxdWlyZW1lbnRzIGFyZToABQExLiB0aGUgYHRvdGFsX2JhbGFuY2VgIG9mIHRoZSBzdGFzaCBpcyBiZWxvdyBleGlzdGVudGlhbCBkZXBvc2l0LhEBMi4gb3IsIHRoZSBgbGVkZ2VyLnRvdGFsYCBvZiB0aGUgc3Rhc2ggaXMgYmVsb3cgZXhpc3RlbnRpYWwgZGVwb3NpdC5hATMuIG9yLCBleGlzdGVudGlhbCBkZXBvc2l0IGlzIHplcm8gYW5kIGVpdGhlciBgdG90YWxfYmFsYW5jZWAgb3IgYGxlZGdlci50b3RhbGAgaXMgemVyby4AVQFUaGUgZm9ybWVyIGNhbiBoYXBwZW4gaW4gY2FzZXMgbGlrZSBhIHNsYXNoOyB0aGUgbGF0dGVyIHdoZW4gYSBmdWxseSB1bmJvbmRlZCBhY2NvdW50CQFpcyBzdGlsbCByZWNlaXZpbmcgc3Rha2luZyByZXdhcmRzIGluIGBSZXdhcmREZXN0aW5hdGlvbjo6U3Rha2VkYC4AMQFJdCBjYW4gYmUgY2FsbGVkIGJ5IGFueW9uZSwgYXMgbG9uZyBhcyBgc3Rhc2hgIG1lZXRzIHRoZSBhYm92ZSByZXF1aXJlbWVudHMuANxSZWZ1bmRzIHRoZSB0cmFuc2FjdGlvbiBmZWVzIHVwb24gc3VjY2Vzc2Z1bCBleGVjdXRpb24uADQjIyBQYXJhbWV0ZXJzAEUBLSBgbnVtX3NsYXNoaW5nX3NwYW5zYDogUmVmZXIgdG8gY29tbWVudHMgb24gW2BDYWxsOjp3aXRoZHJhd191bmJvbmRlZGBdIGZvciBtb3JlIGRldGFpbHMuEGtpY2sEAQx3aG+5AQFkVmVjPEFjY291bnRJZExvb2t1cE9mPFQ+PgAVLOBSZW1vdmUgdGhlIGdpdmVuIG5vbWluYXRpb25zIGZyb20gdGhlIGNhbGxpbmcgdmFsaWRhdG9yLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAE0BLSBgd2hvYDogQSBsaXN0IG9mIG5vbWluYXRvciBzdGFzaCBhY2NvdW50cyB3aG8gYXJlIG5vbWluYXRpbmcgdGhpcyB2YWxpZGF0b3Igd2hpY2jAICBzaG91bGQgbm8gbG9uZ2VyIGJlIG5vbWluYXRpbmcgdGhpcyB2YWxpZGF0b3IuAFUBTm90ZTogTWFraW5nIHRoaXMgY2FsbCBvbmx5IG1ha2VzIHNlbnNlIGlmIHlvdSBmaXJzdCBzZXQgdGhlIHZhbGlkYXRvciBwcmVmZXJlbmNlcyB0b3hibG9jayBhbnkgZnVydGhlciBub21pbmF0aW9ucy5Mc2V0X3N0YWtpbmdfY29uZmlncxwBSG1pbl9ub21pbmF0b3JfYm9uZMUBAVhDb25maWdPcDxCYWxhbmNlT2Y8VD4+AAFIbWluX3ZhbGlkYXRvcl9ib25kxQEBWENvbmZpZ09wPEJhbGFuY2VPZjxUPj4AAUxtYXhfbm9taW5hdG9yX2NvdW50yQEBNENvbmZpZ09wPHUzMj4AAUxtYXhfdmFsaWRhdG9yX2NvdW50yQEBNENvbmZpZ09wPHUzMj4AATxjaGlsbF90aHJlc2hvbGTNAQFEQ29uZmlnT3A8UGVyY2VudD4AAThtaW5fY29tbWlzc2lvbtEBAURDb25maWdPcDxQZXJiaWxsPgABSG1heF9zdGFrZWRfcmV3YXJkc80BAURDb25maWdPcDxQZXJjZW50PgAWRKxVcGRhdGUgdGhlIHZhcmlvdXMgc3Rha2luZyBjb25maWd1cmF0aW9ucyAuACUBKiBgbWluX25vbWluYXRvcl9ib25kYDogVGhlIG1pbmltdW0gYWN0aXZlIGJvbmQgbmVlZGVkIHRvIGJlIGEgbm9taW5hdG9yLiUBKiBgbWluX3ZhbGlkYXRvcl9ib25kYDogVGhlIG1pbmltdW0gYWN0aXZlIGJvbmQgbmVlZGVkIHRvIGJlIGEgdmFsaWRhdG9yLlUBKiBgbWF4X25vbWluYXRvcl9jb3VudGA6IFRoZSBtYXggbnVtYmVyIG9mIHVzZXJzIHdobyBjYW4gYmUgYSBub21pbmF0b3IgYXQgb25jZS4gV2hlbpggIHNldCB0byBgTm9uZWAsIG5vIGxpbWl0IGlzIGVuZm9yY2VkLlUBKiBgbWF4X3ZhbGlkYXRvcl9jb3VudGA6IFRoZSBtYXggbnVtYmVyIG9mIHVzZXJzIHdobyBjYW4gYmUgYSB2YWxpZGF0b3IgYXQgb25jZS4gV2hlbpggIHNldCB0byBgTm9uZWAsIG5vIGxpbWl0IGlzIGVuZm9yY2VkLlkBKiBgY2hpbGxfdGhyZXNob2xkYDogVGhlIHJhdGlvIG9mIGBtYXhfbm9taW5hdG9yX2NvdW50YCBvciBgbWF4X3ZhbGlkYXRvcl9jb3VudGAgd2hpY2gZASAgc2hvdWxkIGJlIGZpbGxlZCBpbiBvcmRlciBmb3IgdGhlIGBjaGlsbF9vdGhlcmAgdHJhbnNhY3Rpb24gdG8gd29yay5hASogYG1pbl9jb21taXNzaW9uYDogVGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbW1pc3Npb24gdGhhdCBlYWNoIHZhbGlkYXRvcnMgbXVzdCBtYWludGFpbi5VASAgVGhpcyBpcyBjaGVja2VkIG9ubHkgdXBvbiBjYWxsaW5nIGB2YWxpZGF0ZWAuIEV4aXN0aW5nIHZhbGlkYXRvcnMgYXJlIG5vdCBhZmZlY3RlZC4AxFJ1bnRpbWVPcmlnaW4gbXVzdCBiZSBSb290IHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4ANQFOT1RFOiBFeGlzdGluZyBub21pbmF0b3JzIGFuZCB2YWxpZGF0b3JzIHdpbGwgbm90IGJlIGFmZmVjdGVkIGJ5IHRoaXMgdXBkYXRlLhEBdG8ga2ljayBwZW9wbGUgdW5kZXIgdGhlIG5ldyBsaW1pdHMsIGBjaGlsbF9vdGhlcmAgc2hvdWxkIGJlIGNhbGxlZC4sY2hpbGxfb3RoZXIEARRzdGFzaAABMFQ6OkFjY291bnRJZAAXaEEBRGVjbGFyZSBhIGBjb250cm9sbGVyYCB0byBzdG9wIHBhcnRpY2lwYXRpbmcgYXMgZWl0aGVyIGEgdmFsaWRhdG9yIG9yIG5vbWluYXRvci4A2EVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBBAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBidXQgY2FuIGJlIGNhbGxlZCBieSBhbnlvbmUuAFkBSWYgdGhlIGNhbGxlciBpcyB0aGUgc2FtZSBhcyB0aGUgY29udHJvbGxlciBiZWluZyB0YXJnZXRlZCwgdGhlbiBubyBmdXJ0aGVyIGNoZWNrcyBhcmXYZW5mb3JjZWQsIGFuZCB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMganVzdCBsaWtlIGBjaGlsbGAuAF0BSWYgdGhlIGNhbGxlciBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgY29udHJvbGxlciBiZWluZyB0YXJnZXRlZCwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zMG11c3QgYmUgbWV0OgAdASogYGNvbnRyb2xsZXJgIG11c3QgYmVsb25nIHRvIGEgbm9taW5hdG9yIHdobyBoYXMgYmVjb21lIG5vbi1kZWNvZGFibGUsAAxPcjoAPQEqIEEgYENoaWxsVGhyZXNob2xkYCBtdXN0IGJlIHNldCBhbmQgY2hlY2tlZCB3aGljaCBkZWZpbmVzIGhvdyBjbG9zZSB0byB0aGUgbWF4VQEgIG5vbWluYXRvcnMgb3IgdmFsaWRhdG9ycyB3ZSBtdXN0IHJlYWNoIGJlZm9yZSB1c2VycyBjYW4gc3RhcnQgY2hpbGxpbmcgb25lLWFub3RoZXIuWQEqIEEgYE1heE5vbWluYXRvckNvdW50YCBhbmQgYE1heFZhbGlkYXRvckNvdW50YCBtdXN0IGJlIHNldCB3aGljaCBpcyB1c2VkIHRvIGRldGVybWluZZAgIGhvdyBjbG9zZSB3ZSBhcmUgdG8gdGhlIHRocmVzaG9sZC5dASogQSBgTWluTm9taW5hdG9yQm9uZGAgYW5kIGBNaW5WYWxpZGF0b3JCb25kYCBtdXN0IGJlIHNldCBhbmQgY2hlY2tlZCwgd2hpY2ggZGV0ZXJtaW5lc1EBICBpZiB0aGlzIGlzIGEgcGVyc29uIHRoYXQgc2hvdWxkIGJlIGNoaWxsZWQgYmVjYXVzZSB0aGV5IGhhdmUgbm90IG1ldCB0aGUgdGhyZXNob2xkQCAgYm9uZCByZXF1aXJlZC4AVQFUaGlzIGNhbiBiZSBoZWxwZnVsIGlmIGJvbmQgcmVxdWlyZW1lbnRzIGFyZSB1cGRhdGVkLCBhbmQgd2UgbmVlZCB0byByZW1vdmUgb2xkIHVzZXJzmHdobyBkbyBub3Qgc2F0aXNmeSB0aGVzZSByZXF1aXJlbWVudHMuaGZvcmNlX2FwcGx5X21pbl9jb21taXNzaW9uBAE8dmFsaWRhdG9yX3N0YXNoAAEwVDo6QWNjb3VudElkABgMRQFGb3JjZSBhIHZhbGlkYXRvciB0byBoYXZlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGNvbW1pc3Npb24uIFRoaXMgd2lsbCBub3QgYWZmZWN0IGFhAXZhbGlkYXRvciB3aG8gYWxyZWFkeSBoYXMgYSBjb21taXNzaW9uIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bS4gQW55IGFjY291bnQ4Y2FuIGNhbGwgdGhpcy5Ic2V0X21pbl9jb21taXNzaW9uBAEMbmV3lAEcUGVyYmlsbAAZECUBU2V0cyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tbWlzc2lvbiB0aGF0IGVhY2ggdmFsaWRhdG9ycyBtdXN0IG1haW50YWluLgBZAVRoaXMgY2FsbCBoYXMgbG93ZXIgcHJpdmlsZWdlIHJlcXVpcmVtZW50cyB0aGFuIGBzZXRfc3Rha2luZ19jb25maWdgIGFuZCBjYW4gYmUgY2FsbGVkzGJ5IHRoZSBgVDo6QWRtaW5PcmlnaW5gLiBSb290IGNhbiBhbHdheXMgY2FsbCB0aGlzLlhwYXlvdXRfc3Rha2Vyc19ieV9wYWdlDAE8dmFsaWRhdG9yX3N0YXNoAAEwVDo6QWNjb3VudElkAAEMZXJhEAEgRXJhSW5kZXgAARBwYWdlEAEQUGFnZQAaRDEBUGF5IG91dCBhIHBhZ2Ugb2YgdGhlIHN0YWtlcnMgYmVoaW5kIGEgdmFsaWRhdG9yIGZvciB0aGUgZ2l2ZW4gZXJhIGFuZCBwYWdlLgDoLSBgdmFsaWRhdG9yX3N0YXNoYCBpcyB0aGUgc3Rhc2ggYWNjb3VudCBvZiB0aGUgdmFsaWRhdG9yLjEBLSBgZXJhYCBtYXkgYmUgYW55IGVyYSBiZXR3ZWVuIGBbY3VycmVudF9lcmEgLSBoaXN0b3J5X2RlcHRoOyBjdXJyZW50X2VyYV1gLjEBLSBgcGFnZWAgaXMgdGhlIHBhZ2UgaW5kZXggb2Ygbm9taW5hdG9ycyB0byBwYXkgb3V0IHdpdGggdmFsdWUgYmV0d2VlbiAwIGFuZLAgIGBudW1fbm9taW5hdG9ycyAvIFQ6Ok1heEV4cG9zdXJlUGFnZVNpemVgLgBVAVRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uIEFueSBhY2NvdW50IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24sIGV2ZW4gaWZ0aXQgaXMgbm90IG9uZSBvZiB0aGUgc3Rha2Vycy4APQFJZiBhIHZhbGlkYXRvciBoYXMgbW9yZSB0aGFuIFtgQ29uZmlnOjpNYXhFeHBvc3VyZVBhZ2VTaXplYF0gbm9taW5hdG9ycyBiYWNraW5nKQF0aGVtLCB0aGVuIHRoZSBsaXN0IG9mIG5vbWluYXRvcnMgaXMgcGFnZWQsIHdpdGggZWFjaCBwYWdlIGJlaW5nIGNhcHBlZCBhdFUBW2BDb25maWc6Ok1heEV4cG9zdXJlUGFnZVNpemVgLl0gSWYgYSB2YWxpZGF0b3IgaGFzIG1vcmUgdGhhbiBvbmUgcGFnZSBvZiBub21pbmF0b3JzLEkBdGhlIGNhbGwgbmVlZHMgdG8gYmUgbWFkZSBmb3IgZWFjaCBwYWdlIHNlcGFyYXRlbHkgaW4gb3JkZXIgZm9yIGFsbCB0aGUgbm9taW5hdG9yc1UBYmFja2luZyBhIHZhbGlkYXRvciB0byByZWNlaXZlIHRoZSByZXdhcmQuIFRoZSBub21pbmF0b3JzIGFyZSBub3Qgc29ydGVkIGFjcm9zcyBwYWdlc2EBYW5kIHNvIGl0IHNob3VsZCBub3QgYmUgYXNzdW1lZCB0aGUgaGlnaGVzdCBzdGFrZXIgd291bGQgYmUgb24gdGhlIHRvcG1vc3QgcGFnZSBhbmQgdmljZUkBdmVyc2EuIElmIHJld2FyZHMgYXJlIG5vdCBjbGFpbWVkIGluIFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLCB0aGV5IGFyZSBsb3N0LjB1cGRhdGVfcGF5ZWUEAShjb250cm9sbGVyAAEwVDo6QWNjb3VudElkABsY4E1pZ3JhdGVzIGFuIGFjY291bnQncyBgUmV3YXJkRGVzdGluYXRpb246OkNvbnRyb2xsZXJgIHRvpGBSZXdhcmREZXN0aW5hdGlvbjo6QWNjb3VudChjb250cm9sbGVyKWAuAFEBRWZmZWN0cyB3aWxsIGJlIGZlbHQgaW5zdGFudGx5IChhcyBzb29uIGFzIHRoaXMgZnVuY3Rpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkuADEBVGhpcyB3aWxsIHdhaXZlIHRoZSB0cmFuc2FjdGlvbiBmZWUgaWYgdGhlIGBwYXllZWAgaXMgc3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkLmhkZXByZWNhdGVfY29udHJvbGxlcl9iYXRjaAQBLGNvbnRyb2xsZXJz1QEB9EJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhDb250cm9sbGVyc0luRGVwcmVjYXRpb25CYXRjaD4AHBxdAVVwZGF0ZXMgYSBiYXRjaCBvZiBjb250cm9sbGVyIGFjY291bnRzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgc3Rhc2ggYWNjb3VudCBpZiB0aGV5IGFyZWEBbm90IHRoZSBzYW1lLiBJZ25vcmVzIGFueSBjb250cm9sbGVyIGFjY291bnRzIHRoYXQgZG8gbm90IGV4aXN0LCBhbmQgZG9lcyBub3Qgb3BlcmF0ZSBpZrh0aGUgc3Rhc2ggYW5kIGNvbnRyb2xsZXIgYXJlIGFscmVhZHkgdGhlIHNhbWUuAFEBRWZmZWN0cyB3aWxsIGJlIGZlbHQgaW5zdGFudGx5IChhcyBzb29uIGFzIHRoaXMgZnVuY3Rpb24gaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkuALRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgYFQ6OkFkbWluT3JpZ2luYC44cmVzdG9yZV9sZWRnZXIQARRzdGFzaAABMFQ6OkFjY291bnRJZAABQG1heWJlX2NvbnRyb2xsZXLZAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASxtYXliZV90b3RhbN0BAVBPcHRpb248QmFsYW5jZU9mPFQ+PgABPG1heWJlX3VubG9ja2luZ+EBARUBT3B0aW9uPEJvdW5kZWRWZWM8VW5sb2NrQ2h1bms8QmFsYW5jZU9mPFQ+PiwgVDo6Ck1heFVubG9ja2luZ0NodW5rcz4+AB0sBQFSZXN0b3JlcyB0aGUgc3RhdGUgb2YgYSBsZWRnZXIgd2hpY2ggaXMgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLgDcVGhlIHJlcXVpcmVtZW50cyB0byByZXN0b3JlIGEgbGVkZ2VyIGFyZSB0aGUgZm9sbG93aW5nOmQqIFRoZSBzdGFzaCBpcyBib25kZWQ7IG9yDQEqIFRoZSBzdGFzaCBpcyBub3QgYm9uZGVkIGJ1dCBpdCBoYXMgYSBzdGFraW5nIGxvY2sgbGVmdCBiZWhpbmQ7IG9yJQEqIElmIHRoZSBzdGFzaCBoYXMgYW4gYXNzb2NpYXRlZCBsZWRnZXIgYW5kIGl0cyBzdGF0ZSBpcyBpbmNvbnNpc3RlbnQ7IG9yHQEqIElmIHRoZSBsZWRnZXIgaXMgbm90IGNvcnJ1cHRlZCAqYnV0KiBpdHMgc3Rha2luZyBsb2NrIGlzIG91dCBvZiBzeW5jLgBhAVRoZSBgbWF5YmVfKmAgaW5wdXQgcGFyYW1ldGVycyB3aWxsIG92ZXJ3cml0ZSB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGFuZCBtZXRhZGF0YSBvZiB0aGVZAWxlZGdlciBhc3NvY2lhdGVkIHdpdGggdGhlIHN0YXNoLiBJZiB0aGUgaW5wdXQgcGFyYW1ldGVycyBhcmUgbm90IHNldCwgdGhlIGxlZGdlciB3aWxskGJlIHJlc2V0IHZhbHVlcyBmcm9tIG9uLWNoYWluIHN0YXRlLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy65AQAAAp0BAL0BDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyY2VudAAABAAIAQh1OAAAwQEAAAIQAMUBEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0IENvbmZpZ09wBARUARgBDBBOb29wAAAADFNldAQAGAEEVAABABhSZW1vdmUAAgAAyQEQOHBhbGxldF9zdGFraW5nGHBhbGxldBhwYWxsZXQgQ29uZmlnT3AEBFQBEAEMEE5vb3AAAAAMU2V0BAAQAQRUAAEAGFJlbW92ZQACAADNARA4cGFsbGV0X3N0YWtpbmcYcGFsbGV0GHBhbGxldCBDb25maWdPcAQEVAG9AQEMEE5vb3AAAAAMU2V0BAC9AQEEVAABABhSZW1vdmUAAgAA0QEQOHBhbGxldF9zdGFraW5nGHBhbGxldBhwYWxsZXQgQ29uZmlnT3AEBFQBlAEMEE5vb3AAAAAMU2V0BACUAQRUAAEAGFJlbW92ZQACAADVAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABACtAQEYVmVjPFQ+AADZAQQYT3B0aW9uBARUAQABCBBOb25lAAAAEFNvbWUEAAAAAAEAAN0BBBhPcHRpb24EBFQBGAEIEE5vbmUAAAAQU29tZQQAGAAAAQAA4QEEGE9wdGlvbgQEVAHlAQEIEE5vbmUAAAAQU29tZQQA5QEAAAEAAOUBDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6QEEUwAABADtAQEYVmVjPFQ+AADpAQg4cGFsbGV0X3N0YWtpbmcsVW5sb2NrQ2h1bmsEHEJhbGFuY2UBGAAIARR2YWx1ZeQBHEJhbGFuY2UAAQxlcmHUASBFcmFJbmRleAAA7QEAAALpAQDxAQw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0EENhbGwEBFQAAQggc2V0X2tleXMIARBrZXlz9QEBHFQ6OktleXMAARRwcm9vZjgBHFZlYzx1OD4AACTkU2V0cyB0aGUgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlciB0byBga2V5c2AuHQFBbGxvd3MgYW4gYWNjb3VudCB0byBzZXQgaXRzIHNlc3Npb24ga2V5IHByaW9yIHRvIGJlY29taW5nIGEgdmFsaWRhdG9yLsBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIHNpZ25lZC4ANCMjIENvbXBsZXhpdHlZAS0gYE8oMSlgLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mIGBUOjpLZXlzOjprZXlfaWRzKClgIHdoaWNoIGlzICAgZml4ZWQuKHB1cmdlX2tleXMAATDIUmVtb3ZlcyBhbnkgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlci4AwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIGFjY291bnQgbXVzdCBiZSBlaXRoZXIgYmVdAWNvbnZlcnRpYmxlIHRvIGEgdmFsaWRhdG9yIElEIHVzaW5nIHRoZSBjaGFpbidzIHR5cGljYWwgYWRkcmVzc2luZyBzeXN0ZW0gKHRoaXMgdXN1YWxseVEBbWVhbnMgYmVpbmcgYSBjb250cm9sbGVyIGFjY291bnQpIG9yIGRpcmVjdGx5IGNvbnZlcnRpYmxlIGludG8gYSB2YWxpZGF0b3IgSUQgKHdoaWNolHVzdWFsbHkgbWVhbnMgYmVpbmcgYSBzdGFzaCBhY2NvdW50KS4ANCMjIENvbXBsZXhpdHk9AS0gYE8oMSlgIGluIG51bWJlciBvZiBrZXkgdHlwZXMuIEFjdHVhbCBjb3N0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBsZW5ndGggb2aYICBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyBmaXhlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu9QEIWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWUsU2Vzc2lvbktleXMAABgBHGdyYW5kcGG8AdA8R3JhbmRwYSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAEQYmFiZX0BAcQ8QmFiZSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAE4cGFyYV92YWxpZGF0b3L5AQHgPEluaXRpYWxpemVyIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAATxwYXJhX2Fzc2lnbm1lbnT9AQHwPFBhcmFTZXNzaW9uSW5mbyBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAFMYXV0aG9yaXR5X2Rpc2NvdmVyeQECAfw8QXV0aG9yaXR5RGlzY292ZXJ5IGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAARRiZWVmeQUCAcg8QmVlZnkgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAA+QEQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjc0dmFsaWRhdG9yX2FwcBhQdWJsaWMAAAQABAE8c3IyNTUxOTo6UHVibGljAAD9ARBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2Nzhhc3NpZ25tZW50X2FwcBhQdWJsaWMAAAQABAE8c3IyNTUxOTo6UHVibGljAAABAgxYc3BfYXV0aG9yaXR5X2Rpc2NvdmVyeQxhcHAYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAABQIMSHNwX2NvbnNlbnN1c19iZWVmeTBlY2RzYV9jcnlwdG8YUHVibGljAAAEAAkCATRlY2RzYTo6UHVibGljAAAJAgAAAyEAAAAIAA0CDDhwYWxsZXRfZ3JhbmRwYRhwYWxsZXQQQ2FsbAQEVAABDExyZXBvcnRfZXF1aXZvY2F0aW9uCAFIZXF1aXZvY2F0aW9uX3Byb29mEQIByEJveDxFcXVpdm9jYXRpb25Qcm9vZjxUOjpIYXNoLCBCbG9ja051bWJlckZvcjxUPj4+AAE8a2V5X293bmVyX3Byb29mhQEBQFQ6OktleU93bmVyUHJvb2YAABAJAVJlcG9ydCB2b3RlciBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZfRlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29m+GFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlRHdpbGwgYmUgcmVwb3J0ZWQucHJlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2YRAgHIQm94PEVxdWl2b2NhdGlvblByb29mPFQ6Okhhc2gsIEJsb2NrTnVtYmVyRm9yPFQ+Pj4AATxrZXlfb3duZXJfcHJvb2aFAQFAVDo6S2V5T3duZXJQcm9vZgABJAkBUmVwb3J0IHZvdGVyIGVxdWl2b2NhdGlvbi9taXNiZWhhdmlvci4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkgdGhl9GVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2b4YWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLiBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2VEd2lsbCBiZSByZXBvcnRlZC4ADQFUaGlzIGV4dHJpbnNpYyBtdXN0IGJlIGNhbGxlZCB1bnNpZ25lZCBhbmQgaXQgaXMgZXhwZWN0ZWQgdGhhdCBvbmx5FQFibG9jayBhdXRob3JzIHdpbGwgY2FsbCBpdCAodmFsaWRhdGVkIGluIGBWYWxpZGF0ZVVuc2lnbmVkYCksIGFzIHN1Y2gVAWlmIHRoZSBibG9jayBhdXRob3IgaXMgZGVmaW5lZCBpdCB3aWxsIGJlIGRlZmluZWQgYXMgdGhlIGVxdWl2b2NhdGlvbiRyZXBvcnRlci4wbm90ZV9zdGFsbGVkCAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgABbGJlc3RfZmluYWxpemVkX2Jsb2NrX251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAIwPQFOb3RlIHRoYXQgdGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldCBvZiB0aGUgR1JBTkRQQSBmaW5hbGl0eSBnYWRnZXQgaGFzIHN0YWxsZWQuAGEBVGhpcyB3aWxsIHRyaWdnZXIgYSBmb3JjZWQgYXV0aG9yaXR5IHNldCBjaGFuZ2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBzZXNzaW9uLCB0b2EBYmUgZW5hY3RlZCBgZGVsYXlgIGJsb2NrcyBhZnRlciB0aGF0LiBUaGUgYGRlbGF5YCBzaG91bGQgYmUgaGlnaCBlbm91Z2ggdG8gc2FmZWx5IGFzc3VtZUkBdGhhdCB0aGUgYmxvY2sgc2lnbmFsbGluZyB0aGUgZm9yY2VkIGNoYW5nZSB3aWxsIG5vdCBiZSByZS1vcmdlZCBlLmcuIDEwMDAgYmxvY2tzLl0BVGhlIGJsb2NrIHByb2R1Y3Rpb24gcmF0ZSAod2hpY2ggbWF5IGJlIHNsb3dlZCBkb3duIGJlY2F1c2Ugb2YgZmluYWxpdHkgbGFnZ2luZykgc2hvdWxkUQFiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiBjaG9vc2luZyB0aGUgYGRlbGF5YC4gVGhlIEdSQU5EUEEgdm90ZXJzIGJhc2VkIG9uIHRoZSBuZXdVAWF1dGhvcml0eSB3aWxsIHN0YXJ0IHZvdGluZyBvbiB0b3Agb2YgYGJlc3RfZmluYWxpemVkX2Jsb2NrX251bWJlcmAgZm9yIG5ldyBmaW5hbGl6ZWRNAWJsb2Nrcy4gYGJlc3RfZmluYWxpemVkX2Jsb2NrX251bWJlcmAgc2hvdWxkIGJlIHRoZSBoaWdoZXN0IG9mIHRoZSBsYXRlc3QgZmluYWxpemVkxGJsb2NrIG9mIGFsbCB2YWxpZGF0b3JzIG9mIHRoZSBuZXcgYXV0aG9yaXR5IHNldC4AWE9ubHkgY2FsbGFibGUgYnkgcm9vdC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuEQIIUHNwX2NvbnNlbnN1c19ncmFuZHBhREVxdWl2b2NhdGlvblByb29mCARIATQETgEQAAgBGHNldF9pZDABFFNldElkAAEwZXF1aXZvY2F0aW9uFQIBSEVxdWl2b2NhdGlvbjxILCBOPgAAFQIIUHNwX2NvbnNlbnN1c19ncmFuZHBhMEVxdWl2b2NhdGlvbggESAE0BE4BEAEIHFByZXZvdGUEABkCAYkBZmluYWxpdHlfZ3JhbmRwYTo6RXF1aXZvY2F0aW9uPEF1dGhvcml0eUlkLCBmaW5hbGl0eV9ncmFuZHBhOjpQcmV2b3RlPApILCBOPiwgQXV0aG9yaXR5U2lnbmF0dXJlLD4AAAAkUHJlY29tbWl0BAAtAgGRAWZpbmFsaXR5X2dyYW5kcGE6OkVxdWl2b2NhdGlvbjxBdXRob3JpdHlJZCwgZmluYWxpdHlfZ3JhbmRwYTo6UHJlY29tbWl0CjxILCBOPiwgQXV0aG9yaXR5U2lnbmF0dXJlLD4AAQAAGQIIQGZpbmFsaXR5X2dyYW5kcGEwRXF1aXZvY2F0aW9uDAhJZAG8BFYBHQIEUwEhAgAQATByb3VuZF9udW1iZXIwAQx1NjQAASBpZGVudGl0ebwBCElkAAEUZmlyc3QpAgEYKFYsIFMpAAEYc2Vjb25kKQIBGChWLCBTKQAAHQIIQGZpbmFsaXR5X2dyYW5kcGEcUHJldm90ZQgESAE0BE4BEAAIASx0YXJnZXRfaGFzaDQBBEgAATR0YXJnZXRfbnVtYmVyEAEETgAAIQIMUHNwX2NvbnNlbnN1c19ncmFuZHBhDGFwcCRTaWduYXR1cmUAAAQAJQIBSGVkMjU1MTk6OlNpZ25hdHVyZQAAJQIAAANAAAAACAApAgAABAgdAiECAC0CCEBmaW5hbGl0eV9ncmFuZHBhMEVxdWl2b2NhdGlvbgwISWQBvARWATECBFMBIQIAEAEwcm91bmRfbnVtYmVyMAEMdTY0AAEgaWRlbnRpdHm8AQhJZAABFGZpcnN0NQIBGChWLCBTKQABGHNlY29uZDUCARgoViwgUykAADECCEBmaW5hbGl0eV9ncmFuZHBhJFByZWNvbW1pdAgESAE0BE4BEAAIASx0YXJnZXRfaGFzaDQBBEgAATR0YXJnZXRfbnVtYmVyEAEETgAANQIAAAQIMQIhAgA5Agw8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBBDYWxsCARUAARJAAEYLHNwZW5kX2xvY2FsCAEYYW1vdW505AE8QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnmdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AA0S4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAEUBTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3QgYGFtb3VudGAuACwjIyMgRGV0YWlsc0UBTk9URTogRm9yIHJlY29yZC1rZWVwaW5nIHB1cnBvc2VzLCB0aGUgcHJvcG9zZXIgaXMgZGVlbWVkIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhlMGJlbmVmaWNpYXJ5LgA4IyMjIFBhcmFtZXRlcnNBAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAu6C0gYGJlbmVmaWNpYXJ5YDogVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSB0cmFuc2Zlci4AJCMjIEV2ZW50cwC0RW1pdHMgW2BFdmVudDo6U3BlbmRBcHByb3ZlZGBdIGlmIHN1Y2Nlc3NmdWwuPHJlbW92ZV9hcHByb3ZhbAQBLHByb3Bvc2FsX2lk1AE0UHJvcG9zYWxJbmRleAAEVC0BRm9yY2UgYSBwcmV2aW91c2x5IGFwcHJvdmVkIHByb3Bvc2FsIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgYXBwcm92YWwgcXVldWUuAEgjIyBEaXNwYXRjaCBPcmlnaW4AhE11c3QgYmUgW2BDb25maWc6OlJlamVjdE9yaWdpbmBdLgAoIyMgRGV0YWlscwDAVGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBubyBsb25nZXIgYmUgcmV0dXJuZWQuADgjIyMgUGFyYW1ldGVyc6AtIGBwcm9wb3NhbF9pZGA6IFRoZSBpbmRleCBvZiBhIHByb3Bvc2FsADgjIyMgQ29tcGxleGl0eawtIE8oQSkgd2hlcmUgYEFgIGlzIHRoZSBudW1iZXIgb2YgYXBwcm92YWxzACgjIyMgRXJyb3JzRQEtIFtgRXJyb3I6OlByb3Bvc2FsTm90QXBwcm92ZWRgXTogVGhlIGBwcm9wb3NhbF9pZGAgc3VwcGxpZWQgd2FzIG5vdCBmb3VuZCBpbiB0aGVRASAgYXBwcm92YWwgcXVldWUsIGkuZS4sIHRoZSBwcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuIFRoaXMgY291bGQgYWxzbyBtZWFuIHRoZVkBICBwcm9wb3NhbCBkb2VzIG5vdCBleGlzdCBhbHRvZ2V0aGVyLCB0aHVzIHRoZXJlIGlzIG5vIHdheSBpdCB3b3VsZCBoYXZlIGJlZW4gYXBwcm92ZWRUICBpbiB0aGUgZmlyc3QgcGxhY2UuFHNwZW5kEAEoYXNzZXRfa2luZMQBREJveDxUOjpBc3NldEtpbmQ+AAEYYW1vdW505AFQQXNzZXRCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeS0BAXhCb3g8QmVuZWZpY2lhcnlMb29rdXBPZjxULCBJPj4AASh2YWxpZF9mcm9tPQIBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4ABWi4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAB0BTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3RVAWBhbW91bnRgIG9mIGBhc3NldF9raW5kYCBpbiB0aGUgbmF0aXZlIGFzc2V0LiBUaGUgYW1vdW50IG9mIGBhc3NldF9raW5kYCBpcyBjb252ZXJ0ZWTUZm9yIGFzc2VydGlvbiB1c2luZyB0aGUgW2BDb25maWc6OkJhbGFuY2VDb252ZXJ0ZXJgXS4AKCMjIERldGFpbHMASQFDcmVhdGUgYW4gYXBwcm92ZWQgc3BlbmQgZm9yIHRyYW5zZmVycmluZyBhIHNwZWNpZmljIGBhbW91bnRgIG9mIGBhc3NldF9raW5kYCB0byBhYQFkZXNpZ25hdGVkIGJlbmVmaWNpYXJ5LiBUaGUgc3BlbmQgbXVzdCBiZSBjbGFpbWVkIHVzaW5nIHRoZSBgcGF5b3V0YCBkaXNwYXRjaGFibGUgd2l0aGludHRoZSBbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0uADgjIyMgUGFyYW1ldGVycxUBLSBgYXNzZXRfa2luZGA6IEFuIGluZGljYXRvciBvZiB0aGUgc3BlY2lmaWMgYXNzZXQgY2xhc3MgdG8gYmUgc3BlbnQuQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLrgtIGBiZW5lZmljaWFyeWA6IFRoZSBiZW5lZmljaWFyeSBvZiB0aGUgc3BlbmQuVQEtIGB2YWxpZF9mcm9tYDogVGhlIGJsb2NrIG51bWJlciBmcm9tIHdoaWNoIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZC4gSXQgY2FuIHJlZmVyIHRvGQEgIHRoZSBwYXN0IGlmIHRoZSByZXN1bHRpbmcgc3BlbmQgaGFzIG5vdCB5ZXQgZXhwaXJlZCBhY2NvcmRpbmcgdG8gdGhlRQEgIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4gSWYgYE5vbmVgLCB0aGUgc3BlbmQgY2FuIGJlIGNsYWltZWQgaW1tZWRpYXRlbHkgYWZ0ZXIsICBhcHByb3ZhbC4AJCMjIEV2ZW50cwDIRW1pdHMgW2BFdmVudDo6QXNzZXRTcGVuZEFwcHJvdmVkYF0gaWYgc3VjY2Vzc2Z1bC4YcGF5b3V0BAEUaW5kZXgQAShTcGVuZEluZGV4AAZMOENsYWltIGEgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AOE11c3QgYmUgc2lnbmVkACgjIyBEZXRhaWxzAFUBU3BlbmRzIG11c3QgYmUgY2xhaW1lZCB3aXRoaW4gc29tZSB0ZW1wb3JhbCBib3VuZHMuIEEgc3BlbmQgbWF5IGJlIGNsYWltZWQgd2l0aGluIG9uZdRbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0gZnJvbSB0aGUgYHZhbGlkX2Zyb21gIGJsb2NrLlUBSW4gY2FzZSBvZiBhIHBheW91dCBmYWlsdXJlLCB0aGUgc3BlbmQgc3RhdHVzIG11c3QgYmUgdXBkYXRlZCB3aXRoIHRoZSBgY2hlY2tfc3RhdHVzYNxkaXNwYXRjaGFibGUgYmVmb3JlIHJldHJ5aW5nIHdpdGggdGhlIGN1cnJlbnQgZnVuY3Rpb24uADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwCQRW1pdHMgW2BFdmVudDo6UGFpZGBdIGlmIHN1Y2Nlc3NmdWwuMGNoZWNrX3N0YXR1cwQBFGluZGV4EAEoU3BlbmRJbmRleAAHTCkBQ2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgc3BlbmQgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzdG9yYWdlIGlmIHByb2Nlc3NlZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA8TXVzdCBiZSBzaWduZWQuACgjIyBEZXRhaWxzAAEBVGhlIHN0YXR1cyBjaGVjayBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgcmV0cnlpbmcgYSBmYWlsZWQgcGF5b3V0LkkBSWYgYSBzcGVuZCBoYXMgZWl0aGVyIHN1Y2NlZWRlZCBvciBleHBpcmVkLCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIHN0b3JhZ2UgYnkgdGhpc+xmdW5jdGlvbi4gSW4gc3VjaCBpbnN0YW5jZXMsIHRyYW5zYWN0aW9uIGZlZXMgYXJlIHJlZnVuZGVkLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMA+EVtaXRzIFtgRXZlbnQ6OlBheW1lbnRGYWlsZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBmYWlsZWQuAQFFbWl0cyBbYEV2ZW50OjpTcGVuZFByb2Nlc3NlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIHN1Y2NlZWQuKHZvaWRfc3BlbmQEARRpbmRleBABKFNwZW5kSW5kZXgACEB8Vm9pZCBwcmV2aW91c2x5IGFwcHJvdmVkIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAHQFBIHNwZW5kIHZvaWQgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcGF5b3V0IGhhcyBub3QgYmVlbiBhdHRlbXB0ZWQgeWV0LgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAwEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRWb2lkZWRgXSBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy49AgQYT3B0aW9uBARUARABCBBOb25lAAAAEFNvbWUEABAAAAEAAEECDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0EENhbGwIBFQABEkAARgQdm90ZQgBKHBvbGxfaW5kZXjUAURQb2xsSW5kZXhPZjxULCBJPgABEHZvdGVFAgFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgAAJBkBVm90ZSBpbiBhIHBvbGwuIElmIGB2b3RlLmlzX2F5ZSgpYCwgdGhlIHZvdGUgaXMgdG8gZW5hY3QgdGhlIHByb3Bvc2FsO7hvdGhlcndpc2UgaXQgaXMgYSB2b3RlIHRvIGtlZXAgdGhlIHN0YXR1cyBxdW8uAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgDILSBgcG9sbF9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcG9sbCB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uABUBV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoZSB2b3RlciBoYXMgdm90ZWQgb24uIGRlbGVnYXRlEAEUY2xhc3NVAQE0Q2xhc3NPZjxULCBJPgABCHRvnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoY29udmljdGlvbk0CAShDb252aWN0aW9uAAEcYmFsYW5jZRgBPEJhbGFuY2VPZjxULCBJPgABXE0BRGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciAod2l0aCBzb21lIGdpdmVuIGNvbnZpY3Rpb24pIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGFocGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yRQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkIHRocm91Z2hMICAgIGByZW1vdmVfdm90ZWApLgBFAS0gYHRvYDogVGhlIGFjY291bnQgd2hvc2Ugdm90aW5nIHRoZSBgdGFyZ2V0YCBhY2NvdW50J3Mgdm90aW5nIHBvd2VyIHdpbGwgZm9sbG93Ll0BLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gZGVsZWdhdGUuIFRvIGRlbGVnYXRlIG11bHRpcGxlIGNsYXNzZXMsIG11bHRpcGxlIGNhbGxzgCAgdG8gdGhpcyBmdW5jdGlvbiBhcmUgcmVxdWlyZWQuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuKHVuZGVsZWdhdGUEARRjbGFzc1UBATRDbGFzc09mPFQsIEk+AAI4TQFVbmRlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgb2YgdGhlIHNlbmRpbmcgYWNjb3VudCBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHBvbGxzLgBdAVRva2VucyBtYXkgYmUgdW5sb2NrZWQgZm9sbG93aW5nIG9uY2UgYW4gYW1vdW50IG9mIHRpbWUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2NrIHBlcmlvZAkBb2YgdGhlIGNvbnZpY3Rpb24gd2l0aCB3aGljaCB0aGUgZGVsZWdhdGlvbiB3YXMgaXNzdWVkIGhhcyBwYXNzZWQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlVGN1cnJlbnRseSBkZWxlZ2F0aW5nLgDwLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gcmVtb3ZlIHRoZSBkZWxlZ2F0aW9uIGZyb20uAFBFbWl0cyBgVW5kZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuGHVubG9jawgBFGNsYXNzVQEBNENsYXNzT2Y8VCwgST4AARh0YXJnZXSdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyRdAVJlbW92ZSB0aGUgbG9jayBjYXVzZWQgYnkgcHJpb3Igdm90aW5nL2RlbGVnYXRpbmcgd2hpY2ggaGFzIGV4cGlyZWQgd2l0aGluIGEgcGFydGljdWxhchhjbGFzcy4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAKAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byB1bmxvY2suuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlCAEUY2xhc3NRAgFUT3B0aW9uPENsYXNzT2Y8VCwgST4+AAEUaW5kZXgQAURQb2xsSW5kZXhPZjxULCBJPgAEdGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAAxJZjpwLSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBvcmQtIHRoZSBwb2xsIGlzIG9uZ29pbmcsIG9yeC0gdGhlIHBvbGwgaGFzIGVuZGVkIHN1Y2ggdGhhdPwgIC0gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQgd2FzIGluIG9wcG9zaXRpb24gdG8gdGhlIHJlc3VsdDsgb3LUICAtIHRoZXJlIHdhcyBubyBjb252aWN0aW9uIHRvIHRoZSBhY2NvdW50J3Mgdm90ZTsgb3KEICAtIHRoZSBhY2NvdW50IG1hZGUgYSBzcGxpdCB2b3RlXQEuLi50aGVuIHRoZSB2b3RlIGlzIHJlbW92ZWQgY2xlYW5seSBhbmQgYSBmb2xsb3dpbmcgY2FsbCB0byBgdW5sb2NrYCBtYXkgcmVzdWx0IGluIG1vcmVYZnVuZHMgYmVpbmcgYXZhaWxhYmxlLgCQSWYsIGhvd2V2ZXIsIHRoZSBwb2xsIGhhcyBlbmRlZCBhbmQ67C0gaXQgZmluaXNoZWQgY29ycmVzcG9uZGluZyB0byB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCwgYW5k3C0gdGhlIGFjY291bnQgbWFkZSBhIHN0YW5kYXJkIHZvdGUgd2l0aCBjb252aWN0aW9uLCBhbmS8LSB0aGUgbG9jayBwZXJpb2Qgb2YgdGhlIGNvbnZpY3Rpb24gaXMgbm90IG92ZXJZAS4uLnRoZW4gdGhlIGxvY2sgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG8gdGhlIG92ZXJhbGwgYWNjb3VudCdzIGxvY2ssIHdoaWNoIG1heSBpbnZvbHZlWQEqb3ZlcmxvY2tpbmcqICh3aGVyZSB0aGUgdHdvIGxvY2tzIGFyZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIGxvY2sgdGhhdCBpcyB0aGUgbWF4aW11beRvZiBib3RoIHRoZSBhbW91bnQgbG9ja2VkIGFuZCB0aGUgdGltZSBpcyBpdCBsb2NrZWQgZm9yKS4ASQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25lciBtdXN0IGhhdmUgYSB2b3RlcHJlZ2lzdGVyZWQgZm9yIHBvbGwgYGluZGV4YC4A3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC5VAS0gYGNsYXNzYDogT3B0aW9uYWwgcGFyYW1ldGVyLCBpZiBnaXZlbiBpdCBpbmRpY2F0ZXMgdGhlIGNsYXNzIG9mIHRoZSBwb2xsLiBGb3IgcG9sbHPwICB3aGljaCBoYXZlIGZpbmlzaGVkIG9yIGFyZSBjYW5jZWxsZWQsIHRoaXMgbXVzdCBiZSBgU29tZWAuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLkRyZW1vdmVfb3RoZXJfdm90ZQwBGHRhcmdldJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGNsYXNzVQEBNENsYXNzT2Y8VCwgST4AARRpbmRleBABRFBvbGxJbmRleE9mPFQsIEk+AAVAZFJlbW92ZSBhIHZvdGUgZm9yIGEgcG9sbC4ATQFJZiB0aGUgYHRhcmdldGAgaXMgZXF1YWwgdG8gdGhlIHNpZ25lciwgdGhlbiB0aGlzIGZ1bmN0aW9uIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0by0BYHJlbW92ZV92b3RlYC4gSWYgbm90IGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhlIHZvdGUgbXVzdCBoYXZlIGV4cGlyZWQsJQFlaXRoZXIgYmVjYXVzZSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBiZWNhdXNlIHRoZSB2b3RlciBsb3N0IHRoZSBwb2xsIG9ymGJlY2F1c2UgdGhlIGNvbnZpY3Rpb24gcGVyaW9kIGlzIG92ZXIuAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBhAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQ7IHRoaXMgYWNjb3VudCBtdXN0IGhhdmUgdm90ZWQgZm9yIHBvbGwoICBgaW5kZXhgLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiBwb2xsIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuhC0gYGNsYXNzYDogVGhlIGNsYXNzIG9mIHRoZSBwb2xsLgBFAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQIMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlLEFjY291bnRWb3RlBBxCYWxhbmNlARgBDCBTdGFuZGFyZAgBEHZvdGVJAgEQVm90ZQABHGJhbGFuY2UYARxCYWxhbmNlAAAAFFNwbGl0CAEMYXllGAEcQmFsYW5jZQABDG5heRgBHEJhbGFuY2UAAQAwU3BsaXRBYnN0YWluDAEMYXllGAEcQmFsYW5jZQABDG5heRgBHEJhbGFuY2UAARxhYnN0YWluGAEcQmFsYW5jZQACAABJAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUQVm90ZQAABAAIAAAATQIMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZyhjb252aWN0aW9uKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAABRAgQYT3B0aW9uBARUAVUBAQgQTm9uZQAAABBTb21lBABVAQAAAQAAVQIMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0EENhbGwIBFQABEkAASQYc3VibWl0DAE8cHJvcG9zYWxfb3JpZ2luWQIBXEJveDxQYWxsZXRzT3JpZ2luT2Y8VD4+AAEgcHJvcG9zYWxZAQFMQm91bmRlZENhbGxPZjxULCBJPgABQGVuYWN0bWVudF9tb21lbnR1AgF8RGlzcGF0Y2hUaW1lPEJsb2NrTnVtYmVyRm9yPFQ+PgAAJLBQcm9wb3NlIGEgcmVmZXJlbmR1bSBvbiBhIHByaXZpbGVnZWQgYWN0aW9uLgBZAS0gYG9yaWdpbmA6IG11c3QgYmUgYFN1Ym1pdE9yaWdpbmAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBgU3VibWlzc2lvbkRlcG9zaXRgIGZ1bmRzMCAgYXZhaWxhYmxlLi0BLSBgcHJvcG9zYWxfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZXhlY3V0ZWQubC0gYHByb3Bvc2FsYDogVGhlIHByb3Bvc2FsLhUBLSBgZW5hY3RtZW50X21vbWVudGA6IFRoZSBtb21lbnQgdGhhdCB0aGUgcHJvcG9zYWwgc2hvdWxkIGJlIGVuYWN0ZWQuAEhFbWl0cyBgU3VibWl0dGVkYC5YcGxhY2VfZGVjaXNpb25fZGVwb3NpdAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAEgrFBvc3QgdGhlIERlY2lzaW9uIERlcG9zaXQgZm9yIGEgcmVmZXJlbmR1bS4AOQEtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgYWNjb3VudCBtdXN0IGhhdmUgZnVuZHMgYXZhaWxhYmxlIGZvciB0aGWgICByZWZlcmVuZHVtJ3MgdHJhY2sncyBEZWNpc2lvbiBEZXBvc2l0LlEBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHN1Ym1pdHRlZCByZWZlcmVuZHVtIHdob3NlIERlY2lzaW9uIERlcG9zaXQgaXMgeWV0IHRvIGJlJCAgcG9zdGVkLgB4RW1pdHMgYERlY2lzaW9uRGVwb3NpdFBsYWNlZGAuXHJlZnVuZF9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAAhwpAVJlZnVuZCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSBjbG9zZWQgcmVmZXJlbmR1bSBiYWNrIHRvIHRoZSBkZXBvc2l0b3IuAJwtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIG9yIGBSb290YC5NAS0gYGluZGV4YDogVGhlIGluZGV4IG9mIGEgY2xvc2VkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIBFbWl0cyBgRGVjaXNpb25EZXBvc2l0UmVmdW5kZWRgLhhjYW5jZWwEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAADGHRDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtLgCcLSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYENhbmNlbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4ASEVtaXRzIGBDYW5jZWxsZWRgLhBraWxsBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABBjQQ2FuY2VsIGFuIG9uZ29pbmcgcmVmZXJlbmR1bSBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgCULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byBiZSBjYW5jZWxsZWQuAJBFbWl0cyBgS2lsbGVkYCBhbmQgYERlcG9zaXRTbGFzaGVkYC5AbnVkZ2VfcmVmZXJlbmR1bQQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAUQHQFBZHZhbmNlIGEgcmVmZXJlbmR1bSBvbnRvIGl0cyBuZXh0IGxvZ2ljYWwgc3RhdGUuIE9ubHkgdXNlZCBpbnRlcm5hbGx5LgBsLSBgb3JpZ2luYDogbXVzdCBiZSBgUm9vdGAupC0gYGluZGV4YDogdGhlIHJlZmVyZW5kdW0gdG8gYmUgYWR2YW5jZWQuSG9uZV9mZXdlcl9kZWNpZGluZwQBFHRyYWNrVQEBPFRyYWNrSWRPZjxULCBJPgAGJAkBQWR2YW5jZSBhIHRyYWNrIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6QLSBgdHJhY2tgOiB0aGUgdHJhY2sgdG8gYmUgYWR2YW5jZWQuAFEBQWN0aW9uIGl0ZW0gZm9yIHdoZW4gdGhlcmUgaXMgbm93IG9uZSBmZXdlciByZWZlcmVuZHVtIGluIHRoZSBkZWNpZGluZyBwaGFzZSBhbmQgdGhlFQFgRGVjaWRpbmdDb3VudGAgaXMgbm90IHlldCB1cGRhdGVkLiBUaGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIGVpdGhlcjolAS0gYmVnaW4gZGVjaWRpbmcgYW5vdGhlciByZWZlcmVuZHVtIChhbmQgbGVhdmUgYERlY2lkaW5nQ291bnRgIGFsb25lKTsgb3JwLSBkZWNyZW1lbnQgYERlY2lkaW5nQ291bnRgLmRyZWZ1bmRfc3VibWlzc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABxwxAVJlZnVuZCB0aGUgU3VibWlzc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLlUBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBTdWJtaXNzaW9uIERlcG9zaXQgaGFzIG5vdCB5ZXQgYmVlbiwgIHJlZnVuZGVkLgCIRW1pdHMgYFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWRgLjBzZXRfbWV0YWRhdGEIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAABKG1heWJlX2hhc2h5AgE8T3B0aW9uPFQ6Okhhc2g+AAgcmFNldCBvciBjbGVhciBtZXRhZGF0YSBvZiBhIHJlZmVyZW5kdW0uACxQYXJhbWV0ZXJzOkUBLSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYCBieSBhIGNyZWF0b3Igb2YgYSByZWZlcmVuZHVtIG9yIGJ5IGFueW9uZSB0byBjbGVhciBhkCAgbWV0YWRhdGEgb2YgYSBmaW5pc2hlZCByZWZlcmVuZHVtLg0BLSBgaW5kZXhgOiAgVGhlIGluZGV4IG9mIGEgcmVmZXJlbmR1bSB0byBzZXQgb3IgY2xlYXIgbWV0YWRhdGEgZm9yLlEBLSBgbWF5YmVfaGFzaGA6IFRoZSBoYXNoIG9mIGFuIG9uLWNoYWluIHN0b3JlZCBwcmVpbWFnZS4gYE5vbmVgIHRvIGNsZWFyIGEgbWV0YWRhdGEuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkCCFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lME9yaWdpbkNhbGxlcgABFBhzeXN0ZW0EAF0CAXRmcmFtZV9zeXN0ZW06Ok9yaWdpbjxSdW50aW1lPgAAABxPcmlnaW5zBABhAgF0cGFsbGV0X2N1c3RvbV9vcmlnaW5zOjpPcmlnaW4AKwBAUGFyYWNoYWluc09yaWdpbgQAZQIBZHBhcmFjaGFpbnNfb3JpZ2luOjpPcmlnaW4AMgAkWGNtUGFsbGV0BABtAgFIcGFsbGV0X3hjbTo6T3JpZ2luAGMAEFZvaWQEAHECAUEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OgpfX3ByaXZhdGU6OlZvaWQABAAAXQIMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBAAEMEFJvb3QAAAAYU2lnbmVkBAAAASRBY2NvdW50SWQAAQAQTm9uZQACAABhAhRYc3RhZ2luZ19rdXNhbWFfcnVudGltZShnb3Zlcm5hbmNlHG9yaWdpbnNUcGFsbGV0X2N1c3RvbV9vcmlnaW5zGE9yaWdpbgABcDBTdGFraW5nQWRtaW4AAAAkVHJlYXN1cmVyAAEAPEZlbGxvd3NoaXBBZG1pbgACADBHZW5lcmFsQWRtaW4AAwAwQXVjdGlvbkFkbWluAAQAKExlYXNlQWRtaW4ABQBMUmVmZXJlbmR1bUNhbmNlbGxlcgAGAEBSZWZlcmVuZHVtS2lsbGVyAAcALFNtYWxsVGlwcGVyAAgAJEJpZ1RpcHBlcgAJADBTbWFsbFNwZW5kZXIACgA0TWVkaXVtU3BlbmRlcgALAChCaWdTcGVuZGVyAAwARFdoaXRlbGlzdGVkQ2FsbGVyAA0ATEZlbGxvd3NoaXBJbml0aWF0ZXMADgAcRmVsbG93cwAPAERGZWxsb3dzaGlwRXhwZXJ0cwAQAERGZWxsb3dzaGlwTWFzdGVycwARADhGZWxsb3dzaGlwMURhbgASADhGZWxsb3dzaGlwMkRhbgATADhGZWxsb3dzaGlwM0RhbgAUADhGZWxsb3dzaGlwNERhbgAVADhGZWxsb3dzaGlwNURhbgAWADhGZWxsb3dzaGlwNkRhbgAXADhGZWxsb3dzaGlwN0RhbgAYADhGZWxsb3dzaGlwOERhbgAZADhGZWxsb3dzaGlwOURhbgAaADRXaXNoRm9yQ2hhbmdlABsAAGUCEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMYb3JpZ2luGHBhbGxldBhPcmlnaW4AAQQkUGFyYWNoYWluBABpAgEYUGFyYUlkAAAAAGkCDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEABABDHUzMgAAbQIMKHBhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCAxYY20EAPQBIExvY2F0aW9uAAAAIFJlc3BvbnNlBAD0ASBMb2NhdGlvbgABAABxAggcc3BfY29yZRBWb2lkAAEAAHUCEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBzY2hlZHVsZTBEaXNwYXRjaFRpbWUELEJsb2NrTnVtYmVyARABCAhBdAQAEAEsQmxvY2tOdW1iZXIAAAAUQWZ0ZXIEABABLEJsb2NrTnVtYmVyAAEAAHkCBBhPcHRpb24EBFQBNAEIEE5vbmUAAAAQU29tZQQANAAAAQAAfQIMYHBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZRhwYWxsZXQQQ2FsbAgEVAAESQABHChhZGRfbWVtYmVyBAEMd2hvnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAAYXEludHJvZHVjZSBhIG5ldyBtZW1iZXIuAJAtIGBvcmlnaW5gOiBNdXN0IGJlIHRoZSBgQWRkT3JpZ2luYC7oLSBgd2hvYDogQWNjb3VudCBvZiBub24tbWVtYmVyIHdoaWNoIHdpbGwgYmVjb21lIGEgbWVtYmVyLgA4V2VpZ2h0OiBgTygxKWA4cHJvbW90ZV9tZW1iZXIEAQx3aG+dAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARjASW5jcmVtZW50IHRoZSByYW5rIG9mIGFuIGV4aXN0aW5nIG1lbWJlciBieSBvbmUuAKAtIGBvcmlnaW5gOiBNdXN0IGJlIHRoZSBgUHJvbW90ZU9yaWdpbmAukC0gYHdob2A6IEFjY291bnQgb2YgZXhpc3RpbmcgbWVtYmVyLgA4V2VpZ2h0OiBgTygxKWA0ZGVtb3RlX21lbWJlcgQBDHdob50BAVBBY2NvdW50SWRMb29rdXBPZjxUPgACHF0BRGVjcmVtZW50IHRoZSByYW5rIG9mIGFuIGV4aXN0aW5nIG1lbWJlciBieSBvbmUuIElmIHRoZSBtZW1iZXIgaXMgYWxyZWFkeSBhdCByYW5rIHplcm8sfHRoZW4gdGhleSBhcmUgcmVtb3ZlZCBlbnRpcmVseS4AnC0gYG9yaWdpbmA6IE11c3QgYmUgdGhlIGBEZW1vdGVPcmlnaW5gLvgtIGB3aG9gOiBBY2NvdW50IG9mIGV4aXN0aW5nIG1lbWJlciBvZiByYW5rIGdyZWF0ZXIgdGhhbiB6ZXJvLgAJAVdlaWdodDogYE8oMSlgLCBsZXNzIGlmIHRoZSBtZW1iZXIncyBpbmRleCBpcyBoaWdoZXN0IGluIGl0cyByYW5rLjRyZW1vdmVfbWVtYmVyCAEMd2hvnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgbWluX3JhbmtVAQEQUmFuawADHGxSZW1vdmUgdGhlIG1lbWJlciBlbnRpcmVseS4AnC0gYG9yaWdpbmA6IE11c3QgYmUgdGhlIGBSZW1vdmVPcmlnaW5gLvgtIGB3aG9gOiBBY2NvdW50IG9mIGV4aXN0aW5nIG1lbWJlciBvZiByYW5rIGdyZWF0ZXIgdGhhbiB6ZXJvLsAtIGBtaW5fcmFua2A6IFRoZSByYW5rIG9mIHRoZSBtZW1iZXIgb3IgZ3JlYXRlci4AWFdlaWdodDogYE8obWluX3JhbmspYC4Qdm90ZQgBEHBvbGwQAURQb2xsSW5kZXhPZjxULCBJPgABDGF5ZSABEGJvb2wABCzwQWRkIGFuIGF5ZSBvciBuYXkgdm90ZSBmb3IgdGhlIHNlbmRlciB0byB0aGUgZ2l2ZW4gcHJvcG9zYWwuAMQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgIGJ5IGEgbWVtYmVyIGFjY291bnQurC0gYHBvbGxgOiBJbmRleCBvZiBhIHBvbGwgd2hpY2ggaXMgb25nb2luZy4pAS0gYGF5ZWA6IGB0cnVlYCBpZiB0aGUgdm90ZSBpcyB0byBhcHByb3ZlIHRoZSBwcm9wb3NhbCwgYGZhbHNlYCBvdGhlcndpc2UuAEUBVHJhbnNhY3Rpb24gZmVlcyBhcmUgYmUgd2FpdmVkIGlmIHRoZSBtZW1iZXIgaXMgdm90aW5nIG9uIGFueSBwYXJ0aWN1bGFyIHByb3Bvc2FsUQFmb3IgdGhlIGZpcnN0IHRpbWUgYW5kIHRoZSBjYWxsIGlzIHN1Y2Nlc3NmdWwuIFN1YnNlcXVlbnQgdm90ZSBjaGFuZ2VzIHdpbGwgY2hhcmdlIGEQZmVlLgA1AVdlaWdodDogYE8oMSlgLCBsZXNzIGlmIHRoZXJlIHdhcyBubyBwcmV2aW91cyB2b3RlIG9uIHRoZSBwb2xsIGJ5IHRoZSBtZW1iZXIuMGNsZWFudXBfcG9sbAgBKHBvbGxfaW5kZXgQAURQb2xsSW5kZXhPZjxULCBJPgABDG1heBABDHUzMgAFKNRSZW1vdmUgdm90ZXMgZnJvbSB0aGUgZ2l2ZW4gcG9sbC4gSXQgbXVzdCBoYXZlIGVuZGVkLgCwLSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYCBieSBhbnkgYWNjb3VudC5JAS0gYHBvbGxfaW5kZXhgOiBJbmRleCBvZiBhIHBvbGwgd2hpY2ggaXMgY29tcGxldGVkIGFuZCBmb3Igd2hpY2ggdm90ZXMgY29udGludWUgdG8gICBleGlzdC78LSBgbWF4YDogTWF4aW11bSBudW1iZXIgb2Ygdm90ZSBpdGVtcyBmcm9tIHJlbW92ZSBpbiB0aGlzIGNhbGwuAOxUcmFuc2FjdGlvbiBmZWVzIGFyZSB3YWl2ZWQgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgAVAVdlaWdodCBgTyhtYXgpYCAobGVzcyBpZiB0aGVyZSBhcmUgZmV3ZXIgaXRlbXMgdG8gcmVtb3ZlIHRoYW4gYG1heGApLjxleGNoYW5nZV9tZW1iZXIIAQx3aG+dAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxuZXdfd2hvnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAYUBQFFeGNoYW5nZXMgYSBtZW1iZXIgd2l0aCBhIG5ldyBhY2NvdW50IGFuZCB0aGUgc2FtZSBleGlzdGluZyByYW5rLgCkLSBgb3JpZ2luYDogTXVzdCBiZSB0aGUgYEV4Y2hhbmdlT3JpZ2luYC45AS0gYHdob2A6IEFjY291bnQgb2YgZXhpc3RpbmcgbWVtYmVyIG9mIHJhbmsgZ3JlYXRlciB0aGFuIHplcm8gdG8gYmUgZXhjaGFuZ2VkLlkBLSBgbmV3X3dob2A6IE5ldyBBY2NvdW50IG9mIGV4aXN0aW5nIG1lbWJlciBvZiByYW5rIGdyZWF0ZXIgdGhhbiB6ZXJvIHRvIGV4Y2hhbmdlZCB0by4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMugQIMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0EENhbGwIBFQABEkAASQYc3VibWl0DAE8cHJvcG9zYWxfb3JpZ2luWQIBXEJveDxQYWxsZXRzT3JpZ2luT2Y8VD4+AAEgcHJvcG9zYWxZAQFMQm91bmRlZENhbGxPZjxULCBJPgABQGVuYWN0bWVudF9tb21lbnR1AgF8RGlzcGF0Y2hUaW1lPEJsb2NrTnVtYmVyRm9yPFQ+PgAAJLBQcm9wb3NlIGEgcmVmZXJlbmR1bSBvbiBhIHByaXZpbGVnZWQgYWN0aW9uLgBZAS0gYG9yaWdpbmA6IG11c3QgYmUgYFN1Ym1pdE9yaWdpbmAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBgU3VibWlzc2lvbkRlcG9zaXRgIGZ1bmRzMCAgYXZhaWxhYmxlLi0BLSBgcHJvcG9zYWxfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZXhlY3V0ZWQubC0gYHByb3Bvc2FsYDogVGhlIHByb3Bvc2FsLhUBLSBgZW5hY3RtZW50X21vbWVudGA6IFRoZSBtb21lbnQgdGhhdCB0aGUgcHJvcG9zYWwgc2hvdWxkIGJlIGVuYWN0ZWQuAEhFbWl0cyBgU3VibWl0dGVkYC5YcGxhY2VfZGVjaXNpb25fZGVwb3NpdAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAEgrFBvc3QgdGhlIERlY2lzaW9uIERlcG9zaXQgZm9yIGEgcmVmZXJlbmR1bS4AOQEtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgYWNjb3VudCBtdXN0IGhhdmUgZnVuZHMgYXZhaWxhYmxlIGZvciB0aGWgICByZWZlcmVuZHVtJ3MgdHJhY2sncyBEZWNpc2lvbiBEZXBvc2l0LlEBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHN1Ym1pdHRlZCByZWZlcmVuZHVtIHdob3NlIERlY2lzaW9uIERlcG9zaXQgaXMgeWV0IHRvIGJlJCAgcG9zdGVkLgB4RW1pdHMgYERlY2lzaW9uRGVwb3NpdFBsYWNlZGAuXHJlZnVuZF9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAAhwpAVJlZnVuZCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSBjbG9zZWQgcmVmZXJlbmR1bSBiYWNrIHRvIHRoZSBkZXBvc2l0b3IuAJwtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIG9yIGBSb290YC5NAS0gYGluZGV4YDogVGhlIGluZGV4IG9mIGEgY2xvc2VkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIBFbWl0cyBgRGVjaXNpb25EZXBvc2l0UmVmdW5kZWRgLhhjYW5jZWwEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAADGHRDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtLgCcLSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYENhbmNlbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4ASEVtaXRzIGBDYW5jZWxsZWRgLhBraWxsBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABBjQQ2FuY2VsIGFuIG9uZ29pbmcgcmVmZXJlbmR1bSBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgCULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byBiZSBjYW5jZWxsZWQuAJBFbWl0cyBgS2lsbGVkYCBhbmQgYERlcG9zaXRTbGFzaGVkYC5AbnVkZ2VfcmVmZXJlbmR1bQQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAUQHQFBZHZhbmNlIGEgcmVmZXJlbmR1bSBvbnRvIGl0cyBuZXh0IGxvZ2ljYWwgc3RhdGUuIE9ubHkgdXNlZCBpbnRlcm5hbGx5LgBsLSBgb3JpZ2luYDogbXVzdCBiZSBgUm9vdGAupC0gYGluZGV4YDogdGhlIHJlZmVyZW5kdW0gdG8gYmUgYWR2YW5jZWQuSG9uZV9mZXdlcl9kZWNpZGluZwQBFHRyYWNrVQEBPFRyYWNrSWRPZjxULCBJPgAGJAkBQWR2YW5jZSBhIHRyYWNrIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6QLSBgdHJhY2tgOiB0aGUgdHJhY2sgdG8gYmUgYWR2YW5jZWQuAFEBQWN0aW9uIGl0ZW0gZm9yIHdoZW4gdGhlcmUgaXMgbm93IG9uZSBmZXdlciByZWZlcmVuZHVtIGluIHRoZSBkZWNpZGluZyBwaGFzZSBhbmQgdGhlFQFgRGVjaWRpbmdDb3VudGAgaXMgbm90IHlldCB1cGRhdGVkLiBUaGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIGVpdGhlcjolAS0gYmVnaW4gZGVjaWRpbmcgYW5vdGhlciByZWZlcmVuZHVtIChhbmQgbGVhdmUgYERlY2lkaW5nQ291bnRgIGFsb25lKTsgb3JwLSBkZWNyZW1lbnQgYERlY2lkaW5nQ291bnRgLmRyZWZ1bmRfc3VibWlzc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABxwxAVJlZnVuZCB0aGUgU3VibWlzc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLlUBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBTdWJtaXNzaW9uIERlcG9zaXQgaGFzIG5vdCB5ZXQgYmVlbiwgIHJlZnVuZGVkLgCIRW1pdHMgYFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWRgLjBzZXRfbWV0YWRhdGEIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAABKG1heWJlX2hhc2h5AgE8T3B0aW9uPFQ6Okhhc2g+AAgcmFNldCBvciBjbGVhciBtZXRhZGF0YSBvZiBhIHJlZmVyZW5kdW0uACxQYXJhbWV0ZXJzOkUBLSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYCBieSBhIGNyZWF0b3Igb2YgYSByZWZlcmVuZHVtIG9yIGJ5IGFueW9uZSB0byBjbGVhciBhkCAgbWV0YWRhdGEgb2YgYSBmaW5pc2hlZCByZWZlcmVuZHVtLg0BLSBgaW5kZXhgOiAgVGhlIGluZGV4IG9mIGEgcmVmZXJlbmR1bSB0byBzZXQgb3IgY2xlYXIgbWV0YWRhdGEgZm9yLlEBLSBgbWF5YmVfaGFzaGA6IFRoZSBoYXNoIG9mIGFuIG9uLWNoYWluIHN0b3JlZCBwcmVpbWFnZS4gYE5vbmVgIHRvIGNsZWFyIGEgbWV0YWRhdGEuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLoUCDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBBDYWxsBARUAAEQOHdoaXRlbGlzdF9jYWxsBAEkY2FsbF9oYXNoNAEcVDo6SGFzaAAAAFxyZW1vdmVfd2hpdGVsaXN0ZWRfY2FsbAQBJGNhbGxfaGFzaDQBHFQ6Okhhc2gAAQBkZGlzcGF0Y2hfd2hpdGVsaXN0ZWRfY2FsbAwBJGNhbGxfaGFzaDQBHFQ6Okhhc2gAAUBjYWxsX2VuY29kZWRfbGVuEAEMdTMyAAFMY2FsbF93ZWlnaHRfd2l0bmVzcygBGFdlaWdodAACAJxkaXNwYXRjaF93aGl0ZWxpc3RlZF9jYWxsX3dpdGhfcHJlaW1hZ2UEARBjYWxsXQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuiQIMRHBhbGxldF9wYXJhbWV0ZXJzGHBhbGxldBBDYWxsBARUAAEENHNldF9wYXJhbWV0ZXIEASRrZXlfdmFsdWWNAgFQVDo6UnVudGltZVBhcmFtZXRlcnMAABB0U2V0IHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBBZG1pbk9yaWdpbmAgZm9yIHRoZSBnaXZlbiBga2V5YC4gVmFsdWVzIGJliGRlbGV0ZWQgYnkgc2V0dGluZyB0aGVtIHRvIGBOb25lYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMujQIIWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWVEUnVudGltZVBhcmFtZXRlcnMAAQQkSW5mbGF0aW9uBACRAgGUZHluYW1pY19wYXJhbXM6OmluZmxhdGlvbjo6UGFyYW1ldGVycwAAAACRAhBYc3RhZ2luZ19rdXNhbWFfcnVudGltZThkeW5hbWljX3BhcmFtcyRpbmZsYXRpb24oUGFyYW1ldGVycwABFDBNaW5JbmZsYXRpb24IAJUCATBNaW5JbmZsYXRpb24AAJkCAUxPcHRpb248UGVycXVpbnRpbGw+AAAAME1heEluZmxhdGlvbggAoQIBME1heEluZmxhdGlvbgAAmQIBTE9wdGlvbjxQZXJxdWludGlsbD4AAQAoSWRlYWxTdGFrZQgApQIBKElkZWFsU3Rha2UAAJkCAUxPcHRpb248UGVycXVpbnRpbGw+AAIAHEZhbGxvZmYIAKkCARxGYWxsb2ZmAACZAgFMT3B0aW9uPFBlcnF1aW50aWxsPgADADxVc2VBdWN0aW9uU2xvdHMIAK0CATxVc2VBdWN0aW9uU2xvdHMAALECATBPcHRpb248Ym9vbD4ABAAAlQIQWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkaW5mbGF0aW9uME1pbkluZmxhdGlvbgAAAACZAgQYT3B0aW9uBARUAZ0CAQgQTm9uZQAAABBTb21lBACdAgAAAQAAnQIMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncyxQZXJxdWludGlsbAAABAAwAQx1NjQAAKECEFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lOGR5bmFtaWNfcGFyYW1zJGluZmxhdGlvbjBNYXhJbmZsYXRpb24AAAAApQIQWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkaW5mbGF0aW9uKElkZWFsU3Rha2UAAAAAqQIQWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkaW5mbGF0aW9uHEZhbGxvZmYAAAAArQIQWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkaW5mbGF0aW9uPFVzZUF1Y3Rpb25TbG90cwAAAACxAgQYT3B0aW9uBARUASABCBBOb25lAAAAEFNvbWUEACAAAAEAALUCEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXMYcGFsbGV0EENhbGwEBFQAARQUY2xhaW0IARBkZXN0AAEwVDo6QWNjb3VudElkAAFIZXRoZXJldW1fc2lnbmF0dXJluQIBOEVjZHNhU2lnbmF0dXJlAABgiE1ha2UgYSBjbGFpbSB0byBjb2xsZWN0IHlvdXIgRE9Ucy4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUFVuc2lnbmVkIFZhbGlkYXRpb246BQFBIGNhbGwgdG8gY2xhaW0gaXMgZGVlbWVkIHZhbGlkIGlmIHRoZSBzaWduYXR1cmUgcHJvdmlkZWQgbWF0Y2hlc3x0aGUgZXhwZWN0ZWQgc2lnbmVkIG1lc3NhZ2Ugb2Y6AGg+IEV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOpQ+IChjb25maWd1cmVkIHByZWZpeCBzdHJpbmcpKGFkZHJlc3MpAKRhbmQgYGFkZHJlc3NgIG1hdGNoZXMgdGhlIGBkZXN0YCBhY2NvdW50LgAsUGFyYW1ldGVyczrYLSBgZGVzdGA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IHRvIHBheW91dCB0aGUgY2xhaW0uXQEtIGBldGhlcmV1bV9zaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlIG9mIGFuIGV0aGVyZXVtIHNpZ25lZCBtZXNzYWdlIG1hdGNoaW5nIHRoZSBmb3JtYXRIICBkZXNjcmliZWQgYWJvdmUuACA8d2VpZ2h0PvxUaGUgd2VpZ2h0IG9mIHRoaXMgY2FsbCBpcyBpbnZhcmlhbnQgb3ZlciB0aGUgaW5wdXQgcGFyYW1ldGVycy7gV2VpZ2h0IGluY2x1ZGVzIGxvZ2ljIHRvIHZhbGlkYXRlIHVuc2lnbmVkIGBjbGFpbWAgY2FsbC4AWFRvdGFsIENvbXBsZXhpdHk6IE8oMSkkPC93ZWlnaHQ+KG1pbnRfY2xhaW0QAQx3aG/BAgE8RXRoZXJldW1BZGRyZXNzAAEUdmFsdWUYATBCYWxhbmNlT2Y8VD4AAUB2ZXN0aW5nX3NjaGVkdWxlxQIB3E9wdGlvbjwoQmFsYW5jZU9mPFQ+LCBCYWxhbmNlT2Y8VD4sIEJsb2NrTnVtYmVyRm9yPFQ+KT4AASRzdGF0ZW1lbnTNAgFUT3B0aW9uPFN0YXRlbWVudEtpbmQ+AAE8hE1pbnQgYSBuZXcgY2xhaW0gdG8gY29sbGVjdCBET1RzLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgAsUGFyYW1ldGVyczrwLSBgd2hvYDogVGhlIEV0aGVyZXVtIGFkZHJlc3MgYWxsb3dlZCB0byBjb2xsZWN0IHRoaXMgY2xhaW0uzC0gYHZhbHVlYDogVGhlIG51bWJlciBvZiBET1RzIHRoYXQgd2lsbCBiZSBjbGFpbWVkLgkBLSBgdmVzdGluZ19zY2hlZHVsZWA6IEFuIG9wdGlvbmFsIHZlc3Rpbmcgc2NoZWR1bGUgZm9yIHRoZXNlIERPVHMuACA8d2VpZ2h0PvxUaGUgd2VpZ2h0IG9mIHRoaXMgY2FsbCBpcyBpbnZhcmlhbnQgb3ZlciB0aGUgaW5wdXQgcGFyYW1ldGVycy4dAVdlIGFzc3VtZSB3b3JzdCBjYXNlIHRoYXQgYm90aCB2ZXN0aW5nIGFuZCBzdGF0ZW1lbnQgaXMgYmVpbmcgaW5zZXJ0ZWQuAFhUb3RhbCBDb21wbGV4aXR5OiBPKDEpJDwvd2VpZ2h0PjBjbGFpbV9hdHRlc3QMARBkZXN0AAEwVDo6QWNjb3VudElkAAFIZXRoZXJldW1fc2lnbmF0dXJluQIBOEVjZHNhU2lnbmF0dXJlAAEkc3RhdGVtZW50OAEcVmVjPHU4PgACbORNYWtlIGEgY2xhaW0gdG8gY29sbGVjdCB5b3VyIERPVHMgYnkgc2lnbmluZyBhIHN0YXRlbWVudC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUFVuc2lnbmVkIFZhbGlkYXRpb246KQFBIGNhbGwgdG8gYGNsYWltX2F0dGVzdGAgaXMgZGVlbWVkIHZhbGlkIGlmIHRoZSBzaWduYXR1cmUgcHJvdmlkZWQgbWF0Y2hlc3x0aGUgZXhwZWN0ZWQgc2lnbmVkIG1lc3NhZ2Ugb2Y6AGg+IEV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOsA+IChjb25maWd1cmVkIHByZWZpeCBzdHJpbmcpKGFkZHJlc3MpKHN0YXRlbWVudCkASQFhbmQgYGFkZHJlc3NgIG1hdGNoZXMgdGhlIGBkZXN0YCBhY2NvdW50OyB0aGUgYHN0YXRlbWVudGAgbXVzdCBtYXRjaCB0aGF0IHdoaWNoIGlzwGV4cGVjdGVkIGFjY29yZGluZyB0byB5b3VyIHB1cmNoYXNlIGFycmFuZ2VtZW50LgAsUGFyYW1ldGVyczrYLSBgZGVzdGA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IHRvIHBheW91dCB0aGUgY2xhaW0uXQEtIGBldGhlcmV1bV9zaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlIG9mIGFuIGV0aGVyZXVtIHNpZ25lZCBtZXNzYWdlIG1hdGNoaW5nIHRoZSBmb3JtYXRIICBkZXNjcmliZWQgYWJvdmUuOQEtIGBzdGF0ZW1lbnRgOiBUaGUgaWRlbnRpdHkgb2YgdGhlIHN0YXRlbWVudCB3aGljaCBpcyBiZWluZyBhdHRlc3RlZCB0byBpbiB0aGUwICBzaWduYXR1cmUuACA8d2VpZ2h0PvxUaGUgd2VpZ2h0IG9mIHRoaXMgY2FsbCBpcyBpbnZhcmlhbnQgb3ZlciB0aGUgaW5wdXQgcGFyYW1ldGVycy78V2VpZ2h0IGluY2x1ZGVzIGxvZ2ljIHRvIHZhbGlkYXRlIHVuc2lnbmVkIGBjbGFpbV9hdHRlc3RgIGNhbGwuAFhUb3RhbCBDb21wbGV4aXR5OiBPKDEpJDwvd2VpZ2h0PhhhdHRlc3QEASRzdGF0ZW1lbnQ4ARxWZWM8dTg+AANM9EF0dGVzdCB0byBhIHN0YXRlbWVudCwgbmVlZGVkIHRvIGZpbmFsaXplIHRoZSBjbGFpbXMgcHJvY2Vzcy4AGQFXQVJOSU5HOiBJbnNlY3VyZSB1bmxlc3MgeW91ciBjaGFpbiBpbmNsdWRlcyBgUHJldmFsaWRhdGVBdHRlc3RzYCBhcyBhSGBTaWduZWRFeHRlbnNpb25gLgBQVW5zaWduZWQgVmFsaWRhdGlvbjopAUEgY2FsbCB0byBhdHRlc3QgaXMgZGVlbWVkIHZhbGlkIGlmIHRoZSBzZW5kZXIgaGFzIGEgYFByZWNsYWltYCByZWdpc3RlcmVk9GFuZCBwcm92aWRlcyBhIGBzdGF0ZW1lbnRgIHdoaWNoIGlzIGV4cGVjdGVkIGZvciB0aGUgYWNjb3VudC4ALFBhcmFtZXRlcnM6OQEtIGBzdGF0ZW1lbnRgOiBUaGUgaWRlbnRpdHkgb2YgdGhlIHN0YXRlbWVudCB3aGljaCBpcyBiZWluZyBhdHRlc3RlZCB0byBpbiB0aGUwICBzaWduYXR1cmUuACA8d2VpZ2h0PvxUaGUgd2VpZ2h0IG9mIHRoaXMgY2FsbCBpcyBpbnZhcmlhbnQgb3ZlciB0aGUgaW5wdXQgcGFyYW1ldGVycy7wV2VpZ2h0IGluY2x1ZGVzIGxvZ2ljIHRvIGRvIHByZS12YWxpZGF0aW9uIG9uIGBhdHRlc3RgIGNhbGwuAFhUb3RhbCBDb21wbGV4aXR5OiBPKDEpJDwvd2VpZ2h0Pihtb3ZlX2NsYWltDAEMb2xkwQIBPEV0aGVyZXVtQWRkcmVzcwABDG5ld8ECATxFdGhlcmV1bUFkZHJlc3MAAThtYXliZV9wcmVjbGFpbdkBAVBPcHRpb248VDo6QWNjb3VudElkPgAEAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy65AgxccG9sa2Fkb3RfcnVudGltZV9jb21tb24YY2xhaW1zOEVjZHNhU2lnbmF0dXJlAAAEAL0CASBbdTg7IDY1XQAAvQIAAANBAAAACADBAgxccG9sa2Fkb3RfcnVudGltZV9jb21tb24YY2xhaW1zPEV0aGVyZXVtQWRkcmVzcwAABADgASBbdTg7IDIwXQAAxQIEGE9wdGlvbgQEVAHJAgEIEE5vbmUAAAAQU29tZQQAyQIAAAEAAMkCAAAEDBgYEADNAgQYT3B0aW9uBARUAdECAQgQTm9uZQAAABBTb21lBADRAgAAAQAA0QIMXHBvbGthZG90X3J1bnRpbWVfY29tbW9uGGNsYWltczRTdGF0ZW1lbnRLaW5kAAEIHFJlZ3VsYXIAAAAQU2FmdAABAADVAgw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0EENhbGwEBFQAARgUYmF0Y2gEARRjYWxsc9kCAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AABIfFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4AVQFUaGlzIHdpbGwgcmV0dXJuIGBPa2AgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRvIGRldGVybWluZSB0aGUgc3VjY2VzcyBvZiB0aGUgYmF0Y2gsIGFuMQFldmVudCBpcyBkZXBvc2l0ZWQuIElmIGEgY2FsbCBmYWlsZWQgYW5kIHRoZSBiYXRjaCB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gdGhlVQFgQmF0Y2hJbnRlcnJ1cHRlZGAgZXZlbnQgaXMgZGVwb3NpdGVkLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCBjYWxscyBtYWRlTQFhbmQgdGhlIGVycm9yIG9mIHRoZSBmYWlsZWQgY2FsbC4gSWYgYWxsIHdlcmUgc3VjY2Vzc2Z1bCwgdGhlbiB0aGUgYEJhdGNoQ29tcGxldGVkYExldmVudCBpcyBkZXBvc2l0ZWQuNGFzX2Rlcml2YXRpdmUIARRpbmRleFUBAQx1MTYAARBjYWxsXQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AATTcU2VuZCBhIGNhbGwgdGhyb3VnaCBhbiBpbmRleGVkIHBzZXVkb255bSBvZiB0aGUgc2VuZGVyLgBVAUZpbHRlciBmcm9tIG9yaWdpbiBhcmUgcGFzc2VkIGFsb25nLiBUaGUgY2FsbCB3aWxsIGJlIGRpc3BhdGNoZWQgd2l0aCBhbiBvcmlnaW4gd2hpY2i8dXNlIHRoZSBzYW1lIGZpbHRlciBhcyB0aGUgb3JpZ2luIG9mIHRoaXMgY2FsbC4ARQFOT1RFOiBJZiB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgYWNjb3VudC1iYXNlZCBmaWx0ZXJpbmcgaXMgbm90IGhvbm9yZWQgKGkuZS5hAWJlY2F1c2UgeW91IGV4cGVjdCBgcHJveHlgIHRvIGhhdmUgYmVlbiB1c2VkIHByaW9yIGluIHRoZSBjYWxsIHN0YWNrIGFuZCB5b3UgZG8gbm90IHdhbnRRAXRoZSBjYWxsIHJlc3RyaWN0aW9ucyB0byBhcHBseSB0byBhbnkgc3ViLWFjY291bnRzKSwgdGhlbiB1c2UgYGFzX211bHRpX3RocmVzaG9sZF8xYHxpbiB0aGUgTXVsdGlzaWcgcGFsbGV0IGluc3RlYWQuAPROT1RFOiBQcmlvciB0byB2ZXJzaW9uICoxMiwgdGhpcyB3YXMgY2FsbGVkIGBhc19saW1pdGVkX3N1YmAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4kYmF0Y2hfYWxsBAEUY2FsbHPZAgF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACNOxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMgYW5kIGF0b21pY2FsbHkgZXhlY3V0ZSB0aGVtLiEBVGhlIHdob2xlIHRyYW5zYWN0aW9uIHdpbGwgcm9sbGJhY2sgYW5kIGZhaWwgaWYgYW55IG9mIHRoZSBjYWxscyBmYWlsZWQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLGRpc3BhdGNoX2FzCAEkYXNfb3JpZ2luWQIBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADGMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuLGZvcmNlX2JhdGNoBAEUY2FsbHPZAgF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodCgBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu2QIAAAJdAQDdAgw4cGFsbGV0X3NvY2lldHkYcGFsbGV0EENhbGwIBFQABEkAAVAMYmlkBAEUdmFsdWUYATxCYWxhbmNlT2Y8VCwgST4AACTcQSB1c2VyIG91dHNpZGUgb2YgdGhlIHNvY2lldHkgY2FuIG1ha2UgYSBiaWQgZm9yIGVudHJ5LgBhAVBheW1lbnQ6IFRoZSBncm91cCdzIENhbmRpZGF0ZSBEZXBvc2l0IHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIG1ha2luZyBhIGJpZC4gSXQgaXMgcmV0dXJuZWTsd2hlbiB0aGUgYmlkIGJlY29tZXMgYSBtZW1iZXIsIG9yIGlmIHRoZSBiaWQgY2FsbHMgYHVuYmlkYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczpVAS0gYHZhbHVlYDogQSBvbmUgdGltZSBwYXltZW50IHRoZSBiaWQgd291bGQgbGlrZSB0byByZWNlaXZlIHdoZW4gam9pbmluZyB0aGUgc29jaWV0eS4UdW5iaWQAARzUQSBiaWRkZXIgY2FuIHJlbW92ZSB0aGVpciBiaWQgZm9yIGVudHJ5IGludG8gc29jaWV0eS78QnkgZG9pbmcgc28sIHRoZXkgd2lsbCBoYXZlIHRoZWlyIGNhbmRpZGF0ZSBkZXBvc2l0IHJldHVybmVkIG9ygHRoZXkgd2lsbCB1bnZvdWNoIHRoZWlyIHZvdWNoZXIuAPhQYXltZW50OiBUaGUgYmlkIGRlcG9zaXQgaXMgdW5yZXNlcnZlZCBpZiB0aGUgdXNlciBtYWRlIGEgYmlkLgABAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBhIGJpZGRlci4Udm91Y2gMAQx3aG+dAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZRgBPEJhbGFuY2VPZjxULCBJPgABDHRpcBgBPEJhbGFuY2VPZjxULCBJPgACREEBQXMgYSBtZW1iZXIsIHZvdWNoIGZvciBzb21lb25lIHRvIGpvaW4gc29jaWV0eSBieSBwbGFjaW5nIGEgYmlkIG9uIHRoZWlyIGJlaGFsZi4AUQFUaGVyZSBpcyBubyBkZXBvc2l0IHJlcXVpcmVkIHRvIHZvdWNoIGZvciBhIG5ldyBiaWQsIGJ1dCBhIG1lbWJlciBjYW4gb25seSB2b3VjaCBmb3JZAW9uZSBiaWQgYXQgYSB0aW1lLiBJZiB0aGUgYmlkIGJlY29tZXMgYSBzdXNwZW5kZWQgY2FuZGlkYXRlIGFuZCB1bHRpbWF0ZWx5IHJlamVjdGVkIGJ5PQF0aGUgc3VzcGVuc2lvbiBqdWRnZW1lbnQgb3JpZ2luLCB0aGUgbWVtYmVyIHdpbGwgYmUgYmFubmVkIGZyb20gdm91Y2hpbmcgYWdhaW4uAFUBQXMgYSB2b3VjaGluZyBtZW1iZXIsIHlvdSBjYW4gY2xhaW0gYSB0aXAgaWYgdGhlIGNhbmRpZGF0ZSBpcyBhY2NlcHRlZC4gVGhpcyB0aXAgd2lsbE0BYmUgcGFpZCBhcyBhIHBvcnRpb24gb2YgdGhlIHJld2FyZCB0aGUgbWVtYmVyIHdpbGwgcmVjZWl2ZSBmb3Igam9pbmluZyB0aGUgc29jaWV0eS4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBtZW1iZXIuACxQYXJhbWV0ZXJzOsgtIGB3aG9gOiBUaGUgdXNlciB3aG8geW91IHdvdWxkIGxpa2UgdG8gdm91Y2ggZm9yLk0BLSBgdmFsdWVgOiBUaGUgdG90YWwgcmV3YXJkIHRvIGJlIHBhaWQgYmV0d2VlbiB5b3UgYW5kIHRoZSBjYW5kaWRhdGUgaWYgdGhleSBiZWNvbWVgYSBtZW1iZXIgaW4gdGhlIHNvY2lldHkuRQEtIGB0aXBgOiBZb3VyIGN1dCBvZiB0aGUgdG90YWwgYHZhbHVlYCBwYXlvdXQgd2hlbiB0aGUgY2FuZGlkYXRlIGlzIGluZHVjdGVkIGludG8RAXRoZSBzb2NpZXR5LiBUaXBzIGxhcmdlciB0aGFuIGB2YWx1ZWAgd2lsbCBiZSBzYXR1cmF0ZWQgdXBvbiBwYXlvdXQuHHVudm91Y2gAAxwpAUFzIGEgdm91Y2hpbmcgbWVtYmVyLCB1bnZvdWNoIGEgYmlkLiBUaGlzIG9ubHkgd29ya3Mgd2hpbGUgdm91Y2hlZCB1c2VyIGlzkG9ubHkgYSBiaWRkZXIgKGFuZCBub3QgYSBjYW5kaWRhdGUpLgAlAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBhIHZvdWNoaW5nIG1lbWJlci4ALFBhcmFtZXRlcnM6KQEtIGBwb3NgOiBQb3NpdGlvbiBpbiB0aGUgYEJpZHNgIHZlY3RvciBvZiB0aGUgYmlkIHdobyBzaG91bGQgYmUgdW52b3VjaGVkLhB2b3RlCAEkY2FuZGlkYXRlnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcYXBwcm92ZSABEGJvb2wABCCEQXMgYSBtZW1iZXIsIHZvdGUgb24gYSBjYW5kaWRhdGUuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgbWVtYmVyLgAsUGFyYW1ldGVyczoJAS0gYGNhbmRpZGF0ZWA6IFRoZSBjYW5kaWRhdGUgdGhhdCB0aGUgbWVtYmVyIHdvdWxkIGxpa2UgdG8gYmlkIG9uLkUBLSBgYXBwcm92ZWA6IEEgYm9vbGVhbiB3aGljaCBzYXlzIGlmIHRoZSBjYW5kaWRhdGUgc2hvdWxkIGJlIGFwcHJvdmVkIChgdHJ1ZWApIG9yVCAgcmVqZWN0ZWQgKGBmYWxzZWApLjRkZWZlbmRlcl92b3RlBAEcYXBwcm92ZSABEGJvb2wABRyIQXMgYSBtZW1iZXIsIHZvdGUgb24gdGhlIGRlZmVuZGVyLgABAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBhIG1lbWJlci4ALFBhcmFtZXRlcnM68C0gYGFwcHJvdmVgOiBBIGJvb2xlYW4gd2hpY2ggc2F5cyBpZiB0aGUgY2FuZGlkYXRlIHNob3VsZCBiZaBhcHByb3ZlZCAoYHRydWVgKSBvciByZWplY3RlZCAoYGZhbHNlYCkuGHBheW91dAAGKEEBVHJhbnNmZXIgdGhlIGZpcnN0IG1hdHVyZWQgcGF5b3V0IGZvciB0aGUgc2VuZGVyIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgcmVjb3Jkcy4AQQFOT1RFOiBUaGlzIGV4dHJpbnNpYyBuZWVkcyB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gY2xhaW0gbXVsdGlwbGUgbWF0dXJlZCBwYXlvdXRzLgAdAVBheW1lbnQ6IFRoZSBtZW1iZXIgd2lsbCByZWNlaXZlIGEgcGF5bWVudCBlcXVhbCB0byB0aGVpciBmaXJzdCBtYXR1cmVkdHBheW91dCB0byB0aGVpciBmcmVlIGJhbGFuY2UuABEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgbWVtYmVyIHdpdGhIcGF5b3V0cyByZW1haW5pbmcuLHdhaXZlX3JlcGF5BAEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+AAcITQFSZXBheSB0aGUgcGF5bWVudCBwcmV2aW91c2x5IGdpdmVuIHRvIHRoZSBtZW1iZXIgd2l0aCB0aGUgc2lnbmVkIG9yaWdpbiwgcmVtb3ZlIGFueeRwZW5kaW5nIHBheW1lbnRzLCBhbmQgZWxldmF0ZSB0aGVtIGZyb20gcmFuayAwIHRvIHJhbmsgMS40Zm91bmRfc29jaWV0eRgBHGZvdW5kZXKdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASxtYXhfbWVtYmVycxABDHUzMgABKG1heF9pbnRha2UQAQx1MzIAASxtYXhfc3RyaWtlcxABDHUzMgABRGNhbmRpZGF0ZV9kZXBvc2l0GAE8QmFsYW5jZU9mPFQsIEk+AAEUcnVsZXM4ARxWZWM8dTg+AAhESEZvdW5kIHRoZSBzb2NpZXR5LgDsVGhpcyBpcyBkb25lIGFzIGEgZGlzY3JldGUgYWN0aW9uIGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGUVAXBhbGxldCB0byBiZSBpbmNsdWRlZCBpbnRvIGEgcnVubmluZyBjaGFpbiBhbmQgY2FuIG9ubHkgYmUgZG9uZSBvbmNlLgAZAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGZyb20gdGhlIF9Gb3VuZGVyU2V0T3JpZ2luXy4ALFBhcmFtZXRlcnM6FQEtIGBmb3VuZGVyYCAtIFRoZSBmaXJzdCBtZW1iZXIgYW5kIGhlYWQgb2YgdGhlIG5ld2x5IGZvdW5kZWQgc29jaWV0eS4RAS0gYG1heF9tZW1iZXJzYCAtIFRoZSBpbml0aWFsIG1heCBudW1iZXIgb2YgbWVtYmVycyBmb3IgdGhlIHNvY2lldHkuEQEtIGBtYXhfaW50YWtlYCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjYW5kaWRhdGVzIHBlciBpbnRha2UgcGVyaW9kLkkBLSBgbWF4X3N0cmlrZXNgOiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RyaWtlcyBhIG1lbWJlciBtYXkgZ2V0IGJlZm9yZSB0aGV5IGJlY29tZdggIHN1c3BlbmRlZCBhbmQgbWF5IG9ubHkgYmUgcmVpbnN0YXRlZCBieSB0aGUgZm91bmRlci5ZAS0gYGNhbmRpZGF0ZV9kZXBvc2l0YDogVGhlIGRlcG9zaXQgcmVxdWlyZWQgdG8gbWFrZSBhIGJpZCBmb3IgbWVtYmVyc2hpcCBvZiB0aGUgZ3JvdXAu8C0gYHJ1bGVzYCAtIFRoZSBydWxlcyBvZiB0aGlzIHNvY2lldHkgY29uY2VybmluZyBtZW1iZXJzaGlwLgBAQ29tcGxleGl0eTogTygxKSBkaXNzb2x2ZQAJFLBEaXNzb2x2ZSB0aGUgc29jaWV0eSBhbmQgcmVtb3ZlIGFsbCBtZW1iZXJzLgBZAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZCwgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBiZSBib3RoVQF0aGUgYEZvdW5kZXJgIGFuZCB0aGUgYEhlYWRgLiBUaGlzIGltcGxpZXMgdGhhdCBpdCBtYXkgb25seSBiZSBkb25lIHdoZW4gdGhlcmUgaXMgb25lHG1lbWJlci5YanVkZ2Vfc3VzcGVuZGVkX21lbWJlcggBDHdob50BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGZvcmdpdmUgARBib29sAAo4KQFBbGxvdyBzdXNwZW5zaW9uIGp1ZGdlbWVudCBvcmlnaW4gdG8gbWFrZSBqdWRnZW1lbnQgb24gYSBzdXNwZW5kZWQgbWVtYmVyLgBVAUlmIGEgc3VzcGVuZGVkIG1lbWJlciBpcyBmb3JnaXZlbiwgd2Ugc2ltcGx5IGFkZCB0aGVtIGJhY2sgYXMgYSBtZW1iZXIsIG5vdCBhZmZlY3RpbmfIYW55IG9mIHRoZSBleGlzdGluZyBzdG9yYWdlIGl0ZW1zIGZvciB0aGF0IG1lbWJlci4ARQFJZiBhIHN1c3BlbmRlZCBtZW1iZXIgaXMgcmVqZWN0ZWQsIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBzdG9yYWdlIGl0ZW1zLCBpbmNsdWRpbmf8dGhlaXIgcGF5b3V0cywgYW5kIHJlbW92ZSBhbnkgdm91Y2hlZCBiaWRzIHRoZXkgY3VycmVudGx5IGhhdmUuAAkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkIGZyb20gdGhlIEZvdW5kZXIuACxQYXJhbWV0ZXJzOrAtIGB3aG9gIC0gVGhlIHN1c3BlbmRlZCBtZW1iZXIgdG8gYmUganVkZ2VkLlUBLSBgZm9yZ2l2ZWAgLSBBIGJvb2xlYW4gcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIHN1c3BlbnNpb24ganVkZ2VtZW50IG9yaWdpbiBmb3JnaXZlc8wgIChgdHJ1ZWApIG9yIHJlamVjdHMgKGBmYWxzZWApIGEgc3VzcGVuZGVkIG1lbWJlci44c2V0X3BhcmFtZXRlcnMQASxtYXhfbWVtYmVycxABDHUzMgABKG1heF9pbnRha2UQAQx1MzIAASxtYXhfc3RyaWtlcxABDHUzMgABRGNhbmRpZGF0ZV9kZXBvc2l0GAE8QmFsYW5jZU9mPFQsIEk+AAswYQFDaGFuZ2UgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lbWJlcnMgaW4gc29jaWV0eSBhbmQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5ldyBjYW5kaWRhdGVzaGluIGEgc2luZ2xlIGludGFrZSBwZXJpb2QuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkIGJ5IHRoZSBGb3VuZGVyLgAsUGFyYW1ldGVyczpVAS0gYG1heF9tZW1iZXJzYCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIGZvciB0aGUgc29jaWV0eS4gVGhpcyBtdXN0IGJlIG5vIGxlc3OUICB0aGFuIHRoZSBjdXJyZW50IG51bWJlciBvZiBtZW1iZXJzLhEBLSBgbWF4X2ludGFrZWAgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgY2FuZGlkYXRlcyBwZXIgaW50YWtlIHBlcmlvZC5JAS0gYG1heF9zdHJpa2VzYDogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cmlrZXMgYSBtZW1iZXIgbWF5IGdldCBiZWZvcmUgdGhleSBiZWNvbWXYICBzdXNwZW5kZWQgYW5kIG1heSBvbmx5IGJlIHJlaW5zdGF0ZWQgYnkgdGhlIGZvdW5kZXIuWQEtIGBjYW5kaWRhdGVfZGVwb3NpdGA6IFRoZSBkZXBvc2l0IHJlcXVpcmVkIHRvIG1ha2UgYSBiaWQgZm9yIG1lbWJlcnNoaXAgb2YgdGhlIGdyb3VwLjhwdW5pc2hfc2tlcHRpYwAMCFUBUHVuaXNoIHRoZSBza2VwdGljIHdpdGggYSBzdHJpa2UgaWYgdGhleSBkaWQgbm90IHZvdGUgb24gYSBjYW5kaWRhdGUuIENhbGxhYmxlIGJ5IHRoZShjYW5kaWRhdGUuQGNsYWltX21lbWJlcnNoaXAADQgNAVRyYW5zZm9ybSBhbiBhcHByb3ZlZCBjYW5kaWRhdGUgaW50byBhIG1lbWJlci4gQ2FsbGFibGUgb25seSBieSB0aGX4dGhlIGNhbmRpZGF0ZSwgYW5kIG9ubHkgYWZ0ZXIgdGhlIHBlcmlvZCBmb3Igdm90aW5nIGhhcyBlbmRlZC5EYmVzdG93X21lbWJlcnNoaXAEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQADgxhAVRyYW5zZm9ybSBhbiBhcHByb3ZlZCBjYW5kaWRhdGUgaW50byBhIG1lbWJlci4gQ2FsbGFibGUgb25seSBieSB0aGUgU2lnbmVkIG9yaWdpbiBvZiB0aGVZAUZvdW5kZXIsIG9ubHkgYWZ0ZXIgdGhlIHBlcmlvZCBmb3Igdm90aW5nIGhhcyBlbmRlZCBhbmQgb25seSB3aGVuIHRoZSBjYW5kaWRhdGUgaXMgbm90RGNsZWFybHkgcmVqZWN0ZWQuOGtpY2tfY2FuZGlkYXRlBAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAA8UXQFSZW1vdmUgdGhlIGNhbmRpZGF0ZSdzIGFwcGxpY2F0aW9uIGZyb20gdGhlIHNvY2lldHkuIENhbGxhYmxlIG9ubHkgYnkgdGhlIFNpZ25lZCBvcmlnaW5VAW9mIHRoZSBGb3VuZGVyLCBvbmx5IGFmdGVyIHRoZSBwZXJpb2QgZm9yIHZvdGluZyBoYXMgZW5kZWQsIGFuZCBvbmx5IHdoZW4gdGhleSBkbyBub3RYaGF2ZSBhIGNsZWFyIGFwcHJvdmFsLgC4QW55IGJpZCBkZXBvc2l0IGlzIGxvc3QgYW5kIHZvdWNoZXIgaXMgYmFubmVkLkByZXNpZ25fY2FuZGlkYWN5ABAMUQFSZW1vdmUgdGhlIGNhbmRpZGF0ZSdzIGFwcGxpY2F0aW9uIGZyb20gdGhlIHNvY2lldHkuIENhbGxhYmxlIG9ubHkgYnkgdGhlIGNhbmRpZGF0ZS4AuEFueSBiaWQgZGVwb3NpdCBpcyBsb3N0IGFuZCB2b3VjaGVyIGlzIGJhbm5lZC44ZHJvcF9jYW5kaWRhdGUEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQAERQtAVJlbW92ZSBhIGBjYW5kaWRhdGVgJ3MgZmFpbGVkIGFwcGxpY2F0aW9uIGZyb20gdGhlIHNvY2lldHkuIENhbGxhYmxlIGJ5IGFueRkBc2lnbmVkIG9yaWdpbiBidXQgb25seSBhdCB0aGUgZW5kIG9mIHRoZSBzdWJzZXF1ZW50IHJvdW5kIGFuZCBvbmx5IGZvcsBhIGNhbmRpZGF0ZSB3aXRoIG1vcmUgcmVqZWN0aW9ucyB0aGFuIGFwcHJvdmFscy4AyFRoZSBiaWQgZGVwb3NpdCBpcyBsb3N0IGFuZCB0aGUgdm91Y2hlciBpcyBiYW5uZWQuRGNsZWFudXBfY2FuZGlkYWN5CAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEMbWF4EAEMdTMyABIM5FJlbW92ZSB1cCB0byBgbWF4YCBzdGFsZSB2b3RlcyBmb3IgdGhlIGdpdmVuIGBjYW5kaWRhdGVgLgBZAU1heSBiZSBjYWxsZWQgYnkgYW55IFNpZ25lZCBvcmlnaW4sIGJ1dCBvbmx5IGFmdGVyIHRoZSBjYW5kaWRhdGUncyBjYW5kaWRhY3kgaXMgZW5kZWQuRGNsZWFudXBfY2hhbGxlbmdlCAE8Y2hhbGxlbmdlX3JvdW5kEAEoUm91bmRJbmRleAABDG1heBABDHUzMgATDD0BUmVtb3ZlIHVwIHRvIGBtYXhgIHN0YWxlIHZvdGVzIGZvciB0aGUgZGVmZW5kZXIgaW4gdGhlIGdpdmVuIGBjaGFsbGVuZ2Vfcm91bmRgLgBBAU1heSBiZSBjYWxsZWQgYnkgYW55IFNpZ25lZCBvcmlnaW4sIGJ1dCBvbmx5IGFmdGVyIHRoZSBjaGFsbGVuZ2Ugcm91bmQgaXMgZW5kZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuECDDxwYWxsZXRfcmVjb3ZlcnkYcGFsbGV0EENhbGwEBFQAASQwYXNfcmVjb3ZlcmVkCAEcYWNjb3VudJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAAIKBTZW5kIGEgY2FsbCB0aHJvdWdoIGEgcmVjb3ZlcmVkIGFjY291bnQuABEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHJlZ2lzdGVyZWQgdG/kYmUgYWJsZSB0byBtYWtlIGNhbGxzIG9uIGJlaGFsZiBvZiB0aGUgcmVjb3ZlcmVkIGFjY291bnQuACxQYXJhbWV0ZXJzOiEBLSBgYWNjb3VudGA6IFRoZSByZWNvdmVyZWQgYWNjb3VudCB5b3Ugd2FudCB0byBtYWtlIGEgY2FsbCBvbi1iZWhhbGYtb2Yu/C0gYGNhbGxgOiBUaGUgY2FsbCB5b3Ugd2FudCB0byBtYWtlIHdpdGggdGhlIHJlY292ZXJlZCBhY2NvdW50LjRzZXRfcmVjb3ZlcmVkCAEQbG9zdJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHHJlc2N1ZXKdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASAZAUFsbG93IFJPT1QgdG8gYnlwYXNzIHRoZSByZWNvdmVyeSBwcm9jZXNzIGFuZCBzZXQgYW4gYSByZXNjdWVyIGFjY291bnRwZm9yIGEgbG9zdCBhY2NvdW50IGRpcmVjdGx5LgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1JPT1RfLgAsUGFyYW1ldGVyczq0LSBgbG9zdGA6IFRoZSAibG9zdCBhY2NvdW50IiB0byBiZSByZWNvdmVyZWQuGQEtIGByZXNjdWVyYDogVGhlICJyZXNjdWVyIGFjY291bnQiIHdoaWNoIGNhbiBjYWxsIGFzIHRoZSBsb3N0IGFjY291bnQuPGNyZWF0ZV9yZWNvdmVyeQwBHGZyaWVuZHOtAQFEVmVjPFQ6OkFjY291bnRJZD4AASR0aHJlc2hvbGRVAQEMdTE2AAEwZGVsYXlfcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4AAkBZAUNyZWF0ZSBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24gZm9yIHlvdXIgYWNjb3VudC4gVGhpcyBtYWtlcyB5b3VyIGFjY291bnQgcmVjb3ZlcmFibGUuAC0BUGF5bWVudDogYENvbmZpZ0RlcG9zaXRCYXNlYCArIGBGcmllbmREZXBvc2l0RmFjdG9yYCAqICNfb2ZfZnJpZW5kcyBiYWxhbmNlRQF3aWxsIGJlIHJlc2VydmVkIGZvciBzdG9yaW5nIHRoZSByZWNvdmVyeSBjb25maWd1cmF0aW9uLiBUaGlzIGRlcG9zaXQgaXMgcmV0dXJuZWS4aW4gZnVsbCB3aGVuIHRoZSB1c2VyIGNhbGxzIGByZW1vdmVfcmVjb3ZlcnlgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOkkBLSBgZnJpZW5kc2A6IEEgbGlzdCBvZiBmcmllbmRzIHlvdSB0cnVzdCB0byB2b3VjaCBmb3IgcmVjb3ZlcnkgYXR0ZW1wdHMuIFNob3VsZCBiZaggIG9yZGVyZWQgYW5kIGNvbnRhaW4gbm8gZHVwbGljYXRlIHZhbHVlcy5ZAS0gYHRocmVzaG9sZGA6IFRoZSBudW1iZXIgb2YgZnJpZW5kcyB0aGF0IG11c3Qgdm91Y2ggZm9yIGEgcmVjb3ZlcnkgYXR0ZW1wdCBiZWZvcmUgdGhlVQEgIGFjY291bnQgY2FuIGJlIHJlY292ZXJlZC4gU2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IG9mKCAgZnJpZW5kcy5NAS0gYGRlbGF5X3BlcmlvZGA6IFRoZSBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIGEgcmVjb3ZlcnkgYXR0ZW1wdCBpcyBpbml0aWFsaXplZCB0aGF00CAgbmVlZHMgdG8gcGFzcyBiZWZvcmUgdGhlIGFjY291bnQgY2FuIGJlIHJlY292ZXJlZC5EaW5pdGlhdGVfcmVjb3ZlcnkEARxhY2NvdW50nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAMs6EluaXRpYXRlIHRoZSBwcm9jZXNzIGZvciByZWNvdmVyaW5nIGEgcmVjb3ZlcmFibGUgYWNjb3VudC4AGQFQYXltZW50OiBgUmVjb3ZlcnlEZXBvc2l0YCBiYWxhbmNlIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIGluaXRpYXRpbmcgdGhlIQFyZWNvdmVyeSBwcm9jZXNzLiBUaGlzIGRlcG9zaXQgd2lsbCBhbHdheXMgYmUgcmVwYXRyaWF0ZWQgdG8gdGhlIGFjY291bnS0dHJ5aW5nIHRvIGJlIHJlY292ZXJlZC4gU2VlIGBjbG9zZV9yZWNvdmVyeWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6QQEtIGBhY2NvdW50YDogVGhlIGxvc3QgYWNjb3VudCB0aGF0IHlvdSB3YW50IHRvIHJlY292ZXIuIFRoaXMgYWNjb3VudCBuZWVkcyB0byBiZcwgIHJlY292ZXJhYmxlIChpLmUuIGhhdmUgYSByZWNvdmVyeSBjb25maWd1cmF0aW9uKS44dm91Y2hfcmVjb3ZlcnkIARBsb3N0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEccmVzY3Vlcp0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgAEMCUBQWxsb3cgYSAiZnJpZW5kIiBvZiBhIHJlY292ZXJhYmxlIGFjY291bnQgdG8gdm91Y2ggZm9yIGFuIGFjdGl2ZSByZWNvdmVyeWRwcm9jZXNzIGZvciB0aGF0IGFjY291bnQuACUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgYSAiZnJpZW5kInBmb3IgdGhlIHJlY292ZXJhYmxlIGFjY291bnQuACxQYXJhbWV0ZXJzOtAtIGBsb3N0YDogVGhlIGxvc3QgYWNjb3VudCB0aGF0IHlvdSB3YW50IHRvIHJlY292ZXIuWQEtIGByZXNjdWVyYDogVGhlIGFjY291bnQgdHJ5aW5nIHRvIHJlc2N1ZSB0aGUgbG9zdCBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gdm91Y2ggZm9yLgAhAVRoZSBjb21iaW5hdGlvbiBvZiB0aGVzZSB0d28gcGFyYW1ldGVycyBtdXN0IHBvaW50IHRvIGFuIGFjdGl2ZSByZWNvdmVyeSBwcm9jZXNzLjhjbGFpbV9yZWNvdmVyeQQBHGFjY291bnSdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABSTwQWxsb3cgYSBzdWNjZXNzZnVsIHJlc2N1ZXIgdG8gY2xhaW0gdGhlaXIgcmVjb3ZlcmVkIGFjY291bnQuACkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgYSAicmVzY3VlciIZAXdobyBoYXMgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZCB0aGUgYWNjb3VudCByZWNvdmVyeSBwcm9jZXNzOiBjb2xsZWN0ZWQtAWB0aHJlc2hvbGRgIG9yIG1vcmUgdm91Y2hlcywgd2FpdGVkIGBkZWxheV9wZXJpb2RgIGJsb2NrcyBzaW5jZSBpbml0aWF0aW9uLgAsUGFyYW1ldGVyczpdAS0gYGFjY291bnRgOiBUaGUgbG9zdCBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gY2xhaW0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlY292ZXJlZCBieRggIHlvdS44Y2xvc2VfcmVjb3ZlcnkEARxyZXNjdWVynQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAYsEQFBcyB0aGUgY29udHJvbGxlciBvZiBhIHJlY292ZXJhYmxlIGFjY291bnQsIGNsb3NlIGFuIGFjdGl2ZSByZWNvdmVyeWRwcm9jZXNzIGZvciB5b3VyIGFjY291bnQuAB0BUGF5bWVudDogQnkgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCB0aGUgcmVjb3ZlcmFibGUgYWNjb3VudCB3aWxsIHJlY2VpdmX0dGhlIHJlY292ZXJ5IGRlcG9zaXQgYFJlY292ZXJ5RGVwb3NpdGAgcGxhY2VkIGJ5IHRoZSByZXNjdWVyLgABAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBtdXN0IGJlIGHscmVjb3ZlcmFibGUgYWNjb3VudCB3aXRoIGFuIGFjdGl2ZSByZWNvdmVyeSBwcm9jZXNzIGZvciBpdC4ALFBhcmFtZXRlcnM6DQEtIGByZXNjdWVyYDogVGhlIGFjY291bnQgdHJ5aW5nIHRvIHJlc2N1ZSB0aGlzIHJlY292ZXJhYmxlIGFjY291bnQuPHJlbW92ZV9yZWNvdmVyeQAHLFkBUmVtb3ZlIHRoZSByZWNvdmVyeSBwcm9jZXNzIGZvciB5b3VyIGFjY291bnQuIFJlY292ZXJlZCBhY2NvdW50cyBhcmUgc3RpbGwgYWNjZXNzaWJsZS4AEQFOT1RFOiBUaGUgdXNlciBtdXN0IG1ha2Ugc3VyZSB0byBjYWxsIGBjbG9zZV9yZWNvdmVyeWAgb24gYWxsIGFjdGl2ZQUBcmVjb3ZlcnkgYXR0ZW1wdHMgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBlbHNlIGl0IHdpbGwgZmFpbC4AIQFQYXltZW50OiBCeSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gdGhlIHJlY292ZXJhYmxlIGFjY291bnQgd2lsbCB1bnJlc2VydmWUdGhlaXIgcmVjb3ZlcnkgY29uZmlndXJhdGlvbiBkZXBvc2l0LvAoYENvbmZpZ0RlcG9zaXRCYXNlYCArIGBGcmllbmREZXBvc2l0RmFjdG9yYCAqICNfb2ZfZnJpZW5kcykAAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSBh4HJlY292ZXJhYmxlIGFjY291bnQgKGkuZS4gaGFzIGEgcmVjb3ZlcnkgY29uZmlndXJhdGlvbikuQGNhbmNlbF9yZWNvdmVyZWQEARxhY2NvdW50nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAgc3ENhbmNlbCB0aGUgYWJpbGl0eSB0byB1c2UgYGFzX3JlY292ZXJlZGAgZm9yIGBhY2NvdW50YC4AEQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgcmVnaXN0ZXJlZCB0b+RiZSBhYmxlIHRvIG1ha2UgY2FsbHMgb24gYmVoYWxmIG9mIHRoZSByZWNvdmVyZWQgYWNjb3VudC4ALFBhcmFtZXRlcnM6FQEtIGBhY2NvdW50YDogVGhlIHJlY292ZXJlZCBhY2NvdW50IHlvdSBhcmUgYWJsZSB0byBjYWxsIG9uLWJlaGFsZi1vZi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu5QIMOHBhbGxldF92ZXN0aW5nGHBhbGxldBBDYWxsBARUAAEYEHZlc3QAACS4VW5sb2NrIGFueSB2ZXN0ZWQgZnVuZHMgb2YgdGhlIHNlbmRlciBhY2NvdW50LgBdAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBmdW5kcyBzdGlsbGRsb2NrZWQgdW5kZXIgdGhpcyBwYWxsZXQuANBFbWl0cyBlaXRoZXIgYFZlc3RpbmdDb21wbGV0ZWRgIG9yIGBWZXN0aW5nVXBkYXRlZGAuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLih2ZXN0X290aGVyBAEYdGFyZ2V0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsuFVubG9jayBhbnkgdmVzdGVkIGZ1bmRzIG9mIGEgYHRhcmdldGAgYWNjb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBRAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHdob3NlIHZlc3RlZCBmdW5kcyBzaG91bGQgYmUgdW5sb2NrZWQuIE11c3QgaGF2ZSBmdW5kcyBzdGlsbGRsb2NrZWQgdW5kZXIgdGhpcyBwYWxsZXQuANBFbWl0cyBlaXRoZXIgYFZlc3RpbmdDb21wbGV0ZWRgIG9yIGBWZXN0aW5nVXBkYXRlZGAuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLjx2ZXN0ZWRfdHJhbnNmZXIIARh0YXJnZXSdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBzY2hlZHVsZekCAbBWZXN0aW5nSW5mbzxCYWxhbmNlT2Y8VD4sIEJsb2NrTnVtYmVyRm9yPFQ+PgACNGRDcmVhdGUgYSB2ZXN0ZWQgdHJhbnNmZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AzC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHJlY2VpdmluZyB0aGUgdmVzdGVkIGZ1bmRzLvAtIGBzY2hlZHVsZWA6IFRoZSB2ZXN0aW5nIHNjaGVkdWxlIGF0dGFjaGVkIHRvIHRoZSB0cmFuc2Zlci4AXEVtaXRzIGBWZXN0aW5nQ3JlYXRlZGAuAPxOT1RFOiBUaGlzIHdpbGwgdW5sb2NrIGFsbCBzY2hlZHVsZXMgdGhyb3VnaCB0aGUgY3VycmVudCBibG9jay4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuVGZvcmNlX3Zlc3RlZF90cmFuc2ZlcgwBGHNvdXJjZZ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGHRhcmdldJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIHNjaGVkdWxl6QIBsFZlc3RpbmdJbmZvPEJhbGFuY2VPZjxUPiwgQmxvY2tOdW1iZXJGb3I8VD4+AAM4YEZvcmNlIGEgdmVzdGVkIHRyYW5zZmVyLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgDoLSBgc291cmNlYDogVGhlIGFjY291bnQgd2hvc2UgZnVuZHMgc2hvdWxkIGJlIHRyYW5zZmVycmVkLhEBLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdGhhdCBzaG91bGQgYmUgdHJhbnNmZXJyZWQgdGhlIHZlc3RlZCBmdW5kcy7wLSBgc2NoZWR1bGVgOiBUaGUgdmVzdGluZyBzY2hlZHVsZSBhdHRhY2hlZCB0byB0aGUgdHJhbnNmZXIuAFxFbWl0cyBgVmVzdGluZ0NyZWF0ZWRgLgD8Tk9URTogVGhpcyB3aWxsIHVubG9jayBhbGwgc2NoZWR1bGVzIHRocm91Z2ggdGhlIGN1cnJlbnQgYmxvY2suADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLjxtZXJnZV9zY2hlZHVsZXMIATxzY2hlZHVsZTFfaW5kZXgQAQx1MzIAATxzY2hlZHVsZTJfaW5kZXgQAQx1MzIABFRdAU1lcmdlIHR3byB2ZXN0aW5nIHNjaGVkdWxlcyB0b2dldGhlciwgY3JlYXRpbmcgYSBuZXcgdmVzdGluZyBzY2hlZHVsZSB0aGF0IHVubG9ja3Mgb3ZlclUBdGhlIGhpZ2hlc3QgcG9zc2libGUgc3RhcnQgYW5kIGVuZCBibG9ja3MuIElmIGJvdGggc2NoZWR1bGVzIGhhdmUgYWxyZWFkeSBzdGFydGVkIHRoZVkBY3VycmVudCBibG9jayB3aWxsIGJlIHVzZWQgYXMgdGhlIHNjaGVkdWxlIHN0YXJ0OyB3aXRoIHRoZSBjYXZlYXQgdGhhdCBpZiBvbmUgc2NoZWR1bGVdAWlzIGZpbmlzaGVkIGJ5IHRoZSBjdXJyZW50IGJsb2NrLCB0aGUgb3RoZXIgd2lsbCBiZSB0cmVhdGVkIGFzIHRoZSBuZXcgbWVyZ2VkIHNjaGVkdWxlLCx1bm1vZGlmaWVkLgD4Tk9URTogSWYgYHNjaGVkdWxlMV9pbmRleCA9PSBzY2hlZHVsZTJfaW5kZXhgIHRoaXMgaXMgYSBuby1vcC5BAU5PVEU6IFRoaXMgd2lsbCB1bmxvY2sgYWxsIHNjaGVkdWxlcyB0aHJvdWdoIHRoZSBjdXJyZW50IGJsb2NrIHByaW9yIHRvIG1lcmdpbmcuYQFOT1RFOiBJZiBib3RoIHNjaGVkdWxlcyBoYXZlIGVuZGVkIGJ5IHRoZSBjdXJyZW50IGJsb2NrLCBubyBuZXcgc2NoZWR1bGUgd2lsbCBiZSBjcmVhdGVkZGFuZCBib3RoIHdpbGwgYmUgcmVtb3ZlZC4AbE1lcmdlZCBzY2hlZHVsZSBhdHRyaWJ1dGVzOjUBLSBgc3RhcnRpbmdfYmxvY2tgOiBgTUFYKHNjaGVkdWxlMS5zdGFydGluZ19ibG9jaywgc2NoZWR1bGVkMi5zdGFydGluZ19ibG9jayxIICBjdXJyZW50X2Jsb2NrKWAuIQEtIGBlbmRpbmdfYmxvY2tgOiBgTUFYKHNjaGVkdWxlMS5lbmRpbmdfYmxvY2ssIHNjaGVkdWxlMi5lbmRpbmdfYmxvY2spYC5ZAS0gYGxvY2tlZGA6IGBzY2hlZHVsZTEubG9ja2VkX2F0KGN1cnJlbnRfYmxvY2spICsgc2NoZWR1bGUyLmxvY2tlZF9hdChjdXJyZW50X2Jsb2NrKWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A6C0gYHNjaGVkdWxlMV9pbmRleGA6IGluZGV4IG9mIHRoZSBmaXJzdCBzY2hlZHVsZSB0byBtZXJnZS7sLSBgc2NoZWR1bGUyX2luZGV4YDogaW5kZXggb2YgdGhlIHNlY29uZCBzY2hlZHVsZSB0byBtZXJnZS50Zm9yY2VfcmVtb3ZlX3Zlc3Rpbmdfc2NoZWR1bGUIARh0YXJnZXSdAQGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAAThzY2hlZHVsZV9pbmRleBABDHUzMgAFGHxGb3JjZSByZW1vdmUgYSB2ZXN0aW5nIHNjaGVkdWxlAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uAMgtIGB0YXJnZXRgOiBBbiBhY2NvdW50IHRoYXQgaGFzIGEgdmVzdGluZyBzY2hlZHVsZRUBLSBgc2NoZWR1bGVfaW5kZXhgOiBUaGUgdmVzdGluZyBzY2hlZHVsZSBpbmRleCB0aGF0IHNob3VsZCBiZSByZW1vdmVkBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLukCDDhwYWxsZXRfdmVzdGluZzB2ZXN0aW5nX2luZm8sVmVzdGluZ0luZm8IHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQAAwBGGxvY2tlZBgBHEJhbGFuY2UAASRwZXJfYmxvY2sYARxCYWxhbmNlAAE4c3RhcnRpbmdfYmxvY2sQASxCbG9ja051bWJlcgAA7QIMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0EENhbGwEBFQAASggc2NoZWR1bGUQARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY/ECAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsXQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAARwQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrLhhjYW5jZWwIARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleBABDHUzMgABBJRDYW5jZWwgYW4gYW5vbnltb3VzbHkgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX25hbWVkFAEIaWQEASBUYXNrTmFtZQABEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj8QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACBFhTY2hlZHVsZSBhIG5hbWVkIHRhc2suMGNhbmNlbF9uYW1lZAQBCGlkBAEgVGFza05hbWUAAwR4Q2FuY2VsIGEgbmFtZWQgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX2FmdGVyEAEUYWZ0ZXIQAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj8QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAEBKhBbm9ueW1vdXNseSBzY2hlZHVsZSBhIHRhc2sgYWZ0ZXIgYSBkZWxheS5Qc2NoZWR1bGVfbmFtZWRfYWZ0ZXIUAQhpZAQBIFRhc2tOYW1lAAEUYWZ0ZXIQAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj8QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAFBJBTY2hlZHVsZSBhIG5hbWVkIHRhc2sgYWZ0ZXIgYSBkZWxheS4kc2V0X3JldHJ5DAEQdGFza/UCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AARxyZXRyaWVzCAEIdTgAARhwZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgAGMFkBU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0IHdpbGxVAWJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwgaXQkc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjxzZXRfcmV0cnlfbmFtZWQMAQhpZAQBIFRhc2tOYW1lAAEccmV0cmllcwgBCHU4AAEYcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4ABzBdAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgbmFtZWQgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdF0Bd2lsbCBiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsMGl0IHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC4wY2FuY2VsX3JldHJ5BAEQdGFza/UCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4ACASoUmVtb3ZlcyB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIHRhc2suSGNhbmNlbF9yZXRyeV9uYW1lZAQBCGlkBAEgVGFza05hbWUACQS8Q2FuY2VsIHRoZSByZXRyeSBjb25maWd1cmF0aW9uIG9mIGEgbmFtZWQgdGFzay4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu8QIEGE9wdGlvbgQEVAH1AgEIEE5vbmUAAAAQU29tZQQA9QIAAAEAAPUCAAAECBAQAPkCDDBwYWxsZXRfcHJveHkYcGFsbGV0EENhbGwEBFQAASgUcHJveHkMARByZWFsnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAFAZm9yY2VfcHJveHlfdHlwZf0CAVBPcHRpb248VDo6UHJveHlUeXBlPgABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAAJE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcmlzZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuYQEtIGBmb3JjZV9wcm94eV90eXBlYDogU3BlY2lmeSB0aGUgZXhhY3QgcHJveHkgdHlwZSB0byBiZSB1c2VkIGFuZCBjaGVja2VkIGZvciB0aGlzIGNhbGwu0C0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC4kYWRkX3Byb3h5DAEgZGVsZWdhdGWdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlAQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4AASRFAVJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlciB0aGF0IGlzIGFibGUgdG8gbWFrZSBjYWxscyBvbiBpdHMgYmVoYWxmLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOhEBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIG1ha2UgYSBwcm94eS78LSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBhbGxvd2VkIGZvciB0aGlzIHByb3h5IGFjY291bnQuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLjByZW1vdmVfcHJveHkMASBkZWxlZ2F0ZZ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGUBAwEwVDo6UHJveHlUeXBlAAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgACHKhVbnJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczolAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byByZW1vdmUgYXMgYSBwcm94eS5BAS0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgY3VycmVudGx5IGVuYWJsZWQgZm9yIHRoZSByZW1vdmVkIHByb3h5IGFjY291bnQuOHJlbW92ZV9wcm94aWVzAAMYtFVucmVnaXN0ZXIgYWxsIHByb3h5IGFjY291bnRzIGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAEEBV0FSTklORzogVGhpcyBtYXkgYmUgY2FsbGVkIG9uIGFjY291bnRzIGNyZWF0ZWQgYnkgYHB1cmVgLCBob3dldmVyIGlmIGRvbmUsIHRoZW5ZAXRoZSB1bnJlc2VydmVkIGZlZXMgd2lsbCBiZSBpbmFjY2Vzc2libGUuICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqLGNyZWF0ZV9wdXJlDAEocHJveHlfdHlwZQEDATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXhVAQEMdTE2AARIOQFTcGF3biBhIGZyZXNoIG5ldyBhY2NvdW50IHRoYXQgaXMgZ3VhcmFudGVlZCB0byBiZSBvdGhlcndpc2UgaW5hY2Nlc3NpYmxlLCBhbmT8aW5pdGlhbGl6ZSBpdCB3aXRoIGEgcHJveHkgb2YgYHByb3h5X3R5cGVgIGZvciBgb3JpZ2luYCBzZW5kZXIuAGxSZXF1aXJlcyBhIGBTaWduZWRgIG9yaWdpbi4AUQEtIGBwcm94eV90eXBlYDogVGhlIHR5cGUgb2YgdGhlIHByb3h5IHRoYXQgdGhlIHNlbmRlciB3aWxsIGJlIHJlZ2lzdGVyZWQgYXMgb3ZlciB0aGVNAW5ldyBhY2NvdW50LiBUaGlzIHdpbGwgYWxtb3N0IGFsd2F5cyBiZSB0aGUgbW9zdCBwZXJtaXNzaXZlIGBQcm94eVR5cGVgIHBvc3NpYmxlIHRveGFsbG93IGZvciBtYXhpbXVtIGZsZXhpYmlsaXR5LlEBLSBgaW5kZXhgOiBBIGRpc2FtYmlndWF0aW9uIGluZGV4LCBpbiBjYXNlIHRoaXMgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBzYW1lXQF0cmFuc2FjdGlvbiAoZS5nLiB3aXRoIGB1dGlsaXR5OjpiYXRjaGApLiBVbmxlc3MgeW91J3JlIHVzaW5nIGBiYXRjaGAgeW91IHByb2JhYmx5IGp1c3RAd2FudCB0byB1c2UgYDBgLk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4AUQFGYWlscyB3aXRoIGBEdXBsaWNhdGVgIGlmIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgaW4gdGhpcyB0cmFuc2FjdGlvbiwgZnJvbSB0aGWYc2FtZSBzZW5kZXIsIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycy4A5EZhaWxzIGlmIHRoZXJlIGFyZSBpbnN1ZmZpY2llbnQgZnVuZHMgdG8gcGF5IGZvciBkZXBvc2l0LiRraWxsX3B1cmUUARxzcGF3bmVynQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZQEDATBUOjpQcm94eVR5cGUAARRpbmRleFUBAQx1MTYAARhoZWlnaHTUAURCbG9ja051bWJlckZvcjxUPgABJGV4dF9pbmRleNQBDHUzMgAFQKBSZW1vdmVzIGEgcHJldmlvdXNseSBzcGF3bmVkIHB1cmUgcHJveHkuAEkBV0FSTklORzogKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiogQW55IGZ1bmRzIGhlbGQgaW4gaXQgd2lsbCBiZTRpbmFjY2Vzc2libGUuAFkBUmVxdWlyZXMgYSBgU2lnbmVkYCBvcmlnaW4sIGFuZCB0aGUgc2VuZGVyIGFjY291bnQgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieSBhIGNhbGwgdG+UYHB1cmVgIHdpdGggY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLgA5AS0gYHNwYXduZXJgOiBUaGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY2FsbGVkIGBwdXJlYCB0byBjcmVhdGUgdGhpcyBhY2NvdW50LjkBLSBgaW5kZXhgOiBUaGUgZGlzYW1iaWd1YXRpb24gaW5kZXggb3JpZ2luYWxseSBwYXNzZWQgdG8gYHB1cmVgLiBQcm9iYWJseSBgMGAu7C0gYHByb3h5X3R5cGVgOiBUaGUgcHJveHkgdHlwZSBvcmlnaW5hbGx5IHBhc3NlZCB0byBgcHVyZWAuKQEtIGBoZWlnaHRgOiBUaGUgaGVpZ2h0IG9mIHRoZSBjaGFpbiB3aGVuIHRoZSBjYWxsIHRvIGBwdXJlYCB3YXMgcHJvY2Vzc2VkLjUBLSBgZXh0X2luZGV4YDogVGhlIGV4dHJpbnNpYyBpbmRleCBpbiB3aGljaCB0aGUgY2FsbCB0byBgcHVyZWAgd2FzIHByb2Nlc3NlZC4ANQFGYWlscyB3aXRoIGBOb1Blcm1pc3Npb25gIGluIGNhc2UgdGhlIGNhbGxlciBpcyBub3QgYSBwcmV2aW91c2x5IGNyZWF0ZWQgcHVyZdxhY2NvdW50IHdob3NlIGBwdXJlYCBjYWxsIGhhcyBjb3JyZXNwb25kaW5nIHBhcmFtZXRlcnMuIGFubm91bmNlCAEQcmVhbJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY2FsbF9oYXNoNAE0Q2FsbEhhc2hPZjxUPgAHKHBSZW1vdmUgYSBnaXZlbiBhbm5vdW5jZW1lbnQuAFkBTWF5IGJlIGNhbGxlZCBieSBhIHByb3h5IGFjY291bnQgdG8gcmVtb3ZlIGEgY2FsbCB0aGV5IHByZXZpb3VzbHkgYW5ub3VuY2VkIGFuZCByZXR1cm4wdGhlIGRlcG9zaXQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuFQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC5McmVqZWN0X2Fubm91bmNlbWVudAgBIGRlbGVnYXRlnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY2FsbF9oYXNoNAE0Q2FsbEhhc2hPZjxUPgAIKLBSZW1vdmUgdGhlIGdpdmVuIGFubm91bmNlbWVudCBvZiBhIGRlbGVnYXRlLgBhAU1heSBiZSBjYWxsZWQgYnkgYSB0YXJnZXQgKHByb3hpZWQpIGFjY291bnQgdG8gcmVtb3ZlIGEgY2FsbCB0aGF0IG9uZSBvZiB0aGVpciBkZWxlZ2F0ZXMlAShgZGVsZWdhdGVgKSBoYXMgYW5ub3VuY2VkIHRoZXkgd2FudCB0byBleGVjdXRlLiBUaGUgZGVwb3NpdCBpcyByZXR1cm5lZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczr0LSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0aGF0IHByZXZpb3VzbHkgYW5ub3VuY2VkIHRoZSBjYWxsLrwtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBtYWRlLjxwcm94eV9hbm5vdW5jZWQQASBkZWxlZ2F0ZZ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWydAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBl/QIBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbF0BAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAksTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXplZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AqFJlbW92ZXMgYW55IGNvcnJlc3BvbmRpbmcgYW5ub3VuY2VtZW50KHMpLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLmEBLSBgZm9yY2VfcHJveHlfdHlwZWA6IFNwZWNpZnkgdGhlIGV4YWN0IHByb3h5IHR5cGUgdG8gYmUgdXNlZCBhbmQgY2hlY2tlZCBmb3IgdGhpcyBjYWxsLtAtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLv0CBBhPcHRpb24EBFQBAQMBCBBOb25lAAAAEFNvbWUEAAEDAAABAAABAwhYc3RhZ2luZ19rdXNhbWFfcnVudGltZSRQcm94eVR5cGUAASQMQW55AAAALE5vblRyYW5zZmVyAAEAKEdvdmVybmFuY2UAAgAcU3Rha2luZwADACxDYW5jZWxQcm94eQAFABxBdWN0aW9uAAYAHFNvY2lldHkABwA8Tm9taW5hdGlvblBvb2xzAAgAMFNwb2tlc3BlcnNvbgAJAAAFAww8cGFsbGV0X211bHRpc2lnGHBhbGxldBBDYWxsBARUAAEQUGFzX211bHRpX3RocmVzaG9sZF8xCAFEb3RoZXJfc2lnbmF0b3JpZXOtAQFEVmVjPFQ6OkFjY291bnRJZD4AARBjYWxsXQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AADBRAUltbWVkaWF0ZWx5IGRpc3BhdGNoIGEgbXVsdGktc2lnbmF0dXJlIGNhbGwgdXNpbmcgYSBzaW5nbGUgYXBwcm92YWwgZnJvbSB0aGUgY2FsbGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAD0BLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGFyZSBwYXJ0IG9mIHRoZQEBbXVsdGktc2lnbmF0dXJlLCBidXQgZG8gbm90IHBhcnRpY2lwYXRlIGluIHRoZSBhcHByb3ZhbCBwcm9jZXNzLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuALhSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQuADQjIyBDb21wbGV4aXR5GQFPKFogKyBDKSB3aGVyZSBaIGlzIHRoZSBsZW5ndGggb2YgdGhlIGNhbGwgYW5kIEMgaXRzIGV4ZWN1dGlvbiB3ZWlnaHQuIGFzX211bHRpFAEkdGhyZXNob2xkVQEBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzrQEBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW50CQMBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABEGNhbGxdAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABKG1heF93ZWlnaHQoARhXZWlnaHQAAZxVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4AsElmIHRoZXJlIGFyZSBlbm91Z2gsIHRoZW4gZGlzcGF0Y2ggdGhlIGNhbGwuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuAB0BTk9URTogVW5sZXNzIHRoaXMgaXMgdGhlIGZpbmFsIGFwcHJvdmFsLCB5b3Ugd2lsbCBnZW5lcmFsbHkgd2FudCB0byB1c2UZAWBhcHByb3ZlX2FzX211bHRpYCBpbnN0ZWFkLCBzaW5jZSBpdCBvbmx5IHJlcXVpcmVzIGEgaGFzaCBvZiB0aGUgY2FsbC4AWQFSZXN1bHQgaXMgZXF1aXZhbGVudCB0byB0aGUgZGlzcGF0Y2hlZCByZXN1bHQgaWYgYHRocmVzaG9sZGAgaXMgZXhhY3RseSBgMWAuIE90aGVyd2lzZVUBb24gc3VjY2VzcywgcmVzdWx0IGlzIGBPa2AgYW5kIHRoZSByZXN1bHQgZnJvbSB0aGUgaW50ZXJpb3IgY2FsbCwgaWYgaXQgd2FzIGV4ZWN1dGVkLNxtYXkgYmUgZm91bmQgaW4gdGhlIGRlcG9zaXRlZCBgTXVsdGlzaWdFeGVjdXRlZGAgZXZlbnQuADQjIyBDb21wbGV4aXR5UC0gYE8oUyArIFogKyBDYWxsKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuIQEtIE9uZSBjYWxsIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhaKWAgd2hlcmUgYFpgIGlzIHR4LWxlbi68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQubC0gVGhlIHdlaWdodCBvZiB0aGUgYGNhbGxgLk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC5AYXBwcm92ZV9hc19tdWx0aRQBJHRocmVzaG9sZFUBAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc60BAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludAkDAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASRjYWxsX2hhc2gEASBbdTg7IDMyXQABKG1heF93ZWlnaHQoARhXZWlnaHQAAnhVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4ALQFQYXltZW50OiBgRGVwb3NpdEJhc2VgIHdpbGwgYmUgcmVzZXJ2ZWQgaWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHBsdXM9AWB0aHJlc2hvbGRgIHRpbWVzIGBEZXBvc2l0RmFjdG9yYC4gSXQgaXMgcmV0dXJuZWQgb25jZSB0aGlzIGRpc3BhdGNoIGhhcHBlbnMgb3I0aXMgY2FuY2VsbGVkLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuWQEtIGBtYXliZV90aW1lcG9pbnRgOiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiB0aGlzIG11c3QgYmUgYE5vbmVgLiBJZiBpdCBpc1EBbm90IHRoZSBmaXJzdCBhcHByb3ZhbCwgdGhlbiBpdCBtdXN0IGJlIGBTb21lYCwgd2l0aCB0aGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5k1HRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWwgdHJhbnNhY3Rpb24uzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA1AU5PVEU6IElmIHRoaXMgaXMgdGhlIGZpbmFsIGFwcHJvdmFsLCB5b3Ugd2lsbCB3YW50IHRvIHVzZSBgYXNfbXVsdGlgIGluc3RlYWQuADQjIyBDb21wbGV4aXR5JC0gYE8oUylgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLrwtIE9uZSBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oUylgLtQtIFVwIHRvIG9uZSBiaW5hcnkgc2VhcmNoIGFuZCBpbnNlcnQgKGBPKGxvZ1MgKyBTKWApLvgtIEkvTzogMSByZWFkIGBPKFMpYCwgdXAgdG8gMSBtdXRhdGUgYE8oUylgLiBVcCB0byBvbmUgcmVtb3ZlLjAtIE9uZSBldmVudC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuPGNhbmNlbF9hc19tdWx0aRABJHRocmVzaG9sZFUBAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc60BAURWZWM8VDo6QWNjb3VudElkPgABJHRpbWVwb2ludA0DAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AA1RVAUNhbmNlbCBhIHByZS1leGlzdGluZywgb24tZ29pbmcgbXVsdGlzaWcgdHJhbnNhY3Rpb24uIEFueSBkZXBvc2l0IHJlc2VydmVkIHByZXZpb3VzbHnEZm9yIHRoaXMgb3BlcmF0aW9uIHdpbGwgYmUgdW5yZXNlcnZlZCBvbiBzdWNjZXNzLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuXQEtIGB0aW1lcG9pbnRgOiBUaGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5kIHRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWx4dHJhbnNhY3Rpb24gZm9yIHRoaXMgZGlzcGF0Y2guzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC4wLSBPbmUgZXZlbnQuhC0gSS9POiAxIHJlYWQgYE8oUylgLCBvbmUgcmVtb3ZlLnAtIFN0b3JhZ2U6IHJlbW92ZXMgb25lIGl0ZW0uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgkDBBhPcHRpb24EBFQBDQMBCBBOb25lAAAAEFNvbWUEAA0DAAABAAANAwg8cGFsbGV0X211bHRpc2lnJFRpbWVwb2ludAQsQmxvY2tOdW1iZXIBEAAIARhoZWlnaHQQASxCbG9ja051bWJlcgABFGluZGV4EAEMdTMyAAARAww8cGFsbGV0X3ByZWltYWdlGHBhbGxldBBDYWxsBARUAAEUNG5vdGVfcHJlaW1hZ2UEARRieXRlczgBHFZlYzx1OD4AABB0UmVnaXN0ZXIgYSBwcmVpbWFnZSBvbi1jaGFpbi4AVQFJZiB0aGUgcHJlaW1hZ2Ugd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkLCBubyBmZWVzIG9yIGRlcG9zaXRzIGFyZSB0YWtlbiBmb3IgcHJvdmlkaW5nVQF0aGUgcHJlaW1hZ2UuIE90aGVyd2lzZSwgYSBkZXBvc2l0IGlzIHRha2VuIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJlaW1hZ2UuPHVubm90ZV9wcmVpbWFnZQQBEGhhc2g0ARxUOjpIYXNoAAEY3ENsZWFyIGFuIHVucmVxdWVzdGVkIHByZWltYWdlIGZyb20gdGhlIHJ1bnRpbWUgc3RvcmFnZS4A/ElmIGBsZW5gIGlzIHByb3ZpZGVkLCB0aGVuIGl0IHdpbGwgYmUgYSBtdWNoIGNoZWFwZXIgb3BlcmF0aW9uLgABAS0gYGhhc2hgOiBUaGUgaGFzaCBvZiB0aGUgcHJlaW1hZ2UgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yZS64LSBgbGVuYDogVGhlIGxlbmd0aCBvZiB0aGUgcHJlaW1hZ2Ugb2YgYGhhc2hgLkByZXF1ZXN0X3ByZWltYWdlBAEQaGFzaDQBHFQ6Okhhc2gAAhBBAVJlcXVlc3QgYSBwcmVpbWFnZSBiZSB1cGxvYWRlZCB0byB0aGUgY2hhaW4gd2l0aG91dCBwYXlpbmcgYW55IGZlZXMgb3IgZGVwb3NpdHMuAFUBSWYgdGhlIHByZWltYWdlIHJlcXVlc3RzIGhhcyBhbHJlYWR5IGJlZW4gcHJvdmlkZWQgb24tY2hhaW4sIHdlIHVucmVzZXJ2ZSBhbnkgZGVwb3NpdDkBYSB1c2VyIG1heSBoYXZlIHBhaWQsIGFuZCB0YWtlIHRoZSBjb250cm9sIG9mIHRoZSBwcmVpbWFnZSBvdXQgb2YgdGhlaXIgaGFuZHMuSHVucmVxdWVzdF9wcmVpbWFnZQQBEGhhc2g0ARxUOjpIYXNoAAMMvENsZWFyIGEgcHJldmlvdXNseSBtYWRlIHJlcXVlc3QgZm9yIGEgcHJlaW1hZ2UuAC0BTk9URTogVEhJUyBNVVNUIE5PVCBCRSBDQUxMRUQgT04gYGhhc2hgIE1PUkUgVElNRVMgVEhBTiBgcmVxdWVzdF9wcmVpbWFnZWAuOGVuc3VyZV91cGRhdGVkBAEYaGFzaGVzFQMBMFZlYzxUOjpIYXNoPgAEDMRFbnN1cmUgdGhhdCB0aGUgYSBidWxrIG9mIHByZS1pbWFnZXMgaXMgdXBncmFkZWQuAD0BVGhlIGNhbGxlciBwYXlzIG5vIGZlZSBpZiBhdCBsZWFzdCA5MCUgb2YgcHJlLWltYWdlcyB3ZXJlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4VAwAAAjQAGQMMPHBhbGxldF9ib3VudGllcxhwYWxsZXQQQ2FsbAgEVAAESQABJDhwcm9wb3NlX2JvdW50eQgBFHZhbHVl5AE8QmFsYW5jZU9mPFQsIEk+AAEsZGVzY3JpcHRpb244ARxWZWM8dTg+AAAwVFByb3Bvc2UgYSBuZXcgYm91bnR5LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFEBUGF5bWVudDogYFRpcFJlcG9ydERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGZyb20gdGhlIG9yaWdpbiBhY2NvdW50LCBhcyB3ZWxsIGFzUQFgRGF0YURlcG9zaXRQZXJCeXRlYCBmb3IgZWFjaCBieXRlIGluIGByZWFzb25gLiBJdCB3aWxsIGJlIHVucmVzZXJ2ZWQgdXBvbiBhcHByb3ZhbCxkb3Igc2xhc2hlZCB3aGVuIHJlamVjdGVkLgD4LSBgY3VyYXRvcmA6IFRoZSBjdXJhdG9yIGFjY291bnQgd2hvbSB3aWxsIG1hbmFnZSB0aGlzIGJvdW50eS5kLSBgZmVlYDogVGhlIGN1cmF0b3IgZmVlLiUBLSBgdmFsdWVgOiBUaGUgdG90YWwgcGF5bWVudCBhbW91bnQgb2YgdGhpcyBib3VudHksIGN1cmF0b3IgZmVlIGluY2x1ZGVkLsAtIGBkZXNjcmlwdGlvbmA6IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIGJvdW50eS44YXBwcm92ZV9ib3VudHkEASRib3VudHlfaWTUASxCb3VudHlJbmRleAABHF0BQXBwcm92ZSBhIGJvdW50eSBwcm9wb3NhbC4gQXQgYSBsYXRlciB0aW1lLCB0aGUgYm91bnR5IHdpbGwgYmUgZnVuZGVkIGFuZCBiZWNvbWUgYWN0aXZlqGFuZCB0aGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIGJlIHJldHVybmVkLgCkTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFQ6OlNwZW5kT3JpZ2luYC4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLjxwcm9wb3NlX2N1cmF0b3IMASRib3VudHlfaWTUASxCb3VudHlJbmRleAABHGN1cmF0b3KdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAQxmZWXkATxCYWxhbmNlT2Y8VCwgST4AAhiUUHJvcG9zZSBhIGN1cmF0b3IgdG8gYSBmdW5kZWQgYm91bnR5LgCkTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFQ6OlNwZW5kT3JpZ2luYC4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLkB1bmFzc2lnbl9jdXJhdG9yBAEkYm91bnR5X2lk1AEsQm91bnR5SW5kZXgAA0R8VW5hc3NpZ24gY3VyYXRvciBmcm9tIGEgYm91bnR5LgAdAVRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBgUmVqZWN0T3JpZ2luYCBhIHNpZ25lZCBvcmlnaW4uAD0BSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIGBSZWplY3RPcmlnaW5gLCB3ZSBhc3N1bWUgdGhhdCB0aGUgY3VyYXRvciBpczEBbWFsaWNpb3VzIG9yIGluYWN0aXZlLiBBcyBhIHJlc3VsdCwgd2Ugd2lsbCBzbGFzaCB0aGUgY3VyYXRvciB3aGVuIHBvc3NpYmxlLgBhAUlmIHRoZSBvcmlnaW4gaXMgdGhlIGN1cmF0b3IsIHdlIHRha2UgdGhpcyBhcyBhIHNpZ24gdGhleSBhcmUgdW5hYmxlIHRvIGRvIHRoZWlyIGpvYiBhbmRdAXRoZXkgd2lsbGluZ2x5IGdpdmUgdXAuIFdlIGNvdWxkIHNsYXNoIHRoZW0sIGJ1dCBmb3Igbm93IHdlIGFsbG93IHRoZW0gdG8gcmVjb3ZlciB0aGVpcjUBZGVwb3NpdCBhbmQgZXhpdCB3aXRob3V0IGlzc3VlLiAoV2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgaWYgaXQgaXMgYWJ1c2VkLikAXQFGaW5hbGx5LCB0aGUgb3JpZ2luIGNhbiBiZSBhbnlvbmUgaWYgYW5kIG9ubHkgaWYgdGhlIGN1cmF0b3IgaXMgImluYWN0aXZlIi4gVGhpcyBhbGxvd3NhAWFueW9uZSBpbiB0aGUgY29tbXVuaXR5IHRvIGNhbGwgb3V0IHRoYXQgYSBjdXJhdG9yIGlzIG5vdCBkb2luZyB0aGVpciBkdWUgZGlsaWdlbmNlLCBhbmQ5AXdlIHNob3VsZCBwaWNrIGEgbmV3IGN1cmF0b3IuIEluIHRoaXMgY2FzZSB0aGUgY3VyYXRvciBzaG91bGQgYWxzbyBiZSBzbGFzaGVkLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuOGFjY2VwdF9jdXJhdG9yBAEkYm91bnR5X2lk1AEsQm91bnR5SW5kZXgABByUQWNjZXB0IHRoZSBjdXJhdG9yIHJvbGUgZm9yIGEgYm91bnR5LikBQSBkZXBvc2l0IHdpbGwgYmUgcmVzZXJ2ZWQgZnJvbSBjdXJhdG9yIGFuZCByZWZ1bmQgdXBvbiBzdWNjZXNzZnVsIHBheW91dC4AkE1heSBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBjdXJhdG9yLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuMGF3YXJkX2JvdW50eQgBJGJvdW50eV9pZNQBLEJvdW50eUluZGV4AAEsYmVuZWZpY2lhcnmdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABShZAUF3YXJkIGJvdW50eSB0byBhIGJlbmVmaWNpYXJ5IGFjY291bnQuIFRoZSBiZW5lZmljaWFyeSB3aWxsIGJlIGFibGUgdG8gY2xhaW0gdGhlIGZ1bmRzOGFmdGVyIGEgZGVsYXkuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGN1cmF0b3Igb2YgdGhpcyBib3VudHkuAIgtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gYXdhcmQuGQEtIGBiZW5lZmljaWFyeWA6IFRoZSBiZW5lZmljaWFyeSBhY2NvdW50IHdob20gd2lsbCByZWNlaXZlIHRoZSBwYXlvdXQuADQjIyBDb21wbGV4aXR5HC0gTygxKS4wY2xhaW1fYm91bnR5BAEkYm91bnR5X2lk1AEsQm91bnR5SW5kZXgABiDsQ2xhaW0gdGhlIHBheW91dCBmcm9tIGFuIGF3YXJkZWQgYm91bnR5IGFmdGVyIHBheW91dCBkZWxheS4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYmVuZWZpY2lhcnkgb2YgdGhpcyBib3VudHkuAIgtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gY2xhaW0uADQjIyBDb21wbGV4aXR5HC0gTygxKS4wY2xvc2VfYm91bnR5BAEkYm91bnR5X2lk1AEsQm91bnR5SW5kZXgAByQ5AUNhbmNlbCBhIHByb3Bvc2VkIG9yIGFjdGl2ZSBib3VudHkuIEFsbCB0aGUgZnVuZHMgd2lsbCBiZSBzZW50IHRvIHRyZWFzdXJ5IGFuZMx0aGUgY3VyYXRvciBkZXBvc2l0IHdpbGwgYmUgdW5yZXNlcnZlZCBpZiBwb3NzaWJsZS4AyE9ubHkgYFQ6OlJlamVjdE9yaWdpbmAgaXMgYWJsZSB0byBjYW5jZWwgYSBib3VudHkuAIwtIGBib3VudHlfaWRgOiBCb3VudHkgSUQgdG8gY2FuY2VsLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuUGV4dGVuZF9ib3VudHlfZXhwaXJ5CAEkYm91bnR5X2lk1AEsQm91bnR5SW5kZXgAARhyZW1hcms4ARxWZWM8dTg+AAgkrEV4dGVuZCB0aGUgZXhwaXJ5IHRpbWUgb2YgYW4gYWN0aXZlIGJvdW50eS4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY3VyYXRvciBvZiB0aGlzIGJvdW50eS4AjC0gYGJvdW50eV9pZGA6IEJvdW50eSBJRCB0byBleHRlbmQujC0gYHJlbWFya2A6IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uADQjIyBDb21wbGV4aXR5HC0gTygxKS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuHQMMVHBhbGxldF9jaGlsZF9ib3VudGllcxhwYWxsZXQQQ2FsbAQEVAABHEBhZGRfY2hpbGRfYm91bnR5DAFAcGFyZW50X2JvdW50eV9pZNQBLEJvdW50eUluZGV4AAEUdmFsdWXkATBCYWxhbmNlT2Y8VD4AASxkZXNjcmlwdGlvbjgBHFZlYzx1OD4AAExcQWRkIGEgbmV3IGNoaWxkLWJvdW50eS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBjdXJhdG9yIG9mIHBhcmVudNxib3VudHkgYW5kIHRoZSBwYXJlbnQgYm91bnR5IG11c3QgYmUgaW4gImFjdGl2ZSIgc3RhdGUuAAUBQ2hpbGQtYm91bnR5IGdldHMgYWRkZWQgc3VjY2Vzc2Z1bGx5ICYgZnVuZCBnZXRzIHRyYW5zZmVycmVkIGZyb20JAXBhcmVudCBib3VudHkgdG8gY2hpbGQtYm91bnR5IGFjY291bnQsIGlmIHBhcmVudCBib3VudHkgaGFzIGVub3VnaGxmdW5kcywgZWxzZSB0aGUgY2FsbCBmYWlscy4ADQFVcHBlciBib3VuZCB0byBtYXhpbXVtIG51bWJlciBvZiBhY3RpdmUgIGNoaWxkIGJvdW50aWVzIHRoYXQgY2FuIGJlqGFkZGVkIGFyZSBtYW5hZ2VkIHZpYSBydW50aW1lIHRyYWl0IGNvbmZpZ5hbYENvbmZpZzo6TWF4QWN0aXZlQ2hpbGRCb3VudHlDb3VudGBdLgABAUlmIHRoZSBjYWxsIGlzIHN1Y2Nlc3MsIHRoZSBzdGF0dXMgb2YgY2hpbGQtYm91bnR5IGlzIHVwZGF0ZWQgdG8gIkFkZGVkIi4ATQEtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eSBmb3Igd2hpY2ggY2hpbGQtYm91bnR5IGlzIGJlaW5nIGFkZGVkLrAtIGB2YWx1ZWA6IFZhbHVlIGZvciBleGVjdXRpbmcgdGhlIHByb3Bvc2FsLtwtIGBkZXNjcmlwdGlvbmA6IFRleHQgZGVzY3JpcHRpb24gZm9yIHRoZSBjaGlsZC1ib3VudHkuPHByb3Bvc2VfY3VyYXRvchABQHBhcmVudF9ib3VudHlfaWTUASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZNQBLEJvdW50eUluZGV4AAEcY3VyYXRvcp0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABDGZlZeQBMEJhbGFuY2VPZjxUPgABPKBQcm9wb3NlIGN1cmF0b3IgZm9yIGZ1bmRlZCBjaGlsZC1ib3VudHkuAA0BVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgY3VyYXRvciBvZiBwYXJlbnQgYm91bnR5LgARAVBhcmVudCBib3VudHkgbXVzdCBiZSBpbiBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNoaWxkLWJvdW50eSBjYWxsIHRvFHdvcmsuAA0BQ2hpbGQtYm91bnR5IG11c3QgYmUgaW4gIkFkZGVkIiBzdGF0ZSwgZm9yIHByb2Nlc3NpbmcgdGhlIGNhbGwuIEFuZAUBc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIG1vdmVkIHRvICJDdXJhdG9yUHJvcG9zZWQiIG9uIHN1Y2Nlc3NmdWxAY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS60LSBgY3VyYXRvcmA6IEFkZHJlc3Mgb2YgY2hpbGQtYm91bnR5IGN1cmF0b3Iu7C0gYGZlZWA6IHBheW1lbnQgZmVlIHRvIGNoaWxkLWJvdW50eSBjdXJhdG9yIGZvciBleGVjdXRpb24uOGFjY2VwdF9jdXJhdG9yCAFAcGFyZW50X2JvdW50eV9pZNQBLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lk1AEsQm91bnR5SW5kZXgAAky0QWNjZXB0IHRoZSBjdXJhdG9yIHJvbGUgZm9yIHRoZSBjaGlsZC1ib3VudHkuAPRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgY3VyYXRvciBvZiB0aGlzNGNoaWxkLWJvdW50eS4A7EEgZGVwb3NpdCB3aWxsIGJlIHJlc2VydmVkIGZyb20gdGhlIGN1cmF0b3IgYW5kIHJlZnVuZCB1cG9uiHN1Y2Nlc3NmdWwgcGF5b3V0IG9yIGNhbmNlbGxhdGlvbi4A+EZlZSBmb3IgY3VyYXRvciBpcyBkZWR1Y3RlZCBmcm9tIGN1cmF0b3IgZmVlIG9mIHBhcmVudCBib3VudHkuABEBUGFyZW50IGJvdW50eSBtdXN0IGJlIGluIGFjdGl2ZSBzdGF0ZSwgZm9yIHRoaXMgY2hpbGQtYm91bnR5IGNhbGwgdG8Ud29yay4ADQFDaGlsZC1ib3VudHkgbXVzdCBiZSBpbiAiQ3VyYXRvclByb3Bvc2VkIiBzdGF0ZSwgZm9yIHByb2Nlc3NpbmcgdGhlCQFjYWxsLiBBbmQgc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIG1vdmVkIHRvICJBY3RpdmUiIG9uIHN1Y2Nlc3NmdWxAY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS5AdW5hc3NpZ25fY3VyYXRvcggBQHBhcmVudF9ib3VudHlfaWTUASxCb3VudHlJbmRleAABPGNoaWxkX2JvdW50eV9pZNQBLEJvdW50eUluZGV4AAOIlFVuYXNzaWduIGN1cmF0b3IgZnJvbSBhIGNoaWxkLWJvdW50eS4ACQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgY2FuIGJlIGVpdGhlciBgUmVqZWN0T3JpZ2luYCwgb3LcdGhlIGN1cmF0b3Igb2YgdGhlIHBhcmVudCBib3VudHksIG9yIGFueSBzaWduZWQgb3JpZ2luLgD4Rm9yIHRoZSBvcmlnaW4gb3RoZXIgdGhhbiBUOjpSZWplY3RPcmlnaW4gYW5kIHRoZSBjaGlsZC1ib3VudHkBAWN1cmF0b3IsIHBhcmVudCBib3VudHkgbXVzdCBiZSBpbiBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNhbGwgdG8JAXdvcmsuIFdlIGFsbG93IGNoaWxkLWJvdW50eSBjdXJhdG9yIGFuZCBUOjpSZWplY3RPcmlnaW4gdG8gZXhlY3V0Zch0aGlzIGNhbGwgaXJyZXNwZWN0aXZlIG9mIHRoZSBwYXJlbnQgYm91bnR5IHN0YXRlLgDcSWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIGBSZWplY3RPcmlnaW5gIG9yIHRoZQUBcGFyZW50IGJvdW50eSBjdXJhdG9yLCB3ZSBhc3N1bWUgdGhhdCB0aGUgY2hpbGQtYm91bnR5IGN1cmF0b3IgaXMNAW1hbGljaW91cyBvciBpbmFjdGl2ZS4gQXMgYSByZXN1bHQsIGNoaWxkLWJvdW50eSBjdXJhdG9yIGRlcG9zaXQgaXMgc2xhc2hlZC4ABQFJZiB0aGUgb3JpZ2luIGlzIHRoZSBjaGlsZC1ib3VudHkgY3VyYXRvciwgd2UgdGFrZSB0aGlzIGFzIGEgc2lnbgkBdGhhdCB0aGV5IGFyZSB1bmFibGUgdG8gZG8gdGhlaXIgam9iLCBhbmQgYXJlIHdpbGxpbmdseSBnaXZpbmcgdXAuCQFXZSBjb3VsZCBzbGFzaCB0aGUgZGVwb3NpdCwgYnV0IGZvciBub3cgd2UgYWxsb3cgdGhlbSB0byB1bnJlc2VydmURAXRoZWlyIGRlcG9zaXQgYW5kIGV4aXQgd2l0aG91dCBpc3N1ZS4gKFdlIG1heSB3YW50IHRvIGNoYW5nZSB0aGlzIGlmOGl0IGlzIGFidXNlZC4pAAUBRmluYWxseSwgdGhlIG9yaWdpbiBjYW4gYmUgYW55b25lIGlmZiB0aGUgY2hpbGQtYm91bnR5IGN1cmF0b3IgaXMJASJpbmFjdGl2ZSIuIEV4cGlyeSB1cGRhdGUgZHVlIG9mIHBhcmVudCBib3VudHkgaXMgdXNlZCB0byBlc3RpbWF0ZZxpbmFjdGl2ZSBzdGF0ZSBvZiBjaGlsZC1ib3VudHkgY3VyYXRvci4ADQFUaGlzIGFsbG93cyBhbnlvbmUgaW4gdGhlIGNvbW11bml0eSB0byBjYWxsIG91dCB0aGF0IGEgY2hpbGQtYm91bnR5CQFjdXJhdG9yIGlzIG5vdCBkb2luZyB0aGVpciBkdWUgZGlsaWdlbmNlLCBhbmQgd2Ugc2hvdWxkIHBpY2sgYSBuZXf4b25lLiBJbiB0aGlzIGNhc2UgdGhlIGNoaWxkLWJvdW50eSBjdXJhdG9yIGRlcG9zaXQgaXMgc2xhc2hlZC4AAQFTdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgbW92ZWQgdG8gQWRkZWQgc3RhdGUgb24gc3VjY2Vzc2Z1bCBjYWxsLGNvbXBsZXRpb24uALQtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQgYm91bnR5Lkhhd2FyZF9jaGlsZF9ib3VudHkMAUBwYXJlbnRfYm91bnR5X2lk1AEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTUASxCb3VudHlJbmRleAABLGJlbmVmaWNpYXJ5nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAREkEF3YXJkIGNoaWxkLWJvdW50eSB0byBhIGJlbmVmaWNpYXJ5LgD4VGhlIGJlbmVmaWNpYXJ5IHdpbGwgYmUgYWJsZSB0byBjbGFpbSB0aGUgZnVuZHMgYWZ0ZXIgYSBkZWxheS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBwYXJlbnQgY3VyYXRvciBvcnRjdXJhdG9yIG9mIHRoaXMgY2hpbGQtYm91bnR5LgARAVBhcmVudCBib3VudHkgbXVzdCBiZSBpbiBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNoaWxkLWJvdW50eSBjYWxsIHRvFHdvcmsuAAkBQ2hpbGQtYm91bnR5IG11c3QgYmUgaW4gYWN0aXZlIHN0YXRlLCBmb3IgcHJvY2Vzc2luZyB0aGUgY2FsbC4gQW5kEQFzdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgbW92ZWQgdG8gIlBlbmRpbmdQYXlvdXQiIG9uIHN1Y2Nlc3NmdWwgY2FsbCxjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS6ULSBgYmVuZWZpY2lhcnlgOiBCZW5lZmljaWFyeSBhY2NvdW50LkhjbGFpbV9jaGlsZF9ib3VudHkIAUBwYXJlbnRfYm91bnR5X2lk1AEsQm91bnR5SW5kZXgAATxjaGlsZF9ib3VudHlfaWTUASxCb3VudHlJbmRleAAFQAUBQ2xhaW0gdGhlIHBheW91dCBmcm9tIGFuIGF3YXJkZWQgY2hpbGQtYm91bnR5IGFmdGVyIHBheW91dCBkZWxheS4A7FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtYXkgYmUgYW55IHNpZ25lZCBvcmlnaW4uAAUBQ2FsbCB3b3JrcyBpbmRlcGVuZGVudCBvZiBwYXJlbnQgYm91bnR5IHN0YXRlLCBObyBuZWVkIGZvciBwYXJlbnR0Ym91bnR5IHRvIGJlIGluIGFjdGl2ZSBzdGF0ZS4AEQFUaGUgQmVuZWZpY2lhcnkgaXMgcGFpZCBvdXQgd2l0aCBhZ3JlZWQgYm91bnR5IHZhbHVlLiBDdXJhdG9yIGZlZSBpc5RwYWlkICYgY3VyYXRvciBkZXBvc2l0IGlzIHVucmVzZXJ2ZWQuAAUBQ2hpbGQtYm91bnR5IG11c3QgYmUgaW4gIlBlbmRpbmdQYXlvdXQiIHN0YXRlLCBmb3IgcHJvY2Vzc2luZyB0aGX8Y2FsbC4gQW5kIGluc3RhbmNlIG9mIGNoaWxkLWJvdW50eSBpcyByZW1vdmVkIGZyb20gdGhlIHN0YXRlIG9ubHN1Y2Nlc3NmdWwgY2FsbCBjb21wbGV0aW9uLgC0LSBgcGFyZW50X2JvdW50eV9pZGA6IEluZGV4IG9mIHBhcmVudCBib3VudHkurC0gYGNoaWxkX2JvdW50eV9pZGA6IEluZGV4IG9mIGNoaWxkIGJvdW50eS5IY2xvc2VfY2hpbGRfYm91bnR5CAFAcGFyZW50X2JvdW50eV9pZNQBLEJvdW50eUluZGV4AAE8Y2hpbGRfYm91bnR5X2lk1AEsQm91bnR5SW5kZXgABlgRAUNhbmNlbCBhIHByb3Bvc2VkIG9yIGFjdGl2ZSBjaGlsZC1ib3VudHkuIENoaWxkLWJvdW50eSBhY2NvdW50IGZ1bmRzCQFhcmUgdHJhbnNmZXJyZWQgdG8gcGFyZW50IGJvdW50eSBhY2NvdW50LiBUaGUgY2hpbGQtYm91bnR5IGN1cmF0b3KYZGVwb3NpdCBtYXkgYmUgdW5yZXNlcnZlZCBpZiBwb3NzaWJsZS4ACQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBlaXRoZXIgcGFyZW50IGN1cmF0b3Igb3JIYFQ6OlJlamVjdE9yaWdpbmAuAPBJZiB0aGUgc3RhdGUgb2YgY2hpbGQtYm91bnR5IGlzIGBBY3RpdmVgLCBjdXJhdG9yIGRlcG9zaXQgaXMsdW5yZXNlcnZlZC4A9ElmIHRoZSBzdGF0ZSBvZiBjaGlsZC1ib3VudHkgaXMgYFBlbmRpbmdQYXlvdXRgLCBjYWxsIGZhaWxzICZ4cmV0dXJucyBgUGVuZGluZ1BheW91dGAgZXJyb3IuAA0BRm9yIHRoZSBvcmlnaW4gb3RoZXIgdGhhbiBUOjpSZWplY3RPcmlnaW4sIHBhcmVudCBib3VudHkgbXVzdCBiZSBpbvBhY3RpdmUgc3RhdGUsIGZvciB0aGlzIGNoaWxkLWJvdW50eSBjYWxsIHRvIHdvcmsuIEZvciBvcmlnaW6QVDo6UmVqZWN0T3JpZ2luIGV4ZWN1dGlvbiBpcyBmb3JjZWQuAAEBSW5zdGFuY2Ugb2YgY2hpbGQtYm91bnR5IGlzIHJlbW92ZWQgZnJvbSB0aGUgc3RhdGUgb24gc3VjY2Vzc2Z1bEBjYWxsIGNvbXBsZXRpb24uALQtIGBwYXJlbnRfYm91bnR5X2lkYDogSW5kZXggb2YgcGFyZW50IGJvdW50eS6sLSBgY2hpbGRfYm91bnR5X2lkYDogSW5kZXggb2YgY2hpbGQgYm91bnR5LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4hAwyQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlGHBhbGxldBBDYWxsBARUAAEUPHN1Ym1pdF91bnNpZ25lZAgBMHJhd19zb2x1dGlvbiUDAbBCb3g8UmF3U29sdXRpb248U29sdXRpb25PZjxUOjpNaW5lckNvbmZpZz4+PgABHHdpdG5lc3NZBAFYU29sdXRpb25PclNuYXBzaG90U2l6ZQAAOKRTdWJtaXQgYSBzb2x1dGlvbiBmb3IgdGhlIHVuc2lnbmVkIHBoYXNlLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBmbyB0aGlzIGNhbGwgbXVzdCBiZSBfX25vbmVfXy4APQFUaGlzIHN1Ym1pc3Npb24gaXMgY2hlY2tlZCBvbiB0aGUgZmx5LiBNb3Jlb3ZlciwgdGhpcyB1bnNpZ25lZCBzb2x1dGlvbiBpcyBvbmx5VQF2YWxpZGF0ZWQgd2hlbiBzdWJtaXR0ZWQgdG8gdGhlIHBvb2wgZnJvbSB0aGUgKipsb2NhbCoqIG5vZGUuIEVmZmVjdGl2ZWx5LCB0aGlzIG1lYW5zXQF0aGF0IG9ubHkgYWN0aXZlIHZhbGlkYXRvcnMgY2FuIHN1Ym1pdCB0aGlzIHRyYW5zYWN0aW9uIHdoZW4gYXV0aG9yaW5nIGEgYmxvY2sgKHNpbWlsYXJAdG8gYW4gaW5oZXJlbnQpLgBZAVRvIHByZXZlbnQgYW55IGluY29ycmVjdCBzb2x1dGlvbiAoYW5kIHRodXMgd2FzdGVkIHRpbWUvd2VpZ2h0KSwgdGhpcyB0cmFuc2FjdGlvbiB3aWxsTQFwYW5pYyBpZiB0aGUgc29sdXRpb24gc3VibWl0dGVkIGJ5IHRoZSB2YWxpZGF0b3IgaXMgaW52YWxpZCBpbiBhbnkgd2F5LCBlZmZlY3RpdmVseZxwdXR0aW5nIHRoZWlyIGF1dGhvcmluZyByZXdhcmQgYXQgcmlzay4A4E5vIGRlcG9zaXQgb3IgcmV3YXJkIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN1Ym1pc3Npb24ubHNldF9taW5pbXVtX3VudHJ1c3RlZF9zY29yZQQBQG1heWJlX25leHRfc2NvcmVdBAFUT3B0aW9uPEVsZWN0aW9uU2NvcmU+AAEUsFNldCBhIG5ldyB2YWx1ZSBmb3IgYE1pbmltdW1VbnRydXN0ZWRTY29yZWAuANhEaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBhbGlnbmVkIHdpdGggYFQ6OkZvcmNlT3JpZ2luYC4A8FRoaXMgY2hlY2sgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyB0aGUgdmFsdWUgdG8gYE5vbmVgLnRzZXRfZW1lcmdlbmN5X2VsZWN0aW9uX3Jlc3VsdAQBIHN1cHBvcnRzYQQBWFN1cHBvcnRzPFQ6OkFjY291bnRJZD4AAiBZAVNldCBhIHNvbHV0aW9uIGluIHRoZSBxdWV1ZSwgdG8gYmUgaGFuZGVkIG91dCB0byB0aGUgY2xpZW50IG9mIHRoaXMgcGFsbGV0IGluIHRoZSBuZXh0iGNhbGwgdG8gYEVsZWN0aW9uUHJvdmlkZXI6OmVsZWN0YC4ARQFUaGlzIGNhbiBvbmx5IGJlIHNldCBieSBgVDo6Rm9yY2VPcmlnaW5gLCBhbmQgb25seSB3aGVuIHRoZSBwaGFzZSBpcyBgRW1lcmdlbmN5YC4AYQFUaGUgc29sdXRpb24gaXMgbm90IGNoZWNrZWQgZm9yIGFueSBmZWFzaWJpbGl0eSBhbmQgaXMgYXNzdW1lZCB0byBiZSB0cnVzdHdvcnRoeSwgYXMgYW55UQFmZWFzaWJpbGl0eSBjaGVjayBpdHNlbGYgY2FuIGluIHByaW5jaXBsZSBjYXVzZSB0aGUgZWxlY3Rpb24gcHJvY2VzcyB0byBmYWlsIChkdWUgdG9obWVtb3J5L3dlaWdodCBjb25zdHJhaW5zKS4Yc3VibWl0BAEwcmF3X3NvbHV0aW9uJQMBsEJveDxSYXdTb2x1dGlvbjxTb2x1dGlvbk9mPFQ6Ok1pbmVyQ29uZmlnPj4+AAMknFN1Ym1pdCBhIHNvbHV0aW9uIGZvciB0aGUgc2lnbmVkIHBoYXNlLgDQVGhlIGRpc3BhdGNoIG9yaWdpbiBmbyB0aGlzIGNhbGwgbXVzdCBiZSBfX3NpZ25lZF9fLgBdAVRoZSBzb2x1dGlvbiBpcyBwb3RlbnRpYWxseSBxdWV1ZWQsIGJhc2VkIG9uIHRoZSBjbGFpbWVkIHNjb3JlIGFuZCBwcm9jZXNzZWQgYXQgdGhlIGVuZFBvZiB0aGUgc2lnbmVkIHBoYXNlLgBdAUEgZGVwb3NpdCBpcyByZXNlcnZlZCBhbmQgcmVjb3JkZWQgZm9yIHRoZSBzb2x1dGlvbi4gQmFzZWQgb24gdGhlIG91dGNvbWUsIHRoZSBzb2x1dGlvbhUBbWlnaHQgYmUgcmV3YXJkZWQsIHNsYXNoZWQsIG9yIGdldCBhbGwgb3IgYSBwYXJ0IG9mIHRoZSBkZXBvc2l0IGJhY2suTGdvdmVybmFuY2VfZmFsbGJhY2sIAUBtYXliZV9tYXhfdm90ZXJzPQIBLE9wdGlvbjx1MzI+AAFEbWF5YmVfbWF4X3RhcmdldHM9AgEsT3B0aW9uPHUzMj4ABBCAVHJpZ2dlciB0aGUgZ292ZXJuYW5jZSBmYWxsYmFjay4ASQFUaGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIFtgUGhhc2U6OkVtZXJnZW5jeWBdIGlzIGVuYWJsZWQsIGFzIGFuIGFsdGVybmF0aXZlIHRvwGNhbGxpbmcgW2BDYWxsOjpzZXRfZW1lcmdlbmN5X2VsZWN0aW9uX3Jlc3VsdGBdLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4lAwiQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlLFJhd1NvbHV0aW9uBARTASkDAAwBIHNvbHV0aW9uKQMBBFMAARRzY29yZVUEATRFbGVjdGlvblNjb3JlAAEUcm91bmQQAQx1MzIAACkDCFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lVE5wb3NDb21wYWN0U29sdXRpb24yNAAAYAEYdm90ZXMxLQMAAAEYdm90ZXMyOQMAAAEYdm90ZXMzTQMAAAEYdm90ZXM0WQMAAAEYdm90ZXM1ZQMAAAEYdm90ZXM2cQMAAAEYdm90ZXM3fQMAAAEYdm90ZXM4iQMAAAEYdm90ZXM5lQMAAAEcdm90ZXMxMKEDAAABHHZvdGVzMTGtAwAAARx2b3RlczEyuQMAAAEcdm90ZXMxM8UDAAABHHZvdGVzMTTRAwAAARx2b3RlczE13QMAAAEcdm90ZXMxNukDAAABHHZvdGVzMTf1AwAAARx2b3RlczE4AQQAAAEcdm90ZXMxOQ0EAAABHHZvdGVzMjAZBAAAARx2b3RlczIxJQQAAAEcdm90ZXMyMjEEAAABHHZvdGVzMjM9BAAAARx2b3RlczI0SQQAAAAtAwAAAjEDADEDAAAECNQ1AwA1AwAABlUBADkDAAACPQMAPQMAAAQM1EEDNQMAQQMAAAQINQNFAwBFAwAABkkDAEkDDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3MYUGVyVTE2AAAEAFUBAQx1MTYAAE0DAAACUQMAUQMAAAQM1FUDNQMAVQMAAAMCAAAAQQMAWQMAAAJdAwBdAwAABAzUYQM1AwBhAwAAAwMAAABBAwBlAwAAAmkDAGkDAAAEDNRtAzUDAG0DAAADBAAAAEEDAHEDAAACdQMAdQMAAAQM1HkDNQMAeQMAAAMFAAAAQQMAfQMAAAKBAwCBAwAABAzUhQM1AwCFAwAAAwYAAABBAwCJAwAAAo0DAI0DAAAEDNSRAzUDAJEDAAADBwAAAEEDAJUDAAACmQMAmQMAAAQM1J0DNQMAnQMAAAMIAAAAQQMAoQMAAAKlAwClAwAABAzUqQM1AwCpAwAAAwkAAABBAwCtAwAAArEDALEDAAAEDNS1AzUDALUDAAADCgAAAEEDALkDAAACvQMAvQMAAAQM1MEDNQMAwQMAAAMLAAAAQQMAxQMAAALJAwDJAwAABAzUzQM1AwDNAwAAAwwAAABBAwDRAwAAAtUDANUDAAAEDNTZAzUDANkDAAADDQAAAEEDAN0DAAAC4QMA4QMAAAQM1OUDNQMA5QMAAAMOAAAAQQMA6QMAAALtAwDtAwAABAzU8QM1AwDxAwAAAw8AAABBAwD1AwAAAvkDAPkDAAAEDNT9AzUDAP0DAAADEAAAAEEDAAEEAAACBQQABQQAAAQM1AkENQMACQQAAAMRAAAAQQMADQQAAAIRBAARBAAABAzUFQQ1AwAVBAAAAxIAAABBAwAZBAAAAh0EAB0EAAAEDNQhBDUDACEEAAADEwAAAEEDACUEAAACKQQAKQQAAAQM1C0ENQMALQQAAAMUAAAAQQMAMQQAAAI1BAA1BAAABAzUOQQ1AwA5BAAAAxUAAABBAwA9BAAAAkEEAEEEAAAEDNRFBDUDAEUEAAADFgAAAEEDAEkEAAACTQQATQQAAAQM1FEENQMAUQQAAAMXAAAAQQMAVQQIRHNwX25wb3NfZWxlY3Rpb25zNEVsZWN0aW9uU2NvcmUAAAwBNG1pbmltYWxfc3Rha2UYATxFeHRlbmRlZEJhbGFuY2UAASRzdW1fc3Rha2UYATxFeHRlbmRlZEJhbGFuY2UAAURzdW1fc3Rha2Vfc3F1YXJlZBgBPEV4dGVuZGVkQmFsYW5jZQAAWQQIkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZVhTb2x1dGlvbk9yU25hcHNob3RTaXplAAAIARh2b3RlcnPUAQx1MzIAARx0YXJnZXRz1AEMdTMyAABdBAQYT3B0aW9uBARUAVUEAQgQTm9uZQAAABBTb21lBABVBAAAAQAAYQQAAAJlBABlBAAABAgAaQQAaQQIRHNwX25wb3NfZWxlY3Rpb25zHFN1cHBvcnQEJEFjY291bnRJZAEAAAgBFHRvdGFsGAE8RXh0ZW5kZWRCYWxhbmNlAAEYdm90ZXJzbQQBhFZlYzwoQWNjb3VudElkLCBFeHRlbmRlZEJhbGFuY2UpPgAAbQQAAAJxBABxBAAABAgAGAB1BAwocGFsbGV0X25pcxhwYWxsZXQQQ2FsbAQEVAABHCRwbGFjZV9iaWQIARhhbW91bnTkATBCYWxhbmNlT2Y8VD4AASBkdXJhdGlvbhABDHUzMgAALDBQbGFjZSBhIGJpZC4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQsIGFuZCBhY2NvdW50IG11c3QgaGF2ZSBhdCBsZWFzdCBgYW1vdW50YCBpbiBmcmVlIGJhbGFuY2UuADEBLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiB0aGUgYmlkOyB0aGVzZSBmdW5kcyB3aWxsIGJlIHJlc2VydmVkLCBhbmQgaWYvd2hlbswgIGNvbnNvbGlkYXRlZCwgcmVtb3ZlZC4gTXVzdCBiZSBhdCBsZWFzdCBgTWluQmlkYC5JAS0gYGR1cmF0aW9uYDogVGhlIG51bWJlciBvZiBwZXJpb2RzIGJlZm9yZSB3aGljaCB0aGUgbmV3bHkgY29uc29saWRhdGVkIGJpZCBtYXkgYmX8ICB0aGF3ZWQuIE11c3QgYmUgZ3JlYXRlciB0aGFuIDEgYW5kIG5vIG1vcmUgdGhhbiBgUXVldWVDb3VudGAuADRDb21wbGV4aXRpZXM6rC0gYFF1ZXVlc1tkdXJhdGlvbl0ubGVuKClgIChqdXN0IHRha2UgbWF4KS4scmV0cmFjdF9iaWQIARhhbW91bnTkATBCYWxhbmNlT2Y8VD4AASBkdXJhdGlvbhABDHUzMgABHIBSZXRyYWN0IGEgcHJldmlvdXNseSBwbGFjZWQgYmlkLgBdAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCwgYW5kIHRoZSBhY2NvdW50IHNob3VsZCBoYXZlIHByZXZpb3VzbHkgaXNzdWVkIGEgc3RpbGwtYWN0aXZlIGJpZGxvZiBgYW1vdW50YCBmb3IgYGR1cmF0aW9uYC4ArC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgdGhlIHByZXZpb3VzIGJpZC68LSBgZHVyYXRpb25gOiBUaGUgZHVyYXRpb24gb2YgdGhlIHByZXZpb3VzIGJpZC4wZnVuZF9kZWZpY2l0AAIM8EVuc3VyZSB3ZSBoYXZlIHN1ZmZpY2llbnQgZnVuZGluZyBmb3IgYWxsIHBvdGVudGlhbCBwYXlvdXRzLgC0LSBgb3JpZ2luYDogTXVzdCBiZSBhY2NlcHRlZCBieSBgRnVuZE9yaWdpbmAuMHRoYXdfcHJpdmF0ZQgBFGluZGV41AEwUmVjZWlwdEluZGV4AAFAbWF5YmVfcHJvcG9ydGlvbpkCAUxPcHRpb248UGVycXVpbnRpbGw+AAMgXQFSZWR1Y2Ugb3IgcmVtb3ZlIGFuIG91dHN0YW5kaW5nIHJlY2VpcHQsIHBsYWNpbmcgdGhlIGFjY29yZGluZyBwcm9wb3J0aW9uIG9mIGZ1bmRzIGludG9kdGhlIGFjY291bnQgb2YgdGhlIG93bmVyLgBZAS0gYG9yaWdpbmA6IE11c3QgYmUgU2lnbmVkIGFuZCB0aGUgYWNjb3VudCBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUgcmVjZWlwdCBgaW5kZXhgIGFzjCAgd2VsbCBhcyBhbnkgZnVuZ2libGUgY291bnRlcnBhcnQukC0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWNlaXB0Ll0BLSBgcG9ydGlvbmA6IElmIGBTb21lYCwgdGhlbiBvbmx5IHRoZSBnaXZlbiBwb3J0aW9uIG9mIHRoZSByZWNlaXB0IHNob3VsZCBiZSB0aGF3ZWQuIElmjCAgYE5vbmVgLCB0aGVuIGFsbCBvZiBpdCBzaG91bGQgYmUuNHRoYXdfY29tbXVuYWwEARRpbmRleNQBMFJlY2VpcHRJbmRleAAEGF0BUmVkdWNlIG9yIHJlbW92ZSBhbiBvdXRzdGFuZGluZyByZWNlaXB0LCBwbGFjaW5nIHRoZSBhY2NvcmRpbmcgcHJvcG9ydGlvbiBvZiBmdW5kcyBpbnRvZHRoZSBhY2NvdW50IG9mIHRoZSBvd25lci4AYQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZCBhbmQgdGhlIGFjY291bnQgbXVzdCBiZSB0aGUgb3duZXIgb2YgdGhlIGZ1bmdpYmxlIGNvdW50ZXJwYXJ0WCAgZm9yIHJlY2VpcHQgYGluZGV4YC6QLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlY2VpcHQuJGNvbW11bmlmeQQBFGluZGV41AEwUmVjZWlwdEluZGV4AAUEPQFNYWtlIGEgcHJpdmF0ZSByZWNlaXB0IGNvbW11bmFsIGFuZCBjcmVhdGUgZnVuZ2libGUgY291bnRlcnBhcnRzIGZvciBpdHMgb3duZXIuJHByaXZhdGl6ZQQBFGluZGV41AEwUmVjZWlwdEluZGV4AAYEOQFNYWtlIGEgY29tbXVuYWwgcmVjZWlwdCBwcml2YXRlIGFuZCBidXJuIGZ1bmdpYmxlIGNvdW50ZXJwYXJ0cyBmcm9tIGl0cyBvd25lci4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMueQQMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3SdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZeQBKFQ6OkJhbGFuY2UAABzUVHJhbnNmZXIgc29tZSBsaXF1aWQgZnJlZSBiYWxhbmNlIHRvIGFub3RoZXIgYWNjb3VudC4ANQFgdHJhbnNmZXJfYWxsb3dfZGVhdGhgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLhEBSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHSwb2YgdGhlIHRyYW5zZmVyLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgdHJhbnNhY3Rvci44Zm9yY2VfdHJhbnNmZXIMARhzb3VyY2WdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXkAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXkAShUOjpCYWxhbmNlAAMYWQFTYW1lIGFzIHRoZSBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gY2FsbCwgYnV0IHdpdGggYSBjaGVjayB0aGF0IHRoZSB0cmFuc2ZlciB3aWxsIG5vdGBraWxsIHRoZSBvcmlnaW4gYWNjb3VudC4A6Dk5JSBvZiB0aGUgdGltZSB5b3Ugd2FudCBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF0gaW5zdGVhZC4A8FtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXTogc3RydWN0LlBhbGxldC5odG1sI21ldGhvZC50cmFuc2ZlcjB0cmFuc2Zlcl9hbGwIARBkZXN0nQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZSABEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvnQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50GAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG+tAQFEVmVjPFQ6OkFjY291bnRJZD4ABiBwVXBncmFkZSBhIHNwZWNpZmllZCBhY2NvdW50LgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC6QLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdXBncmFkZWQuAFUBVGhpcyB3aWxsIHdhaXZlIHRoZSB0cmFuc2FjdGlvbiBmZWUgaWYgYXQgbGVhc3QgYWxsIGJ1dCAxMCUgb2YgdGhlIGFjY291bnRzIG5lZWRlZCB0b0EBYmUgdXBncmFkZWQuIChXZSBsZXQgc29tZSBub3QgaGF2ZSB0byBiZSB1cGdyYWRlZCBqdXN0IGluIG9yZGVyIHRvIGFsbG93IGZvciB0aGVYcG9zc2liaWxpdHkgb2YgY2h1cm4pLkRmb3JjZV9zZXRfYmFsYW5jZQgBDHdob50BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVl5AEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb26xAQFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRh5AEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWXkAShUOjpCYWxhbmNlAAEoa2VlcF9hbGl2ZSABEGJvb2wAChz8QnVybiB0aGUgc3BlY2lmaWVkIGxpcXVpZCBmcmVlIGJhbGFuY2UgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQuACUBSWYgdGhlIG9yaWdpbidzIGFjY291bnQgZW5kcyB1cCBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdAkBb2YgdGhlIGJ1cm4gYW5kIGBrZWVwX2FsaXZlYCBpcyBmYWxzZSwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuAFEBVW5saWtlIHNlbmRpbmcgZnVuZHMgdG8gYSBfYnVybl8gYWRkcmVzcywgd2hpY2ggbWVyZWx5IG1ha2VzIHRoZSBmdW5kcyBpbmFjY2Vzc2libGUsIQF0aGlzIGBidXJuYCBvcGVyYXRpb24gd2lsbCByZWR1Y2UgdG90YWwgaXNzdWFuY2UgYnkgdGhlIGFtb3VudCBfYnVybmVkXy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMufQQMQHBhbGxldF9iYWdzX2xpc3QYcGFsbGV0EENhbGwIBFQABEkAAQwUcmViYWcEAShkaXNsb2NhdGVknQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAAoWQFEZWNsYXJlIHRoYXQgc29tZSBgZGlzbG9jYXRlZGAgYWNjb3VudCBoYXMsIHRocm91Z2ggcmV3YXJkcyBvciBwZW5hbHRpZXMsIHN1ZmZpY2llbnRseVEBY2hhbmdlZCBpdHMgc2NvcmUgdGhhdCBpdCBzaG91bGQgcHJvcGVybHkgZmFsbCBpbnRvIGEgZGlmZmVyZW50IGJhZyB0aGFuIGl0cyBjdXJyZW50EG9uZS4AHQFBbnlvbmUgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiBhYm91dCBhbnkgcG90ZW50aWFsbHkgZGlzbG9jYXRlZCBhY2NvdW50LgBJAVdpbGwgYWx3YXlzIHVwZGF0ZSB0aGUgc3RvcmVkIHNjb3JlIG9mIGBkaXNsb2NhdGVkYCB0byB0aGUgY29ycmVjdCBzY29yZSwgYmFzZWQgb25AYFNjb3JlUHJvdmlkZXJgLgDUSWYgYGRpc2xvY2F0ZWRgIGRvZXMgbm90IGV4aXN0cywgaXQgcmV0dXJucyBhbiBlcnJvci48cHV0X2luX2Zyb250X29mBAEcbGlnaHRlcp0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKNBNb3ZlIHRoZSBjYWxsZXIncyBJZCBkaXJlY3RseSBpbiBmcm9udCBvZiBgbGlnaHRlcmAuAFkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgSWQgb2Y1AXRoZSBhY2NvdW50IGdvaW5nIGluIGZyb250IG9mIGBsaWdodGVyYC4gRmVlIGlzIHBheWVkIGJ5IHRoZSBvcmlnaW4gdW5kZXIgYWxsOGNpcmN1bXN0YW5jZXMuADhPbmx5IHdvcmtzIGlmOgCULSBib3RoIG5vZGVzIGFyZSB3aXRoaW4gdGhlIHNhbWUgYmFnLNAtIGFuZCBgb3JpZ2luYCBoYXMgYSBncmVhdGVyIGBTY29yZWAgdGhhbiBgbGlnaHRlcmAuVHB1dF9pbl9mcm9udF9vZl9vdGhlcggBHGhlYXZpZXKdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxsaWdodGVynQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAIMEQFTYW1lIGFzIFtgUGFsbGV0OjpwdXRfaW5fZnJvbnRfb2ZgXSwgYnV0IGl0IGNhbiBiZSBjYWxsZWQgYnkgYW55b25lLgDIRmVlIGlzIHBhaWQgYnkgdGhlIG9yaWdpbiB1bmRlciBhbGwgY2lyY3Vtc3RhbmNlcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMugQQMXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzGHBhbGxldBBDYWxsBARUAAFoEGpvaW4IARhhbW91bnTkATBCYWxhbmNlT2Y8VD4AARxwb29sX2lkEAEYUG9vbElkAAAoRQFTdGFrZSBmdW5kcyB3aXRoIGEgcG9vbC4gVGhlIGFtb3VudCB0byBib25kIGlzIHRyYW5zZmVycmVkIGZyb20gdGhlIG1lbWJlciB0byB0aGXccG9vbHMgYWNjb3VudCBhbmQgaW1tZWRpYXRlbHkgaW5jcmVhc2VzIHRoZSBwb29scyBib25kLgAYIyBOb3RlAMwqIEFuIGFjY291bnQgY2FuIG9ubHkgYmUgYSBtZW1iZXIgb2YgYSBzaW5nbGUgcG9vbC7YKiBBbiBhY2NvdW50IGNhbm5vdCBqb2luIHRoZSBzYW1lIHBvb2wgbXVsdGlwbGUgdGltZXMuQQEqIFRoaXMgY2FsbCB3aWxsICpub3QqIGR1c3QgdGhlIG1lbWJlciBhY2NvdW50LCBzbyB0aGUgbWVtYmVyIG11c3QgaGF2ZSBhdCBsZWFzdMggIGBleGlzdGVudGlhbCBkZXBvc2l0ICsgYW1vdW50YCBpbiB0aGVpciBhY2NvdW50LtAqIE9ubHkgYSBwb29sIHdpdGggW2BQb29sU3RhdGU6Ok9wZW5gXSBjYW4gYmUgam9pbmVkKGJvbmRfZXh0cmEEARRleHRyYYUEAVxCb25kRXh0cmE8QmFsYW5jZU9mPFQ+PgABHEUBQm9uZCBgZXh0cmFgIG1vcmUgZnVuZHMgZnJvbSBgb3JpZ2luYCBpbnRvIHRoZSBwb29sIHRvIHdoaWNoIHRoZXkgYWxyZWFkeSBiZWxvbmcuAEkBQWRkaXRpb25hbCBmdW5kcyBjYW4gY29tZSBmcm9tIGVpdGhlciB0aGUgZnJlZSBiYWxhbmNlIG9mIHRoZSBhY2NvdW50LCBvZiBmcm9tIHRoZZxhY2N1bXVsYXRlZCByZXdhcmRzLCBzZWUgW2BCb25kRXh0cmFgXS4APQFCb25kaW5nIGV4dHJhIGZ1bmRzIGltcGxpZXMgYW4gYXV0b21hdGljIHBheW91dCBvZiBhbGwgcGVuZGluZyByZXdhcmRzIGFzIHdlbGwuCQFTZWUgYGJvbmRfZXh0cmFfb3RoZXJgIHRvIGJvbmQgcGVuZGluZyByZXdhcmRzIG9mIGBvdGhlcmAgbWVtYmVycy4wY2xhaW1fcGF5b3V0AAIgVQFBIGJvbmRlZCBtZW1iZXIgY2FuIHVzZSB0aGlzIHRvIGNsYWltIHRoZWlyIHBheW91dCBiYXNlZCBvbiB0aGUgcmV3YXJkcyB0aGF0IHRoZSBwb29sYQFoYXMgYWNjdW11bGF0ZWQgc2luY2UgdGhlaXIgbGFzdCBjbGFpbWVkIHBheW91dCAoT1Igc2luY2Ugam9pbmluZyBpZiB0aGlzIGlzIHRoZWlyIGZpcnN0PQF0aW1lIGNsYWltaW5nIHJld2FyZHMpLiBUaGUgcGF5b3V0IHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIG1lbWJlcidzIGFjY291bnQuAEkBVGhlIG1lbWJlciB3aWxsIGVhcm4gcmV3YXJkcyBwcm8gcmF0YSBiYXNlZCBvbiB0aGUgbWVtYmVycyBzdGFrZSB2cyB0aGUgc3VtIG9mIHRoZdBtZW1iZXJzIGluIHRoZSBwb29scyBzdGFrZS4gUmV3YXJkcyBkbyBub3QgImV4cGlyZSIuAEEBU2VlIGBjbGFpbV9wYXlvdXRfb3RoZXJgIHRvIGNsYWltIHJld2FyZHMgb24gYmVoYWxmIG9mIHNvbWUgYG90aGVyYCBwb29sIG1lbWJlci4YdW5ib25kCAE4bWVtYmVyX2FjY291bnSdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUB1bmJvbmRpbmdfcG9pbnRz5AEwQmFsYW5jZU9mPFQ+AAN8RQFVbmJvbmQgdXAgdG8gYHVuYm9uZGluZ19wb2ludHNgIG9mIHRoZSBgbWVtYmVyX2FjY291bnRgJ3MgZnVuZHMgZnJvbSB0aGUgcG9vbC4gSXRFAWltcGxpY2l0bHkgY29sbGVjdHMgdGhlIHJld2FyZHMgb25lIGxhc3QgdGltZSwgc2luY2Ugbm90IGRvaW5nIHNvIHdvdWxkIG1lYW4gc29tZWxyZXdhcmRzIHdvdWxkIGJlIGZvcmZlaXRlZC4ATQFVbmRlciBjZXJ0YWluIGNvbmRpdGlvbnMsIHRoaXMgY2FsbCBjYW4gYmUgZGlzcGF0Y2hlZCBwZXJtaXNzaW9ubGVzc2x5IChpLmUuIGJ5IGFueSRhY2NvdW50KS4ArCMgQ29uZGl0aW9ucyBmb3IgYSBwZXJtaXNzaW9ubGVzcyBkaXNwYXRjaC4AXQEqIFRoZSBwb29sIGlzIGJsb2NrZWQgYW5kIHRoZSBjYWxsZXIgaXMgZWl0aGVyIHRoZSByb290IG9yIGJvdW5jZXIuIFRoaXMgaXMgcmVmZXJlZWQgdG8wICBhcyBhIGtpY2su9CogVGhlIHBvb2wgaXMgZGVzdHJveWluZyBhbmQgdGhlIG1lbWJlciBpcyBub3QgdGhlIGRlcG9zaXRvci5VASogVGhlIHBvb2wgaXMgZGVzdHJveWluZywgdGhlIG1lbWJlciBpcyB0aGUgZGVwb3NpdG9yIGFuZCBubyBvdGhlciBtZW1iZXJzIGFyZSBpbiB0aGUcICBwb29sLgARASMjIENvbmRpdGlvbnMgZm9yIHBlcm1pc3Npb25lZCBkaXNwYXRjaCAoaS5lLiB0aGUgY2FsbGVyIGlzIGFsc28gdGhlSGBtZW1iZXJfYWNjb3VudGApOgCIKiBUaGUgY2FsbGVyIGlzIG5vdCB0aGUgZGVwb3NpdG9yLlUBKiBUaGUgY2FsbGVyIGlzIHRoZSBkZXBvc2l0b3IsIHRoZSBwb29sIGlzIGRlc3Ryb3lpbmcgYW5kIG5vIG90aGVyIG1lbWJlcnMgYXJlIGluIHRoZRwgIHBvb2wuABgjIE5vdGUAHQFJZiB0aGVyZSBhcmUgdG9vIG1hbnkgdW5sb2NraW5nIGNodW5rcyB0byB1bmJvbmQgd2l0aCB0aGUgcG9vbCBhY2NvdW50LFEBW2BDYWxsOjpwb29sX3dpdGhkcmF3X3VuYm9uZGVkYF0gY2FuIGJlIGNhbGxlZCB0byB0cnkgYW5kIG1pbmltaXplIHVubG9ja2luZyBjaHVua3MuWQFUaGUgW2BTdGFraW5nSW50ZXJmYWNlOjp1bmJvbmRgXSB3aWxsIGltcGxpY2l0bHkgY2FsbCBbYENhbGw6OnBvb2xfd2l0aGRyYXdfdW5ib25kZWRgXVUBdG8gdHJ5IHRvIGZyZWUgY2h1bmtzIGlmIG5lY2Vzc2FyeSAoaWUuIGlmIHVuYm91bmQgd2FzIGNhbGxlZCBhbmQgbm8gdW5sb2NraW5nIGNodW5rc2EBYXJlIGF2YWlsYWJsZSkuIEhvd2V2ZXIsIGl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gcmVsZWFzZSB0aGUgY3VycmVudCB1bmxvY2tpbmcgY2h1bmtzLF0BaW4gd2hpY2ggY2FzZSwgdGhlIHJlc3VsdCBvZiB0aGlzIGNhbGwgd2lsbCBsaWtlbHkgYmUgdGhlIGBOb01vcmVDaHVua3NgIGVycm9yIGZyb20gdGhlPHN0YWtpbmcgc3lzdGVtLlhwb29sX3dpdGhkcmF3X3VuYm9uZGVkCAEccG9vbF9pZBABGFBvb2xJZAABSG51bV9zbGFzaGluZ19zcGFucxABDHUzMgAEGFUBQ2FsbCBgd2l0aGRyYXdfdW5ib25kZWRgIGZvciB0aGUgcG9vbHMgYWNjb3VudC4gVGhpcyBjYWxsIGNhbiBiZSBtYWRlIGJ5IGFueSBhY2NvdW50LgBBAVRoaXMgaXMgdXNlZnVsIGlmIHRoZXJlIGFyZSB0b28gbWFueSB1bmxvY2tpbmcgY2h1bmtzIHRvIGNhbGwgYHVuYm9uZGAsIGFuZCBzb21lYQFjYW4gYmUgY2xlYXJlZCBieSB3aXRoZHJhd2luZy4gSW4gdGhlIGNhc2UgdGhlcmUgYXJlIHRvbyBtYW55IHVubG9ja2luZyBjaHVua3MsIHRoZSB1c2VyUQF3b3VsZCBwcm9iYWJseSBzZWUgYW4gZXJyb3IgbGlrZSBgTm9Nb3JlQ2h1bmtzYCBlbWl0dGVkIGZyb20gdGhlIHN0YWtpbmcgc3lzdGVtIHdoZW5cdGhleSBhdHRlbXB0IHRvIHVuYm9uZC5Ed2l0aGRyYXdfdW5ib25kZWQIAThtZW1iZXJfYWNjb3VudJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABSG51bV9zbGFzaGluZ19zcGFucxABDHUzMgAFWFUBV2l0aGRyYXcgdW5ib25kZWQgZnVuZHMgZnJvbSBgbWVtYmVyX2FjY291bnRgLiBJZiBubyBib25kZWQgZnVuZHMgY2FuIGJlIHVuYm9uZGVkLCBhbkhlcnJvciBpcyByZXR1cm5lZC4ATQFVbmRlciBjZXJ0YWluIGNvbmRpdGlvbnMsIHRoaXMgY2FsbCBjYW4gYmUgZGlzcGF0Y2hlZCBwZXJtaXNzaW9ubGVzc2x5IChpLmUuIGJ5IGFueSRhY2NvdW50KS4AqCMgQ29uZGl0aW9ucyBmb3IgYSBwZXJtaXNzaW9ubGVzcyBkaXNwYXRjaAAJASogVGhlIHBvb2wgaXMgaW4gZGVzdHJveSBtb2RlIGFuZCB0aGUgdGFyZ2V0IGlzIG5vdCB0aGUgZGVwb3NpdG9yLjEBKiBUaGUgdGFyZ2V0IGlzIHRoZSBkZXBvc2l0b3IgYW5kIHRoZXkgYXJlIHRoZSBvbmx5IG1lbWJlciBpbiB0aGUgc3ViIHBvb2xzLg0BKiBUaGUgcG9vbCBpcyBibG9ja2VkIGFuZCB0aGUgY2FsbGVyIGlzIGVpdGhlciB0aGUgcm9vdCBvciBib3VuY2VyLgCYIyBDb25kaXRpb25zIGZvciBwZXJtaXNzaW9uZWQgZGlzcGF0Y2gA6CogVGhlIGNhbGxlciBpcyB0aGUgdGFyZ2V0IGFuZCB0aGV5IGFyZSBub3QgdGhlIGRlcG9zaXRvci4AGCMgTm90ZQD0LSBJZiB0aGUgdGFyZ2V0IGlzIHRoZSBkZXBvc2l0b3IsIHRoZSBwb29sIHdpbGwgYmUgZGVzdHJveWVkLmEBLSBJZiB0aGUgcG9vbCBoYXMgYW55IHBlbmRpbmcgc2xhc2gsIHdlIGFsc28gdHJ5IHRvIHNsYXNoIHRoZSBtZW1iZXIgYmVmb3JlIGxldHRpbmcgdGhlbV0Bd2l0aGRyYXcuIFRoaXMgY2FsY3VsYXRpb24gYWRkcyBzb21lIHdlaWdodCBvdmVyaGVhZCBhbmQgaXMgb25seSBkZWZlbnNpdmUuIEluIHJlYWxpdHksVQFwb29sIHNsYXNoZXMgbXVzdCBoYXZlIGJlZW4gYWxyZWFkeSBhcHBsaWVkIHZpYSBwZXJtaXNzaW9ubGVzcyBbYENhbGw6OmFwcGx5X3NsYXNoYF0uGGNyZWF0ZRABGGFtb3VudOQBMEJhbGFuY2VPZjxUPgABEHJvb3SdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRub21pbmF0b3KdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxib3VuY2VynQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAZEdENyZWF0ZSBhIG5ldyBkZWxlZ2F0aW9uIHBvb2wuACwjIEFyZ3VtZW50cwBVASogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIGZ1bmRzIHRvIGRlbGVnYXRlIHRvIHRoZSBwb29sLiBUaGlzIGFsc28gYWN0cyBvZiBhIHNvcnQgb2ZNASAgZGVwb3NpdCBzaW5jZSB0aGUgcG9vbHMgY3JlYXRvciBjYW5ub3QgZnVsbHkgdW5ib25kIGZ1bmRzIHVudGlsIHRoZSBwb29sIGlzIGJlaW5nMCAgZGVzdHJveWVkLlEBKiBgaW5kZXhgIC0gQSBkaXNhbWJpZ3VhdGlvbiBpbmRleCBmb3IgY3JlYXRpbmcgdGhlIGFjY291bnQuIExpa2VseSBvbmx5IHVzZWZ1bCB3aGVuwCAgY3JlYXRpbmcgbXVsdGlwbGUgcG9vbHMgaW4gdGhlIHNhbWUgZXh0cmluc2ljLtQqIGByb290YCAtIFRoZSBhY2NvdW50IHRvIHNldCBhcyBbYFBvb2xSb2xlczo6cm9vdGBdLg0BKiBgbm9taW5hdG9yYCAtIFRoZSBhY2NvdW50IHRvIHNldCBhcyB0aGUgW2BQb29sUm9sZXM6Om5vbWluYXRvcmBdLvwqIGBib3VuY2VyYCAtIFRoZSBhY2NvdW50IHRvIHNldCBhcyB0aGUgW2BQb29sUm9sZXM6OmJvdW5jZXJgXS4AGCMgTm90ZQBhAUluIGFkZGl0aW9uIHRvIGBhbW91bnRgLCB0aGUgY2FsbGVyIHdpbGwgdHJhbnNmZXIgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQ7IHNvIHRoZSBjYWxsZXINAW5lZWRzIGF0IGhhdmUgYXQgbGVhc3QgYGFtb3VudCArIGV4aXN0ZW50aWFsX2RlcG9zaXRgIHRyYW5zZmVyYWJsZS5MY3JlYXRlX3dpdGhfcG9vbF9pZBQBGGFtb3VudOQBMEJhbGFuY2VPZjxUPgABEHJvb3SdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRub21pbmF0b3KdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxib3VuY2VynQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEccG9vbF9pZBABGFBvb2xJZAAHGOxDcmVhdGUgYSBuZXcgZGVsZWdhdGlvbiBwb29sIHdpdGggYSBwcmV2aW91c2x5IHVzZWQgcG9vbCBpZAAsIyBBcmd1bWVudHMAmHNhbWUgYXMgYGNyZWF0ZWAgd2l0aCB0aGUgaW5jbHVzaW9uIG9meCogYHBvb2xfaWRgIC0gYEEgdmFsaWQgUG9vbElkLiBub21pbmF0ZQgBHHBvb2xfaWQQARhQb29sSWQAASh2YWxpZGF0b3JzrQEBRFZlYzxUOjpBY2NvdW50SWQ+AAgwfE5vbWluYXRlIG9uIGJlaGFsZiBvZiB0aGUgcG9vbC4ARQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgcG9vbCBub21pbmF0b3Igb3IgdGhlIHBvb2wocm9vdCByb2xlLgBJAVRoaXMgZGlyZWN0bHkgZm9yd2FyZCB0aGUgY2FsbCB0byB0aGUgc3Rha2luZyBwYWxsZXQsIG9uIGJlaGFsZiBvZiB0aGUgcG9vbCBib25kZWQgYWNjb3VudC4AGCMgTm90ZQBdAUluIGFkZGl0aW9uIHRvIGEgYHJvb3RgIG9yIGBub21pbmF0b3JgIHJvbGUgb2YgYG9yaWdpbmAsIHBvb2wncyBkZXBvc2l0b3IgbmVlZHMgdG8gaGF2ZfhhdCBsZWFzdCBgZGVwb3NpdG9yX21pbl9ib25kYCBpbiB0aGUgcG9vbCB0byBzdGFydCBub21pbmF0aW5nLiRzZXRfc3RhdGUIARxwb29sX2lkEAEYUG9vbElkAAEUc3RhdGWJBAEkUG9vbFN0YXRlAAkodFNldCBhIG5ldyBzdGF0ZSBmb3IgdGhlIHBvb2wuAFUBSWYgYSBwb29sIGlzIGFscmVhZHkgaW4gdGhlIGBEZXN0cm95aW5nYCBzdGF0ZSwgdGhlbiB1bmRlciBubyBjb25kaXRpb24gY2FuIGl0cyBzdGF0ZTRjaGFuZ2UgYWdhaW4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGVpdGhlcjoA3DEuIHNpZ25lZCBieSB0aGUgYm91bmNlciwgb3IgdGhlIHJvb3Qgcm9sZSBvZiB0aGUgcG9vbCxdATIuIGlmIHRoZSBwb29sIGNvbmRpdGlvbnMgdG8gYmUgb3BlbiBhcmUgTk9UIG1ldCAoYXMgZGVzY3JpYmVkIGJ5IGBva190b19iZV9vcGVuYCksIGFuZDkBICAgdGhlbiB0aGUgc3RhdGUgb2YgdGhlIHBvb2wgY2FuIGJlIHBlcm1pc3Npb25sZXNzbHkgY2hhbmdlZCB0byBgRGVzdHJveWluZ2AuMHNldF9tZXRhZGF0YQgBHHBvb2xfaWQQARhQb29sSWQAASBtZXRhZGF0YTgBHFZlYzx1OD4AChCAU2V0IGEgbmV3IG1ldGFkYXRhIGZvciB0aGUgcG9vbC4AXQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgYm91bmNlciwgb3IgdGhlIHJvb3Qgcm9sZSBvZiB0aGUUcG9vbC4sc2V0X2NvbmZpZ3MYATRtaW5fam9pbl9ib25kjQQBWENvbmZpZ09wPEJhbGFuY2VPZjxUPj4AATxtaW5fY3JlYXRlX2JvbmSNBAFYQ29uZmlnT3A8QmFsYW5jZU9mPFQ+PgABJG1heF9wb29sc5EEATRDb25maWdPcDx1MzI+AAEsbWF4X21lbWJlcnORBAE0Q29uZmlnT3A8dTMyPgABUG1heF9tZW1iZXJzX3Blcl9wb29skQQBNENvbmZpZ09wPHUzMj4AAVRnbG9iYWxfbWF4X2NvbW1pc3Npb26VBAFEQ29uZmlnT3A8UGVyYmlsbD4ACyxBAVVwZGF0ZSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIG5vbWluYXRpb24gcG9vbHMuIFRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlYFtgQ29uZmlnOjpBZG1pbk9yaWdpbmBdLgAsIyBBcmd1bWVudHMAoCogYG1pbl9qb2luX2JvbmRgIC0gU2V0IFtgTWluSm9pbkJvbmRgXS6wKiBgbWluX2NyZWF0ZV9ib25kYCAtIFNldCBbYE1pbkNyZWF0ZUJvbmRgXS6EKiBgbWF4X3Bvb2xzYCAtIFNldCBbYE1heFBvb2xzYF0upCogYG1heF9tZW1iZXJzYCAtIFNldCBbYE1heFBvb2xNZW1iZXJzYF0u5CogYG1heF9tZW1iZXJzX3Blcl9wb29sYCAtIFNldCBbYE1heFBvb2xNZW1iZXJzUGVyUG9vbGBdLuAqIGBnbG9iYWxfbWF4X2NvbW1pc3Npb25gIC0gU2V0IFtgR2xvYmFsTWF4Q29tbWlzc2lvbmBdLjB1cGRhdGVfcm9sZXMQARxwb29sX2lkEAEYUG9vbElkAAEgbmV3X3Jvb3SZBAFYQ29uZmlnT3A8VDo6QWNjb3VudElkPgABNG5ld19ub21pbmF0b3KZBAFYQ29uZmlnT3A8VDo6QWNjb3VudElkPgABLG5ld19ib3VuY2VymQQBWENvbmZpZ09wPFQ6OkFjY291bnRJZD4ADBx0VXBkYXRlIHRoZSByb2xlcyBvZiB0aGUgcG9vbC4APQFUaGUgcm9vdCBpcyB0aGUgb25seSBlbnRpdHkgdGhhdCBjYW4gY2hhbmdlIGFueSBvZiB0aGUgcm9sZXMsIGluY2x1ZGluZyBpdHNlbGYsuGV4Y2x1ZGluZyB0aGUgZGVwb3NpdG9yLCB3aG8gY2FuIG5ldmVyIGNoYW5nZS4AUQFJdCBlbWl0cyBhbiBldmVudCwgbm90aWZ5aW5nIFVJcyBvZiB0aGUgcm9sZSBjaGFuZ2UuIFRoaXMgZXZlbnQgaXMgcXVpdGUgcmVsZXZhbnQgdG8dAW1vc3QgcG9vbCBtZW1iZXJzIGFuZCB0aGV5IHNob3VsZCBiZSBpbmZvcm1lZCBvZiBjaGFuZ2VzIHRvIHBvb2wgcm9sZXMuFGNoaWxsBAEccG9vbF9pZBABGFBvb2xJZAANQHBDaGlsbCBvbiBiZWhhbGYgb2YgdGhlIHBvb2wuAEEBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgY2FuIGJlIHNpZ25lZCBieSB0aGUgcG9vbCBub21pbmF0b3Igb3IgdGhlIHBvb2ygcm9vdCByb2xlLCBzYW1lIGFzIFtgUGFsbGV0Ojpub21pbmF0ZWBdLgBNAVVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucywgdGhpcyBjYWxsIGNhbiBiZSBkaXNwYXRjaGVkIHBlcm1pc3Npb25sZXNzbHkgKGkuZS4gYnkgYW55JGFjY291bnQpLgCsIyBDb25kaXRpb25zIGZvciBhIHBlcm1pc3Npb25sZXNzIGRpc3BhdGNoOlkBKiBXaGVuIHBvb2wgZGVwb3NpdG9yIGhhcyBsZXNzIHRoYW4gYE1pbk5vbWluYXRvckJvbmRgIHN0YWtlZCwgb3RoZXJ3aXNlICBwb29sIG1lbWJlcnNcICBhcmUgdW5hYmxlIHRvIHVuYm9uZC4AnCMgQ29uZGl0aW9ucyBmb3IgcGVybWlzc2lvbmVkIGRpc3BhdGNoOtgqIFRoZSBjYWxsZXIgaGFzIGEgbm9taW5hdG9yIG9yIHJvb3Qgcm9sZSBvZiB0aGUgcG9vbC5JAVRoaXMgZGlyZWN0bHkgZm9yd2FyZCB0aGUgY2FsbCB0byB0aGUgc3Rha2luZyBwYWxsZXQsIG9uIGJlaGFsZiBvZiB0aGUgcG9vbCBib25kZWQgYWNjb3VudC5AYm9uZF9leHRyYV9vdGhlcggBGG1lbWJlcp0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGV4dHJhhQQBXEJvbmRFeHRyYTxCYWxhbmNlT2Y8VD4+AA4kVQFgb3JpZ2luYCBib25kcyBmdW5kcyBmcm9tIGBleHRyYWAgZm9yIHNvbWUgcG9vbCBtZW1iZXIgYG1lbWJlcmAgaW50byB0aGVpciByZXNwZWN0aXZlGHBvb2xzLgBJAWBvcmlnaW5gIGNhbiBib25kIGV4dHJhIGZ1bmRzIGZyb20gZnJlZSBiYWxhbmNlIG9yIHBlbmRpbmcgcmV3YXJkcyB3aGVuIGBvcmlnaW4gPT0cb3RoZXJgLgBFAUluIHRoZSBjYXNlIG9mIGBvcmlnaW4gIT0gb3RoZXJgLCBgb3JpZ2luYCBjYW4gb25seSBib25kIGV4dHJhIHBlbmRpbmcgcmV3YXJkcyBvZhUBYG90aGVyYCBtZW1iZXJzIGFzc3VtaW5nIHNldF9jbGFpbV9wZXJtaXNzaW9uIGZvciB0aGUgZ2l2ZW4gbWVtYmVyIGlzwGBQZXJtaXNzaW9ubGVzc0NvbXBvdW5kYCBvciBgUGVybWlzc2lvbmxlc3NBbGxgLlBzZXRfY2xhaW1fcGVybWlzc2lvbgQBKHBlcm1pc3Npb26dBAE8Q2xhaW1QZXJtaXNzaW9uAA8cSQFBbGxvd3MgYSBwb29sIG1lbWJlciB0byBzZXQgYSBjbGFpbSBwZXJtaXNzaW9uIHRvIGFsbG93IG9yIGRpc2FsbG93IHBlcm1pc3Npb25sZXNzYGJvbmRpbmcgYW5kIHdpdGhkcmF3aW5nLgAsIyBBcmd1bWVudHMAeCogYG9yaWdpbmAgLSBNZW1iZXIgb2YgYSBwb29sLrgqIGBwZXJtaXNzaW9uYCAtIFRoZSBwZXJtaXNzaW9uIHRvIGJlIGFwcGxpZWQuSGNsYWltX3BheW91dF9vdGhlcgQBFG90aGVyAAEwVDo6QWNjb3VudElkABAQAQFgb3JpZ2luYCBjYW4gY2xhaW0gcGF5b3V0cyBvbiBzb21lIHBvb2wgbWVtYmVyIGBvdGhlcmAncyBiZWhhbGYuAFUBUG9vbCBtZW1iZXIgYG90aGVyYCBtdXN0IGhhdmUgYSBgUGVybWlzc2lvbmxlc3NXaXRoZHJhd2Agb3IgYFBlcm1pc3Npb25sZXNzQWxsYCBjbGFpbahwZXJtaXNzaW9uIGZvciB0aGlzIGNhbGwgdG8gYmUgc3VjY2Vzc2Z1bC44c2V0X2NvbW1pc3Npb24IARxwb29sX2lkEAEYUG9vbElkAAE4bmV3X2NvbW1pc3Npb26hBAF8T3B0aW9uPChQZXJiaWxsLCBUOjpBY2NvdW50SWQpPgARFHRTZXQgdGhlIGNvbW1pc3Npb24gb2YgYSBwb29sLlUBQm90aCBhIGNvbW1pc3Npb24gcGVyY2VudGFnZSBhbmQgYSBjb21taXNzaW9uIHBheWVlIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIGBjdXJyZW50YF0BdHVwbGUuIFdoZXJlIGEgYGN1cnJlbnRgIG9mIGBOb25lYCBpcyBwcm92aWRlZCwgYW55IGN1cnJlbnQgY29tbWlzc2lvbiB3aWxsIGJlIHJlbW92ZWQuAE0BLSBJZiBhIGBOb25lYCBpcyBzdXBwbGllZCB0byBgbmV3X2NvbW1pc3Npb25gLCBleGlzdGluZyBjb21taXNzaW9uIHdpbGwgYmUgcmVtb3ZlZC5Ic2V0X2NvbW1pc3Npb25fbWF4CAEccG9vbF9pZBABGFBvb2xJZAABOG1heF9jb21taXNzaW9ulAEcUGVyYmlsbAASFJRTZXQgdGhlIG1heGltdW0gY29tbWlzc2lvbiBvZiBhIHBvb2wuADkBLSBJbml0aWFsIG1heCBjYW4gYmUgc2V0IHRvIGFueSBgUGVyYmlsbGAsIGFuZCBvbmx5IHNtYWxsZXIgdmFsdWVzIHRoZXJlYWZ0ZXIuNQEtIEN1cnJlbnQgY29tbWlzc2lvbiB3aWxsIGJlIGxvd2VyZWQgaW4gdGhlIGV2ZW50IGl0IGlzIGhpZ2hlciB0aGFuIGEgbmV3IG1heDQgIGNvbW1pc3Npb24uaHNldF9jb21taXNzaW9uX2NoYW5nZV9yYXRlCAEccG9vbF9pZBABGFBvb2xJZAABLGNoYW5nZV9yYXRlqQQBnENvbW1pc3Npb25DaGFuZ2VSYXRlPEJsb2NrTnVtYmVyRm9yPFQ+PgATEKhTZXQgdGhlIGNvbW1pc3Npb24gY2hhbmdlIHJhdGUgZm9yIGEgcG9vbC4APQFJbml0aWFsIGNoYW5nZSByYXRlIGlzIG5vdCBib3VuZGVkLCB3aGVyZWFzIHN1YnNlcXVlbnQgdXBkYXRlcyBjYW4gb25seSBiZSBtb3JldHJlc3RyaWN0aXZlIHRoYW4gdGhlIGN1cnJlbnQuQGNsYWltX2NvbW1pc3Npb24EARxwb29sX2lkEAEYUG9vbElkABQUZENsYWltIHBlbmRpbmcgY29tbWlzc2lvbi4AXQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgYHJvb3RgIHJvbGUgb2YgdGhlIHBvb2wuIFBlbmRpbmddAWNvbW1pc3Npb24gaXMgcGFpZCBvdXQgYW5kIGFkZGVkIHRvIHRvdGFsIGNsYWltZWQgY29tbWlzc2lvbmAuIFRvdGFsIHBlbmRpbmcgY29tbWlzc2lvbnhpcyByZXNldCB0byB6ZXJvLiB0aGUgY3VycmVudC5MYWRqdXN0X3Bvb2xfZGVwb3NpdAQBHHBvb2xfaWQQARhQb29sSWQAFRzsVG9wIHVwIHRoZSBkZWZpY2l0IG9yIHdpdGhkcmF3IHRoZSBleGNlc3MgRUQgZnJvbSB0aGUgcG9vbC4AUQFXaGVuIGEgcG9vbCBpcyBjcmVhdGVkLCB0aGUgcG9vbCBkZXBvc2l0b3IgdHJhbnNmZXJzIEVEIHRvIHRoZSByZXdhcmQgYWNjb3VudCBvZiB0aGVVAXBvb2wuIEVEIGlzIHN1YmplY3QgdG8gY2hhbmdlIGFuZCBvdmVyIHRpbWUsIHRoZSBkZXBvc2l0IGluIHRoZSByZXdhcmQgYWNjb3VudCBtYXkgYmVRAWluc3VmZmljaWVudCB0byBjb3ZlciB0aGUgRUQgZGVmaWNpdCBvZiB0aGUgcG9vbCBvciB2aWNlLXZlcnNhIHdoZXJlIHRoZXJlIGlzIGV4Y2VzczEBZGVwb3NpdCB0byB0aGUgcG9vbC4gVGhpcyBjYWxsIGFsbG93cyBhbnlvbmUgdG8gYWRqdXN0IHRoZSBFRCBkZXBvc2l0IG9mIHRoZfRwb29sIGJ5IGVpdGhlciB0b3BwaW5nIHVwIHRoZSBkZWZpY2l0IG9yIGNsYWltaW5nIHRoZSBleGNlc3MufHNldF9jb21taXNzaW9uX2NsYWltX3Blcm1pc3Npb24IARxwb29sX2lkEAEYUG9vbElkAAEocGVybWlzc2lvbq0EAbxPcHRpb248Q29tbWlzc2lvbkNsYWltUGVybWlzc2lvbjxUOjpBY2NvdW50SWQ+PgAWEMxTZXQgb3IgcmVtb3ZlIGEgcG9vbCdzIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbi4AYQFEZXRlcm1pbmVzIHdobyBjYW4gY2xhaW0gdGhlIHBvb2wncyBwZW5kaW5nIGNvbW1pc3Npb24uIE9ubHkgdGhlIGBSb290YCByb2xlIG9mIHRoZSBwb29syGlzIGFibGUgdG8gY29uZmlndXJlIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbnMuLGFwcGx5X3NsYXNoBAE4bWVtYmVyX2FjY291bnSdAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AFxyIQXBwbHkgYSBwZW5kaW5nIHNsYXNoIG9uIGEgbWVtYmVyLgAlAUZhaWxzIHVubGVzcyBbYGNyYXRlOjpwYWxsZXQ6OkNvbmZpZzo6U3Rha2VBZGFwdGVyYF0gaXMgb2Ygc3RyYXRlZ3kgdHlwZTqkW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXS4AVQFUaGlzIGNhbGwgY2FuIGJlIGRpc3BhdGNoZWQgcGVybWlzc2lvbmxlc3NseSAoaS5lLiBieSBhbnkgYWNjb3VudCkuIElmIHRoZSBtZW1iZXIgaGFzHQFzbGFzaCB0byBiZSBhcHBsaWVkLCBjYWxsZXIgbWF5IGJlIHJld2FyZGVkIHdpdGggdGhlIHBhcnQgb2YgdGhlIHNsYXNoLkhtaWdyYXRlX2RlbGVnYXRpb24EAThtZW1iZXJfYWNjb3VudJ0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgAYJB0BTWlncmF0ZXMgZGVsZWdhdGVkIGZ1bmRzIGZyb20gdGhlIHBvb2wgYWNjb3VudCB0byB0aGUgYG1lbWJlcl9hY2NvdW50YC4AJQFGYWlscyB1bmxlc3MgW2BjcmF0ZTo6cGFsbGV0OjpDb25maWc6OlN0YWtlQWRhcHRlcmBdIGlzIG9mIHN0cmF0ZWd5IHR5cGU6pFtgYWRhcHRlcjo6U3Rha2VTdHJhdGVneVR5cGU6OkRlbGVnYXRlYF0uACkBVGhpcyBpcyBhIHBlcm1pc3Npb24tbGVzcyBjYWxsIGFuZCByZWZ1bmRzIGFueSBmZWUgaWYgY2xhaW0gaXMgc3VjY2Vzc2Z1bC4AXQFJZiB0aGUgcG9vbCBoYXMgbWlncmF0ZWQgdG8gZGVsZWdhdGlvbiBiYXNlZCBzdGFraW5nLCB0aGUgc3Rha2VkIHRva2VucyBvZiBwb29sIG1lbWJlcnMpAWNhbiBiZSBtb3ZlZCBhbmQgaGVsZCBpbiB0aGVpciBvd24gYWNjb3VudC4gU2VlIFtgYWRhcHRlcjo6RGVsZWdhdGVTdGFrZWBdeG1pZ3JhdGVfcG9vbF90b19kZWxlZ2F0ZV9zdGFrZQQBHHBvb2xfaWQQARhQb29sSWQAGST0TWlncmF0ZSBwb29sIGZyb20gW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6VHJhbnNmZXJgXSB0b6RbYGFkYXB0ZXI6OlN0YWtlU3RyYXRlZ3lUeXBlOjpEZWxlZ2F0ZWBdLgAlAUZhaWxzIHVubGVzcyBbYGNyYXRlOjpwYWxsZXQ6OkNvbmZpZzo6U3Rha2VBZGFwdGVyYF0gaXMgb2Ygc3RyYXRlZ3kgdHlwZTqkW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXS4AQQFUaGlzIGNhbGwgY2FuIGJlIGRpc3BhdGNoZWQgcGVybWlzc2lvbmxlc3NseSwgYW5kIHJlZnVuZHMgYW55IGZlZSBpZiBzdWNjZXNzZnVsLgBJAUlmIHRoZSBwb29sIGhhcyBhbHJlYWR5IG1pZ3JhdGVkIHRvIGRlbGVnYXRpb24gYmFzZWQgc3Rha2luZywgdGhpcyBjYWxsIHdpbGwgZmFpbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuhQQIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzJEJvbmRFeHRyYQQcQmFsYW5jZQEYAQgsRnJlZUJhbGFuY2UEABgBHEJhbGFuY2UAAAAcUmV3YXJkcwABAACJBAhccGFsbGV0X25vbWluYXRpb25fcG9vbHMkUG9vbFN0YXRlAAEMEE9wZW4AAAAcQmxvY2tlZAABAChEZXN0cm95aW5nAAIAAI0ECFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBDb25maWdPcAQEVAEYAQwQTm9vcAAAAAxTZXQEABgBBFQAAQAYUmVtb3ZlAAIAAJEECFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBDb25maWdPcAQEVAEQAQwQTm9vcAAAAAxTZXQEABABBFQAAQAYUmVtb3ZlAAIAAJUECFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBDb25maWdPcAQEVAGUAQwQTm9vcAAAAAxTZXQEAJQBBFQAAQAYUmVtb3ZlAAIAAJkECFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBDb25maWdPcAQEVAEAAQwQTm9vcAAAAAxTZXQEAAABBFQAAQAYUmVtb3ZlAAIAAJ0ECFxwYWxsZXRfbm9taW5hdGlvbl9wb29sczxDbGFpbVBlcm1pc3Npb24AARAwUGVybWlzc2lvbmVkAAAAWFBlcm1pc3Npb25sZXNzQ29tcG91bmQAAQBYUGVybWlzc2lvbmxlc3NXaXRoZHJhdwACAERQZXJtaXNzaW9ubGVzc0FsbAADAAChBAQYT3B0aW9uBARUAaUEAQgQTm9uZQAAABBTb21lBAClBAAAAQAApQQAAAQIlAAAqQQIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzUENvbW1pc3Npb25DaGFuZ2VSYXRlBCxCbG9ja051bWJlcgEQAAgBMG1heF9pbmNyZWFzZZQBHFBlcmJpbGwAASRtaW5fZGVsYXkQASxCbG9ja051bWJlcgAArQQEGE9wdGlvbgQEVAGxBAEIEE5vbmUAAAAQU29tZQQAsQQAAAEAALEECFxwYWxsZXRfbm9taW5hdGlvbl9wb29sc2RDb21taXNzaW9uQ2xhaW1QZXJtaXNzaW9uBCRBY2NvdW50SWQBAAEIOFBlcm1pc3Npb25sZXNzAAAAHEFjY291bnQEAAABJEFjY291bnRJZAABAAC1BAxMcGFsbGV0X2Zhc3RfdW5zdGFrZRhwYWxsZXQQQ2FsbAQEVAABDFRyZWdpc3Rlcl9mYXN0X3Vuc3Rha2UAAGiIUmVnaXN0ZXIgb25lc2VsZiBmb3IgZmFzdC11bnN0YWtlLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSAqc2lnbmVkKiBieSB3aG9ldmVyIGlzIHBlcm1pdHRlZCB0byBjYWxs8HVuYm9uZCBmdW5kcyBieSB0aGUgc3Rha2luZyBzeXN0ZW0uIFNlZSBbYENvbmZpZzo6U3Rha2luZ2BdLgAoIyMgRGV0YWlscwA5AVRoZSBzdGFzaCBhc3NvY2lhdGVkIHdpdGggdGhlIG9yaWdpbiBtdXN0IGhhdmUgbm8gb25nb2luZyB1bmxvY2tpbmcgY2h1bmtzLiBJZl0Bc3VjY2Vzc2Z1bCwgdGhpcyB3aWxsIGZ1bGx5IHVuYm9uZCBhbmQgY2hpbGwgdGhlIHN0YXNoLiBUaGVuLCBpdCB3aWxsIGVucXVldWUgdGhlIHN0YXNogHRvIGJlIGNoZWNrZWQgaW4gZnVydGhlciBibG9ja3MuAFEBSWYgYnkgdGhlIHRpbWUgdGhpcyBpcyBjYWxsZWQsIHRoZSBzdGFzaCBpcyBhY3R1YWxseSBlbGlnaWJsZSBmb3IgZmFzdC11bnN0YWtlLCB0aGVuRQF0aGV5IGFyZSBndWFyYW50ZWVkIHRvIHJlbWFpbiBlbGlnaWJsZSwgYmVjYXVzZSB0aGUgY2FsbCB3aWxsIGNoaWxsIHRoZW0gYXMgd2VsbC4APQFJZiB0aGUgY2hlY2sgd29ya3MsIHRoZSBlbnRpcmUgc3Rha2luZyBkYXRhIGlzIHJlbW92ZWQsIGkuZS4gdGhlIHN0YXNoIGlzIGZ1bGx5JHVuc3Rha2VkLgBdAUlmIHRoZSBjaGVjayBmYWlscywgdGhlIHN0YXNoIHJlbWFpbnMgY2hpbGxlZCBhbmQgd2FpdGluZyBmb3IgYmVpbmcgdW5ib25kZWQgYXMgaW4gd2l0aGEBdGhlIG5vcm1hbCBzdGFraW5nIHN5c3RlbSwgYnV0IHRoZXkgbG9zZSBwYXJ0IG9mIHRoZWlyIHVuYm9uZGluZyBjaHVua3MgZHVlIHRvIGNvbnN1bWluZ1h0aGUgY2hhaW4ncyByZXNvdXJjZXMuACQjIyBFdmVudHMACQFTb21lIGV2ZW50cyBmcm9tIHRoZSBzdGFraW5nIGFuZCBjdXJyZW5jeSBzeXN0ZW0gbWlnaHQgYmUgZW1pdHRlZC4oZGVyZWdpc3RlcgABSKREZXJlZ2lzdGVyIG9uZXNlbGYgZnJvbSB0aGUgZmFzdC11bnN0YWtlLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSAqc2lnbmVkKiBieSB3aG9ldmVyIGlzIHBlcm1pdHRlZCB0byBjYWxs8HVuYm9uZCBmdW5kcyBieSB0aGUgc3Rha2luZyBzeXN0ZW0uIFNlZSBbYENvbmZpZzo6U3Rha2luZ2BdLgAoIyMgRGV0YWlscwBhAVRoaXMgaXMgdXNlZnVsIGlmIG9uZSBpcyByZWdpc3RlcmVkLCB0aGV5IGFyZSBzdGlsbCB3YWl0aW5nLCBhbmQgdGhleSBjaGFuZ2UgdGhlaXIgbWluZC4AWQFOb3RlIHRoYXQgdGhlIGFzc29jaWF0ZWQgc3Rhc2ggaXMgc3RpbGwgZnVsbHkgdW5ib25kZWQgYW5kIGNoaWxsZWQgYXMgYSBjb25zZXF1ZW5jZSBvZlkBY2FsbGluZyBbYFBhbGxldDo6cmVnaXN0ZXJfZmFzdF91bnN0YWtlYF0uIFRoZXJlZm9yZSwgdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgZm9sbG93ZWSwYnkgYSBjYWxsIHRvIGByZWJvbmRgIGluIHRoZSBzdGFraW5nIHN5c3RlbS4AJCMjIEV2ZW50cwAJAVNvbWUgZXZlbnRzIGZyb20gdGhlIHN0YWtpbmcgYW5kIGN1cnJlbmN5IHN5c3RlbSBtaWdodCBiZSBlbWl0dGVkLhxjb250cm9sBAE0ZXJhc190b19jaGVjaxABIEVyYUluZGV4AAI0lENvbnRyb2wgdGhlIG9wZXJhdGlvbiBvZiB0aGlzIHBhbGxldC4ASCMjIERpc3BhdGNoIE9yaWdpbgANAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgW2BDb25maWc6OkNvbnRyb2xPcmlnaW5gXS4AKCMjIERldGFpbHMAQQFDYW4gc2V0IHRoZSBudW1iZXIgb2YgZXJhcyB0byBjaGVjayBwZXIgYmxvY2ssIGFuZCBwb3RlbnRpYWxseSBvdGhlciBhZG1pbiB3b3JrLgAkIyMgRXZlbnRzAKRObyBldmVudHMgYXJlIGVtaXR0ZWQgZnJvbSB0aGlzIGRpc3BhdGNoLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy65BBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zNGNvbmZpZ3VyYXRpb24YcGFsbGV0EENhbGwEBFQAAcB8c2V0X3ZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bgQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+AAAEkFNldCB0aGUgdmFsaWRhdGlvbiB1cGdyYWRlIGNvb2xkb3duLnBzZXRfdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5BAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4AAQSEU2V0IHRoZSB2YWxpZGF0aW9uIHVwZ3JhZGUgZGVsYXkuZHNldF9jb2RlX3JldGVudGlvbl9wZXJpb2QEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgACBNBTZXQgdGhlIGFjY2VwdGFuY2UgcGVyaW9kIGZvciBhbiBpbmNsdWRlZCBjYW5kaWRhdGUuRHNldF9tYXhfY29kZV9zaXplBAEMbmV3EAEMdTMyAAME3FNldCB0aGUgbWF4IHZhbGlkYXRpb24gY29kZSBzaXplIGZvciBpbmNvbWluZyB1cGdyYWRlcy5Ac2V0X21heF9wb3Zfc2l6ZQQBDG5ldxABDHUzMgAEBMRTZXQgdGhlIG1heCBQT1YgYmxvY2sgc2l6ZSBmb3IgaW5jb21pbmcgdXBncmFkZXMuWHNldF9tYXhfaGVhZF9kYXRhX3NpemUEAQxuZXcQAQx1MzIABQSUU2V0IHRoZSBtYXggaGVhZCBkYXRhIHNpemUgZm9yIHBhcmFzLkhzZXRfY29yZXRpbWVfY29yZXMEAQxuZXcQAQx1MzIABhCsU2V0IHRoZSBudW1iZXIgb2YgY29yZXRpbWUgZXhlY3V0aW9uIGNvcmVzLgBRAU5PVEU6IHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIGlzIG1hbmFnZWQgYnkgdGhlIGNvcmV0aW1lIGNoYWluLiBPbmx5IG1hbnVhbGx5IGNoYW5nZbB0aGlzLCBpZiB5b3UgcmVhbGx5IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIXRzZXRfbWF4X2F2YWlsYWJpbGl0eV90aW1lb3V0cwQBDG5ldxABDHUzMgAHBEEBU2V0IHRoZSBtYXggbnVtYmVyIG9mIHRpbWVzIGEgY2xhaW0gbWF5IHRpbWVvdXQgb24gYSBjb3JlIGJlZm9yZSBpdCBpcyBhYmFuZG9uZWRwc2V0X2dyb3VwX3JvdGF0aW9uX2ZyZXF1ZW5jeQQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+AAgE0FNldCB0aGUgcGFyYWNoYWluIHZhbGlkYXRvci1ncm91cCByb3RhdGlvbiBmcmVxdWVuY3l0c2V0X3BhcmFzX2F2YWlsYWJpbGl0eV9wZXJpb2QEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAJBJhTZXQgdGhlIGF2YWlsYWJpbGl0eSBwZXJpb2QgZm9yIHBhcmFzLmBzZXRfc2NoZWR1bGluZ19sb29rYWhlYWQEAQxuZXcQAQx1MzIACwQ5AVNldCB0aGUgc2NoZWR1bGluZyBsb29rYWhlYWQsIGluIGV4cGVjdGVkIG51bWJlciBvZiBibG9ja3MgYXQgcGVhayB0aHJvdWdocHV0LmxzZXRfbWF4X3ZhbGlkYXRvcnNfcGVyX2NvcmUEAQxuZXc9AgEsT3B0aW9uPHUzMj4ADATsU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWxpZGF0b3JzIHRvIGFzc2lnbiB0byBhbnkgY29yZS5Ic2V0X21heF92YWxpZGF0b3JzBAEMbmV3PQIBLE9wdGlvbjx1MzI+AA0EDQFTZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZhbGlkYXRvcnMgdG8gdXNlIGluIHBhcmFjaGFpbiBjb25zZW5zdXMuSHNldF9kaXNwdXRlX3BlcmlvZAQBDG5ldxABMFNlc3Npb25JbmRleAAOBA0BU2V0IHRoZSBkaXNwdXRlIHBlcmlvZCwgaW4gbnVtYmVyIG9mIHNlc3Npb25zIHRvIGtlZXAgZm9yIGRpc3B1dGVzLrRzZXRfZGlzcHV0ZV9wb3N0X2NvbmNsdXNpb25fYWNjZXB0YW5jZV9wZXJpb2QEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAPBMhTZXQgdGhlIGRpc3B1dGUgcG9zdCBjb25jbHVzaW9uIGFjY2VwdGFuY2UgcGVyaW9kLkRzZXRfbm9fc2hvd19zbG90cwQBDG5ldxABDHUzMgASCPhTZXQgdGhlIG5vIHNob3cgc2xvdHMsIGluIG51bWJlciBvZiBudW1iZXIgb2YgY29uc2Vuc3VzIHNsb3RzLkxNdXN0IGJlIGF0IGxlYXN0IDEuUHNldF9uX2RlbGF5X3RyYW5jaGVzBAEMbmV3EAEMdTMyABMEnFNldCB0aGUgdG90YWwgbnVtYmVyIG9mIGRlbGF5IHRyYW5jaGVzLnhzZXRfemVyb3RoX2RlbGF5X3RyYW5jaGVfd2lkdGgEAQxuZXcQAQx1MzIAFASMU2V0IHRoZSB6ZXJvdGggZGVsYXkgdHJhbmNoZSB3aWR0aC5Qc2V0X25lZWRlZF9hcHByb3ZhbHMEAQxuZXcQAQx1MzIAFQTcU2V0IHRoZSBudW1iZXIgb2YgdmFsaWRhdG9ycyBuZWVkZWQgdG8gYXBwcm92ZSBhIGJsb2NrLnBzZXRfcmVsYXlfdnJmX21vZHVsb19zYW1wbGVzBAEMbmV3EAEMdTMyABYEWQFTZXQgdGhlIG51bWJlciBvZiBzYW1wbGVzIHRvIGRvIG9mIHRoZSBgUmVsYXlWUkZNb2R1bG9gIGFwcHJvdmFsIGFzc2lnbm1lbnQgY3JpdGVyaW9uLmhzZXRfbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudAQBDG5ldxABDHUzMgAXBC0BU2V0cyB0aGUgbWF4aW11bSBpdGVtcyB0aGF0IGNhbiBwcmVzZW50IGluIGEgdXB3YXJkIGRpc3BhdGNoIHF1ZXVlIGF0IG9uY2UuZHNldF9tYXhfdXB3YXJkX3F1ZXVlX3NpemUEAQxuZXcQAQx1MzIAGAhNAVNldHMgdGhlIG1heGltdW0gdG90YWwgc2l6ZSBvZiBpdGVtcyB0aGF0IGNhbiBwcmVzZW50IGluIGEgdXB3YXJkIGRpc3BhdGNoIHF1ZXVlIGF0FG9uY2UudHNldF9tYXhfZG93bndhcmRfbWVzc2FnZV9zaXplBAEMbmV3EAEMdTMyABkEnFNldCB0aGUgY3JpdGljYWwgZG93bndhcmQgbWVzc2FnZSBzaXplLmxzZXRfbWF4X3Vwd2FyZF9tZXNzYWdlX3NpemUEAQxuZXcQAQx1MzIAGwQtAVNldHMgdGhlIG1heGltdW0gc2l6ZSBvZiBhbiB1cHdhcmQgbWVzc2FnZSB0aGF0IGNhbiBiZSBzZW50IGJ5IGEgY2FuZGlkYXRlLqBzZXRfbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlBAEMbmV3EAEMdTMyABwEBQFTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyB0aGF0IGEgY2FuZGlkYXRlIGNhbiBjb250YWluLmRzZXRfaHJtcF9vcGVuX3JlcXVlc3RfdHRsBAEMbmV3EAEMdTMyAB0ENQFTZXRzIHRoZSBudW1iZXIgb2Ygc2Vzc2lvbnMgYWZ0ZXIgd2hpY2ggYW4gSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdCBleHBpcmVzLlxzZXRfaHJtcF9zZW5kZXJfZGVwb3NpdAQBDG5ldxgBHEJhbGFuY2UAHgRRAVNldHMgdGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IHRoZSBzZW5kZXIgc2hvdWxkIHByb3ZpZGUgZm9yIG9wZW5pbmcgYW4gSFJNUCBjaGFubmVsLmhzZXRfaHJtcF9yZWNpcGllbnRfZGVwb3NpdAQBDG5ldxgBHEJhbGFuY2UAHwhhAVNldHMgdGhlIGFtb3VudCBvZiBmdW5kcyB0aGF0IHRoZSByZWNpcGllbnQgc2hvdWxkIHByb3ZpZGUgZm9yIGFjY2VwdGluZyBvcGVuaW5nIGFuIEhSTVAgY2hhbm5lbC50c2V0X2hybXBfY2hhbm5lbF9tYXhfY2FwYWNpdHkEAQxuZXcQAQx1MzIAIAQdAVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIG1lc3NhZ2VzIGFsbG93ZWQgaW4gYW4gSFJNUCBjaGFubmVsIGF0IG9uY2UufHNldF9ocm1wX2NoYW5uZWxfbWF4X3RvdGFsX3NpemUEAQxuZXcQAQx1MzIAIQRRAVNldHMgdGhlIG1heGltdW0gdG90YWwgc2l6ZSBvZiBtZXNzYWdlcyBpbiBieXRlcyBhbGxvd2VkIGluIGFuIEhSTVAgY2hhbm5lbCBhdCBvbmNlLpxzZXRfaHJtcF9tYXhfcGFyYWNoYWluX2luYm91bmRfY2hhbm5lbHMEAQxuZXcQAQx1MzIAIgRJAVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGluYm91bmQgSFJNUCBjaGFubmVscyBhIHBhcmFjaGFpbiBpcyBhbGxvd2VkIHRvIGFjY2VwdC6Ec2V0X2hybXBfY2hhbm5lbF9tYXhfbWVzc2FnZV9zaXplBAEMbmV3EAEMdTMyACQEPQFTZXRzIHRoZSBtYXhpbXVtIHNpemUgb2YgYSBtZXNzYWdlIHRoYXQgY291bGQgZXZlciBiZSBwdXQgaW50byBhbiBIUk1QIGNoYW5uZWwuoHNldF9ocm1wX21heF9wYXJhY2hhaW5fb3V0Ym91bmRfY2hhbm5lbHMEAQxuZXcQAQx1MzIAJQRFAVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIG91dGJvdW5kIEhSTVAgY2hhbm5lbHMgYSBwYXJhY2hhaW4gaXMgYWxsb3dlZCB0byBvcGVuLphzZXRfaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZQQBDG5ldxABDHUzMgAnBDUBU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3V0Ym91bmQgSFJNUCBtZXNzYWdlcyBjYW4gYmUgc2VudCBieSBhIGNhbmRpZGF0ZS5Ic2V0X3B2Zl92b3RpbmdfdHRsBAEMbmV3EAEwU2Vzc2lvbkluZGV4ACoEUQFTZXQgdGhlIG51bWJlciBvZiBzZXNzaW9uIGNoYW5nZXMgYWZ0ZXIgd2hpY2ggYSBQVkYgcHJlLWNoZWNraW5nIHZvdGluZyBpcyByZWplY3RlZC6Qc2V0X21pbmltdW1fdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5BAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4AKxBVAVNldHMgdGhlIG1pbmltdW0gZGVsYXkgYmV0d2VlbiBhbm5vdW5jaW5nIHRoZSB1cGdyYWRlIGJsb2NrIGZvciBhIHBhcmFjaGFpbiB1bnRpbCB0aGVUdXBncmFkZSB0YWtpbmcgcGxhY2UuADkBU2VlIHRoZSBmaWVsZCBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBhbmQgY29uc3RyYWludHMgZm9yIHRoZSBuZXcgdmFsdWUucHNldF9ieXBhc3NfY29uc2lzdGVuY3lfY2hlY2sEAQxuZXcgARBib29sACwITQFTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGRpc2FibGUgY29uc2lzdGVuY3kgY2hlY2tzIGZvciB0aGUgY29uZmlndXJhdGlvbiBzZXR0ZXJzLkRVc2Ugd2l0aCBjYXV0aW9uLmBzZXRfYXN5bmNfYmFja2luZ19wYXJhbXMEAQxuZXe9BAFIQXN5bmNCYWNraW5nUGFyYW1zAC0EoFNldCB0aGUgYXN5bmNocm9ub3VzIGJhY2tpbmcgcGFyYW1ldGVycy5Mc2V0X2V4ZWN1dG9yX3BhcmFtcwQBDG5ld8EEAThFeGVjdXRvclBhcmFtcwAuBHBTZXQgUFZGIGV4ZWN1dG9yIHBhcmFtZXRlcnMuWHNldF9vbl9kZW1hbmRfYmFzZV9mZWUEAQxuZXcYARxCYWxhbmNlAC8EpFNldCB0aGUgb24gZGVtYW5kIChwYXJhdGhyZWFkcykgYmFzZSBmZWUudHNldF9vbl9kZW1hbmRfZmVlX3ZhcmlhYmlsaXR5BAEMbmV3lAEcUGVyYmlsbAAwBMBTZXQgdGhlIG9uIGRlbWFuZCAocGFyYXRocmVhZHMpIGZlZSB2YXJpYWJpbGl0eS5wc2V0X29uX2RlbWFuZF9xdWV1ZV9tYXhfc2l6ZQQBDG5ldxABDHUzMgAxBLxTZXQgdGhlIG9uIGRlbWFuZCAocGFyYXRocmVhZHMpIHF1ZXVlIG1heCBzaXplLphzZXRfb25fZGVtYW5kX3RhcmdldF9xdWV1ZV91dGlsaXphdGlvbgQBDG5ld5QBHFBlcmJpbGwAMgTAU2V0IHRoZSBvbiBkZW1hbmQgKHBhcmF0aHJlYWRzKSBmZWUgdmFyaWFiaWxpdHkuRHNldF9vbl9kZW1hbmRfdHRsBAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4AMwTYU2V0IHRoZSBvbiBkZW1hbmQgKHBhcmF0aHJlYWRzKSB0dGwgaW4gdGhlIGNsYWltcXVldWUuZHNldF9taW5pbXVtX2JhY2tpbmdfdm90ZXMEAQxuZXcQAQx1MzIANASgU2V0IHRoZSBtaW5pbXVtIGJhY2tpbmcgdm90ZXMgdGhyZXNob2xkLkBzZXRfbm9kZV9mZWF0dXJlCAEUaW5kZXgIAQh1OAABFHZhbHVlIAEQYm9vbAA1BGRTZXQvVW5zZXQgYSBub2RlIGZlYXR1cmUuaHNldF9hcHByb3ZhbF92b3RpbmdfcGFyYW1zBAEMbmV31QQBUEFwcHJvdmFsVm90aW5nUGFyYW1zADYEbFNldCBhcHByb3ZhbC12b3RpbmctcGFyYW1zLlBzZXRfc2NoZWR1bGVyX3BhcmFtcwQBDG5ld9kEAYhTY2hlZHVsZXJQYXJhbXM8QmxvY2tOdW1iZXJGb3I8VD4+ADcEVFNldCBzY2hlZHVsZXItcGFyYW1zLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy69BBBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzRhc3luY19iYWNraW5nSEFzeW5jQmFja2luZ1BhcmFtcwAACAFMbWF4X2NhbmRpZGF0ZV9kZXB0aBABDHUzMgABUGFsbG93ZWRfYW5jZXN0cnlfbGVuEAEMdTMyAADBBBBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzxleGVjdXRvcl9wYXJhbXM4RXhlY3V0b3JQYXJhbXMAAAQAxQQBSFZlYzxFeGVjdXRvclBhcmFtPgAAxQQAAALJBADJBBBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzxleGVjdXRvcl9wYXJhbXM0RXhlY3V0b3JQYXJhbQABHDhNYXhNZW1vcnlQYWdlcwQAEAEMdTMyAAEAPFN0YWNrTG9naWNhbE1heAQAEAEMdTMyAAIAOFN0YWNrTmF0aXZlTWF4BAAQAQx1MzIAAwBQUHJlY2hlY2tpbmdNYXhNZW1vcnkEADABDHU2NAAEADhQdmZQcmVwVGltZW91dAgAzQQBLFB2ZlByZXBLaW5kAAAwAQx1NjQABQA4UHZmRXhlY1RpbWVvdXQIANEEASxQdmZFeGVjS2luZAAAMAEMdTY0AAYARFdhc21FeHRCdWxrTWVtb3J5AAcAAM0EDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3LFB2ZlByZXBLaW5kAAEIIFByZWNoZWNrAAAAHFByZXBhcmUAAQAA0QQMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjcsUHZmRXhlY0tpbmQAAQgcQmFja2luZwAAACBBcHByb3ZhbAABAADVBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N1BBcHByb3ZhbFZvdGluZ1BhcmFtcwAABAFsbWF4X2FwcHJvdmFsX2NvYWxlc2NlX2NvdW50EAEMdTMyAADZBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcyB2c3RhZ2luZzxTY2hlZHVsZXJQYXJhbXMELEJsb2NrTnVtYmVyARAALAFgZ3JvdXBfcm90YXRpb25fZnJlcXVlbmN5EAEsQmxvY2tOdW1iZXIAAWRwYXJhc19hdmFpbGFiaWxpdHlfcGVyaW9kEAEsQmxvY2tOdW1iZXIAAVxtYXhfdmFsaWRhdG9yc19wZXJfY29yZT0CASxPcHRpb248dTMyPgABJGxvb2thaGVhZBABDHUzMgABJG51bV9jb3JlcxABDHUzMgABZG1heF9hdmFpbGFiaWxpdHlfdGltZW91dHMQAQx1MzIAAWBvbl9kZW1hbmRfcXVldWVfbWF4X3NpemUQAQx1MzIAAYhvbl9kZW1hbmRfdGFyZ2V0X3F1ZXVlX3V0aWxpemF0aW9ulAEcUGVyYmlsbAABZG9uX2RlbWFuZF9mZWVfdmFyaWFiaWxpdHmUARxQZXJiaWxsAAFIb25fZGVtYW5kX2Jhc2VfZmVlGAEcQmFsYW5jZQABDHR0bBABLEJsb2NrTnVtYmVyAADdBBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zGHNoYXJlZBhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7hBBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJGluY2x1c2lvbhhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7lBBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zOHBhcmFzX2luaGVyZW50GHBhbGxldBBDYWxsBARUAAEEFGVudGVyBAEQZGF0YekEAZBQYXJhY2hhaW5zSW5oZXJlbnREYXRhPEhlYWRlckZvcjxUPj4AAAQxAUVudGVyIHRoZSBwYXJhcyBpbmhlcmVudC4gVGhpcyB3aWxsIHByb2Nlc3MgYml0ZmllbGRzIGFuZCBiYWNrZWQgY2FuZGlkYXRlcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu6QQMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjcwSW5oZXJlbnREYXRhBAxIRFIBeQEAEAEkYml0ZmllbGRz7QQBkFVuY2hlY2tlZFNpZ25lZEF2YWlsYWJpbGl0eUJpdGZpZWxkcwABRGJhY2tlZF9jYW5kaWRhdGVzCQUBfFZlYzxCYWNrZWRDYW5kaWRhdGU8SERSOjpIYXNoPj4AASBkaXNwdXRlc00FAWBNdWx0aURpc3B1dGVTdGF0ZW1lbnRTZXQAATRwYXJlbnRfaGVhZGVyeQEBDEhEUgAA7QQAAALxBADxBBBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NxhzaWduZWQ8VW5jaGVja2VkU2lnbmVkCBxQYXlsb2FkAfUELFJlYWxQYXlsb2FkAfUEAAwBHHBheWxvYWT1BAEcUGF5bG9hZAABPHZhbGlkYXRvcl9pbmRleAEFAThWYWxpZGF0b3JJbmRleAABJHNpZ25hdHVyZQUFAUhWYWxpZGF0b3JTaWduYXR1cmUAAPUEDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3UEF2YWlsYWJpbGl0eUJpdGZpZWxkAAAEAPkEAXxCaXRWZWM8dTgsIGJpdHZlYzo6b3JkZXI6OkxzYjA+AAD5BAAABwj9BAD9BAwYYml0dmVjFG9yZGVyEExzYjAAAAAAAQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjc4VmFsaWRhdG9ySW5kZXgAAAQAEAEMdTMyAAAFBRBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzR2YWxpZGF0b3JfYXBwJFNpZ25hdHVyZQAABAAlAgFIc3IyNTUxOTo6U2lnbmF0dXJlAAAJBQAAAg0FAA0FDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3PEJhY2tlZENhbmRpZGF0ZQQESAE0AAwBJGNhbmRpZGF0ZREFAXBDb21taXR0ZWRDYW5kaWRhdGVSZWNlaXB0PEg+AAE4dmFsaWRpdHlfdm90ZXNFBQFgVmVjPFZhbGlkaXR5QXR0ZXN0YXRpb24+AAFEdmFsaWRhdG9yX2luZGljZXP5BAF8Qml0VmVjPHU4LCBiaXR2ZWM6Om9yZGVyOjpMc2IwPgAAEQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdkQ29tbWl0dGVkQ2FuZGlkYXRlUmVjZWlwdAQESAE0AAgBKGRlc2NyaXB0b3IVBQFYQ2FuZGlkYXRlRGVzY3JpcHRvcjxIPgABLGNvbW1pdG1lbnRzJQUBUENhbmRpZGF0ZUNvbW1pdG1lbnRzAAAVBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N0xDYW5kaWRhdGVEZXNjcmlwdG9yBARIATQAJAEccGFyYV9pZGkCAQhJZAABMHJlbGF5X3BhcmVudDQBBEgAASBjb2xsYXRvchkFAShDb2xsYXRvcklkAAF4cGVyc2lzdGVkX3ZhbGlkYXRpb25fZGF0YV9oYXNoNAEQSGFzaAABIHBvdl9oYXNoNAEQSGFzaAABMGVyYXN1cmVfcm9vdDQBEEhhc2gAASRzaWduYXR1cmUdBQFEQ29sbGF0b3JTaWduYXR1cmUAASRwYXJhX2hlYWQ0ARBIYXNoAAFQdmFsaWRhdGlvbl9jb2RlX2hhc2ghBQFIVmFsaWRhdGlvbkNvZGVIYXNoAAAZBRBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzBjb2xsYXRvcl9hcHAYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAAHQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjcwY29sbGF0b3JfYXBwJFNpZ25hdHVyZQAABAAlAgFIc3IyNTUxOTo6U2lnbmF0dXJlAAAhBQx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlc0hWYWxpZGF0aW9uQ29kZUhhc2gAAAQANAEQSGFzaAAAJQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdQQ2FuZGlkYXRlQ29tbWl0bWVudHMEBE4BEAAYATx1cHdhcmRfbWVzc2FnZXMpBQE4VXB3YXJkTWVzc2FnZXMAAUxob3Jpem9udGFsX21lc3NhZ2VzLQUBSEhvcml6b250YWxNZXNzYWdlcwABTG5ld192YWxpZGF0aW9uX2NvZGU5BQFYT3B0aW9uPFZhbGlkYXRpb25Db2RlPgABJGhlYWRfZGF0YUEFASBIZWFkRGF0YQABbHByb2Nlc3NlZF9kb3dud2FyZF9tZXNzYWdlcxABDHUzMgABOGhybXBfd2F0ZXJtYXJrEAEETgAAKQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE4BFMAAAQAbQEBGFZlYzxUPgAALQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAExBQRTAAAEADUFARhWZWM8VD4AADEFCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNMT3V0Ym91bmRIcm1wTWVzc2FnZQQISWQBaQIACAEkcmVjaXBpZW50aQIBCElkAAEQZGF0YTgBUHNwX3N0ZDo6dmVjOjpWZWM8dTg+AAA1BQAAAjEFADkFBBhPcHRpb24EBFQBPQUBCBBOb25lAAAAEFNvbWUEAD0FAAABAAA9BQx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAA4ARxWZWM8dTg+AABBBQx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcyBIZWFkRGF0YQAABAA4ARxWZWM8dTg+AABFBQAAAkkFAEkFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3TFZhbGlkaXR5QXR0ZXN0YXRpb24AAQggSW1wbGljaXQEAAUFAUhWYWxpZGF0b3JTaWduYXR1cmUAAQAgRXhwbGljaXQEAAUFAUhWYWxpZGF0b3JTaWduYXR1cmUAAgAATQUAAAJRBQBRBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N0xEaXNwdXRlU3RhdGVtZW50U2V0AAAMAThjYW5kaWRhdGVfaGFzaFUFATRDYW5kaWRhdGVIYXNoAAEcc2Vzc2lvbhABMFNlc3Npb25JbmRleAABKHN0YXRlbWVudHNZBQHsVmVjPChEaXNwdXRlU3RhdGVtZW50LCBWYWxpZGF0b3JJbmRleCwgVmFsaWRhdG9yU2lnbmF0dXJlKT4AAFUFCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXM0Q2FuZGlkYXRlSGFzaAAABAA0ARBIYXNoAABZBQAAAl0FAF0FAAAEDGEFAQUFBQBhBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N0BEaXNwdXRlU3RhdGVtZW50AAEIFFZhbGlkBABlBQFkVmFsaWREaXNwdXRlU3RhdGVtZW50S2luZAAAABxJbnZhbGlkBABtBQFsSW52YWxpZERpc3B1dGVTdGF0ZW1lbnRLaW5kAAEAAGUFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3ZFZhbGlkRGlzcHV0ZVN0YXRlbWVudEtpbmQAARQgRXhwbGljaXQAAAA8QmFja2luZ1NlY29uZGVkBAA0ARBIYXNoAAEAMEJhY2tpbmdWYWxpZAQANAEQSGFzaAACAEBBcHByb3ZhbENoZWNraW5nAAMAiEFwcHJvdmFsQ2hlY2tpbmdNdWx0aXBsZUNhbmRpZGF0ZXMEAGkFAUhWZWM8Q2FuZGlkYXRlSGFzaD4ABAAAaQUAAAJVBQBtBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N2xJbnZhbGlkRGlzcHV0ZVN0YXRlbWVudEtpbmQAAQQgRXhwbGljaXQAAAAAcQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhcxhwYWxsZXQQQ2FsbAQEVAABJFhmb3JjZV9zZXRfY3VycmVudF9jb2RlCAEQcGFyYWkCARhQYXJhSWQAASBuZXdfY29kZT0FAThWYWxpZGF0aW9uQ29kZQAABPhTZXQgdGhlIHN0b3JhZ2UgZm9yIHRoZSBwYXJhY2hhaW4gdmFsaWRhdGlvbiBjb2RlIGltbWVkaWF0ZWx5Llhmb3JjZV9zZXRfY3VycmVudF9oZWFkCAEQcGFyYWkCARhQYXJhSWQAASBuZXdfaGVhZEEFASBIZWFkRGF0YQABBAEBU2V0IHRoZSBzdG9yYWdlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gaGVhZCBkYXRhIGltbWVkaWF0ZWx5Lmxmb3JjZV9zY2hlZHVsZV9jb2RlX3VwZ3JhZGUMARBwYXJhaQIBGFBhcmFJZAABIG5ld19jb2RlPQUBOFZhbGlkYXRpb25Db2RlAAFMcmVsYXlfcGFyZW50X251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAIELQFTY2hlZHVsZSBhbiB1cGdyYWRlIGFzIGlmIGl0IHdhcyBzY2hlZHVsZWQgaW4gdGhlIGdpdmVuIHJlbGF5IHBhcmVudCBibG9jay5MZm9yY2Vfbm90ZV9uZXdfaGVhZAgBEHBhcmFpAgEYUGFyYUlkAAEgbmV3X2hlYWRBBQEgSGVhZERhdGEAAwQdAU5vdGUgYSBuZXcgYmxvY2sgaGVhZCBmb3IgcGFyYSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgYmxvY2suSGZvcmNlX3F1ZXVlX2FjdGlvbgQBEHBhcmFpAgEYUGFyYUlkAAQM+FB1dCBhIHBhcmFjaGFpbiBkaXJlY3RseSBpbnRvIHRoZSBuZXh0IHNlc3Npb24ncyBhY3Rpb24gcXVldWUu9FdlIGNhbid0IHF1ZXVlIGl0IGFueSBzb29uZXIgdGhhbiB0aGlzIHdpdGhvdXQgZ29pbmcgaW50byB0aGU4aW5pdGlhbGl6ZXIuLi5sYWRkX3RydXN0ZWRfdmFsaWRhdGlvbl9jb2RlBAE8dmFsaWRhdGlvbl9jb2RlPQUBOFZhbGlkYXRpb25Db2RlAAU4oEFkZHMgdGhlIHZhbGlkYXRpb24gY29kZSB0byB0aGUgc3RvcmFnZS4AWQFUaGUgY29kZSB3aWxsIG5vdCBiZSBhZGRlZCBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQuIEFkZGl0aW9uYWxseSwgaWYgUFZGIHByZS1jaGVja2luZ+BpcyBydW5uaW5nIGZvciB0aGF0IGNvZGUsIGl0IHdpbGwgYmUgaW5zdGFudGx5IGFjY2VwdGVkLgBRAU90aGVyd2lzZSwgdGhlIGNvZGUgd2lsbCBiZSBhZGRlZCBpbnRvIHRoZSBzdG9yYWdlLiBOb3RlIHRoYXQgdGhlIGNvZGUgd2lsbCBiZSBhZGRlZGEBaW50byBzdG9yYWdlIHdpdGggcmVmZXJlbmNlIGNvdW50IDAuIFRoaXMgaXMgdG8gYWNjb3VudCB0aGUgZmFjdCB0aGF0IHRoZXJlIGFyZSBubyB1c2Vyc00BZm9yIHRoaXMgY29kZSB5ZXQuIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgY29kZSBldmVudHVhbGx5IGdldHNJAXVzZWQgYnkgc29tZSBwYXJhY2hhaW4gb3IgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlIHRvIGF2b2lkIHN0b3JhZ2UgbGVha3MuIEZvciB0aGVJAWxhdHRlciBwcmVmZXIgdG8gdXNlIHRoZSBgcG9rZV91bnVzZWRfdmFsaWRhdGlvbl9jb2RlYCBkaXNwYXRjaGFibGUgdG8gcmF3IHN0b3JhZ2U0bWFuaXB1bGF0aW9uLgBRAVRoaXMgZnVuY3Rpb24gaXMgbWFpbmx5IG1lYW50IHRvIGJlIHVzZWQgZm9yIHVwZ3JhZGluZyBwYXJhY2hhaW5zIHRoYXQgZG8gbm90IGZvbGxvdwkBdGhlIGdvLWFoZWFkIHNpZ25hbCB3aGlsZSB0aGUgUFZGIHByZS1jaGVja2luZyBmZWF0dXJlIGlzIGVuYWJsZWQubHBva2VfdW51c2VkX3ZhbGlkYXRpb25fY29kZQQBUHZhbGlkYXRpb25fY29kZV9oYXNoIQUBSFZhbGlkYXRpb25Db2RlSGFzaAAGFCUBUmVtb3ZlIHRoZSB2YWxpZGF0aW9uIGNvZGUgZnJvbSB0aGUgc3RvcmFnZSBpZmYgdGhlIHJlZmVyZW5jZSBjb3VudCBpcyAwLgBZAVRoaXMgaXMgYmV0dGVyIHRoYW4gcmVtb3ZpbmcgdGhlIHN0b3JhZ2UgZGlyZWN0bHksIGJlY2F1c2UgaXQgd2lsbCBub3QgcmVtb3ZlIHRoZSBjb2RlQQF0aGF0IHdhcyBzdWRkZW5seSBnb3QgdXNlZCBieSBzb21lIHBhcmFjaGFpbiB3aGlsZSB0aGlzIGRpc3BhdGNoYWJsZSB3YXMgcGVuZGluZzBkaXNwYXRjaGluZy5saW5jbHVkZV9wdmZfY2hlY2tfc3RhdGVtZW50CAEQc3RtdHUFAURQdmZDaGVja1N0YXRlbWVudAABJHNpZ25hdHVyZQUFAUhWYWxpZGF0b3JTaWduYXR1cmUABwhVAUluY2x1ZGVzIGEgc3RhdGVtZW50IGZvciBhIFBWRiBwcmUtY2hlY2tpbmcgdm90ZS4gUG90ZW50aWFsbHksIGZpbmFsaXplcyB0aGUgdm90ZSBhbmRBAWVuYWN0cyB0aGUgcmVzdWx0cyBpZiB0aGF0IHdhcyB0aGUgbGFzdCB2b3RlIGJlZm9yZSBhY2hpZXZpbmcgdGhlIHN1cGVybWFqb3JpdHkudGZvcmNlX3NldF9tb3N0X3JlY2VudF9jb250ZXh0CAEQcGFyYWkCARhQYXJhSWQAARxjb250ZXh0EAFEQmxvY2tOdW1iZXJGb3I8VD4ACAQBAVNldCB0aGUgc3RvcmFnZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGhlYWQgZGF0YSBpbW1lZGlhdGVseS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMudQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdEUHZmQ2hlY2tTdGF0ZW1lbnQAABABGGFjY2VwdCABEGJvb2wAARxzdWJqZWN0IQUBSFZhbGlkYXRpb25Db2RlSGFzaAABNHNlc3Npb25faW5kZXgQATBTZXNzaW9uSW5kZXgAATx2YWxpZGF0b3JfaW5kZXgBBQE4VmFsaWRhdG9ySW5kZXgAAHkFEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMsaW5pdGlhbGl6ZXIYcGFsbGV0EENhbGwEBFQAAQQ0Zm9yY2VfYXBwcm92ZQQBFHVwX3RvEAEsQmxvY2tOdW1iZXIAAAw5AUlzc3VlIGEgc2lnbmFsIHRvIHRoZSBjb25zZW5zdXMgZW5naW5lIHRvIGZvcmNpYmx5IGFjdCBhcyB0aG91Z2ggYWxsIHBhcmFjaGFpblEBYmxvY2tzIGluIGFsbCByZWxheSBjaGFpbiBibG9ja3MgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgZ2l2ZW4gbnVtYmVyIGluIHRoZSBjdXJyZW50oGNoYWluIGFyZSB2YWxpZCBhbmQgc2hvdWxkIGJlIGZpbmFsaXplZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMufQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBBDYWxsBARUAAEsWGhybXBfaW5pdF9vcGVuX2NoYW5uZWwMASRyZWNpcGllbnRpAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAAKE0BSW5pdGlhdGUgb3BlbmluZyBhIGNoYW5uZWwgZnJvbSBhIHBhcmFjaGFpbiB0byBhIGdpdmVuIHJlY2lwaWVudCB3aXRoIGdpdmVuIGNoYW5uZWwscGFyYW1ldGVycy4AWQEtIGBwcm9wb3NlZF9tYXhfY2FwYWNpdHlgIC0gc3BlY2lmaWVzIGhvdyBtYW55IG1lc3NhZ2VzIGNhbiBiZSBpbiB0aGUgY2hhbm5lbCBhdCBvbmNlLi0BLSBgcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZWAgLSBzcGVjaWZpZXMgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgbWVzc2FnZXMuABEBVGhlc2UgbnVtYmVycyBhcmUgYSBzdWJqZWN0IHRvIHRoZSByZWxheS1jaGFpbiBjb25maWd1cmF0aW9uIGxpbWl0cy4AUQFUaGUgY2hhbm5lbCBjYW4gYmUgb3BlbmVkIG9ubHkgYWZ0ZXIgdGhlIHJlY2lwaWVudCBjb25maXJtcyBpdCBhbmQgb25seSBvbiBhIHNlc3Npb24cY2hhbmdlLmBocm1wX2FjY2VwdF9vcGVuX2NoYW5uZWwEARhzZW5kZXJpAgEYUGFyYUlkAAEM8EFjY2VwdCBhIHBlbmRpbmcgb3BlbiBjaGFubmVsIHJlcXVlc3QgZnJvbSB0aGUgZ2l2ZW4gc2VuZGVyLgD0VGhlIGNoYW5uZWwgd2lsbCBiZSBvcGVuZWQgb25seSBvbiB0aGUgbmV4dCBzZXNzaW9uIGJvdW5kYXJ5Lkhocm1wX2Nsb3NlX2NoYW5uZWwEAShjaGFubmVsX2lkgQUBNEhybXBDaGFubmVsSWQAAhBVAUluaXRpYXRlIHVuaWxhdGVyYWwgY2xvc2luZyBvZiBhIGNoYW5uZWwuIFRoZSBvcmlnaW4gbXVzdCBiZSBlaXRoZXIgdGhlIHNlbmRlciBvciB0aGWYcmVjaXBpZW50IGluIHRoZSBjaGFubmVsIGJlaW5nIGNsb3NlZC4AwFRoZSBjbG9zdXJlIGNhbiBvbmx5IGhhcHBlbiBvbiBhIHNlc3Npb24gY2hhbmdlLkBmb3JjZV9jbGVhbl9ocm1wDAEQcGFyYWkCARhQYXJhSWQAASxudW1faW5ib3VuZBABDHUzMgABMG51bV9vdXRib3VuZBABDHUzMgADHF0BVGhpcyBleHRyaW5zaWMgdHJpZ2dlcnMgdGhlIGNsZWFudXAgb2YgYWxsIHRoZSBIUk1QIHN0b3JhZ2UgaXRlbXMgdGhhdCBhIHBhcmEgbWF5IGhhdmUuSQFOb3JtYWxseSB0aGlzIGhhcHBlbnMgb25jZSBwZXIgc2Vzc2lvbiwgYnV0IHRoaXMgYWxsb3dzIHlvdSB0byB0cmlnZ2VyIHRoZSBjbGVhbnVwlGltbWVkaWF0ZWx5IGZvciBhIHNwZWNpZmljIHBhcmFjaGFpbi4AUQFOdW1iZXIgb2YgaW5ib3VuZCBhbmQgb3V0Ym91bmQgY2hhbm5lbHMgZm9yIGBwYXJhYCBtdXN0IGJlIHByb3ZpZGVkIGFzIHdpdG5lc3MgZGF0YS4AkE9yaWdpbiBtdXN0IGJlIHRoZSBgQ2hhbm5lbE1hbmFnZXJgLlxmb3JjZV9wcm9jZXNzX2hybXBfb3BlbgQBIGNoYW5uZWxzEAEMdTMyAAQgpEZvcmNlIHByb2Nlc3MgSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdHMuAFUBSWYgdGhlcmUgYXJlIHBlbmRpbmcgSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdHMsIHlvdSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gcHJvY2Vzc4hhbGwgb2YgdGhvc2UgcmVxdWVzdHMgaW1tZWRpYXRlbHkuAAkBVG90YWwgbnVtYmVyIG9mIG9wZW5pbmcgY2hhbm5lbHMgbXVzdCBiZSBwcm92aWRlZCBhcyB3aXRuZXNzIGRhdGEuAJBPcmlnaW4gbXVzdCBiZSB0aGUgYENoYW5uZWxNYW5hZ2VyYC5gZm9yY2VfcHJvY2Vzc19ocm1wX2Nsb3NlBAEgY2hhbm5lbHMQAQx1MzIABSCoRm9yY2UgcHJvY2VzcyBIUk1QIGNsb3NlIGNoYW5uZWwgcmVxdWVzdHMuAFkBSWYgdGhlcmUgYXJlIHBlbmRpbmcgSFJNUCBjbG9zZSBjaGFubmVsIHJlcXVlc3RzLCB5b3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHByb2Nlc3OIYWxsIG9mIHRob3NlIHJlcXVlc3RzIGltbWVkaWF0ZWx5LgAJAVRvdGFsIG51bWJlciBvZiBjbG9zaW5nIGNoYW5uZWxzIG11c3QgYmUgcHJvdmlkZWQgYXMgd2l0bmVzcyBkYXRhLgCQT3JpZ2luIG11c3QgYmUgdGhlIGBDaGFubmVsTWFuYWdlcmAuYGhybXBfY2FuY2VsX29wZW5fcmVxdWVzdAgBKGNoYW5uZWxfaWSBBQE0SHJtcENoYW5uZWxJZAABNG9wZW5fcmVxdWVzdHMQAQx1MzIABiBdAVRoaXMgY2FuY2VscyBhIHBlbmRpbmcgb3BlbiBjaGFubmVsIHJlcXVlc3QuIEl0IGNhbiBiZSBjYW5jZWxlZCBieSBlaXRoZXIgb2YgdGhlIHNlbmRlchkBb3IgdGhlIHJlY2lwaWVudCBmb3IgdGhhdCByZXF1ZXN0LiBUaGUgb3JpZ2luIG11c3QgYmUgZWl0aGVyIG9mIHRob3NlLgBdAVRoZSBjYW5jZWxsYXRpb24gaGFwcGVucyBpbW1lZGlhdGVseS4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGNhbmNlbCB0aGUgcmVxdWVzdCBpZiBpdCBpc0RhbHJlYWR5IGFjY2VwdGVkLgBZAVRvdGFsIG51bWJlciBvZiBvcGVuIHJlcXVlc3RzIChpLmUuIGBIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0c0xpc3RgKSBtdXN0IGJlIHByb3ZpZGVkIGFzNHdpdG5lc3MgZGF0YS5cZm9yY2Vfb3Blbl9ocm1wX2NoYW5uZWwQARhzZW5kZXJpAgEYUGFyYUlkAAEkcmVjaXBpZW50aQIBGFBhcmFJZAABMG1heF9jYXBhY2l0eRABDHUzMgABQG1heF9tZXNzYWdlX3NpemUQAQx1MzIAByBhAU9wZW4gYSBjaGFubmVsIGZyb20gYSBgc2VuZGVyYCB0byBhIGByZWNpcGllbnRgIGBQYXJhSWRgLiBBbHRob3VnaCBvcGVuZWQgYnkgZ292ZXJuYW5jZSxBAXRoZSBgbWF4X2NhcGFjaXR5YCBhbmQgYG1heF9tZXNzYWdlX3NpemVgIGFyZSBzdGlsbCBzdWJqZWN0IHRvIHRoZSBSZWxheSBDaGFpbidzSGNvbmZpZ3VyZWQgbGltaXRzLgBNAUV4cGVjdGVkIHVzZSBpcyB3aGVuIG9uZSAoYW5kIG9ubHkgb25lKSBvZiB0aGUgYFBhcmFJZGBzIGludm9sdmVkIGluIHRoZSBjaGFubmVsIGlzwGdvdmVybmVkIGJ5IHRoZSBzeXN0ZW0sIGUuZy4gYSBzeXN0ZW0gcGFyYWNoYWluLgCQT3JpZ2luIG11c3QgYmUgdGhlIGBDaGFubmVsTWFuYWdlcmAuYGVzdGFibGlzaF9zeXN0ZW1fY2hhbm5lbAgBGHNlbmRlcmkCARhQYXJhSWQAASRyZWNpcGllbnRpAgEYUGFyYUlkAAgwUQFFc3RhYmxpc2ggYW4gSFJNUCBjaGFubmVsIGJldHdlZW4gdHdvIHN5c3RlbSBjaGFpbnMuIElmIHRoZSBjaGFubmVsIGRvZXMgbm90IGFscmVhZHlRAWV4aXN0LCB0aGUgdHJhbnNhY3Rpb24gZmVlcyB3aWxsIGJlIHJlZnVuZGVkIHRvIHRoZSBjYWxsZXIuIFRoZSBzeXN0ZW0gZG9lcyBub3QgdGFrZVkBZGVwb3NpdHMgZm9yIGNoYW5uZWxzIGJldHdlZW4gc3lzdGVtIGNoYWlucywgYW5kIGF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgbWVzc2FnZSBudW1iZXIZAWFuZCBzaXplIGxpbWl0cyB0byB0aGUgbWF4aW11bSBhbGxvd2VkIGJ5IHRoZSBuZXR3b3JrJ3MgY29uZmlndXJhdGlvbi4AKEFyZ3VtZW50czoAlC0gYHNlbmRlcmA6IEEgc3lzdGVtIGNoYWluLCBgUGFyYUlkYC6gLSBgcmVjaXBpZW50YDogQSBzeXN0ZW0gY2hhaW4sIGBQYXJhSWRgLgBVAUFueSBzaWduZWQgb3JpZ2luIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24sIGJ1dCBfYm90aF8gaW5wdXRzIE1VU1QgYmUgc3lzdGVtIGNoYWlucy4gSWbAdGhlIGNoYW5uZWwgZG9lcyBub3QgZXhpc3QgeWV0LCB0aGVyZSBpcyBubyBmZWUuVHBva2VfY2hhbm5lbF9kZXBvc2l0cwgBGHNlbmRlcmkCARhQYXJhSWQAASRyZWNpcGllbnRpAgEYUGFyYUlkAAkkUQFVcGRhdGUgdGhlIGRlcG9zaXRzIGhlbGQgZm9yIGFuIEhSTVAgY2hhbm5lbCB0byB0aGUgbGF0ZXN0IGBDb25maWd1cmF0aW9uYC4gQ2hhbm5lbHOwd2l0aCBzeXN0ZW0gY2hhaW5zIGRvIG5vdCByZXF1aXJlIGEgZGVwb3NpdC4AKEFyZ3VtZW50czoAeC0gYHNlbmRlcmA6IEEgY2hhaW4sIGBQYXJhSWRgLoQtIGByZWNpcGllbnRgOiBBIGNoYWluLCBgUGFyYUlkYC4ApEFueSBzaWduZWQgb3JpZ2luIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24udGVzdGFibGlzaF9jaGFubmVsX3dpdGhfc3lzdGVtBAFMdGFyZ2V0X3N5c3RlbV9jaGFpbmkCARhQYXJhSWQAChw5AUVzdGFibGlzaCBhIGJpZGlyZWN0aW9uYWwgSFJNUCBjaGFubmVsIGJldHdlZW4gYSBwYXJhY2hhaW4gYW5kIGEgc3lzdGVtIGNoYWluLgAoQXJndW1lbnRzOgDILSBgdGFyZ2V0X3N5c3RlbV9jaGFpbmA6IEEgc3lzdGVtIGNoYWluLCBgUGFyYUlkYC4AsFRoZSBvcmlnaW4gbmVlZHMgdG8gYmUgdGhlIHBhcmFjaGFpbiBvcmlnaW4uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLoEFDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzNEhybXBDaGFubmVsSWQAAAgBGHNlbmRlcmkCAQhJZAABJHJlY2lwaWVudGkCAQhJZAAAhQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyBkaXNwdXRlcxhwYWxsZXQQQ2FsbAQEVAABBDhmb3JjZV91bmZyZWV6ZQAAAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6JBRRscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzIHNsYXNoaW5nGHBhbGxldBBDYWxsBARUAAEEcHJlcG9ydF9kaXNwdXRlX2xvc3RfdW5zaWduZWQIATRkaXNwdXRlX3Byb29mjQUBREJveDxEaXNwdXRlUHJvb2Y+AAE8a2V5X293bmVyX3Byb29mhQEBQFQ6OktleU93bmVyUHJvb2YAAAAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMujQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjcgc2xhc2hpbmcwRGlzcHV0ZVByb29mAAAQASR0aW1lX3Nsb3SRBQFARGlzcHV0ZXNUaW1lU2xvdAABEGtpbmSVBQFMU2xhc2hpbmdPZmZlbmNlS2luZAABPHZhbGlkYXRvcl9pbmRleAEFAThWYWxpZGF0b3JJbmRleAABMHZhbGlkYXRvcl9pZPkBASxWYWxpZGF0b3JJZAAAkQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjcgc2xhc2hpbmdARGlzcHV0ZXNUaW1lU2xvdAAACAE0c2Vzc2lvbl9pbmRleBABMFNlc3Npb25JbmRleAABOGNhbmRpZGF0ZV9oYXNoVQUBNENhbmRpZGF0ZUhhc2gAAJUFEExwb2xrYWRvdF9wcmltaXRpdmVzCHY3IHNsYXNoaW5nTFNsYXNoaW5nT2ZmZW5jZUtpbmQAAQgoRm9ySW52YWxpZAAAADBBZ2FpbnN0VmFsaWQAAQAAmQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0hhc3NpZ25lcl9vbl9kZW1hbmQYcGFsbGV0EENhbGwEBFQAAQhccGxhY2Vfb3JkZXJfYWxsb3dfZGVhdGgIAShtYXhfYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEccGFyYV9pZGkCARhQYXJhSWQAADyUQ3JlYXRlIGEgc2luZ2xlIG9uIGRlbWFuZCBjb3JlIG9yZGVyLkkBV2lsbCB1c2UgdGhlIHNwb3QgcHJpY2UgZm9yIHRoZSBjdXJyZW50IGJsb2NrIGFuZCB3aWxsIHJlYXAgdGhlIGFjY291bnQgaWYgbmVlZGVkLgAsUGFyYW1ldGVyczo5AS0gYG9yaWdpbmA6IFRoZSBzZW5kZXIgb2YgdGhlIGNhbGwsIGZ1bmRzIHdpbGwgYmUgd2l0aGRyYXduIGZyb20gdGhpcyBhY2NvdW50LkkBLSBgbWF4X2Ftb3VudGA6IFRoZSBtYXhpbXVtIGJhbGFuY2UgdG8gd2l0aGRyYXcgZnJvbSB0aGUgb3JpZ2luIHRvIHBsYWNlIGFuIG9yZGVyLg0BLSBgcGFyYV9pZGA6IEEgYFBhcmFJZGAgdGhlIG9yaWdpbiB3YW50cyB0byBwcm92aWRlIGJsb2Nrc3BhY2UgZm9yLgAcRXJyb3JzOuQtIGBJbnN1ZmZpY2llbnRCYWxhbmNlYDogZnJvbSB0aGUgQ3VycmVuY3kgaW1wbGVtZW50YXRpb240LSBgUXVldWVGdWxsYIAtIGBTcG90UHJpY2VIaWdoZXJUaGFuTWF4QW1vdW50YAAcRXZlbnRzOlwtIGBPbkRlbWFuZE9yZGVyUGxhY2VkYFhwbGFjZV9vcmRlcl9rZWVwX2FsaXZlCAEobWF4X2Ftb3VudBgBMEJhbGFuY2VPZjxUPgABHHBhcmFfaWRpAgEYUGFyYUlkAAE8YQFTYW1lIGFzIHRoZSBbYHBsYWNlX29yZGVyX2FsbG93X2RlYXRoYF0oU2VsZjo6cGxhY2Vfb3JkZXJfYWxsb3dfZGVhdGgpIGNhbGwgLCBidXQgd2l0aCBh3GNoZWNrIHRoYXQgcGxhY2luZyB0aGUgb3JkZXIgd2lsbCBub3QgcmVhcCB0aGUgYWNjb3VudC4ALFBhcmFtZXRlcnM6OQEtIGBvcmlnaW5gOiBUaGUgc2VuZGVyIG9mIHRoZSBjYWxsLCBmdW5kcyB3aWxsIGJlIHdpdGhkcmF3biBmcm9tIHRoaXMgYWNjb3VudC5JAS0gYG1heF9hbW91bnRgOiBUaGUgbWF4aW11bSBiYWxhbmNlIHRvIHdpdGhkcmF3IGZyb20gdGhlIG9yaWdpbiB0byBwbGFjZSBhbiBvcmRlci4NAS0gYHBhcmFfaWRgOiBBIGBQYXJhSWRgIHRoZSBvcmlnaW4gd2FudHMgdG8gcHJvdmlkZSBibG9ja3NwYWNlIGZvci4AHEVycm9yczrkLSBgSW5zdWZmaWNpZW50QmFsYW5jZWA6IGZyb20gdGhlIEN1cnJlbmN5IGltcGxlbWVudGF0aW9uNC0gYFF1ZXVlRnVsbGCALSBgU3BvdFByaWNlSGlnaGVyVGhhbk1heEFtb3VudGAAHEV2ZW50czpcLSBgT25EZW1hbmRPcmRlclBsYWNlZGAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMunQUQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uPHBhcmFzX3JlZ2lzdHJhchhwYWxsZXQQQ2FsbAQEVAABJCByZWdpc3RlcgwBCGlkaQIBGFBhcmFJZAABMGdlbmVzaXNfaGVhZEEFASBIZWFkRGF0YQABPHZhbGlkYXRpb25fY29kZT0FAThWYWxpZGF0aW9uQ29kZQAAUPhSZWdpc3RlciBoZWFkIGRhdGEgYW5kIHZhbGlkYXRpb24gY29kZSBmb3IgYSByZXNlcnZlZCBQYXJhIElkLgAwIyMgQXJndW1lbnRzwC0gYG9yaWdpbmA6IE11c3QgYmUgY2FsbGVkIGJ5IGEgYFNpZ25lZGAgb3JpZ2luLi0BLSBgaWRgOiBUaGUgcGFyYSBJRC4gTXVzdCBiZSBvd25lZC9tYW5hZ2VkIGJ5IHRoZSBgb3JpZ2luYCBzaWduaW5nIGFjY291bnQuAQEtIGBnZW5lc2lzX2hlYWRgOiBUaGUgZ2VuZXNpcyBoZWFkIGRhdGEgb2YgdGhlIHBhcmFjaGFpbi90aHJlYWQuJQEtIGB2YWxpZGF0aW9uX2NvZGVgOiBUaGUgaW5pdGlhbCB2YWxpZGF0aW9uIGNvZGUgb2YgdGhlIHBhcmFjaGFpbi90aHJlYWQuAEAjIyBEZXBvc2l0cy9GZWVzCQFUaGUgYWNjb3VudCB3aXRoIHRoZSBvcmlnaW5hdGluZyBzaWduYXR1cmUgbXVzdCByZXNlcnZlIGEgZGVwb3NpdC4ATQFUaGUgZGVwb3NpdCBpcyByZXF1aXJlZCB0byBjb3ZlciB0aGUgY29zdHMgYXNzb2NpYXRlZCB3aXRoIHN0b3JpbmcgdGhlIGdlbmVzaXMgaGVhZHRkYXRhIGFuZCB0aGUgdmFsaWRhdGlvbiBjb2RlLjEBVGhpcyBhY2NvdW50cyBmb3IgdGhlIHBvdGVudGlhbCB0byBzdG9yZSB2YWxpZGF0aW9uIGNvZGUgb2YgYSBzaXplIHVwIHRvIHRoZdxgbWF4X2NvZGVfc2l6ZWAsIGFzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gcGFsbGV0AB0BQW55dGhpbmcgYWxyZWFkeSByZXNlcnZlZCBwcmV2aW91c2x5IGZvciB0aGlzIHBhcmEgSUQgaXMgYWNjb3VudGVkIGZvci4AJCMjIEV2ZW50c9RUaGUgYFJlZ2lzdGVyZWRgIGV2ZW50IGlzIGVtaXR0ZWQgaW4gY2FzZSBvZiBzdWNjZXNzLjhmb3JjZV9yZWdpc3RlchQBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AAQhpZGkCARhQYXJhSWQAATBnZW5lc2lzX2hlYWRBBQEgSGVhZERhdGEAATx2YWxpZGF0aW9uX2NvZGU9BQE4VmFsaWRhdGlvbkNvZGUAARjcRm9yY2UgdGhlIHJlZ2lzdHJhdGlvbiBvZiBhIFBhcmEgSWQgb24gdGhlIHJlbGF5IGNoYWluLgC4VGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBieSBhIFJvb3Qgb3JpZ2luLgAZAVRoZSBkZXBvc2l0IHRha2VuIGNhbiBiZSBzcGVjaWZpZWQgZm9yIHRoaXMgcmVnaXN0cmF0aW9uLiBBbnkgYFBhcmFJZGAZAWNhbiBiZSByZWdpc3RlcmVkLCBpbmNsdWRpbmcgc3ViLTEwMDAgSURzIHdoaWNoIGFyZSBTeXN0ZW0gUGFyYWNoYWlucy4oZGVyZWdpc3RlcgQBCGlkaQIBGFBhcmFJZAACEAUBRGVyZWdpc3RlciBhIFBhcmEgSWQsIGZyZWVpbmcgYWxsIGRhdGEgYW5kIHJldHVybmluZyBhbnkgZGVwb3NpdC4AUQFUaGUgY2FsbGVyIG11c3QgYmUgUm9vdCwgdGhlIGBwYXJhYCBvd25lciwgb3IgdGhlIGBwYXJhYCBpdHNlbGYuIFRoZSBwYXJhIG11c3QgYmUgYW5Qb24tZGVtYW5kIHBhcmFjaGFpbi4Qc3dhcAgBCGlkaQIBGFBhcmFJZAABFG90aGVyaQIBGFBhcmFJZAADMEEBU3dhcCBhIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluIHdpdGggYW5vdGhlciBwYXJhY2hhaW4sIGVpdGhlciBvbi1kZW1hbmQgb3IgbGVhc2UgaG9sZGluZy4AAQFUaGUgb3JpZ2luIG11c3QgYmUgUm9vdCwgdGhlIGBwYXJhYCBvd25lciwgb3IgdGhlIGBwYXJhYCBpdHNlbGYuAGEBVGhlIHN3YXAgd2lsbCBoYXBwZW4gb25seSBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIG9wcG9zaXRlIHN3YXAgcGVuZGluZy4gSWYgdGhlcmUgaXMgbm90LFkBdGhlIHN3YXAgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIHBlbmRpbmcgc3dhcHMgbWFwLCByZWFkeSBmb3IgYSBsYXRlciBjb25maXJtYXRvcnkgc3dhcC4AXQFUaGUgYFBhcmFJZGBzIHJlbWFpbiBtYXBwZWQgdG8gdGhlIHNhbWUgaGVhZCBkYXRhIGFuZCBjb2RlIHNvIGV4dGVybmFsIGNvZGUgY2FuIHJlbHkgb249AWBQYXJhSWRgIHRvIGJlIGEgbG9uZy10ZXJtIGlkZW50aWZpZXIgb2YgYSBub3Rpb25hbCAicGFyYWNoYWluIi4gSG93ZXZlciwgdGhlaXI1AXNjaGVkdWxpbmcgaW5mbyAoaS5lLiB3aGV0aGVyIHRoZXkncmUgYW4gb24tZGVtYW5kIHBhcmFjaGFpbiBvciBsZWFzZSBob2xkaW5nFQFwYXJhY2hhaW4pLCBhdWN0aW9uIGluZm9ybWF0aW9uIGFuZCB0aGUgYXVjdGlvbiBkZXBvc2l0IGFyZSBzd2l0Y2hlZC4scmVtb3ZlX2xvY2sEARBwYXJhaQIBGFBhcmFJZAAEEA0BUmVtb3ZlIGEgbWFuYWdlciBsb2NrIGZyb20gYSBwYXJhLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG1hbmFnZXIgb2YgYTUBcHJldmlvdXNseSBsb2NrZWQgcGFyYSB0byBkZXJlZ2lzdGVyIG9yIHN3YXAgYSBwYXJhIHdpdGhvdXQgdXNpbmcgZ292ZXJuYW5jZS4A3ENhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgUm9vdCBvcmlnaW4gb3IgdGhlIHBhcmFjaGFpbi4ccmVzZXJ2ZQAFRJRSZXNlcnZlIGEgUGFyYSBJZCBvbiB0aGUgcmVsYXkgY2hhaW4uAE0BVGhpcyBmdW5jdGlvbiB3aWxsIHJlc2VydmUgYSBuZXcgUGFyYSBJZCB0byBiZSBvd25lZC9tYW5hZ2VkIGJ5IHRoZSBvcmlnaW4gYWNjb3VudC5hAVRoZSBvcmlnaW4gYWNjb3VudCBpcyBhYmxlIHRvIHJlZ2lzdGVyIGhlYWQgZGF0YSBhbmQgdmFsaWRhdGlvbiBjb2RlIHVzaW5nIGByZWdpc3RlcmAgdG9ZAWNyZWF0ZSBhbiBvbi1kZW1hbmQgcGFyYWNoYWluLiBVc2luZyB0aGUgU2xvdHMgcGFsbGV0LCBhbiBvbi1kZW1hbmQgcGFyYWNoYWluIGNhbiB0aGVupGJlIHVwZ3JhZGVkIHRvIGEgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4uADAjIyBBcmd1bWVudHNVAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FsbGVkIGJ5IGEgYFNpZ25lZGAgb3JpZ2luLiBCZWNvbWVzIHRoZSBtYW5hZ2VyL293bmVyIG9mIHRoZSBuZXcoICBwYXJhIElELgBAIyMgRGVwb3NpdHMvRmVlcyEBVGhlIG9yaWdpbiBtdXN0IHJlc2VydmUgYSBkZXBvc2l0IG9mIGBQYXJhRGVwb3NpdGAgZm9yIHRoZSByZWdpc3RyYXRpb24uACQjIyBFdmVudHNZAVRoZSBgUmVzZXJ2ZWRgIGV2ZW50IGlzIGVtaXR0ZWQgaW4gY2FzZSBvZiBzdWNjZXNzLCB3aGljaCBwcm92aWRlcyB0aGUgSUQgcmVzZXJ2ZWQgZm9yEHVzZS4gYWRkX2xvY2sEARBwYXJhaQIBGFBhcmFJZAAGFAkBQWRkIGEgbWFuYWdlciBsb2NrIGZyb20gYSBwYXJhLiBUaGlzIHdpbGwgcHJldmVudCB0aGUgbWFuYWdlciBvZiBhiHBhcmEgdG8gZGVyZWdpc3RlciBvciBzd2FwIGEgcGFyYS4ASQFDYW4gYmUgY2FsbGVkIGJ5IFJvb3QsIHRoZSBwYXJhY2hhaW4sIG9yIHRoZSBwYXJhY2hhaW4gbWFuYWdlciBpZiB0aGUgcGFyYWNoYWluIGlzJHVubG9ja2VkLlRzY2hlZHVsZV9jb2RlX3VwZ3JhZGUIARBwYXJhaQIBGFBhcmFJZAABIG5ld19jb2RlPQUBOFZhbGlkYXRpb25Db2RlAAcsdFNjaGVkdWxlIGEgcGFyYWNoYWluIHVwZ3JhZGUuAFUBVGhpcyB3aWxsIGtpY2sgb2ZmIGEgY2hlY2sgb2YgYG5ld19jb2RlYCBieSBhbGwgdmFsaWRhdG9ycy4gQWZ0ZXIgdGhlIG1ham9yaXR5IG9mIHRoZVUBdmFsaWRhdG9ycyBoYXZlIHJlcG9ydGVkIG9uIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZSwgdGhlIGNvZGUgd2lsbCBlaXRoZXIgYmUgZW5hY3RlZFUBb3IgdGhlIHVwZ3JhZGUgd2lsbCBiZSByZWplY3RlZC4gSWYgdGhlIGNvZGUgd2lsbCBiZSBlbmFjdGVkLCB0aGUgY3VycmVudCBjb2RlIG9mIHRoZV0BcGFyYWNoYWluIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZGlyZWN0bHkuIFRoaXMgbWVhbnMgdGhhdCBhbnkgUG9WIHdpbGwgYmUgY2hlY2tlZCBieSB0aGlzXQFuZXcgY29kZS4gVGhlIHBhcmFjaGFpbiBpdHNlbGYgd2lsbCBub3QgYmUgaW5mb3JtZWQgZXhwbGljaXRseSB0aGF0IHRoZSB2YWxpZGF0aW9uIGNvZGUwaGFzIGNoYW5nZWQuAEkBQ2FuIGJlIGNhbGxlZCBieSBSb290LCB0aGUgcGFyYWNoYWluLCBvciB0aGUgcGFyYWNoYWluIG1hbmFnZXIgaWYgdGhlIHBhcmFjaGFpbiBpcyR1bmxvY2tlZC5Ac2V0X2N1cnJlbnRfaGVhZAgBEHBhcmFpAgEYUGFyYUlkAAEgbmV3X2hlYWRBBQEgSGVhZERhdGEACBCEU2V0IHRoZSBwYXJhY2hhaW4ncyBjdXJyZW50IGhlYWQuAEkBQ2FuIGJlIGNhbGxlZCBieSBSb290LCB0aGUgcGFyYWNoYWluLCBvciB0aGUgcGFyYWNoYWluIG1hbmFnZXIgaWYgdGhlIHBhcmFjaGFpbiBpcyR1bmxvY2tlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuoQUQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uFHNsb3RzGHBhbGxldBBDYWxsBARUAAEMLGZvcmNlX2xlYXNlFAEQcGFyYWkCARhQYXJhSWQAARhsZWFzZXIAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AATBwZXJpb2RfYmVnaW4QAUBMZWFzZVBlcmlvZE9mPFQ+AAEwcGVyaW9kX2NvdW50EAFATGVhc2VQZXJpb2RPZjxUPgAAEE0BSnVzdCBhIGNvbm5lY3QgaW50byB0aGUgYGxlYXNlX291dGAgY2FsbCwgaW4gY2FzZSBSb290IHdhbnRzIHRvIGZvcmNlIHNvbWUgbGVhc2UgdG/8aGFwcGVuIGluZGVwZW5kZW50bHkgb2YgYW55IG90aGVyIG9uLWNoYWluIG1lY2hhbmlzbSB0byB1c2UgaXQuAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBtYXRjaCBgVDo6Rm9yY2VPcmlnaW5gLkBjbGVhcl9hbGxfbGVhc2VzBAEQcGFyYWkCARhQYXJhSWQAAQxNAUNsZWFyIGFsbCBsZWFzZXMgZm9yIGEgUGFyYSBJZCwgcmVmdW5kaW5nIGFueSBkZXBvc2l0cyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBvd25lcnMuAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBtYXRjaCBgVDo6Rm9yY2VPcmlnaW5gLjx0cmlnZ2VyX29uYm9hcmQEARBwYXJhaQIBGFBhcmFJZAACHCUBVHJ5IHRvIG9uYm9hcmQgYSBwYXJhY2hhaW4gdGhhdCBoYXMgYSBsZWFzZSBmb3IgdGhlIGN1cnJlbnQgbGVhc2UgcGVyaW9kLgBFAVRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWZ1bCBpZiB0aGVyZSB3YXMgc29tZSBzdGF0ZSBpc3N1ZSB3aXRoIGEgcGFyYSB0aGF0IHNob3VsZDkBaGF2ZSBvbmJvYXJkZWQsIGJ1dCB3YXMgdW5hYmxlIHRvLiBBcyBsb25nIGFzIHRoZXkgaGF2ZSBhIGxlYXNlIHBlcmlvZCwgd2UgY2FubGxldCB0aGVtIG9uYm9hcmQgZnJvbSBoZXJlLgDMT3JpZ2luIG11c3QgYmUgc2lnbmVkLCBidXQgY2FuIGJlIGNhbGxlZCBieSBhbnlvbmUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqUFEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiBhdWN0aW9ucxhwYWxsZXQQQ2FsbAQEVAABDCxuZXdfYXVjdGlvbggBIGR1cmF0aW9u1AFEQmxvY2tOdW1iZXJGb3I8VD4AAUhsZWFzZV9wZXJpb2RfaW5kZXjUAUBMZWFzZVBlcmlvZE9mPFQ+AAAUVENyZWF0ZSBhIG5ldyBhdWN0aW9uLgBRAVRoaXMgY2FuIG9ubHkgaGFwcGVuIHdoZW4gdGhlcmUgaXNuJ3QgYWxyZWFkeSBhbiBhdWN0aW9uIGluIHByb2dyZXNzIGFuZCBtYXkgb25seSBiZSUBY2FsbGVkIGJ5IHRoZSByb290IG9yaWdpbi4gQWNjZXB0cyB0aGUgYGR1cmF0aW9uYCBvZiB0aGlzIGF1Y3Rpb24gYW5kIHRoZVkBYGxlYXNlX3BlcmlvZF9pbmRleGAgb2YgdGhlIGluaXRpYWwgbGVhc2UgcGVyaW9kIG9mIHRoZSBmb3VyIHRoYXQgYXJlIHRvIGJlIGF1Y3Rpb25lZC4MYmlkFAEQcGFyYakFARhQYXJhSWQAATRhdWN0aW9uX2luZGV41AEwQXVjdGlvbkluZGV4AAEoZmlyc3Rfc2xvdNQBQExlYXNlUGVyaW9kT2Y8VD4AASRsYXN0X3Nsb3TUAUBMZWFzZVBlcmlvZE9mPFQ+AAEYYW1vdW505AEwQmFsYW5jZU9mPFQ+AAFASQFNYWtlIGEgbmV3IGJpZCBmcm9tIGFuIGFjY291bnQgKGluY2x1ZGluZyBhIHBhcmFjaGFpbiBhY2NvdW50KSBmb3IgZGVwbG95aW5nIGEgbmV3KHBhcmFjaGFpbi4AWQFNdWx0aXBsZSBzaW11bHRhbmVvdXMgYmlkcyBmcm9tIHRoZSBzYW1lIGJpZGRlciBhcmUgYWxsb3dlZCBvbmx5IGFzIGxvbmcgYXMgYWxsIGFjdGl2ZT0BYmlkcyBvdmVybGFwIGVhY2ggb3RoZXIgKGkuZS4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSkuIEJpZHMgY2Fubm90IGJlIHJlZGFjdGVkLgBVAS0gYHN1YmAgaXMgdGhlIHN1Yi1iaWRkZXIgSUQsIGFsbG93aW5nIGZvciBtdWx0aXBsZSBjb21wZXRpbmcgYmlkcyB0byBiZSBtYWRlIGJ5IChhbmRwZnVuZGVkIGJ5KSB0aGUgc2FtZSBhY2NvdW50Lk0BLSBgYXVjdGlvbl9pbmRleGAgaXMgdGhlIGluZGV4IG9mIHRoZSBhdWN0aW9uIHRvIGJpZCBvbi4gU2hvdWxkIGp1c3QgYmUgdGhlIHByZXNlbnRodmFsdWUgb2YgYEF1Y3Rpb25Db3VudGVyYC5JAS0gYGZpcnN0X3Nsb3RgIGlzIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2QgaW5kZXggb2YgdGhlIHJhbmdlIHRvIGJpZCBvbi4gVGhpcyBpcyB0aGUJAWFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0LkEBLSBgbGFzdF9zbG90YCBpcyB0aGUgbGFzdCBsZWFzZSBwZXJpb2QgaW5kZXggb2YgdGhlIHJhbmdlIHRvIGJpZCBvbi4gVGhpcyBpcyB0aGUJAWFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0LkkBLSBgYW1vdW50YCBpcyB0aGUgYW1vdW50IHRvIGJpZCB0byBiZSBoZWxkIGFzIGRlcG9zaXQgZm9yIHRoZSBwYXJhY2hhaW4gc2hvdWxkIHRoZchiaWQgd2luLiBUaGlzIGFtb3VudCBpcyBoZWxkIHRocm91Z2hvdXQgdGhlIHJhbmdlLjhjYW5jZWxfYXVjdGlvbgACDHhDYW5jZWwgYW4gaW4tcHJvZ3Jlc3MgYXVjdGlvbi4AiENhbiBvbmx5IGJlIGNhbGxlZCBieSBSb290IG9yaWdpbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuqQUAAAZpAgCtBRBccG9sa2Fkb3RfcnVudGltZV9jb21tb24kY3Jvd2Rsb2FuGHBhbGxldBBDYWxsBARUAAEkGGNyZWF0ZRgBFGluZGV4qQUBGFBhcmFJZAABDGNhcOQBMEJhbGFuY2VPZjxUPgABMGZpcnN0X3BlcmlvZNQBQExlYXNlUGVyaW9kT2Y8VD4AASxsYXN0X3BlcmlvZNQBQExlYXNlUGVyaW9kT2Y8VD4AAQxlbmTUAURCbG9ja051bWJlckZvcjxUPgABIHZlcmlmaWVysQUBTE9wdGlvbjxNdWx0aVNpZ25lcj4AABRNAUNyZWF0ZSBhIG5ldyBjcm93ZGxvYW5pbmcgY2FtcGFpZ24gZm9yIGEgcGFyYWNoYWluIHNsb3Qgd2l0aCB0aGUgZ2l2ZW4gbGVhc2UgcGVyaW9kGHJhbmdlLgBdAVRoaXMgYXBwbGllcyBhIGxvY2sgdG8geW91ciBwYXJhY2hhaW4gY29uZmlndXJhdGlvbiwgZW5zdXJpbmcgdGhhdCBpdCBjYW5ub3QgYmUgY2hhbmdlZGRieSB0aGUgcGFyYWNoYWluIG1hbmFnZXIuKGNvbnRyaWJ1dGUMARRpbmRleKkFARhQYXJhSWQAARR2YWx1ZeQBMEJhbGFuY2VPZjxUPgABJHNpZ25hdHVyZbkFAVhPcHRpb248TXVsdGlTaWduYXR1cmU+AAEIUQFDb250cmlidXRlIHRvIGEgY3Jvd2Qgc2FsZS4gVGhpcyB3aWxsIHRyYW5zZmVyIHNvbWUgYmFsYW5jZSBvdmVyIHRvIGZ1bmQgYSBwYXJhY2hhaW5RAXNsb3QuIEl0IHdpbGwgYmUgd2l0aGRyYXdhYmxlIHdoZW4gdGhlIGNyb3dkbG9hbiBoYXMgZW5kZWQgYW5kIHRoZSBmdW5kcyBhcmUgdW51c2VkLiB3aXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABFGluZGV4qQUBGFBhcmFJZAACRMBXaXRoZHJhdyBmdWxsIGJhbGFuY2Ugb2YgYSBzcGVjaWZpYyBjb250cmlidXRvci4AwE9yaWdpbiBtdXN0IGJlIHNpZ25lZCwgYnV0IGNhbiBjb21lIGZyb20gYW55b25lLgBdAVRoZSBmdW5kIG11c3QgYmUgZWl0aGVyIGluLCBvciByZWFkeSBmb3IsIHJldGlyZW1lbnQuIEZvciBhIGZ1bmQgdG8gYmUgKmluKiByZXRpcmVtZW50LEkBdGhlbiB0aGUgcmV0aXJlbWVudCBmbGFnIG11c3QgYmUgc2V0LiBGb3IgYSBmdW5kIHRvIGJlIHJlYWR5IGZvciByZXRpcmVtZW50LCB0aGVuOpwtIGl0IG11c3Qgbm90IGFscmVhZHkgYmUgaW4gcmV0aXJlbWVudDtNAS0gdGhlIGFtb3VudCBvZiByYWlzZWQgZnVuZHMgbXVzdCBiZSBiaWdnZXIgdGhhbiB0aGUgX2ZyZWVfIGJhbGFuY2Ugb2YgdGhlIGFjY291bnQ7NC0gYW5kIGVpdGhlcjq8ICAtIHRoZSBibG9jayBudW1iZXIgbXVzdCBiZSBhdCBsZWFzdCBgZW5kYDsgb3ItASAgLSB0aGUgY3VycmVudCBsZWFzZSBwZXJpb2QgbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIGZ1bmQncyBgbGFzdF9wZXJpb2RgLgBVAUluIHRoaXMgY2FzZSwgdGhlIGZ1bmQncyByZXRpcmVtZW50IGZsYWcgaXMgc2V0IGFuZCBpdHMgYGVuZGAgaXMgcmVzZXQgdG8gdGhlIGN1cnJlbnQ0YmxvY2sgbnVtYmVyLgDwLSBgd2hvYDogVGhlIGFjY291bnQgd2hvc2UgY29udHJpYnV0aW9uIHNob3VsZCBiZSB3aXRoZHJhd24uGQEtIGBpbmRleGA6IFRoZSBwYXJhY2hhaW4gdG8gd2hvc2UgY3Jvd2Rsb2FuIHRoZSBjb250cmlidXRpb24gd2FzIG1hZGUuGHJlZnVuZAQBFGluZGV4qQUBGFBhcmFJZAADFOBBdXRvbWF0aWNhbGx5IHJlZnVuZCBjb250cmlidXRvcnMgb2YgYW4gZW5kZWQgY3Jvd2Rsb2FuLiEBRHVlIHRvIHdlaWdodCByZXN0cmljdGlvbnMsIHRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gYmUgY2FsbGVkIG11bHRpcGxlSQF0aW1lcyB0byBmdWxseSByZWZ1bmQgYWxsIHVzZXJzLiBXZSB3aWxsIHJlZnVuZCBgUmVtb3ZlS2V5c0xpbWl0YCB1c2VycyBhdCBhIHRpbWUuAMBPcmlnaW4gbXVzdCBiZSBzaWduZWQsIGJ1dCBjYW4gY29tZSBmcm9tIGFueW9uZS4gZGlzc29sdmUEARRpbmRleKkFARhQYXJhSWQABARVAVJlbW92ZSBhIGZ1bmQgYWZ0ZXIgdGhlIHJldGlyZW1lbnQgcGVyaW9kIGhhcyBlbmRlZCBhbmQgYWxsIGZ1bmRzIGhhdmUgYmVlbiByZXR1cm5lZC4QZWRpdBgBFGluZGV4qQUBGFBhcmFJZAABDGNhcOQBMEJhbGFuY2VPZjxUPgABMGZpcnN0X3BlcmlvZNQBQExlYXNlUGVyaW9kT2Y8VD4AASxsYXN0X3BlcmlvZNQBQExlYXNlUGVyaW9kT2Y8VD4AAQxlbmTUAURCbG9ja051bWJlckZvcjxUPgABIHZlcmlmaWVysQUBTE9wdGlvbjxNdWx0aVNpZ25lcj4ABQzQRWRpdCB0aGUgY29uZmlndXJhdGlvbiBmb3IgYW4gaW4tcHJvZ3Jlc3MgY3Jvd2Rsb2FuLgCIQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJvb3Qgb3JpZ2luLiBhZGRfbWVtbwgBFGluZGV4aQIBGFBhcmFJZAABEG1lbW84ARxWZWM8dTg+AAYM7EFkZCBhbiBvcHRpb25hbCBtZW1vIHRvIGFuIGV4aXN0aW5nIGNyb3dkbG9hbiBjb250cmlidXRpb24uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkLCBhbmQgdGhlIHVzZXIgbXVzdCBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoZSBjcm93ZGxvYW4uEHBva2UEARRpbmRleGkCARhQYXJhSWQABwx0UG9rZSB0aGUgZnVuZCBpbnRvIGBOZXdSYWlzZWAA3E9yaWdpbiBtdXN0IGJlIFNpZ25lZCwgYW5kIHRoZSBmdW5kIGhhcyBub24temVybyByYWlzZS44Y29udHJpYnV0ZV9hbGwIARRpbmRleKkFARhQYXJhSWQAASRzaWduYXR1cmW5BQFYT3B0aW9uPE11bHRpU2lnbmF0dXJlPgAIDGEBQ29udHJpYnV0ZSB5b3VyIGVudGlyZSBiYWxhbmNlIHRvIGEgY3Jvd2Qgc2FsZS4gVGhpcyB3aWxsIHRyYW5zZmVyIHRoZSBlbnRpcmUgYmFsYW5jZSBvZlEBYSB1c2VyIG92ZXIgdG8gZnVuZCBhIHBhcmFjaGFpbiBzbG90LiBJdCB3aWxsIGJlIHdpdGhkcmF3YWJsZSB3aGVuIHRoZSBjcm93ZGxvYW4gaGFzfGVuZGVkIGFuZCB0aGUgZnVuZHMgYXJlIHVudXNlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMusQUEGE9wdGlvbgQEVAG1BQEIEE5vbmUAAAAQU29tZQQAtQUAAAEAALUFCChzcF9ydW50aW1lLE11bHRpU2lnbmVyAAEMHEVkMjU1MTkEAAQBPGVkMjU1MTk6OlB1YmxpYwAAABxTcjI1NTE5BAAEATxzcjI1NTE5OjpQdWJsaWMAAQAURWNkc2EEAAkCATRlY2RzYTo6UHVibGljAAIAALkFBBhPcHRpb24EBFQBvQUBCBBOb25lAAAAEFNvbWUEAL0FAAABAAC9BQgoc3BfcnVudGltZThNdWx0aVNpZ25hdHVyZQABDBxFZDI1NTE5BAAlAgFIZWQyNTUxOTo6U2lnbmF0dXJlAAAAHFNyMjU1MTkEACUCAUhzcjI1NTE5OjpTaWduYXR1cmUAAQAURWNkc2EEAL0CAUBlY2RzYTo6U2lnbmF0dXJlAAIAAMEFEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgY29yZXRpbWUYcGFsbGV0EENhbGwEBFQAAQxIcmVxdWVzdF9jb3JlX2NvdW50BAEUY291bnRVAQEMdTE2AAEYUQFSZXF1ZXN0IHRoZSBjb25maWd1cmF0aW9uIHRvIGJlIHVwZGF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBjb3Jlcy4gV2FybmluZzpRAVNpbmNlIHRoaXMgb25seSBzY2hlZHVsZXMgYSBjb25maWd1cmF0aW9uIHVwZGF0ZSwgaXQgdGFrZXMgdHdvIHNlc3Npb25zIHRvIGNvbWUgaW50bxxlZmZlY3QuAJgtIGBvcmlnaW5gOiBSb290IG9yIHRoZSBDb3JldGltZSBDaGFpboAtIGBjb3VudGA6IHRvdGFsIG51bWJlciBvZiBjb3Jlc0hyZXF1ZXN0X3JldmVudWVfYXQEARB3aGVuEAEsQmxvY2tOdW1iZXIAAhBhAVJlcXVlc3QgdG8gY2xhaW0gdGhlIGluc3RhbnRhbmVvdXMgY29yZXRpbWUgc2FsZXMgcmV2ZW51ZSBzdGFydGluZyBmcm9tIHRoZSBibG9jayBpdCB3YXNdAWxhc3QgY2xhaW1lZCB1bnRpbCBhbmQgdXAgdG8gdGhlIGJsb2NrIHNwZWNpZmllZC4gVGhlIGNsYWltZWQgYW1vdW50IHZhbHVlIGlzIHNlbnQgYmFja1EBdG8gdGhlIENvcmV0aW1lIGNoYWluIGluIGEgYG5vdGlmeV9yZXZlbnVlYCBtZXNzYWdlLiBBdCB0aGUgc2FtZSB0aW1lLCB0aGUgYW1vdW50IGlzhHRlbGVwb3J0ZWQgdG8gdGhlIENvcmV0aW1lIGNoYWluLixhc3NpZ25fY29yZRABEGNvcmVVAQE8QnJva2VyQ29yZUluZGV4AAEUYmVnaW4QAURCbG9ja051bWJlckZvcjxUPgABKGFzc2lnbm1lbnTFBQGMVmVjPChDb3JlQXNzaWdubWVudCwgUGFydHNPZjU3NjAwKT4AASBlbmRfaGludD0CAWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAQkWQFSZWNlaXZlIGluc3RydWN0aW9ucyBmcm9tIHRoZSBgRXh0ZXJuYWxCcm9rZXJPcmlnaW5gLCBkZXRhaWxpbmcgaG93IGEgc3BlY2lmaWMgY29yZSBpcyx0byBiZSB1c2VkLgAsUGFyYW1ldGVyczohAS1gb3JpZ2luYDogVGhlIGBFeHRlcm5hbEJyb2tlck9yaWdpbmAsIGFzc3VtZWQgdG8gYmUgdGhlIGNvcmV0aW1lIGNoYWluLqwtYGNvcmVgOiBUaGUgY29yZSB0aGF0IHNob3VsZCBiZSBzY2hlZHVsZWQu2C1gYmVnaW5gOiBUaGUgc3RhcnRpbmcgYmxvY2toZWlnaHQgb2YgdGhlIGluc3RydWN0aW9uLtQtYGFzc2lnbm1lbnRgOiBIb3cgdGhlIGJsb2Nrc3BhY2Ugc2hvdWxkIGJlIHV0aWxpc2VkLlkBLWBlbmRfaGludGA6IEFuIG9wdGlvbmFsIGhpbnQgYXMgdG8gd2hlbiB0aGlzIHBhcnRpY3VsYXIgc2V0IG9mIGluc3RydWN0aW9ucyB3aWxsIGVuZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuxQUAAALJBQDJBQAABAjNBdEFAM0FDDRwYWxsZXRfYnJva2VySGNvcmV0aW1lX2ludGVyZmFjZThDb3JlQXNzaWdubWVudAABDBBJZGxlAAAAEFBvb2wAAQAQVGFzawQAEAEYVGFza0lkAAIAANEFDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNEYXNzaWduZXJfY29yZXRpbWUwUGFydHNPZjU3NjAwAAAEAFUBAQx1MTYAANUFDChwYWxsZXRfeGNtGHBhbGxldBBDYWxsBARUAAE4EHNlbmQIARBkZXN0LQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARxtZXNzYWdl2QUBVEJveDxWZXJzaW9uZWRYY208KCk+PgAAADx0ZWxlcG9ydF9hc3NldHMQARBkZXN0LQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyeS0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRz2QYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0QAQx1MzIAAUgRAVRlbGVwb3J0IHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHNvbWUgZGVzdGluYXRpb24gY2hhaW4uAB0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZWggIGZlZSBvbiB0aGUgYGRlc3RgIGNoYWluLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLlxyZXNlcnZlX3RyYW5zZmVyX2Fzc2V0cxABEGRlc3QtAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5LQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgACeF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWwseGRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLgA9AWBhc3NldHNgIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gYW5kIG1heSBub3QgYmUgdGVsZXBvcnRhYmxlIHRvIGBkZXN0YC5NASAtIGBhc3NldHNgIGhhdmUgbG9jYWwgcmVzZXJ2ZTogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5VASAtIGBhc3NldHNgIGhhdmUgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG9ZASAgIGBkZXN0YCBjaGFpbiB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5khCAgIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLmEBIC0gYGFzc2V0c2AgaGF2ZSByZW1vdGUgcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMsIGZvcndhcmQgWENNIHRvIHJlc2VydmUgY2hhaW4gdG8gbW92ZWEBICAgcmVzZXJ2ZXMgZnJvbSB0aGlzIGNoYWluJ3MgU0EgdG8gYGRlc3RgIGNoYWluJ3MgU0EsIGFuZCBmb3J3YXJkIGFub3RoZXIgWENNIHRvIGBkZXN0YPQgICB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuAD0BKipUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ6IFVzZSBgbGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuHGV4ZWN1dGUIARxtZXNzYWdl3QYBtEJveDxWZXJzaW9uZWRYY208PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+PgABKG1heF93ZWlnaHQoARhXZWlnaHQAAyDQRXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSBmcm9tIGEgbG9jYWwsIHNpZ25lZCwgb3JpZ2luLgBNAUFuIGV2ZW50IGlzIGRlcG9zaXRlZCBpbmRpY2F0aW5nIHdoZXRoZXIgYG1zZ2AgY291bGQgYmUgZXhlY3V0ZWQgY29tcGxldGVseSBvciBvbmx5KHBhcnRpYWxseS4AXQFObyBtb3JlIHRoYW4gYG1heF93ZWlnaHRgIHdpbGwgYmUgdXNlZCBpbiBpdHMgYXR0ZW1wdGVkIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBsZXNzIHRoYW5BAXRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgdGhhdCB0aGUgbWVzc2FnZSBjb3VsZCB0YWtlIHRvIGJlIGV4ZWN1dGVkLCB0aGVuIG5vfGV4ZWN1dGlvbiBhdHRlbXB0IHdpbGwgYmUgbWFkZS5EZm9yY2VfeGNtX3ZlcnNpb24IASBsb2NhdGlvbvQBNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uEAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb249AgFIT3B0aW9uPFhjbVZlcnNpb24+AAUUWQFTZXQgYSBzYWZlIFhDTSB2ZXJzaW9uICh0aGUgdmVyc2lvbiB0aGF0IFhDTSBzaG91bGQgYmUgZW5jb2RlZCB3aXRoIGlmIHRoZSBtb3N0IHJlY2VudLR2ZXJzaW9uIGEgZGVzdGluYXRpb24gY2FuIGFjY2VwdCBpcyB1bmtub3duKS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi45AS0gYG1heWJlX3hjbV92ZXJzaW9uYDogVGhlIGRlZmF1bHQgWENNIGVuY29kaW5nIHZlcnNpb24sIG9yIGBOb25lYCB0byBkaXNhYmxlLnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbi0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAYQOQFBc2sgYSBsb2NhdGlvbiB0byBub3RpZnkgdXMgcmVnYXJkaW5nIHRoZWlyIFhDTSB2ZXJzaW9uIGFuZCBhbnkgY2hhbmdlcyB0byBpdC4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi5ZAS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIHNob3VsZCBzdWJzY3JpYmUgZm9yIFhDTSB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMugGZvcmNlX3Vuc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb24tAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAHGEkBUmVxdWlyZSB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBzaG91bGQgbm8gbG9uZ2VyIG5vdGlmeSB1cyByZWdhcmRpbmcgYW55IFhDTUB2ZXJzaW9uIGNoYW5nZXMuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uPQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgZm9yIFhDTSB2ZXJzaW9uqCAgbm90aWZpY2F0aW9ucyB3aGljaCB3ZSBubyBsb25nZXIgZGVzaXJlLnxsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzFAEQZGVzdC0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnktAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0jQYBLFdlaWdodExpbWl0AAh4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzFAEQZGVzdC0BAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnktAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0jQYBLFdlaWdodExpbWl0AAlIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5AZm9yY2Vfc3VzcGVuc2lvbgQBJHN1c3BlbmRlZCABEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3QtAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5LQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgABMHdlaWdodF9saW1pdI0GASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRz2QYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnktAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0LQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZQkHAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkDQcBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZQkHAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdNkFAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXSNBgEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtkFCAx4Y20wVmVyc2lvbmVkWGNtBCxSdW50aW1lQ2FsbAABDAhWMgQA3QUBUHYyOjpYY208UnVudGltZUNhbGw+AAIACFYzBAAtBgFQdjM6OlhjbTxSdW50aW1lQ2FsbD4AAwAIVjQEAJEGAVB2NDo6WGNtPFJ1bnRpbWVDYWxsPgAEAADdBQwMeGNtCHYyDFhjbQQsUnVudGltZUNhbGwAAAQA4QUBdFZlYzxJbnN0cnVjdGlvbjxSdW50aW1lQ2FsbD4+AADhBQAAAuUFAOUFDAx4Y20IdjIsSW5zdHJ1Y3Rpb24ELFJ1bnRpbWVDYWxsAAFwNFdpdGhkcmF3QXNzZXQEAOkFASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAOkFASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BADpBQEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZQwBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNlBQYBIFJlc3BvbnNlAAEobWF4X3dlaWdodCwBDHU2NAADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRz6QUBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnkxAQE0TXVsdGlMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c+kFASxNdWx0aUFzc2V0cwABEGRlc3QxAQE0TXVsdGlMb2NhdGlvbgABDHhjbd0FARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX3R5cGUVBgEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QsAQx1NjQAARBjYWxsGQYBaERvdWJsZUVuY29kZWQ8UnVudGltZUNhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXLUAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpl1AEMdTMyAAEwbWF4X2NhcGFjaXR51AEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnTUAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9y1AEMdTMyAAEYc2VuZGVy1AEMdTMyAAEkcmVjaXBpZW501AEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EADUBAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0MQEBNE11bHRpTG9jYXRpb24AAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0AAwAMERlcG9zaXRBc3NldAwBGGFzc2V0cx0GAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0c9QBDHUzMgABLGJlbmVmaWNpYXJ5MQEBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldBABGGFzc2V0cx0GAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0c9QBDHUzMgABEGRlc3QxAQE0TXVsdGlMb2NhdGlvbgABDHhjbd0FARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQIARBnaXZlHQYBQE11bHRpQXNzZXRGaWx0ZXIAARxyZWNlaXZl6QUBLE11bHRpQXNzZXRzAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzHQYBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlMQEBNE11bHRpTG9jYXRpb24AAQx4Y23dBQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzHQYBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0MQEBNE11bHRpTG9jYXRpb24AAQx4Y23dBQEcWGNtPCgpPgARADBRdWVyeUhvbGRpbmcQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0MQEBNE11bHRpTG9jYXRpb24AARhhc3NldHMdBgFATXVsdGlBc3NldEZpbHRlcgABTG1heF9yZXNwb25zZV93ZWlnaHQsAQx1NjQAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc/EFAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0KQYBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADdBQFAWGNtPFJ1bnRpbWVDYWxsPgAVACxTZXRBcHBlbmRpeAQA3QUBQFhjbTxSdW50aW1lQ2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRz6QUBLE11bHRpQXNzZXRzAAEYdGlja2V0MQEBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbAADpBRAMeGNtCHYyKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQA7QUBPFZlYzxNdWx0aUFzc2V0PgAA7QUAAALxBQDxBRAMeGNtCHYyKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWT1BQEcQXNzZXRJZAABDGZ1bvkFASxGdW5naWJpbGl0eQAA9QUQDHhjbQh2MihtdWx0aWFzc2V0HEFzc2V0SWQAAQggQ29uY3JldGUEADEBATRNdWx0aUxvY2F0aW9uAAAAIEFic3RyYWN0BAA4ARxWZWM8dTg+AAEAAPkFEAx4Y20IdjIobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQA5AEQdTEyOAAAACxOb25GdW5naWJsZQQA/QUBNEFzc2V0SW5zdGFuY2UAAQAA/QUQDHhjbQh2MihtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARwkVW5kZWZpbmVkAAAAFEluZGV4BADkARB1MTI4AAEAGEFycmF5NAQASAEcW3U4OyA0XQACABhBcnJheTgEAAEGARxbdTg7IDhdAAMAHEFycmF5MTYEAKgBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAEEJsb2IEADgBHFZlYzx1OD4ABgAAAQYAAAMIAAAACAAFBgwMeGNtCHYyIFJlc3BvbnNlAAEQEE51bGwAAAAYQXNzZXRzBADpBQEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAAJBgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAACQYEGE9wdGlvbgQEVAENBgEIEE5vbmUAAAAQU29tZQQADQYAAAEAAA0GAAAECBARBgARBhAMeGNtCHYyGHRyYWl0cxRFcnJvcgABaCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMARE11bHRpTG9jYXRpb25GdWxsAAQAaE11bHRpTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAMAEMdTY0ABUATFVuaGFuZGxlZFhjbVZlcnNpb24AFgBIV2VpZ2h0TGltaXRSZWFjaGVkBAAwARhXZWlnaHQAFwAcQmFycmllcgAYAExXZWlnaHROb3RDb21wdXRhYmxlABkAABUGDAx4Y20IdjIoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAABkGDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZDgBHFZlYzx1OD4AAB0GEAx4Y20IdjIobXVsdGlhc3NldEBNdWx0aUFzc2V0RmlsdGVyAAEIIERlZmluaXRlBADpBQEsTXVsdGlBc3NldHMAAAAQV2lsZAQAIQYBOFdpbGRNdWx0aUFzc2V0AAEAACEGEAx4Y20IdjIobXVsdGlhc3NldDhXaWxkTXVsdGlBc3NldAABCAxBbGwAAAAUQWxsT2YIAQhpZPUFARxBc3NldElkAAEMZnVuJQYBPFdpbGRGdW5naWJpbGl0eQABAAAlBhAMeGNtCHYyKG11bHRpYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAACkGDAx4Y20IdjIsV2VpZ2h0TGltaXQAAQgkVW5saW1pdGVkAAAAHExpbWl0ZWQEACwBDHU2NAABAAAtBgwMeGNtCHYzDFhjbQQQQ2FsbAAABAAxBgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAMQYAAAI1BgA1BgwMeGNtCHYzLEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEADkGASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEADkGASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAA5BgEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABIHJlc3BvbnNlTQYBIFJlc3BvbnNlAAEobWF4X3dlaWdodCgBGFdlaWdodAABHHF1ZXJpZXJ1BgFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHM5BgEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyecgBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHM5BgEsTXVsdGlBc3NldHMAARBkZXN0yAE0TXVsdGlMb2NhdGlvbgABDHhjbS0GARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmR5BgEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsGQYBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlctQBDHUzMgABQG1heF9tZXNzYWdlX3NpemXUAQx1MzIAATBtYXhfY2FwYWNpdHnUAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudNQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3LUAQx1MzIAARhzZW5kZXLUAQx1MzIAASRyZWNpcGllbnTUAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAzAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAB9BgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzgQYBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyecgBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c4EGAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdMgBNE11bHRpTG9jYXRpb24AAQx4Y20tBgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZYEGAUBNdWx0aUFzc2V0RmlsdGVyAAEQd2FudDkGASxNdWx0aUFzc2V0cwABHG1heGltYWwgARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzgQYBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlyAE0TXVsdGlMb2NhdGlvbgABDHhjbS0GARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOBBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3TIATRNdWx0aUxvY2F0aW9uAAEMeGNtLQYBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm99BgFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHOBBgFATXVsdGlBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzQQYBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXSNBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAC0GASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAC0GASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzOQYBLE11bHRpQXNzZXRzAAEYdGlja2V0yAE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAOQYBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAA5BgEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAB1BgFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABRBgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAG0GAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm99BgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXjUAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9y1AEMdTMyAAE8bWluX2NyYXRlX21pbm9y1AEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAB9BgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EANABIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr3AEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27MAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y20tBgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldEEGAShNdWx0aUFzc2V0AAEgdW5sb2NrZXLIATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXRBBgEoTXVsdGlBc3NldAABGHRhcmdldMgBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldEEGAShNdWx0aUFzc2V0AAEUb3duZXLIATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldEEGAShNdWx0aUFzc2V0AAEYbG9ja2VyyAE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAMgBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0jQYBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2ludQYBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAAA5BhAMeGNtCHYzKG11bHRpYXNzZXQsTXVsdGlBc3NldHMAAAQAPQYBPFZlYzxNdWx0aUFzc2V0PgAAPQYAAAJBBgBBBhAMeGNtCHYzKG11bHRpYXNzZXQoTXVsdGlBc3NldAAACAEIaWTwARxBc3NldElkAAEMZnVuRQYBLEZ1bmdpYmlsaXR5AABFBhAMeGNtCHYzKG11bHRpYXNzZXQsRnVuZ2liaWxpdHkAAQggRnVuZ2libGUEAOQBEHUxMjgAAAAsTm9uRnVuZ2libGUEAEkGATRBc3NldEluc3RhbmNlAAEAAEkGEAx4Y20IdjMobXVsdGlhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQA5AEQdTEyOAABABhBcnJheTQEAEgBHFt1ODsgNF0AAgAYQXJyYXk4BAABBgEcW3U4OyA4XQADABxBcnJheTE2BACoASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFAABNBgwMeGNtCHYzIFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAA5BgEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BABRBgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAEAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAF0GAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAbQYBOE1heWJlRXJyb3JDb2RlAAUAAFEGBBhPcHRpb24EBFQBVQYBCBBOb25lAAAAEFNvbWUEAFUGAAABAABVBgAABAgQWQYAWQYQDHhjbQh2Mxh0cmFpdHMURXJyb3IAAaAgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAMAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIATFVuaGFuZGxlZFhjbVZlcnNpb24AIwBIV2VpZ2h0TGltaXRSZWFjaGVkBAAoARhXZWlnaHQAJAAcQmFycmllcgAlAExXZWlnaHROb3RDb21wdXRhYmxlACYAREV4Y2VlZHNTdGFja0xpbWl0ACcAAF0GDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBYQYEUwAABABpBgEYVmVjPFQ+AABhBgwMeGNtCHYzKFBhbGxldEluZm8AABgBFGluZGV41AEMdTMyAAEQbmFtZWUGAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1lZQYBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3LUAQx1MzIAARRtaW5vctQBDHUzMgABFHBhdGNo1AEMdTMyAABlBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAGkGAAACYQYAbQYMDHhjbQh2MzhNYXliZUVycm9yQ29kZQABDBxTdWNjZXNzAAAAFEVycm9yBABxBgGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAQA4VHJ1bmNhdGVkRXJyb3IEAHEGAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgACAABxBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAHUGBBhPcHRpb24EBFQByAEIEE5vbmUAAAAQU29tZQQAyAAAAQAAeQYMDHhjbQh2MyhPcmlnaW5LaW5kAAEQGE5hdGl2ZQAAAEBTb3ZlcmVpZ25BY2NvdW50AAEAJFN1cGVydXNlcgACAAxYY20AAwAAfQYMDHhjbQh2M0RRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb27IATRNdWx0aUxvY2F0aW9uAAEgcXVlcnlfaWQsARxRdWVyeUlkAAEobWF4X3dlaWdodCgBGFdlaWdodAAAgQYQDHhjbQh2MyhtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEADkGASxNdWx0aUFzc2V0cwAAABBXaWxkBACFBgE4V2lsZE11bHRpQXNzZXQAAQAAhQYQDHhjbQh2MyhtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlk8AEcQXNzZXRJZAABDGZ1bokGATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQA1AEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlk8AEcQXNzZXRJZAABDGZ1bokGATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudNQBDHUzMgADAACJBhAMeGNtCHYzKG11bHRpYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAAI0GDAx4Y20IdjMsV2VpZ2h0TGltaXQAAQgkVW5saW1pdGVkAAAAHExpbWl0ZWQEACgBGFdlaWdodAABAACRBgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEAJUGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AACVBgAAApkGAJkGDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BACdBgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAnQYBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BACdBgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZbEGASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyxQYBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c50GARhBc3NldHMAASxiZW5lZmljaWFyefQBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRznQYBGEFzc2V0cwABEGRlc3T0ASBMb2NhdGlvbgABDHhjbZEGARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmR5BgEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsGQYBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlctQBDHUzMgABQG1heF9tZXNzYWdlX3NpemXUAQx1MzIAATBtYXhfY2FwYWNpdHnUAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudNQBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3LUAQx1MzIAARhzZW5kZXLUAQx1MzIAASRyZWNpcGllbnTUAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQA+AFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAyQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c80GASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ59AEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c80GASxBc3NldEZpbHRlcgABEGRlc3T0ASBMb2NhdGlvbgABDHhjbZEGARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlzQYBLEFzc2V0RmlsdGVyAAEQd2FudJ0GARhBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c80GASxBc3NldEZpbHRlcgABHHJlc2VydmX0ASBMb2NhdGlvbgABDHhjbZEGARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPNBgEsQXNzZXRGaWx0ZXIAARBkZXN09AEgTG9jYXRpb24AAQx4Y22RBgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb8kGAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c80GASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzpQYBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0jQYBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACRBgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACRBgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c50GARhBc3NldHMAARh0aWNrZXT0ASBMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAnQYBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAnQYBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAMUGAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBABRBgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAG0GAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/JBgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXjUAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9y1AEMdTMyAAE8bWluX2NyYXRlX21pbm9y1AEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBADJBgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAAEBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29yawkBASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbvgBQEludGVyaW9yTG9jYXRpb24AAQx4Y22RBgEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldKUGARRBc3NldAABIHVubG9ja2Vy9AEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldKUGARRBc3NldAABGHRhcmdldPQBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXSlBgEUQXNzZXQAARRvd25lcvQBIExvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldKUGARRBc3NldAABGGxvY2tlcvQBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQA9AEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0jQYBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luxQYBQE9wdGlvbjxMb2NhdGlvbj4ALwAAnQYQLHN0YWdpbmdfeGNtCHY0FGFzc2V0GEFzc2V0cwAABAChBgEoVmVjPEFzc2V0PgAAoQYAAAKlBgClBhAsc3RhZ2luZ194Y20IdjQUYXNzZXQUQXNzZXQAAAgBCGlkKQEBHEFzc2V0SWQAAQxmdW6pBgEsRnVuZ2liaWxpdHkAAKkGECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQA5AEQdTEyOAAAACxOb25GdW5naWJsZQQArQYBNEFzc2V0SW5zdGFuY2UAAQAArQYQLHN0YWdpbmdfeGNtCHY0FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADkARB1MTI4AAEAGEFycmF5NAQASAEcW3U4OyA0XQACABhBcnJheTgEAAEGARxbdTg7IDhdAAMAHEFycmF5MTYEAKgBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAALEGDCxzdGFnaW5nX3hjbQh2NCBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAnQYBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAFEGAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAQAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAtQYBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BABtBgE4TWF5YmVFcnJvckNvZGUABQAAtQYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG5BgRTAAAEAMEGARhWZWM8VD4AALkGDCxzdGFnaW5nX3hjbQh2NChQYWxsZXRJbmZvAAAYARRpbmRleNQBDHUzMgABEG5hbWW9BgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZb0GAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9y1AEMdTMyAAEUbWlub3LUAQx1MzIAARRwYXRjaNQBDHUzMgAAvQYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AADBBgAAArkGAMUGBBhPcHRpb24EBFQB9AEIEE5vbmUAAAAQU29tZQQA9AAAAQAAyQYMLHN0YWdpbmdfeGNtCHY0RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbvQBIExvY2F0aW9uAAEgcXVlcnlfaWQsARxRdWVyeUlkAAEobWF4X3dlaWdodCgBGFdlaWdodAAAzQYQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBACdBgEYQXNzZXRzAAAAEFdpbGQEANEGASRXaWxkQXNzZXQAAQAA0QYQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZCkBARxBc3NldElkAAEMZnVu1QYBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBADUAQx1MzIAAgAwQWxsT2ZDb3VudGVkDAEIaWQpAQEcQXNzZXRJZAABDGZ1btUGATxXaWxkRnVuZ2liaWxpdHkAARRjb3VudNQBDHUzMgADAADVBhAsc3RhZ2luZ194Y20IdjQUYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAANkGCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYyBADpBQE8djI6Ok11bHRpQXNzZXRzAAEACFYzBAA5BgE8djM6Ok11bHRpQXNzZXRzAAMACFY0BACdBgEodjQ6OkFzc2V0cwAEAADdBggMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjIEAOEGAVB2Mjo6WGNtPFJ1bnRpbWVDYWxsPgACAAhWMwQA8QYBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BAD9BgFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAA4QYMDHhjbQh2MgxYY20ELFJ1bnRpbWVDYWxsAAAEAOUGAXRWZWM8SW5zdHJ1Y3Rpb248UnVudGltZUNhbGw+PgAA5QYAAALpBgDpBgwMeGNtCHYyLEluc3RydWN0aW9uBCxSdW50aW1lQ2FsbAABcDRXaXRoZHJhd0Fzc2V0BADpBQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBADpBQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQA6QUBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZQUGASBSZXNwb25zZQABKG1heF93ZWlnaHQsAQx1NjQAAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c+kFASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5MQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHPpBQEsTXVsdGlBc3NldHMAARBkZXN0MQEBNE11bHRpTG9jYXRpb24AAQx4Y23dBQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl90eXBlFQYBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0LAEMdTY0AAEQY2FsbO0GAWhEb3VibGVFbmNvZGVkPFJ1bnRpbWVDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVy1AEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZdQBDHUzMgABMG1heF9jYXBhY2l0edQBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW501AEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvctQBDHUzMgABGHNlbmRlctQBDHUzMgABJHJlY2lwaWVudNQBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAA1AQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yDAEgcXVlcnlfaWQsARxRdWVyeUlkAAEQZGVzdDEBATRNdWx0aUxvY2F0aW9uAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAAMADBEZXBvc2l0QXNzZXQMARhhc3NldHMdBgFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHPUAQx1MzIAASxiZW5lZmljaWFyeTEBATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQQARhhc3NldHMdBgFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHPUAQx1MzIAARBkZXN0MQEBNE11bHRpTG9jYXRpb24AAQx4Y23dBQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0CAEQZ2l2ZR0GAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVjZWl2ZekFASxNdWx0aUFzc2V0cwAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cx0GAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZTEBATRNdWx0aUxvY2F0aW9uAAEMeGNt3QUBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0cx0GAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdDEBATRNdWx0aUxvY2F0aW9uAAEMeGNt3QUBHFhjbTwoKT4AEQAwUXVlcnlIb2xkaW5nEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEQZGVzdDEBATRNdWx0aUxvY2F0aW9uAAEYYXNzZXRzHQYBQE11bHRpQXNzZXRGaWx0ZXIAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0ABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPxBQEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdCkGASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA4QYBQFhjbTxSdW50aW1lQ2FsbD4AFQAsU2V0QXBwZW5kaXgEAOEGAUBYY208UnVudGltZUNhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c+kFASxNdWx0aUFzc2V0cwABGHRpY2tldDEBATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAA7QYMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkOAEcVmVjPHU4PgAA8QYMDHhjbQh2MwxYY20EEENhbGwAAAQA9QYBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAPUGAAAC+QYA+QYMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAA5BgEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAA5BgEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAOQYBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZU0GASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVydQYBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzOQYBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnnIATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzOQYBLE11bHRpQXNzZXRzAAEQZGVzdMgBNE11bHRpTG9jYXRpb24AAQx4Y20tBgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5keQYBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbO0GAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXLUAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpl1AEMdTMyAAEwbWF4X2NhcGFjaXR51AEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnTUAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9y1AEMdTMyAAEYc2VuZGVy1AEMdTMyAAEkcmVjaXBpZW501AEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAMwBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAfQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c4EGAUBNdWx0aUFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnnIATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHOBBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3TIATRNdWx0aUxvY2F0aW9uAAEMeGNtLQYBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWBBgFATXVsdGlBc3NldEZpbHRlcgABEHdhbnQ5BgEsTXVsdGlBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c4EGAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZcgBNE11bHRpTG9jYXRpb24AAQx4Y20tBgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzgQYBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0yAE0TXVsdGlMb2NhdGlvbgABDHhjbS0GARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvfQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzgQYBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc0EGAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0jQYBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADxBgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADxBgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0czkGASxNdWx0aUFzc2V0cwABGHRpY2tldMgBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEADkGASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQAOQYBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAdQYBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAUQYBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABtBgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvfQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV41AEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvctQBDHUzMgABPG1pbl9jcmF0ZV9taW5vctQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAfQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADQASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya9wBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uzAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNtLQYBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXRBBgEoTXVsdGlBc3NldAABIHVubG9ja2VyyAE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0QQYBKE11bHRpQXNzZXQAARh0YXJnZXTIATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXRBBgEoTXVsdGlBc3NldAABFG93bmVyyAE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXRBBgEoTXVsdGlBc3NldAABGGxvY2tlcsgBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXcgARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADIATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdI0GASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbnUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAA/QYMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABAABBwFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAAQcAAAIFBwAFBwwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAnQYBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAJ0GARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAnQYBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2WxBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcsUGAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHOdBgEYQXNzZXRzAAEsYmVuZWZpY2lhcnn0ASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c50GARhBc3NldHMAARBkZXN09AEgTG9jYXRpb24AAQx4Y22RBgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5keQYBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbO0GAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXLUAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXpl1AEMdTMyAAEwbWF4X2NhcGFjaXR51AEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnTUAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9y1AEMdTMyAAEYc2VuZGVy1AEMdTMyAAEkcmVjaXBpZW501AEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAPgBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAMkGAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHPNBgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyefQBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPNBgEsQXNzZXRGaWx0ZXIAARBkZXN09AEgTG9jYXRpb24AAQx4Y22RBgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2Zc0GASxBc3NldEZpbHRlcgABEHdhbnSdBgEYQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPNBgEsQXNzZXRGaWx0ZXIAARxyZXNlcnZl9AEgTG9jYXRpb24AAQx4Y22RBgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzzQYBLEFzc2V0RmlsdGVyAAEQZGVzdPQBIExvY2F0aW9uAAEMeGNtkQYBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm/JBgFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHPNBgEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc6UGARRBc3NldAABMHdlaWdodF9saW1pdI0GASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA/QYBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQA/QYBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHOdBgEYQXNzZXRzAAEYdGlja2V09AEgTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAJ0GARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAJ0GARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADFBgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAUQYBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABtBgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvyQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV41AEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvctQBDHUzMgABPG1pbl9jcmF0ZV9taW5vctQBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAyQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAABAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmsJAQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb274AUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtkQYBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXSlBgEUQXNzZXQAASB1bmxvY2tlcvQBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXSlBgEUQXNzZXQAARh0YXJnZXT0ASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0pQYBFEFzc2V0AAEUb3duZXL0ASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXSlBgEUQXNzZXQAARhsb2NrZXL0ASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAPQBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdI0GASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbsUGAUBPcHRpb248TG9jYXRpb24+AC8AAAkHEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQALQEBRFZlcnNpb25lZExvY2F0aW9uAAMAAA0HCAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABCAhWMwQA8AEsdjM6OkFzc2V0SWQAAwAIVjQEACkBASx2NDo6QXNzZXRJZAAEAAARBwxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0EENhbGwEBFQAAQgkcmVhcF9wYWdlCAE4bWVzc2FnZV9vcmlnaW4VBwFITWVzc2FnZU9yaWdpbk9mPFQ+AAEocGFnZV9pbmRleBABJFBhZ2VJbmRleAAABD0BUmVtb3ZlIGEgcGFnZSB3aGljaCBoYXMgbm8gbW9yZSBtZXNzYWdlcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIG9yIGlzIHN0YWxlLkhleGVjdXRlX292ZXJ3ZWlnaHQQAThtZXNzYWdlX29yaWdpbhUHAUhNZXNzYWdlT3JpZ2luT2Y8VD4AARBwYWdlEAEkUGFnZUluZGV4AAEUaW5kZXgQARxUOjpTaXplAAEwd2VpZ2h0X2xpbWl0KAEYV2VpZ2h0AAE0eEV4ZWN1dGUgYW4gb3ZlcndlaWdodCBtZXNzYWdlLgBNAVRlbXBvcmFyeSBwcm9jZXNzaW5nIGVycm9ycyB3aWxsIGJlIHByb3BhZ2F0ZWQgd2hlcmVhcyBwZXJtYW5lbnQgZXJyb3JzIGFyZSB0cmVhdGVkVGFzIHN1Y2Nlc3MgY29uZGl0aW9uLgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC41AS0gYG1lc3NhZ2Vfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGFycml2ZWQuPQEtIGBwYWdlYDogVGhlIHBhZ2UgaW4gdGhlIHF1ZXVlIGluIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGlzIHNpdHRpbmcuCQEtIGBpbmRleGA6IFRoZSBpbmRleCBpbnRvIHRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZC5ZAS0gYHdlaWdodF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgYWxsb3dlZCB0byBiZSBjb25zdW1lZCBpbiB0aGUgZXhlY3V0aW9uRCAgb2YgdGhlIG1lc3NhZ2UuAPRCZW5jaG1hcmsgY29tcGxleGl0eSBjb25zaWRlcmF0aW9uczogTyhpbmRleCArIHdlaWdodF9saW1pdCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhUHDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkaW5jbHVzaW9uWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQQMVW1wBAAZBwEoVW1wUXVldWVJZAAAAAAZBwxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJGluY2x1c2lvbihVbXBRdWV1ZUlkAAEEEFBhcmEEAGkCARhQYXJhSWQAAAAAHQcMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBBDYWxsBARUAAEMGGNyZWF0ZQgBKGFzc2V0X2tpbmTEAURCb3g8VDo6QXNzZXRLaW5kPgABEHJhdGUhBwEkRml4ZWRVMTI4AAAQDQFJbml0aWFsaXplIGEgY29udmVyc2lvbiByYXRlIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQuADQjIyBDb21wbGV4aXR5GC0gTygxKRh1cGRhdGUIAShhc3NldF9raW5kxAFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRlIQcBJEZpeGVkVTEyOAABEAUBVXBkYXRlIHRoZSBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgZm9yIHRoZSBnaXZlbiBhc3NldC4ANCMjIENvbXBsZXhpdHkYLSBPKDEpGHJlbW92ZQQBKGFzc2V0X2tpbmTEAURCb3g8VDo6QXNzZXRLaW5kPgACECUBUmVtb3ZlIGFuIGV4aXN0aW5nIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuIQcMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEABgBEHUxMjgAACUHDDBwYWxsZXRfYmVlZnkYcGFsbGV0EENhbGwEBFQAAQxMcmVwb3J0X2VxdWl2b2NhdGlvbggBSGVxdWl2b2NhdGlvbl9wcm9vZikHAY0BQm94PERvdWJsZVZvdGluZ1Byb29mPEJsb2NrTnVtYmVyRm9yPFQ+LCBUOjpCZWVmeUlkLDxUOjpCZWVmeUlkCmFzIFJ1bnRpbWVBcHBQdWJsaWM+OjpTaWduYXR1cmUsPiw+AAE8a2V5X293bmVyX3Byb29mhQEBQFQ6OktleU93bmVyUHJvb2YAABAJAVJlcG9ydCB2b3RlciBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZfRlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29m+GFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlRHdpbGwgYmUgcmVwb3J0ZWQucHJlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2YpBwGNAUJveDxEb3VibGVWb3RpbmdQcm9vZjxCbG9ja051bWJlckZvcjxUPiwgVDo6QmVlZnlJZCw8VDo6QmVlZnlJZAphcyBSdW50aW1lQXBwUHVibGljPjo6U2lnbmF0dXJlLD4sPgABPGtleV9vd25lcl9wcm9vZoUBAUBUOjpLZXlPd25lclByb29mAAEkCQFSZXBvcnQgdm90ZXIgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGX0ZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZvhhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZUR3aWxsIGJlIHJlcG9ydGVkLgANAVRoaXMgZXh0cmluc2ljIG11c3QgYmUgY2FsbGVkIHVuc2lnbmVkIGFuZCBpdCBpcyBleHBlY3RlZCB0aGF0IG9ubHkVAWJsb2NrIGF1dGhvcnMgd2lsbCBjYWxsIGl0ICh2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgKSwgYXMgc3VjaBUBaWYgdGhlIGJsb2NrIGF1dGhvciBpcyBkZWZpbmVkIGl0IHdpbGwgYmUgZGVmaW5lZCBhcyB0aGUgZXF1aXZvY2F0aW9uJHJlcG9ydGVyLjxzZXRfbmV3X2dlbmVzaXMEATxkZWxheV9pbl9ibG9ja3MQAURCbG9ja051bWJlckZvcjxUPgACEF0BUmVzZXQgQkVFRlkgY29uc2Vuc3VzIGJ5IHNldHRpbmcgYSBuZXcgQkVFRlkgZ2VuZXNpcyBhdCBgZGVsYXlfaW5fYmxvY2tzYCBibG9ja3MgaW4gdGhlHGZ1dHVyZS4AtE5vdGU6IGBkZWxheV9pbl9ibG9ja3NgIGhhcyB0byBiZSBhdCBsZWFzdCAxLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4pBwhIc3BfY29uc2Vuc3VzX2JlZWZ5RERvdWJsZVZvdGluZ1Byb29mDBhOdW1iZXIBEAhJZAEFAiRTaWduYXR1cmUBLQcACAEUZmlyc3QxBwGIVm90ZU1lc3NhZ2U8TnVtYmVyLCBJZCwgU2lnbmF0dXJlPgABGHNlY29uZDEHAYhWb3RlTWVzc2FnZTxOdW1iZXIsIElkLCBTaWduYXR1cmU+AAAtBwxIc3BfY29uc2Vuc3VzX2JlZWZ5MGVjZHNhX2NyeXB0byRTaWduYXR1cmUAAAQAvQIBQGVjZHNhOjpTaWduYXR1cmUAADEHCEhzcF9jb25zZW5zdXNfYmVlZnksVm90ZU1lc3NhZ2UMGE51bWJlcgEQCElkAQUCJFNpZ25hdHVyZQEtBwAMAShjb21taXRtZW50NQcBSENvbW1pdG1lbnQ8TnVtYmVyPgABCGlkBQIBCElkAAEkc2lnbmF0dXJlLQcBJFNpZ25hdHVyZQAANQcMSHNwX2NvbnNlbnN1c19iZWVmeShjb21taXRtZW50KENvbW1pdG1lbnQEMFRCbG9ja051bWJlcgEQAAwBHHBheWxvYWQ5BwEcUGF5bG9hZAABMGJsb2NrX251bWJlchABMFRCbG9ja051bWJlcgABQHZhbGlkYXRvcl9zZXRfaWQwAThWYWxpZGF0b3JTZXRJZAAAOQcMSHNwX2NvbnNlbnN1c19iZWVmeRxwYXlsb2FkHFBheWxvYWQAAAQAPQcBeFZlYzwoQmVlZnlQYXlsb2FkSWQsIFZlYzx1OD4pPgAAPQcAAAJBBwBBBwAABAhFBzgARQcAAAMCAAAACABJBwwoc3BfcnVudGltZRh0cmFpdHMsQmxha2VUd28yNTYAAAAATQcMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AABRBwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzFFRhbGx5CBRWb3RlcwEYFFRvdGFsAAAMARBheWVzGAEUVm90ZXMAARBuYXlzGAEUVm90ZXMAARxzdXBwb3J0GAEUVm90ZXMAAFUHDGBwYWxsZXRfcmFua2VkX2NvbGxlY3RpdmUYcGFsbGV0FEV2ZW50CARUAARJAAEULE1lbWJlckFkZGVkBAEMd2hvAAEwVDo6QWNjb3VudElkAAAEeEEgbWVtYmVyIGB3aG9gIGhhcyBiZWVuIGFkZGVkLixSYW5rQ2hhbmdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABEHJhbmtVAQEQUmFuawABBPRUaGUgbWVtYmVyIGB3aG9gc2UgcmFuayBoYXMgYmVlbiBjaGFuZ2VkIHRvIHRoZSBnaXZlbiBgcmFua2AuNE1lbWJlclJlbW92ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARByYW5rVQEBEFJhbmsAAgQZAVRoZSBtZW1iZXIgYHdob2Agb2YgZ2l2ZW4gYHJhbmtgIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgY29sbGVjdGl2ZS4UVm90ZWQQAQx3aG8AATBUOjpBY2NvdW50SWQAARBwb2xsEAFEUG9sbEluZGV4T2Y8VCwgST4AARB2b3RlWQcBKFZvdGVSZWNvcmQAARR0YWxseV0HATRUYWxseU9mPFQsIEk+AAMIVQFUaGUgbWVtYmVyIGB3aG9gIGhhcyB2b3RlZCBmb3IgdGhlIGBwb2xsYCB3aXRoIHRoZSBnaXZlbiBgdm90ZWAgbGVhZGluZyB0byBhbiB1cGRhdGVkIGB0YWxseWAuPE1lbWJlckV4Y2hhbmdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABHG5ld193aG8AATBUOjpBY2NvdW50SWQABATwVGhlIG1lbWJlciBgd2hvYCBoYWQgdGhlaXIgYEFjY291bnRJZGAgY2hhbmdlZCB0byBgbmV3X3dob2AuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0WQcIYHBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZShWb3RlUmVjb3JkAAEIDEF5ZQQAEAEUVm90ZXMAAAAMTmF5BAAQARRWb3RlcwABAABdBwhgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlFFRhbGx5DARUAARJAARNAAAMASRiYXJlX2F5ZXMQASxNZW1iZXJJbmRleAABEGF5ZXMQARRWb3RlcwABEG5heXMQARRWb3RlcwAAYQcMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEV2ZW50CARUAARJAAFAJFN1Ym1pdHRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRyYWNrVQEBPFRyYWNrSWRPZjxULCBJPgQlAVRoZSB0cmFjayAoYW5kIGJ5IGV4dGVuc2lvbiBwcm9wb3NhbCBkaXNwYXRjaCBvcmlnaW4pIG9mIHRoaXMgcmVmZXJlbmR1bS4BIHByb3Bvc2FsWQEBTEJvdW5kZWRDYWxsT2Y8VCwgST4EgFRoZSBwcm9wb3NhbCBmb3IgdGhlIHJlZmVyZW5kdW0uAASAQSByZWZlcmVuZHVtIGhhcyBiZWVuIHN1Ym1pdHRlZC5URGVjaXNpb25EZXBvc2l0UGxhY2VkDAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4BBJRUaGUgZGVjaXNpb24gZGVwb3NpdCBoYXMgYmVlbiBwbGFjZWQuXERlY2lzaW9uRGVwb3NpdFJlZnVuZGVkDAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4CBJxUaGUgZGVjaXNpb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC44RGVwb3NpdFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnQYATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgMEbEEgZGVwb3NpdCBoYXMgYmVlbiBzbGFzaGVkLjxEZWNpc2lvblN0YXJ0ZWQQARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFja1UBATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbFkBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgEUdGFsbHldBwEgVDo6VGFsbHkEuFRoZSBjdXJyZW50IHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4EBLxBIHJlZmVyZW5kdW0gaGFzIG1vdmVkIGludG8gdGhlIGRlY2lkaW5nIHBoYXNlLjhDb25maXJtU3RhcnRlZAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4FADhDb25maXJtQWJvcnRlZAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4GACRDb25maXJtZWQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseV0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4HBCEBQSByZWZlcmVuZHVtIGhhcyBlbmRlZCBpdHMgY29uZmlybWF0aW9uIHBoYXNlIGFuZCBpcyByZWFkeSBmb3IgYXBwcm92YWwuIEFwcHJvdmVkBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLggEDQFBIHJlZmVyZW5kdW0gaGFzIGJlZW4gYXBwcm92ZWQgYW5kIGl0cyBwcm9wb3NhbCBoYXMgYmVlbiBzY2hlZHVsZWQuIFJlamVjdGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHldBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCQSsQSBwcm9wb3NhbCBoYXMgYmVlbiByZWplY3RlZCBieSByZWZlcmVuZHVtLiBUaW1lZE91dAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5XQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgoE2EEgcmVmZXJlbmR1bSBoYXMgYmVlbiB0aW1lZCBvdXQgd2l0aG91dCBiZWluZyBkZWNpZGVkLiRDYW5jZWxsZWQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseV0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4LBIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2FuY2VsbGVkLhhLaWxsZWQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseV0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4MBHRBIHJlZmVyZW5kdW0gaGFzIGJlZW4ga2lsbGVkLmRTdWJtaXNzaW9uRGVwb3NpdFJlZnVuZGVkDAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4NBKRUaGUgc3VibWlzc2lvbiBkZXBvc2l0IGhhcyBiZWVuIHJlZnVuZGVkLixNZXRhZGF0YVNldAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BEGhhc2g0ARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg4EnE1ldGFkYXRhIGZvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gc2V0LjxNZXRhZGF0YUNsZWFyZWQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoNAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4PBKxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0ZQcMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0FEV2ZW50BARUAAEMPENhbGxXaGl0ZWxpc3RlZAQBJGNhbGxfaGFzaDQBHFQ6Okhhc2gAAABYV2hpdGVsaXN0ZWRDYWxsUmVtb3ZlZAQBJGNhbGxfaGFzaDQBHFQ6Okhhc2gAAQBkV2hpdGVsaXN0ZWRDYWxsRGlzcGF0Y2hlZAgBJGNhbGxfaGFzaDQBHFQ6Okhhc2gAARhyZXN1bHRpBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRpBwQYUmVzdWx0CARUAW0HBEUBdQcBCAhPawQAbQcAAAAADEVycgQAdQcAAAEAAG0HDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBvc3REaXNwYXRjaEluZm8AAAgBNGFjdHVhbF93ZWlnaHRxBwE4T3B0aW9uPFdlaWdodD4AASBwYXlzX2ZlZWQBEFBheXMAAHEHBBhPcHRpb24EBFQBKAEIEE5vbmUAAAAQU29tZQQAKAAAAQAAdQcIKHNwX3J1bnRpbWVkRGlzcGF0Y2hFcnJvcldpdGhQb3N0SW5mbwQQSW5mbwFtBwAIASRwb3N0X2luZm9tBwEQSW5mbwABFGVycm9yaAE0RGlzcGF0Y2hFcnJvcgAAeQcMRHBhbGxldF9wYXJhbWV0ZXJzGHBhbGxldBRFdmVudAQEVAABBBxVcGRhdGVkDAEMa2V5fQcBxDxUOjpSdW50aW1lUGFyYW1ldGVycyBhcyBBZ2dyZWdhdGVkS2V5VmFsdWU+OjpLZXkEZFRoZSBrZXkgdGhhdCB3YXMgdXBkYXRlZC4BJG9sZF92YWx1ZYUHAexPcHRpb248PFQ6OlJ1bnRpbWVQYXJhbWV0ZXJzIGFzIEFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlPgR8VGhlIG9sZCB2YWx1ZSBiZWZvcmUgdGhpcyBjYWxsLgEkbmV3X3ZhbHVlhQcB7E9wdGlvbjw8VDo6UnVudGltZVBhcmFtZXRlcnMgYXMgQWdncmVnYXRlZEtleVZhbHVlPjo6VmFsdWU+BHhUaGUgbmV3IHZhbHVlIGFmdGVyIHRoaXMgY2FsbC4ADFBBIFBhcmFtZXRlciB3YXMgc2V0LgC8SXMgYWxzbyBlbWl0dGVkIHdoZW4gdGhlIHZhbHVlIHdhcyBub3QgY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR9BwhYc3RhZ2luZ19rdXNhbWFfcnVudGltZVBSdW50aW1lUGFyYW1ldGVyc0tleQABBCRJbmZsYXRpb24EAIEHAakBPGR5bmFtaWNfcGFyYW1zOjppbmZsYXRpb246OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OktleQAAAACBBxBYc3RhZ2luZ19rdXNhbWFfcnVudGltZThkeW5hbWljX3BhcmFtcyRpbmZsYXRpb240UGFyYW1ldGVyc0tleQABFDBNaW5JbmZsYXRpb24EAJUCATBNaW5JbmZsYXRpb24AAAAwTWF4SW5mbGF0aW9uBAChAgEwTWF4SW5mbGF0aW9uAAEAKElkZWFsU3Rha2UEAKUCAShJZGVhbFN0YWtlAAIAHEZhbGxvZmYEAKkCARxGYWxsb2ZmAAMAPFVzZUF1Y3Rpb25TbG90cwQArQIBPFVzZUF1Y3Rpb25TbG90cwAEAACFBwQYT3B0aW9uBARUAYkHAQgQTm9uZQAAABBTb21lBACJBwAAAQAAiQcIWHN0YWdpbmdfa3VzYW1hX3J1bnRpbWVYUnVudGltZVBhcmFtZXRlcnNWYWx1ZQABBCRJbmZsYXRpb24EAI0HAbEBPGR5bmFtaWNfcGFyYW1zOjppbmZsYXRpb246OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlAAAAAI0HEFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lOGR5bmFtaWNfcGFyYW1zJGluZmxhdGlvbjxQYXJhbWV0ZXJzVmFsdWUAARQwTWluSW5mbGF0aW9uBACdAgEsUGVycXVpbnRpbGwAAAAwTWF4SW5mbGF0aW9uBACdAgEsUGVycXVpbnRpbGwAAQAoSWRlYWxTdGFrZQQAnQIBLFBlcnF1aW50aWxsAAIAHEZhbGxvZmYEAJ0CASxQZXJxdWludGlsbAADADxVc2VBdWN0aW9uU2xvdHMEACABEGJvb2wABAAAkQcQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uGGNsYWltcxhwYWxsZXQURXZlbnQEBFQAAQQcQ2xhaW1lZAwBDHdobwABMFQ6OkFjY291bnRJZAABQGV0aGVyZXVtX2FkZHJlc3PBAgE8RXRoZXJldW1BZGRyZXNzAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAAEaFNvbWVvbmUgY2xhaW1lZCBzb21lIERPVHMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0lQcMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFdmVudAABGEBCYXRjaEludGVycnVwdGVkCAEUaW5kZXgQAQx1MzIAARRlcnJvcmgBNERpc3BhdGNoRXJyb3IAAAhVAUJhdGNoIG9mIGRpc3BhdGNoZXMgZGlkIG5vdCBjb21wbGV0ZSBmdWxseS4gSW5kZXggb2YgZmlyc3QgZmFpbGluZyBkaXNwYXRjaCBnaXZlbiwgYXNId2VsbCBhcyB0aGUgZXJyb3IuOEJhdGNoQ29tcGxldGVkAAEEyEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGZ1bGx5IHdpdGggbm8gZXJyb3IuYEJhdGNoQ29tcGxldGVkV2l0aEVycm9ycwACBLRCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBidXQgaGFzIGVycm9ycy40SXRlbUNvbXBsZXRlZAADBB0BQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBubyBlcnJvci4oSXRlbUZhaWxlZAQBFGVycm9yaAE0RGlzcGF0Y2hFcnJvcgAEBBEBQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBlcnJvci4wRGlzcGF0Y2hlZEFzBAEYcmVzdWx0mQcBOERpc3BhdGNoUmVzdWx0AAUEWEEgY2FsbCB3YXMgZGlzcGF0Y2hlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSZBwQYUmVzdWx0CARUAaEBBEUBaAEICE9rBAChAQAAAAAMRXJyBABoAAABAACdBww4cGFsbGV0X3NvY2lldHkYcGFsbGV0FEV2ZW50CARUAARJAAFEHEZvdW5kZWQEARxmb3VuZGVyAAEwVDo6QWNjb3VudElkAAAEtFRoZSBzb2NpZXR5IGlzIGZvdW5kZWQgYnkgdGhlIGdpdmVuIGlkZW50aXR5LgxCaWQIATBjYW5kaWRhdGVfaWQAATBUOjpBY2NvdW50SWQAARRvZmZlchgBPEJhbGFuY2VPZjxULCBJPgABCF0BQSBtZW1iZXJzaGlwIGJpZCBqdXN0IGhhcHBlbmVkLiBUaGUgZ2l2ZW4gYWNjb3VudCBpcyB0aGUgY2FuZGlkYXRlJ3MgSUQgYW5kIHRoZWlyIG9mZmVyOGlzIHRoZSBzZWNvbmQuFFZvdWNoDAEwY2FuZGlkYXRlX2lkAAEwVDo6QWNjb3VudElkAAEUb2ZmZXIYATxCYWxhbmNlT2Y8VCwgST4AASB2b3VjaGluZwABMFQ6OkFjY291bnRJZAACCF0BQSBtZW1iZXJzaGlwIGJpZCBqdXN0IGhhcHBlbmVkIGJ5IHZvdWNoaW5nLiBUaGUgZ2l2ZW4gYWNjb3VudCBpcyB0aGUgY2FuZGlkYXRlJ3MgSUQgYW5k7HRoZWlyIG9mZmVyIGlzIHRoZSBzZWNvbmQuIFRoZSB2b3VjaGluZyBwYXJ0eSBpcyB0aGUgdGhpcmQuJEF1dG9VbmJpZAQBJGNhbmRpZGF0ZQABMFQ6OkFjY291bnRJZAADBAUBQSBjYW5kaWRhdGUgd2FzIGRyb3BwZWQgKGR1ZSB0byBhbiBleGNlc3Mgb2YgYmlkcyBpbiB0aGUgc3lzdGVtKS4UVW5iaWQEASRjYW5kaWRhdGUAATBUOjpBY2NvdW50SWQABASsQSBjYW5kaWRhdGUgd2FzIGRyb3BwZWQgKGJ5IHRoZWlyIHJlcXVlc3QpLhxVbnZvdWNoBAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAUE9EEgY2FuZGlkYXRlIHdhcyBkcm9wcGVkIChieSByZXF1ZXN0IG9mIHdobyB2b3VjaGVkIGZvciB0aGVtKS4gSW5kdWN0ZWQIARxwcmltYXJ5AAEwVDo6QWNjb3VudElkAAEoY2FuZGlkYXRlc60BAURWZWM8VDo6QWNjb3VudElkPgAGCFUBQSBncm91cCBvZiBjYW5kaWRhdGVzIGhhdmUgYmVlbiBpbmR1Y3RlZC4gVGhlIGJhdGNoJ3MgcHJpbWFyeSBpcyB0aGUgZmlyc3QgdmFsdWUsIHRoZXBiYXRjaCBpbiBmdWxsIGlzIHRoZSBzZWNvbmQuYFN1c3BlbmRlZE1lbWJlckp1ZGdlbWVudAgBDHdobwABMFQ6OkFjY291bnRJZAABGGp1ZGdlZCABEGJvb2wABwSMQSBzdXNwZW5kZWQgbWVtYmVyIGhhcyBiZWVuIGp1ZGdlZC5IQ2FuZGlkYXRlU3VzcGVuZGVkBAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAgEeEEgY2FuZGlkYXRlIGhhcyBiZWVuIHN1c3BlbmRlZDxNZW1iZXJTdXNwZW5kZWQEARhtZW1iZXIAATBUOjpBY2NvdW50SWQACQRsQSBtZW1iZXIgaGFzIGJlZW4gc3VzcGVuZGVkKENoYWxsZW5nZWQEARhtZW1iZXIAATBUOjpBY2NvdW50SWQACgRwQSBtZW1iZXIgaGFzIGJlZW4gY2hhbGxlbmdlZBBWb3RlDAEkY2FuZGlkYXRlAAEwVDo6QWNjb3VudElkAAEUdm90ZXIAATBUOjpBY2NvdW50SWQAARB2b3RlIAEQYm9vbAALBFhBIHZvdGUgaGFzIGJlZW4gcGxhY2VkMERlZmVuZGVyVm90ZQgBFHZvdGVyAAEwVDo6QWNjb3VudElkAAEQdm90ZSABEGJvb2wADAS0QSB2b3RlIGhhcyBiZWVuIHBsYWNlZCBmb3IgYSBkZWZlbmRpbmcgbWVtYmVyJE5ld1BhcmFtcwQBGHBhcmFtc6EHAVBHcm91cFBhcmFtc0ZvcjxULCBJPgANBMxBIG5ldyBzZXQgb2YgXFtwYXJhbXNcXSBoYXMgYmVlbiBzZXQgZm9yIHRoZSBncm91cC4kVW5mb3VuZGVkBAEcZm91bmRlcgABMFQ6OkFjY291bnRJZAAOBFRTb2NpZXR5IGlzIHVuZm91bmRlZC4cRGVwb3NpdAQBFHZhbHVlGAE8QmFsYW5jZU9mPFQsIEk+AA8EzFNvbWUgZnVuZHMgd2VyZSBkZXBvc2l0ZWQgaW50byB0aGUgc29jaWV0eSBhY2NvdW50LiBFbGV2YXRlZAgBGG1lbWJlcgABMFQ6OkFjY291bnRJZAABEHJhbmsQARBSYW5rABAEmEEgXFttZW1iZXJcXSBnb3QgZWxldmF0ZWQgdG8gXFtyYW5rXF0uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0oQcIOHBhbGxldF9zb2NpZXR5LEdyb3VwUGFyYW1zBBxCYWxhbmNlARgAEAEsbWF4X21lbWJlcnMQAQx1MzIAAShtYXhfaW50YWtlEAEMdTMyAAEsbWF4X3N0cmlrZXMQAQx1MzIAAURjYW5kaWRhdGVfZGVwb3NpdBgBHEJhbGFuY2UAAKUHDDxwYWxsZXRfcmVjb3ZlcnkYcGFsbGV0FEV2ZW50BARUAAEYPFJlY292ZXJ5Q3JlYXRlZAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAAATIQSByZWNvdmVyeSBwcm9jZXNzIGhhcyBiZWVuIHNldCB1cCBmb3IgYW4gYWNjb3VudC5EUmVjb3ZlcnlJbml0aWF0ZWQIATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQAAQQpAUEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgYmVlbiBpbml0aWF0ZWQgZm9yIGxvc3QgYWNjb3VudCBieSByZXNjdWVyIGFjY291bnQuPFJlY292ZXJ5Vm91Y2hlZAwBMGxvc3RfYWNjb3VudAABMFQ6OkFjY291bnRJZAABPHJlc2N1ZXJfYWNjb3VudAABMFQ6OkFjY291bnRJZAABGHNlbmRlcgABMFQ6OkFjY291bnRJZAACBFkBQSByZWNvdmVyeSBwcm9jZXNzIGZvciBsb3N0IGFjY291bnQgYnkgcmVzY3VlciBhY2NvdW50IGhhcyBiZWVuIHZvdWNoZWQgZm9yIGJ5IHNlbmRlci44UmVjb3ZlcnlDbG9zZWQIATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQAAwQdAUEgcmVjb3ZlcnkgcHJvY2VzcyBmb3IgbG9zdCBhY2NvdW50IGJ5IHJlc2N1ZXIgYWNjb3VudCBoYXMgYmVlbiBjbG9zZWQuQEFjY291bnRSZWNvdmVyZWQIATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQABAQBAUxvc3QgYWNjb3VudCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcmVjb3ZlcmVkIGJ5IHJlc2N1ZXIgYWNjb3VudC48UmVjb3ZlcnlSZW1vdmVkBAEwbG9zdF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAUEzEEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgYmVlbiByZW1vdmVkIGZvciBhbiBhY2NvdW50LgQwRXZlbnRzIHR5cGUuqQcMOHBhbGxldF92ZXN0aW5nGHBhbGxldBRFdmVudAQEVAABCDhWZXN0aW5nVXBkYXRlZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAASB1bnZlc3RlZBgBMEJhbGFuY2VPZjxUPgAACFEBVGhlIGFtb3VudCB2ZXN0ZWQgaGFzIGJlZW4gdXBkYXRlZC4gVGhpcyBjb3VsZCBpbmRpY2F0ZSBhIGNoYW5nZSBpbiBmdW5kcyBhdmFpbGFibGUuJQFUaGUgYmFsYW5jZSBnaXZlbiBpcyB0aGUgYW1vdW50IHdoaWNoIGlzIGxlZnQgdW52ZXN0ZWQgKGFuZCB0aHVzIGxvY2tlZCkuQFZlc3RpbmdDb21wbGV0ZWQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEEnEFuIFxbYWNjb3VudFxdIGhhcyBiZWNvbWUgZnVsbHkgdmVzdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldK0HDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFdmVudAQEVAABJCRTY2hlZHVsZWQIARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleBABDHUzMgAABFBTY2hlZHVsZWQgc29tZSB0YXNrLiBDYW5jZWxlZAgBEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4EAEMdTMyAAEETENhbmNlbGVkIHNvbWUgdGFzay4oRGlzcGF0Y2hlZAwBEHRhc2v1AgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWSxBwFAT3B0aW9uPFRhc2tOYW1lPgABGHJlc3VsdJkHAThEaXNwYXRjaFJlc3VsdAACBFREaXNwYXRjaGVkIHNvbWUgdGFzay4gUmV0cnlTZXQQARB0YXNr9QIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlksQcBQE9wdGlvbjxUYXNrTmFtZT4AARhwZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgABHHJldHJpZXMIAQh1OAADBKBTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBzb21lIHRhc2suOFJldHJ5Q2FuY2VsbGVkCAEQdGFza/UCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZLEHAUBPcHRpb248VGFza05hbWU+AAQErENhbmNlbCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHNvbWUgdGFzay48Q2FsbFVuYXZhaWxhYmxlCAEQdGFza/UCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZLEHAUBPcHRpb248VGFza05hbWU+AAUEKQFUaGUgY2FsbCBmb3IgdGhlIHByb3ZpZGVkIGhhc2ggd2FzIG5vdCBmb3VuZCBzbyB0aGUgdGFzayBoYXMgYmVlbiBhYm9ydGVkLjhQZXJpb2RpY0ZhaWxlZAgBEHRhc2v1AgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWSxBwFAT3B0aW9uPFRhc2tOYW1lPgAGBD0BVGhlIGdpdmVuIHRhc2sgd2FzIHVuYWJsZSB0byBiZSByZW5ld2VkIHNpbmNlIHRoZSBhZ2VuZGEgaXMgZnVsbCBhdCB0aGF0IGJsb2NrLixSZXRyeUZhaWxlZAgBEHRhc2v1AgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWSxBwFAT3B0aW9uPFRhc2tOYW1lPgAHCF0BVGhlIGdpdmVuIHRhc2sgd2FzIHVuYWJsZSB0byBiZSByZXRyaWVkIHNpbmNlIHRoZSBhZ2VuZGEgaXMgZnVsbCBhdCB0aGF0IGJsb2NrIG9yIHRoZXJlnHdhcyBub3QgZW5vdWdoIHdlaWdodCB0byByZXNjaGVkdWxlIGl0LlRQZXJtYW5lbnRseU92ZXJ3ZWlnaHQIARB0YXNr9QIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlksQcBQE9wdGlvbjxUYXNrTmFtZT4ACATwVGhlIGdpdmVuIHRhc2sgY2FuIG5ldmVyIGJlIGV4ZWN1dGVkIHNpbmNlIGl0IGlzIG92ZXJ3ZWlnaHQuBDBFdmVudHMgdHlwZS6xBwQYT3B0aW9uBARUAQQBCBBOb25lAAAAEFNvbWUEAAQAAAEAALUHDDBwYWxsZXRfcHJveHkYcGFsbGV0FEV2ZW50BARUAAEUNFByb3h5RXhlY3V0ZWQEARhyZXN1bHSZBwE4RGlzcGF0Y2hSZXN1bHQAAAS8QSBwcm94eSB3YXMgZXhlY3V0ZWQgY29ycmVjdGx5LCB3aXRoIHRoZSBnaXZlbi4sUHVyZUNyZWF0ZWQQARBwdXJlAAEwVDo6QWNjb3VudElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZQEDATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleFUBAQx1MTYAAQjcQSBwdXJlIGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZCBieSBuZXcgcHJveHkgd2l0aCBnaXZlbpBkaXNhbWJpZ3VhdGlvbiBpbmRleCBhbmQgcHJveHkgdHlwZS4kQW5ub3VuY2VkDAEQcmVhbAABMFQ6OkFjY291bnRJZAABFHByb3h5AAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoNAE0Q2FsbEhhc2hPZjxUPgACBOBBbiBhbm5vdW5jZW1lbnQgd2FzIHBsYWNlZCB0byBtYWtlIGEgY2FsbCBpbiB0aGUgZnV0dXJlLihQcm94eUFkZGVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZQEDATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAMESEEgcHJveHkgd2FzIGFkZGVkLjBQcm94eVJlbW92ZWQQASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUAATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlAQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4ABARQQSBwcm94eSB3YXMgcmVtb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS5Bww8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFdmVudAQEVAABECxOZXdNdWx0aXNpZwwBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAASMQSBuZXcgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWd1bi5ATXVsdGlzaWdBcHByb3ZhbBABJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludA0DAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABBMhBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBhcHByb3ZlZCBieSBzb21lb25lLkBNdWx0aXNpZ0V4ZWN1dGVkFAEkYXBwcm92aW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50DQMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEYcmVzdWx0mQcBOERpc3BhdGNoUmVzdWx0AAIEnEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLkRNdWx0aXNpZ0NhbmNlbGxlZBABKGNhbmNlbGxpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnQNAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAwSgQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gY2FuY2VsbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldL0HDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0FEV2ZW50BARUAAEMFE5vdGVkBAEQaGFzaDQBHFQ6Okhhc2gAAARoQSBwcmVpbWFnZSBoYXMgYmVlbiBub3RlZC4kUmVxdWVzdGVkBAEQaGFzaDQBHFQ6Okhhc2gAAQR4QSBwcmVpbWFnZSBoYXMgYmVlbiByZXF1ZXN0ZWQuHENsZWFyZWQEARBoYXNoNAEcVDo6SGFzaAACBGxBIHByZWltYWdlIGhhcyBiZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTBBww8cGFsbGV0X2JvdW50aWVzGHBhbGxldBRFdmVudAgEVAAESQABLDhCb3VudHlQcm9wb3NlZAQBFGluZGV4EAEsQm91bnR5SW5kZXgAAARQTmV3IGJvdW50eSBwcm9wb3NhbC44Qm91bnR5UmVqZWN0ZWQIARRpbmRleBABLEJvdW50eUluZGV4AAEQYm9uZBgBPEJhbGFuY2VPZjxULCBJPgABBMxBIGJvdW50eSBwcm9wb3NhbCB3YXMgcmVqZWN0ZWQ7IGZ1bmRzIHdlcmUgc2xhc2hlZC5IQm91bnR5QmVjYW1lQWN0aXZlBAEUaW5kZXgQASxCb3VudHlJbmRleAACBLhBIGJvdW50eSBwcm9wb3NhbCBpcyBmdW5kZWQgYW5kIGJlY2FtZSBhY3RpdmUuNEJvdW50eUF3YXJkZWQIARRpbmRleBABLEJvdW50eUluZGV4AAEsYmVuZWZpY2lhcnkAATBUOjpBY2NvdW50SWQAAwSUQSBib3VudHkgaXMgYXdhcmRlZCB0byBhIGJlbmVmaWNpYXJ5LjRCb3VudHlDbGFpbWVkDAEUaW5kZXgQASxCb3VudHlJbmRleAABGHBheW91dBgBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAQEjEEgYm91bnR5IGlzIGNsYWltZWQgYnkgYmVuZWZpY2lhcnkuOEJvdW50eUNhbmNlbGVkBAEUaW5kZXgQASxCb3VudHlJbmRleAAFBFhBIGJvdW50eSBpcyBjYW5jZWxsZWQuOEJvdW50eUV4dGVuZGVkBAEUaW5kZXgQASxCb3VudHlJbmRleAAGBHBBIGJvdW50eSBleHBpcnkgaXMgZXh0ZW5kZWQuOEJvdW50eUFwcHJvdmVkBAEUaW5kZXgQASxCb3VudHlJbmRleAAHBFRBIGJvdW50eSBpcyBhcHByb3ZlZC48Q3VyYXRvclByb3Bvc2VkCAEkYm91bnR5X2lkEAEsQm91bnR5SW5kZXgAARxjdXJhdG9yAAEwVDo6QWNjb3VudElkAAgEdEEgYm91bnR5IGN1cmF0b3IgaXMgcHJvcG9zZWQuREN1cmF0b3JVbmFzc2lnbmVkBAEkYm91bnR5X2lkEAEsQm91bnR5SW5kZXgACQR8QSBib3VudHkgY3VyYXRvciBpcyB1bmFzc2lnbmVkLjxDdXJhdG9yQWNjZXB0ZWQIASRib3VudHlfaWQQASxCb3VudHlJbmRleAABHGN1cmF0b3IAATBUOjpBY2NvdW50SWQACgR0QSBib3VudHkgY3VyYXRvciBpcyBhY2NlcHRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTFBwxUcGFsbGV0X2NoaWxkX2JvdW50aWVzGHBhbGxldBRFdmVudAQEVAABEBRBZGRlZAgBFGluZGV4EAEsQm91bnR5SW5kZXgAASxjaGlsZF9pbmRleBABLEJvdW50eUluZGV4AAAEYEEgY2hpbGQtYm91bnR5IGlzIGFkZGVkLhxBd2FyZGVkDAEUaW5kZXgQASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV4EAEsQm91bnR5SW5kZXgAASxiZW5lZmljaWFyeQABMFQ6OkFjY291bnRJZAABBKxBIGNoaWxkLWJvdW50eSBpcyBhd2FyZGVkIHRvIGEgYmVuZWZpY2lhcnkuHENsYWltZWQQARRpbmRleBABLEJvdW50eUluZGV4AAEsY2hpbGRfaW5kZXgQASxCb3VudHlJbmRleAABGHBheW91dBgBMEJhbGFuY2VPZjxUPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAIEpEEgY2hpbGQtYm91bnR5IGlzIGNsYWltZWQgYnkgYmVuZWZpY2lhcnkuIENhbmNlbGVkCAEUaW5kZXgQASxCb3VudHlJbmRleAABLGNoaWxkX2luZGV4EAEsQm91bnR5SW5kZXgAAwRwQSBjaGlsZC1ib3VudHkgaXMgY2FuY2VsbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMkHDJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfcGhhc2UYcGFsbGV0FEV2ZW50BARUAAEYOFNvbHV0aW9uU3RvcmVkDAEcY29tcHV0Zc0HATxFbGVjdGlvbkNvbXB1dGUAARhvcmlnaW7ZAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AATBwcmV2X2VqZWN0ZWQgARBib29sAAActEEgc29sdXRpb24gd2FzIHN0b3JlZCB3aXRoIHRoZSBnaXZlbiBjb21wdXRlLgBRAVRoZSBgb3JpZ2luYCBpbmRpY2F0ZXMgdGhlIG9yaWdpbiBvZiB0aGUgc29sdXRpb24uIElmIGBvcmlnaW5gIGlzIGBTb21lKEFjY291bnRJZClgLFkBdGhlIHN0b3JlZCBzb2x1dGlvbiB3YXMgc3VibWl0dGVkIGluIHRoZSBzaWduZWQgcGhhc2UgYnkgYSBtaW5lciB3aXRoIHRoZSBgQWNjb3VudElkYC4lAU90aGVyd2lzZSwgdGhlIHNvbHV0aW9uIHdhcyBzdG9yZWQgZWl0aGVyIGR1cmluZyB0aGUgdW5zaWduZWQgcGhhc2Ugb3IgYnlNAWBUOjpGb3JjZU9yaWdpbmAuIFRoZSBgYm9vbGAgaXMgYHRydWVgIHdoZW4gYSBwcmV2aW91cyBzb2x1dGlvbiB3YXMgZWplY3RlZCB0byBtYWtlSHJvb20gZm9yIHRoaXMgb25lLkRFbGVjdGlvbkZpbmFsaXplZAgBHGNvbXB1dGXNBwE8RWxlY3Rpb25Db21wdXRlAAEUc2NvcmVVBAE0RWxlY3Rpb25TY29yZQABBBkBVGhlIGVsZWN0aW9uIGhhcyBiZWVuIGZpbmFsaXplZCwgd2l0aCB0aGUgZ2l2ZW4gY29tcHV0YXRpb24gYW5kIHNjb3JlLjhFbGVjdGlvbkZhaWxlZAACDExBbiBlbGVjdGlvbiBmYWlsZWQuAAEBTm90IG11Y2ggY2FuIGJlIHNhaWQgYWJvdXQgd2hpY2ggY29tcHV0ZXMgZmFpbGVkIGluIHRoZSBwcm9jZXNzLiBSZXdhcmRlZAgBHGFjY291bnQAAZg8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OkFjY291bnRJZAABFHZhbHVlGAEwQmFsYW5jZU9mPFQ+AAMEJQFBbiBhY2NvdW50IGhhcyBiZWVuIHJld2FyZGVkIGZvciB0aGVpciBzaWduZWQgc3VibWlzc2lvbiBiZWluZyBmaW5hbGl6ZWQuHFNsYXNoZWQIARxhY2NvdW50AAGYPFQgYXMgZnJhbWVfc3lzdGVtOjpDb25maWc+OjpBY2NvdW50SWQAARR2YWx1ZRgBMEJhbGFuY2VPZjxUPgAEBCEBQW4gYWNjb3VudCBoYXMgYmVlbiBzbGFzaGVkIGZvciBzdWJtaXR0aW5nIGFuIGludmFsaWQgc2lnbmVkIHN1Ym1pc3Npb24uRFBoYXNlVHJhbnNpdGlvbmVkDAEQZnJvbdEHAWBQaGFzZTxCbG9ja051bWJlckZvcjxUPj4AAQh0b9EHAWBQaGFzZTxCbG9ja051bWJlckZvcjxUPj4AARRyb3VuZBABDHUzMgAFBLhUaGVyZSB3YXMgYSBwaGFzZSB0cmFuc2l0aW9uIGluIGEgZ2l2ZW4gcm91bmQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0zQcIkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZTxFbGVjdGlvbkNvbXB1dGUAARQcT25DaGFpbgAAABhTaWduZWQAAQAgVW5zaWduZWQAAgAgRmFsbGJhY2sAAwAkRW1lcmdlbmN5AAQAANEHCJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfcGhhc2UUUGhhc2UECEJuARABEAxPZmYAAAAYU2lnbmVkAAEAIFVuc2lnbmVkBADVBwEoKGJvb2wsIEJuKQACACRFbWVyZ2VuY3kAAwAA1QcAAAQIIBAA2QcMKHBhbGxldF9uaXMYcGFsbGV0FEV2ZW50BARUAAEcJEJpZFBsYWNlZAwBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABIGR1cmF0aW9uEAEMdTMyAAAEeEEgYmlkIHdhcyBzdWNjZXNzZnVsbHkgcGxhY2VkLjBCaWRSZXRyYWN0ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AASBkdXJhdGlvbhABDHUzMgABBNxBIGJpZCB3YXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQgKGJlZm9yZSBiZWluZyBhY2NlcHRlZCkuKEJpZERyb3BwZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AASBkdXJhdGlvbhABDHUzMgACBFUBQSBiaWQgd2FzIGRyb3BwZWQgZnJvbSBhIHF1ZXVlIGJlY2F1c2Ugb2YgYW5vdGhlciwgbW9yZSBzdWJzdGFudGlhbCwgYmlkIHdhcyBwcmVzZW50LhhJc3N1ZWQUARRpbmRleBABMFJlY2VpcHRJbmRleARwVGhlIGlkZW50aXR5IG9mIHRoZSByZWNlaXB0LgEYZXhwaXJ5EAFEQmxvY2tOdW1iZXJGb3I8VD4E0FRoZSBibG9jayBudW1iZXIgYXQgd2hpY2ggdGhlIHJlY2VpcHQgbWF5IGJlIHRoYXdlZC4BDHdobwABMFQ6OkFjY291bnRJZARkVGhlIG93bmVyIG9mIHRoZSByZWNlaXB0LgEocHJvcG9ydGlvbp0CASxQZXJxdWludGlsbAQxAVRoZSBwcm9wb3J0aW9uIG9mIHRoZSBlZmZlY3RpdmUgdG90YWwgaXNzdWFuY2Ugd2hpY2ggdGhlIHJlY2VpcHQgcmVwcmVzZW50cy4BGGFtb3VudBgBMEJhbGFuY2VPZjxUPgTYVGhlIGFtb3VudCBvZiBmdW5kcyB3aGljaCB3ZXJlIGRlYml0ZWQgZnJvbSB0aGUgb3duZXIuAwQFAUEgYmlkIHdhcyBhY2NlcHRlZC4gVGhlIGJhbGFuY2UgbWF5IG5vdCBiZSByZWxlYXNlZCB1bnRpbCBleHBpcnkuGFRoYXdlZBQBFGluZGV4EAEwUmVjZWlwdEluZGV4BHBUaGUgaWRlbnRpdHkgb2YgdGhlIHJlY2VpcHQuAQx3aG8AATBUOjpBY2NvdW50SWQEKFRoZSBvd25lci4BKHByb3BvcnRpb26dAgEsUGVycXVpbnRpbGwEOQFUaGUgcHJvcG9ydGlvbiBvZiB0aGUgZWZmZWN0aXZlIHRvdGFsIGlzc3VhbmNlIGJ5IHdoaWNoIHRoZSBvd25lciB3YXMgZGViaXRlZC4BGGFtb3VudBgBMEJhbGFuY2VPZjxUPgSsVGhlIGFtb3VudCBieSB3aGljaCB0aGUgb3duZXIgd2FzIGNyZWRpdGVkLgEcZHJvcHBlZCABEGJvb2wEjElmIGB0cnVlYCB0aGVuIHRoZSByZWNlaXB0IGlzIGRvbmUuBATAQW4gcmVjZWlwdCBoYXMgYmVlbiAoYXQgbGVhc3QgcGFydGlhbGx5KSB0aGF3ZWQuGEZ1bmRlZAQBHGRlZmljaXQYATBCYWxhbmNlT2Y8VD4ABQS0QW4gYXV0b21hdGljIGZ1bmRpbmcgb2YgdGhlIGRlZmljaXQgd2FzIG1hZGUuLFRyYW5zZmVycmVkDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEUaW5kZXgQATBSZWNlaXB0SW5kZXgABgRoQSByZWNlaXB0IHdhcyB0cmFuc2ZlcnJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTdBww8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFdmVudAgEVAAESQABWBxFbmRvd2VkCAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABMGZyZWVfYmFsYW5jZRgBKFQ6OkJhbGFuY2UAAAS4QW4gYWNjb3VudCB3YXMgY3JlYXRlZCB3aXRoIHNvbWUgZnJlZSBiYWxhbmNlLiBEdXN0TG9zdAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAEIPQFBbiBhY2NvdW50IHdhcyByZW1vdmVkIHdob3NlIGJhbGFuY2Ugd2FzIG5vbi16ZXJvIGJ1dCBiZWxvdyBFeGlzdGVudGlhbERlcG9zaXQseHJlc3VsdGluZyBpbiBhbiBvdXRyaWdodCBsb3NzLiBUcmFuc2ZlcgwBEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAgRMVHJhbnNmZXIgc3VjY2VlZGVkLihCYWxhbmNlU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJlZRgBKFQ6OkJhbGFuY2UAAwRoQSBiYWxhbmNlIHdhcyBzZXQgYnkgcm9vdC4gUmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAQE4FNvbWUgYmFsYW5jZSB3YXMgcmVzZXJ2ZWQgKG1vdmVkIGZyb20gZnJlZSB0byByZXNlcnZlZCkuKFVucmVzZXJ2ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAUE6FNvbWUgYmFsYW5jZSB3YXMgdW5yZXNlcnZlZCAobW92ZWQgZnJvbSByZXNlcnZlZCB0byBmcmVlKS5IUmVzZXJ2ZVJlcGF0cmlhdGVkEAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQABSGRlc3RpbmF0aW9uX3N0YXR1c4QBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuGEJ1cm5lZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACwScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuJFN1c3BlbmRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADAQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UADQSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQADgRgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UADwQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnQYAShUOjpCYWxhbmNlABAEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEQRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQASBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABQEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkGAEoVDo6QmFsYW5jZQABDG5ldxgBKFQ6OkJhbGFuY2UAFQSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOEHDEBwYWxsZXRfYmFnc19saXN0GHBhbGxldBRFdmVudAgEVAAESQABCCBSZWJhZ2dlZAwBDHdobwABMFQ6OkFjY291bnRJZAABEGZyb20wASBUOjpTY29yZQABCHRvMAEgVDo6U2NvcmUAAASkTW92ZWQgYW4gYWNjb3VudCBmcm9tIG9uZSBiYWcgdG8gYW5vdGhlci4wU2NvcmVVcGRhdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEkbmV3X3Njb3JlMAEgVDo6U2NvcmUAAQTYVXBkYXRlZCB0aGUgc2NvcmUgb2Ygc29tZSBhY2NvdW50IHRvIHRoZSBnaXZlbiBhbW91bnQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV05QcMXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzGHBhbGxldBRFdmVudAQEVAABSBxDcmVhdGVkCAEkZGVwb3NpdG9yAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZBABGFBvb2xJZAAABGBBIHBvb2wgaGFzIGJlZW4gY3JlYXRlZC4YQm9uZGVkEAEYbWVtYmVyAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZBABGFBvb2xJZAABGGJvbmRlZBgBMEJhbGFuY2VPZjxUPgABGGpvaW5lZCABEGJvb2wAAQSUQSBtZW1iZXIgaGFzIGJlY2FtZSBib25kZWQgaW4gYSBwb29sLhxQYWlkT3V0DAEYbWVtYmVyAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZBABGFBvb2xJZAABGHBheW91dBgBMEJhbGFuY2VPZjxUPgACBIxBIHBheW91dCBoYXMgYmVlbiBtYWRlIHRvIGEgbWVtYmVyLiBVbmJvbmRlZBQBGG1lbWJlcgABMFQ6OkFjY291bnRJZAABHHBvb2xfaWQQARhQb29sSWQAARxiYWxhbmNlGAEwQmFsYW5jZU9mPFQ+AAEYcG9pbnRzGAEwQmFsYW5jZU9mPFQ+AAEMZXJhEAEgRXJhSW5kZXgAAyyYQSBtZW1iZXIgaGFzIHVuYm9uZGVkIGZyb20gdGhlaXIgcG9vbC4AOQEtIGBiYWxhbmNlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBiYWxhbmNlIG9mIHRoZSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgaGFzIGJlZW5VASAgcmVxdWVzdGVkIHRvIGJlIHVuYm9uZGVkICh0aGUgYXJndW1lbnQgb2YgdGhlIGB1bmJvbmRgIHRyYW5zYWN0aW9uKSBmcm9tIHRoZSBib25kZWQcICBwb29sLkUBLSBgcG9pbnRzYCBpcyB0aGUgbnVtYmVyIG9mIHBvaW50cyB0aGF0IGFyZSBpc3N1ZWQgYXMgYSByZXN1bHQgb2YgYGJhbGFuY2VgIGJlaW5nwGRpc3NvbHZlZCBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHVuYm9uZGluZyBwb29sLuQtIGBlcmFgIGlzIHRoZSBlcmEgaW4gd2hpY2ggdGhlIGJhbGFuY2Ugd2lsbCBiZSB1bmJvbmRlZC5VAUluIHRoZSBhYnNlbmNlIG9mIHNsYXNoaW5nLCB0aGVzZSB2YWx1ZXMgd2lsbCBtYXRjaC4gSW4gdGhlIHByZXNlbmNlIG9mIHNsYXNoaW5nLCB0aGVNAW51bWJlciBvZiBwb2ludHMgdGhhdCBhcmUgaXNzdWVkIGluIHRoZSB1bmJvbmRpbmcgcG9vbCB3aWxsIGJlIGxlc3MgdGhhbiB0aGUgYW1vdW50ZHJlcXVlc3RlZCB0byBiZSB1bmJvbmRlZC4kV2l0aGRyYXduEAEYbWVtYmVyAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZBABGFBvb2xJZAABHGJhbGFuY2UYATBCYWxhbmNlT2Y8VD4AARhwb2ludHMYATBCYWxhbmNlT2Y8VD4ABBicQSBtZW1iZXIgaGFzIHdpdGhkcmF3biBmcm9tIHRoZWlyIHBvb2wuACEBVGhlIGdpdmVuIG51bWJlciBvZiBgcG9pbnRzYCBoYXZlIGJlZW4gZGlzc29sdmVkIGluIHJldHVybiBvZiBgYmFsYW5jZWAuAFkBU2ltaWxhciB0byBgVW5ib25kZWRgIGV2ZW50LCBpbiB0aGUgYWJzZW5jZSBvZiBzbGFzaGluZywgdGhlIHJhdGlvIG9mIHBvaW50IHRvIGJhbGFuY2Uod2lsbCBiZSAxLiREZXN0cm95ZWQEARxwb29sX2lkEAEYUG9vbElkAAUEaEEgcG9vbCBoYXMgYmVlbiBkZXN0cm95ZWQuMFN0YXRlQ2hhbmdlZAgBHHBvb2xfaWQQARhQb29sSWQAASRuZXdfc3RhdGWJBAEkUG9vbFN0YXRlAAYEfFRoZSBzdGF0ZSBvZiBhIHBvb2wgaGFzIGNoYW5nZWQ0TWVtYmVyUmVtb3ZlZAgBHHBvb2xfaWQQARhQb29sSWQAARhtZW1iZXIAATBUOjpBY2NvdW50SWQABwyYQSBtZW1iZXIgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIGEgcG9vbC4AUQFUaGUgcmVtb3ZhbCBjYW4gYmUgdm9sdW50YXJ5ICh3aXRoZHJhd24gYWxsIHVuYm9uZGVkIGZ1bmRzKSBvciBpbnZvbHVudGFyeSAoa2lja2VkKS4wUm9sZXNVcGRhdGVkDAEQcm9vdNkBAVBPcHRpb248VDo6QWNjb3VudElkPgABHGJvdW5jZXLZAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRub21pbmF0b3LZAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4ACAhVAVRoZSByb2xlcyBvZiBhIHBvb2wgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gdGhlIGdpdmVuIG5ldyByb2xlcy4gTm90ZSB0aGF0IHRoZSBkZXBvc2l0b3JEY2FuIG5ldmVyIGNoYW5nZS4sUG9vbFNsYXNoZWQIARxwb29sX2lkEAEYUG9vbElkAAEcYmFsYW5jZRgBMEJhbGFuY2VPZjxUPgAJBA0BVGhlIGFjdGl2ZSBiYWxhbmNlIG9mIHBvb2wgYHBvb2xfaWRgIGhhcyBiZWVuIHNsYXNoZWQgdG8gYGJhbGFuY2VgLlBVbmJvbmRpbmdQb29sU2xhc2hlZAwBHHBvb2xfaWQQARhQb29sSWQAAQxlcmEQASBFcmFJbmRleAABHGJhbGFuY2UYATBCYWxhbmNlT2Y8VD4ACgQlAVRoZSB1bmJvbmQgcG9vbCBhdCBgZXJhYCBvZiBwb29sIGBwb29sX2lkYCBoYXMgYmVlbiBzbGFzaGVkIHRvIGBiYWxhbmNlYC5UUG9vbENvbW1pc3Npb25VcGRhdGVkCAEccG9vbF9pZBABGFBvb2xJZAABHGN1cnJlbnShBAF8T3B0aW9uPChQZXJiaWxsLCBUOjpBY2NvdW50SWQpPgALBLRBIHBvb2wncyBjb21taXNzaW9uIHNldHRpbmcgaGFzIGJlZW4gY2hhbmdlZC5gUG9vbE1heENvbW1pc3Npb25VcGRhdGVkCAEccG9vbF9pZBABGFBvb2xJZAABOG1heF9jb21taXNzaW9ulAEcUGVyYmlsbAAMBNRBIHBvb2wncyBtYXhpbXVtIGNvbW1pc3Npb24gc2V0dGluZyBoYXMgYmVlbiBjaGFuZ2VkLnxQb29sQ29tbWlzc2lvbkNoYW5nZVJhdGVVcGRhdGVkCAEccG9vbF9pZBABGFBvb2xJZAABLGNoYW5nZV9yYXRlqQQBnENvbW1pc3Npb25DaGFuZ2VSYXRlPEJsb2NrTnVtYmVyRm9yPFQ+PgANBMxBIHBvb2wncyBjb21taXNzaW9uIGBjaGFuZ2VfcmF0ZWAgaGFzIGJlZW4gY2hhbmdlZC6QUG9vbENvbW1pc3Npb25DbGFpbVBlcm1pc3Npb25VcGRhdGVkCAEccG9vbF9pZBABGFBvb2xJZAABKHBlcm1pc3Npb26tBAG8T3B0aW9uPENvbW1pc3Npb25DbGFpbVBlcm1pc3Npb248VDo6QWNjb3VudElkPj4ADgTIUG9vbCBjb21taXNzaW9uIGNsYWltIHBlcm1pc3Npb24gaGFzIGJlZW4gdXBkYXRlZC5UUG9vbENvbW1pc3Npb25DbGFpbWVkCAEccG9vbF9pZBABGFBvb2xJZAABKGNvbW1pc3Npb24YATBCYWxhbmNlT2Y8VD4ADwSEUG9vbCBjb21taXNzaW9uIGhhcyBiZWVuIGNsYWltZWQuZE1pbkJhbGFuY2VEZWZpY2l0QWRqdXN0ZWQIARxwb29sX2lkEAEYUG9vbElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+ABAEyFRvcHBlZCB1cCBkZWZpY2l0IGluIGZyb3plbiBFRCBvZiB0aGUgcmV3YXJkIHBvb2wuYE1pbkJhbGFuY2VFeGNlc3NBZGp1c3RlZAgBHHBvb2xfaWQQARhQb29sSWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AEQS8Q2xhaW1lZCBleGNlc3MgZnJvemVuIEVEIG9mIGFmIHRoZSByZXdhcmQgcG9vbC4EWEV2ZW50cyBvZiB0aGlzIHBhbGxldC7pBwxMcGFsbGV0X2Zhc3RfdW5zdGFrZRhwYWxsZXQURXZlbnQEBFQAARQgVW5zdGFrZWQIARRzdGFzaAABMFQ6OkFjY291bnRJZAABGHJlc3VsdJkHAThEaXNwYXRjaFJlc3VsdAAABFhBIHN0YWtlciB3YXMgdW5zdGFrZWQuHFNsYXNoZWQIARRzdGFzaAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABBBkBQSBzdGFrZXIgd2FzIHNsYXNoZWQgZm9yIHJlcXVlc3RpbmcgZmFzdC11bnN0YWtlIHdoaWxzdCBiZWluZyBleHBvc2VkLjBCYXRjaENoZWNrZWQEARBlcmFzwQEBNFZlYzxFcmFJbmRleD4AAgRFAUEgYmF0Y2ggd2FzIHBhcnRpYWxseSBjaGVja2VkIGZvciB0aGUgZ2l2ZW4gZXJhcywgYnV0IHRoZSBwcm9jZXNzIGRpZCBub3QgZmluaXNoLjRCYXRjaEZpbmlzaGVkBAEQc2l6ZRABDHUzMgADEJxBIGJhdGNoIG9mIGEgZ2l2ZW4gc2l6ZSB3YXMgdGVybWluYXRlZC4AVQFUaGlzIGlzIGFsd2F5cyBmb2xsb3dzIGJ5IGEgbnVtYmVyIG9mIGBVbnN0YWtlZGAgb3IgYFNsYXNoZWRgIGV2ZW50cywgbWFya2luZyB0aGUgZW5k6G9mIHRoZSBiYXRjaC4gQSBuZXcgYmF0Y2ggd2lsbCBiZSBjcmVhdGVkIHVwb24gbmV4dCBibG9jay40SW50ZXJuYWxFcnJvcgAEBOhBbiBpbnRlcm5hbCBlcnJvciBoYXBwZW5lZC4gT3BlcmF0aW9ucyB3aWxsIGJlIHBhdXNlZCBub3cuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV07QcQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0FEV2ZW50BARUAAEQPENhbmRpZGF0ZUJhY2tlZBAA8QcBZENhbmRpZGF0ZVJlY2VpcHQ8VDo6SGFzaD4AAEEFASBIZWFkRGF0YQAA9QcBJENvcmVJbmRleAAA+QcBKEdyb3VwSW5kZXgAAATAQSBjYW5kaWRhdGUgd2FzIGJhY2tlZC4gYFtjYW5kaWRhdGUsIGhlYWRfZGF0YV1gRENhbmRpZGF0ZUluY2x1ZGVkEADxBwFkQ2FuZGlkYXRlUmVjZWlwdDxUOjpIYXNoPgAAQQUBIEhlYWREYXRhAAD1BwEkQ29yZUluZGV4AAD5BwEoR3JvdXBJbmRleAABBMhBIGNhbmRpZGF0ZSB3YXMgaW5jbHVkZWQuIGBbY2FuZGlkYXRlLCBoZWFkX2RhdGFdYERDYW5kaWRhdGVUaW1lZE91dAwA8QcBZENhbmRpZGF0ZVJlY2VpcHQ8VDo6SGFzaD4AAEEFASBIZWFkRGF0YQAA9QcBJENvcmVJbmRleAACBLxBIGNhbmRpZGF0ZSB0aW1lZCBvdXQuIGBbY2FuZGlkYXRlLCBoZWFkX2RhdGFdYFhVcHdhcmRNZXNzYWdlc1JlY2VpdmVkCAEQZnJvbWkCARhQYXJhSWQAARRjb3VudBABDHUzMgADBPhTb21lIHVwd2FyZCBtZXNzYWdlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldPEHDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3QENhbmRpZGF0ZVJlY2VpcHQEBEgBNAAIAShkZXNjcmlwdG9yFQUBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AAUBjb21taXRtZW50c19oYXNoNAEQSGFzaAAA9QcMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjckQ29yZUluZGV4AAAEABABDHUzMgAA+QcMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjcoR3JvdXBJbmRleAAABAAQAQx1MzIAAP0HEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXMYcGFsbGV0FEV2ZW50AAEgSEN1cnJlbnRDb2RlVXBkYXRlZAQAaQIBGFBhcmFJZAAABMxDdXJyZW50IGNvZGUgaGFzIGJlZW4gdXBkYXRlZCBmb3IgYSBQYXJhLiBgcGFyYV9pZGBIQ3VycmVudEhlYWRVcGRhdGVkBABpAgEYUGFyYUlkAAEEzEN1cnJlbnQgaGVhZCBoYXMgYmVlbiB1cGRhdGVkIGZvciBhIFBhcmEuIGBwYXJhX2lkYFBDb2RlVXBncmFkZVNjaGVkdWxlZAQAaQIBGFBhcmFJZAACBNxBIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBzY2hlZHVsZWQgZm9yIGEgUGFyYS4gYHBhcmFfaWRgME5ld0hlYWROb3RlZAQAaQIBGFBhcmFJZAADBLxBIG5ldyBoZWFkIGhhcyBiZWVuIG5vdGVkIGZvciBhIFBhcmEuIGBwYXJhX2lkYDBBY3Rpb25RdWV1ZWQIAGkCARhQYXJhSWQAABABMFNlc3Npb25JbmRleAAEBPBBIHBhcmEgaGFzIGJlZW4gcXVldWVkIHRvIGV4ZWN1dGUgcGVuZGluZyBhY3Rpb25zLiBgcGFyYV9pZGA8UHZmQ2hlY2tTdGFydGVkCAAhBQFIVmFsaWRhdGlvbkNvZGVIYXNoAABpAgEYUGFyYUlkAAUIVQFUaGUgZ2l2ZW4gcGFyYSBlaXRoZXIgaW5pdGlhdGVkIG9yIHN1YnNjcmliZWQgdG8gYSBQVkYgY2hlY2sgZm9yIHRoZSBnaXZlbiB2YWxpZGF0aW9ubGNvZGUuIGBjb2RlX2hhc2hgIGBwYXJhX2lkYEBQdmZDaGVja0FjY2VwdGVkCAAhBQFIVmFsaWRhdGlvbkNvZGVIYXNoAABpAgEYUGFyYUlkAAYIEQFUaGUgZ2l2ZW4gdmFsaWRhdGlvbiBjb2RlIHdhcyBhY2NlcHRlZCBieSB0aGUgUFZGIHByZS1jaGVja2luZyB2b3RlLlRgY29kZV9oYXNoYCBgcGFyYV9pZGBAUHZmQ2hlY2tSZWplY3RlZAgAIQUBSFZhbGlkYXRpb25Db2RlSGFzaAAAaQIBGFBhcmFJZAAHCBEBVGhlIGdpdmVuIHZhbGlkYXRpb24gY29kZSB3YXMgcmVqZWN0ZWQgYnkgdGhlIFBWRiBwcmUtY2hlY2tpbmcgdm90ZS5UYGNvZGVfaGFzaGAgYHBhcmFfaWRgBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0AQgQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBRFdmVudAQEVAABHFBPcGVuQ2hhbm5lbFJlcXVlc3RlZBABGHNlbmRlcmkCARhQYXJhSWQAASRyZWNpcGllbnRpAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAABHBPcGVuIEhSTVAgY2hhbm5lbCByZXF1ZXN0ZWQuTE9wZW5DaGFubmVsQ2FuY2VsZWQIATBieV9wYXJhY2hhaW5pAgEYUGFyYUlkAAEoY2hhbm5lbF9pZIEFATRIcm1wQ2hhbm5lbElkAAEEKQFBbiBIUk1QIGNoYW5uZWwgcmVxdWVzdCBzZW50IGJ5IHRoZSByZWNlaXZlciB3YXMgY2FuY2VsZWQgYnkgZWl0aGVyIHBhcnR5LkxPcGVuQ2hhbm5lbEFjY2VwdGVkCAEYc2VuZGVyaQIBGFBhcmFJZAABJHJlY2lwaWVudGkCARhQYXJhSWQAAgRsT3BlbiBIUk1QIGNoYW5uZWwgYWNjZXB0ZWQuNENoYW5uZWxDbG9zZWQIATBieV9wYXJhY2hhaW5pAgEYUGFyYUlkAAEoY2hhbm5lbF9pZIEFATRIcm1wQ2hhbm5lbElkAAMEUEhSTVAgY2hhbm5lbCBjbG9zZWQuWEhybXBDaGFubmVsRm9yY2VPcGVuZWQQARhzZW5kZXJpAgEYUGFyYUlkAAEkcmVjaXBpZW50aQIBGFBhcmFJZAABVHByb3Bvc2VkX21heF9jYXBhY2l0eRABDHUzMgABZHByb3Bvc2VkX21heF9tZXNzYWdlX3NpemUQAQx1MzIABASsQW4gSFJNUCBjaGFubmVsIHdhcyBvcGVuZWQgdmlhIFJvb3Qgb3JpZ2luLlxIcm1wU3lzdGVtQ2hhbm5lbE9wZW5lZBABGHNlbmRlcmkCARhQYXJhSWQAASRyZWNpcGllbnRpAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAFBLxBbiBIUk1QIGNoYW5uZWwgd2FzIG9wZW5lZCB3aXRoIGEgc3lzdGVtIGNoYWluLmhPcGVuQ2hhbm5lbERlcG9zaXRzVXBkYXRlZAgBGHNlbmRlcmkCARhQYXJhSWQAASRyZWNpcGllbnRpAgEYUGFyYUlkAAYEoEFuIEhSTVAgY2hhbm5lbCdzIGRlcG9zaXRzIHdlcmUgdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQFCBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzGHBhbGxldBRFdmVudAQEVAABDEBEaXNwdXRlSW5pdGlhdGVkCABVBQE0Q2FuZGlkYXRlSGFzaAAACQgBPERpc3B1dGVMb2NhdGlvbgAABAkBQSBkaXNwdXRlIGhhcyBiZWVuIGluaXRpYXRlZC4gXFtjYW5kaWRhdGUgaGFzaCwgZGlzcHV0ZSBsb2NhdGlvblxdQERpc3B1dGVDb25jbHVkZWQIAFUFATRDYW5kaWRhdGVIYXNoAAANCAE0RGlzcHV0ZVJlc3VsdAABCMxBIGRpc3B1dGUgaGFzIGNvbmNsdWRlZCBmb3Igb3IgYWdhaW5zdCBhIGNhbmRpZGF0ZS60YFxbcGFyYSBpZCwgY2FuZGlkYXRlIGhhc2gsIGRpc3B1dGUgcmVzdWx0XF1gGFJldmVydAQAEAFEQmxvY2tOdW1iZXJGb3I8VD4AAhD8QSBkaXNwdXRlIGhhcyBjb25jbHVkZWQgd2l0aCBzdXBlcm1ham9yaXR5IGFnYWluc3QgYSBjYW5kaWRhdGUuDQFCbG9jayBhdXRob3JzIHNob3VsZCBubyBsb25nZXIgYnVpbGQgb24gdG9wIG9mIHRoaXMgaGVhZCBhbmQgc2hvdWxkAQFpbnN0ZWFkIHJldmVydCB0aGUgYmxvY2sgYXQgdGhlIGdpdmVuIGhlaWdodC4gVGhpcyBzaG91bGQgYmUgdGhl/G51bWJlciBvZiB0aGUgY2hpbGQgb2YgdGhlIGxhc3Qga25vd24gdmFsaWQgYmxvY2sgaW4gdGhlIGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAkIDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXM8RGlzcHV0ZUxvY2F0aW9uAAEIFExvY2FsAAAAGFJlbW90ZQABAAANCAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzNERpc3B1dGVSZXN1bHQAAQgUVmFsaWQAAAAcSW52YWxpZAABAAARCBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zSGFzc2lnbmVyX29uX2RlbWFuZBhwYWxsZXQURXZlbnQEBFQAAQhMT25EZW1hbmRPcmRlclBsYWNlZAwBHHBhcmFfaWRpAgEYUGFyYUlkAAEoc3BvdF9wcmljZRgBMEJhbGFuY2VPZjxUPgABKG9yZGVyZWRfYnkAATBUOjpBY2NvdW50SWQAAAQNAUFuIG9yZGVyIHdhcyBwbGFjZWQgYXQgc29tZSBzcG90IHByaWNlIGFtb3VudCBieSBvcmRlcmVyIG9yZGVyZWRfYnkwU3BvdFByaWNlU2V0BAEoc3BvdF9wcmljZRgBMEJhbGFuY2VPZjxUPgABBLhUaGUgdmFsdWUgb2YgdGhlIHNwb3QgcHJpY2UgaGFzIGxpa2VseSBjaGFuZ2VkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0FQgQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uPHBhcmFzX3JlZ2lzdHJhchhwYWxsZXQURXZlbnQEBFQAARAoUmVnaXN0ZXJlZAgBHHBhcmFfaWRpAgEYUGFyYUlkAAEcbWFuYWdlcgABMFQ6OkFjY291bnRJZAAAADBEZXJlZ2lzdGVyZWQEARxwYXJhX2lkaQIBGFBhcmFJZAABACBSZXNlcnZlZAgBHHBhcmFfaWRpAgEYUGFyYUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAIAHFN3YXBwZWQIARxwYXJhX2lkaQIBGFBhcmFJZAABIG90aGVyX2lkaQIBGFBhcmFJZAADAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBkIEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhRzbG90cxhwYWxsZXQURXZlbnQEBFQAAQg4TmV3TGVhc2VQZXJpb2QEATBsZWFzZV9wZXJpb2QQAUBMZWFzZVBlcmlvZE9mPFQ+AAAEkEEgbmV3IGBbbGVhc2VfcGVyaW9kXWAgaXMgYmVnaW5uaW5nLhhMZWFzZWQYARxwYXJhX2lkaQIBGFBhcmFJZAABGGxlYXNlcgABMFQ6OkFjY291bnRJZAABMHBlcmlvZF9iZWdpbhABQExlYXNlUGVyaW9kT2Y8VD4AATBwZXJpb2RfY291bnQQAUBMZWFzZVBlcmlvZE9mPFQ+AAE4ZXh0cmFfcmVzZXJ2ZWQYATBCYWxhbmNlT2Y8VD4AATB0b3RhbF9hbW91bnQYATBCYWxhbmNlT2Y8VD4AAQw1AUEgcGFyYSBoYXMgd29uIHRoZSByaWdodCB0byBhIGNvbnRpbnVvdXMgc2V0IG9mIGxlYXNlIHBlcmlvZHMgYXMgYSBwYXJhY2hhaW4uRQFGaXJzdCBiYWxhbmNlIGlzIGFueSBleHRyYSBhbW91bnQgcmVzZXJ2ZWQgb24gdG9wIG9mIHRoZSBwYXJhJ3MgZXhpc3RpbmcgZGVwb3NpdC6wU2Vjb25kIGJhbGFuY2UgaXMgdGhlIHRvdGFsIGFtb3VudCByZXNlcnZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQdCBBccG9sa2Fkb3RfcnVudGltZV9jb21tb24gYXVjdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEcOEF1Y3Rpb25TdGFydGVkDAE0YXVjdGlvbl9pbmRleBABMEF1Y3Rpb25JbmRleAABMGxlYXNlX3BlcmlvZBABQExlYXNlUGVyaW9kT2Y8VD4AARhlbmRpbmcQAURCbG9ja051bWJlckZvcjxUPgAACEkBQW4gYXVjdGlvbiBzdGFydGVkLiBQcm92aWRlcyBpdHMgaW5kZXggYW5kIHRoZSBibG9jayBudW1iZXIgd2hlcmUgaXQgd2lsbCBiZWdpbiB0bxUBY2xvc2UgYW5kIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2Qgb2YgdGhlIHF1YWRydXBsZXQgdGhhdCBpcyBhdWN0aW9uZWQuNEF1Y3Rpb25DbG9zZWQEATRhdWN0aW9uX2luZGV4EAEwQXVjdGlvbkluZGV4AAEEuEFuIGF1Y3Rpb24gZW5kZWQuIEFsbCBmdW5kcyBiZWNvbWUgdW5yZXNlcnZlZC4gUmVzZXJ2ZWQMARhiaWRkZXIAATBUOjpBY2NvdW50SWQAAThleHRyYV9yZXNlcnZlZBgBMEJhbGFuY2VPZjxUPgABMHRvdGFsX2Ftb3VudBgBMEJhbGFuY2VPZjxUPgACCEkBRnVuZHMgd2VyZSByZXNlcnZlZCBmb3IgYSB3aW5uaW5nIGJpZC4gRmlyc3QgYmFsYW5jZSBpcyB0aGUgZXh0cmEgYW1vdW50IHJlc2VydmVkLlBTZWNvbmQgaXMgdGhlIHRvdGFsLihVbnJlc2VydmVkCAEYYmlkZGVyAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAMEKQFGdW5kcyB3ZXJlIHVucmVzZXJ2ZWQgc2luY2UgYmlkZGVyIGlzIG5vIGxvbmdlciBhY3RpdmUuIGBbYmlkZGVyLCBhbW91bnRdYEhSZXNlcnZlQ29uZmlzY2F0ZWQMARxwYXJhX2lkaQIBGFBhcmFJZAABGGxlYXNlcgABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgAECFUBU29tZW9uZSBhdHRlbXB0ZWQgdG8gbGVhc2UgdGhlIHNhbWUgc2xvdCB0d2ljZSBmb3IgYSBwYXJhY2hhaW4uIFRoZSBhbW91bnQgaXMgaGVsZCBpbrhyZXNlcnZlIGJ1dCBubyBwYXJhY2hhaW4gc2xvdCBoYXMgYmVlbiBsZWFzZWQuLEJpZEFjY2VwdGVkFAEYYmlkZGVyAAEwVDo6QWNjb3VudElkAAEccGFyYV9pZGkCARhQYXJhSWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAShmaXJzdF9zbG90EAFATGVhc2VQZXJpb2RPZjxUPgABJGxhc3Rfc2xvdBABQExlYXNlUGVyaW9kT2Y8VD4ABQTIQSBuZXcgYmlkIGhhcyBiZWVuIGFjY2VwdGVkIGFzIHRoZSBjdXJyZW50IHdpbm5lci40V2lubmluZ09mZnNldAgBNGF1Y3Rpb25faW5kZXgQATBBdWN0aW9uSW5kZXgAATBibG9ja19udW1iZXIQAURCbG9ja051bWJlckZvcjxUPgAGCFkBVGhlIHdpbm5pbmcgb2Zmc2V0IHdhcyBjaG9zZW4gZm9yIGFuIGF1Y3Rpb24uIFRoaXMgd2lsbCBtYXAgaW50byB0aGUgYFdpbm5pbmdgIHN0b3JhZ2UQbWFwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCEIEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4YcGFsbGV0FEV2ZW50BARUAAEoHENyZWF0ZWQEARxwYXJhX2lkaQIBGFBhcmFJZAAABIxDcmVhdGUgYSBuZXcgY3Jvd2Rsb2FuaW5nIGNhbXBhaWduLixDb250cmlidXRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABKGZ1bmRfaW5kZXhpAgEYUGFyYUlkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEEcENvbnRyaWJ1dGVkIHRvIGEgY3Jvd2Qgc2FsZS4gV2l0aGRyZXcMAQx3aG8AATBUOjpBY2NvdW50SWQAAShmdW5kX2luZGV4aQIBGFBhcmFJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgACBJxXaXRoZHJldyBmdWxsIGJhbGFuY2Ugb2YgYSBjb250cmlidXRvci5EUGFydGlhbGx5UmVmdW5kZWQEARxwYXJhX2lkaQIBGFBhcmFJZAADCC0BVGhlIGxvYW5zIGluIGEgZnVuZCBoYXZlIGJlZW4gcGFydGlhbGx5IGRpc3NvbHZlZCwgaS5lLiB0aGVyZSBhcmUgc29tZSBsZWZ0tG92ZXIgY2hpbGQga2V5cyB0aGF0IHN0aWxsIG5lZWQgdG8gYmUga2lsbGVkLixBbGxSZWZ1bmRlZAQBHHBhcmFfaWRpAgEYUGFyYUlkAAQEnEFsbCBsb2FucyBpbiBhIGZ1bmQgaGF2ZSBiZWVuIHJlZnVuZGVkLiREaXNzb2x2ZWQEARxwYXJhX2lkaQIBGFBhcmFJZAAFBEhGdW5kIGlzIGRpc3NvbHZlZC48SGFuZGxlQmlkUmVzdWx0CAEccGFyYV9pZGkCARhQYXJhSWQAARhyZXN1bHSZBwE4RGlzcGF0Y2hSZXN1bHQABgT0VGhlIHJlc3VsdCBvZiB0cnlpbmcgdG8gc3VibWl0IGEgbmV3IGJpZCB0byB0aGUgU2xvdHMgcGFsbGV0LhhFZGl0ZWQEARxwYXJhX2lkaQIBGFBhcmFJZAAHBMRUaGUgY29uZmlndXJhdGlvbiB0byBhIGNyb3dkbG9hbiBoYXMgYmVlbiBlZGl0ZWQuLE1lbW9VcGRhdGVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEccGFyYV9pZGkCARhQYXJhSWQAARBtZW1vOAEcVmVjPHU4PgAIBGBBIG1lbW8gaGFzIGJlZW4gdXBkYXRlZC48QWRkZWRUb05ld1JhaXNlBAEccGFyYV9pZGkCARhQYXJhSWQACQSgQSBwYXJhY2hhaW4gaGFzIGJlZW4gbW92ZWQgdG8gYE5ld1JhaXNlYAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCUIEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgY29yZXRpbWUYcGFsbGV0FEV2ZW50BARUAAEIUFJldmVudWVJbmZvUmVxdWVzdGVkBAEQd2hlbhABREJsb2NrTnVtYmVyRm9yPFQ+AAAEIQFUaGUgYnJva2VyIGNoYWluIGhhcyBhc2tlZCBmb3IgcmV2ZW51ZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBibG9jay4wQ29yZUFzc2lnbmVkBAEQY29yZfUHASRDb3JlSW5kZXgAAQTsQSBjb3JlIGhhcyByZWNlaXZlZCBhIG5ldyBhc3NpZ25tZW50IGZyb20gdGhlIGJyb2tlciBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQpCAwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAWAkQXR0ZW1wdGVkBAEcb3V0Y29tZS0IAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbvQBIExvY2F0aW9uAAEsZGVzdGluYXRpb270ASBMb2NhdGlvbgABHG1lc3NhZ2WRBgEcWGNtPCgpPgABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAEEXEEgWENNIG1lc3NhZ2Ugd2FzIHNlbnQuSFVuZXhwZWN0ZWRSZXNwb25zZQgBGG9yaWdpbvQBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAIMWQFRdWVyeSByZXNwb25zZSByZWNlaXZlZCB3aGljaCBkb2VzIG5vdCBtYXRjaCBhIHJlZ2lzdGVyZWQgcXVlcnkuIFRoaXMgbWF5IGJlIGJlY2F1c2UgYVUBbWF0Y2hpbmcgcXVlcnkgd2FzIG5ldmVyIHJlZ2lzdGVyZWQsIGl0IG1heSBiZSBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlIHJlc3BvbnNlLCBvcnBiZWNhdXNlIHRoZSBxdWVyeSB0aW1lZCBvdXQuNFJlc3BvbnNlUmVhZHkIASBxdWVyeV9pZDABHFF1ZXJ5SWQAASByZXNwb25zZbEGASBSZXNwb25zZQADCF0BUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIGlzIHJlYWR5IGZvciB0YWtpbmcgd2l0aCBgdGFrZV9yZXNwb25zZWAuIFRoZXJlIGlzgG5vIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uIGNhbGwuIE5vdGlmaWVkDAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgABAhZAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gaGFzqGJlZW4gZGlzcGF0Y2hlZCBhbmQgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LkBOb3RpZnlPdmVyd2VpZ2h0FAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgAATRhY3R1YWxfd2VpZ2h0KAEYV2VpZ2h0AAFMbWF4X2J1ZGdldGVkX3dlaWdodCgBGFdlaWdodAAFDEkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvblkBY291bGQgbm90IGJlIGRpc3BhdGNoZWQgYmVjYXVzZSB0aGUgZGlzcGF0Y2ggd2VpZ2h0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSB3ZWlnaHTkb3JpZ2luYWxseSBidWRnZXRlZCBieSB0aGlzIHJ1bnRpbWUgZm9yIHRoZSBxdWVyeSByZXN1bHQuTE5vdGlmeURpc3BhdGNoRXJyb3IMASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAGCFUBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZXJlIHdhcyBhIGdlbmVyYWwgZXJyb3Igd2l0aIhkaXNwYXRjaGluZyB0aGUgbm90aWZpY2F0aW9uIGNhbGwuSE5vdGlmeURlY29kZUZhaWxlZAwBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAcMUQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIGRpc3BhdGNoIHdhcyB1bmFibGUgdG8gYmVZAWRlY29kZWQgaW50byBhIGBDYWxsYDsgdGhpcyBtaWdodCBiZSBkdWUgdG8gZGlzcGF0Y2ggZnVuY3Rpb24gaGF2aW5nIGEgc2lnbmF0dXJlIHdoaWNolGlzIG5vdCBgKG9yaWdpbiwgUXVlcnlJZCwgUmVzcG9uc2UpYC5ASW52YWxpZFJlc3BvbmRlcgwBGG9yaWdpbvQBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAFEZXhwZWN0ZWRfbG9jYXRpb27FBgFAT3B0aW9uPExvY2F0aW9uPgAIDFkBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBvcmlnaW4gbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNVAW5vdCBtYXRjaCB0aGF0IGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uXEludmFsaWRSZXNwb25kZXJWZXJzaW9uCAEYb3JpZ2lu9AEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQACRxRAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgb3JpZ2luIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC40UmVzcG9uc2VUYWtlbgQBIHF1ZXJ5X2lkMAEcUXVlcnlJZAAKBMhSZWNlaXZlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWFkIGFuZCByZW1vdmVkLjRBc3NldHNUcmFwcGVkDAEQaGFzaDQBEEgyNTYAARhvcmlnaW70ASBMb2NhdGlvbgABGGFzc2V0c9kGATxWZXJzaW9uZWRBc3NldHMACwS4U29tZSBhc3NldHMgaGF2ZSBiZWVuIHBsYWNlZCBpbiBhbiBhc3NldCB0cmFwLlRWZXJzaW9uQ2hhbmdlTm90aWZpZWQQASxkZXN0aW5hdGlvbvQBIExvY2F0aW9uAAEYcmVzdWx0EAEoWGNtVmVyc2lvbgABEGNvc3SdBgEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gADAwlAUFuIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gbWVzc2FnZSBoYXMgYmVlbiBhdHRlbXB0ZWQgdG8gYmUgc2VudC4A4FRoZSBjb3N0IG9mIHNlbmRpbmcgaXQgKGJvcm5lIGJ5IHRoZSBjaGFpbikgaXMgaW5jbHVkZWQuXFN1cHBvcnRlZFZlcnNpb25DaGFuZ2VkCAEgbG9jYXRpb270ASBMb2NhdGlvbgABHHZlcnNpb24QAShYY21WZXJzaW9uAA0IOQFUaGUgc3VwcG9ydGVkIHZlcnNpb24gb2YgYSBsb2NhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiBUaGlzIG1pZ2h0IGJlIHRocm91Z2ggYW7AYXV0b21hdGljIG5vdGlmaWNhdGlvbiBvciBhIG1hbnVhbCBpbnRlcnZlbnRpb24uUE5vdGlmeVRhcmdldFNlbmRGYWlsDAEgbG9jYXRpb270ASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAABFGVycm9yWQYBIFhjbUVycm9yAA4IWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcnxzZW5kaW5nIHRoZSBub3RpZmljYXRpb24gdG8gaXQuZE5vdGlmeVRhcmdldE1pZ3JhdGlvbkZhaWwIASBsb2NhdGlvbi0BAURWZXJzaW9uZWRMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAAPCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3K0bWlncmF0aW5nIHRoZSBsb2NhdGlvbiB0byBvdXIgbmV3IFhDTSBmb3JtYXQuVEludmFsaWRRdWVyaWVyVmVyc2lvbggBGG9yaWdpbvQBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkABAcVQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIGV4cGVjdGVkIHF1ZXJpZXIgbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjhJbnZhbGlkUXVlcmllchABGG9yaWdpbvQBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAFAZXhwZWN0ZWRfcXVlcmllcvQBIExvY2F0aW9uAAFQbWF5YmVfYWN0dWFsX3F1ZXJpZXLFBgFAT3B0aW9uPExvY2F0aW9uPgARDF0BRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBxdWVyaWVyIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzUQFub3QgbWF0Y2ggdGhlIGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uUFZlcnNpb25Ob3RpZnlTdGFydGVkDAEsZGVzdGluYXRpb270ASBMb2NhdGlvbgABEGNvc3SdBgEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAEghZAUEgcmVtb3RlIGhhcyByZXF1ZXN0ZWQgWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBmcm9tIHVzIGFuZCB3ZSBoYXZlIGhvbm9yZWQgaXQuHQFBIHZlcnNpb24gaW5mb3JtYXRpb24gbWVzc2FnZSBpcyBzZW50IHRvIHRoZW0gYW5kIGl0cyBjb3N0IGlzIGluY2x1ZGVkLlhWZXJzaW9uTm90aWZ5UmVxdWVzdGVkDAEsZGVzdGluYXRpb270ASBMb2NhdGlvbgABEGNvc3SdBgEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAEwQ9AVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc2VuZCB1cyBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy5gVmVyc2lvbk5vdGlmeVVucmVxdWVzdGVkDAEsZGVzdGluYXRpb270ASBMb2NhdGlvbgABEGNvc3SdBgEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAFAglAVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc3RvcHMgc2VuZGluZyB1cyBYQ00gdmVyc2lvbiBjaGFuZ2U4bm90aWZpY2F0aW9ucy4gRmVlc1BhaWQIARhwYXlpbmf0ASBMb2NhdGlvbgABEGZlZXOdBgEYQXNzZXRzABUEMQFGZWVzIHdlcmUgcGFpZCBmcm9tIGEgbG9jYXRpb24gZm9yIGFuIG9wZXJhdGlvbiAob2Z0ZW4gZm9yIHVzaW5nIGBTZW5kWGNtYCkuNEFzc2V0c0NsYWltZWQMARBoYXNoNAEQSDI1NgABGG9yaWdpbvQBIExvY2F0aW9uAAEYYXNzZXRz2QYBPFZlcnNpb25lZEFzc2V0cwAWBMBTb21lIGFzc2V0cyBoYXZlIGJlZW4gY2xhaW1lZCBmcm9tIGFuIGFzc2V0IHRyYXBgVmVyc2lvbk1pZ3JhdGlvbkZpbmlzaGVkBAEcdmVyc2lvbhABKFhjbVZlcnNpb24AFwSEQSBYQ00gdmVyc2lvbiBtaWdyYXRpb24gZmluaXNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0LQgQLHN0YWdpbmdfeGNtCHY0GHRyYWl0cxxPdXRjb21lAAEMIENvbXBsZXRlBAEQdXNlZCgBGFdlaWdodAAAAChJbmNvbXBsZXRlCAEQdXNlZCgBGFdlaWdodAABFGVycm9yWQYBFEVycm9yAAEAFEVycm9yBAEUZXJyb3JZBgEURXJyb3IAAgAAMQgMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFdmVudAQEVAABEEBQcm9jZXNzaW5nRmFpbGVkDAEIaWQ0ARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW4VBwFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuARRlcnJvcjUIAUxQcm9jZXNzTWVzc2FnZUVycm9yEGBUaGUgZXJyb3IgdGhhdCBvY2N1cnJlZC4ASQFUaGlzIGVycm9yIGlzIHByZXR0eSBvcGFxdWUuIE1vcmUgZmluZS1ncmFpbmVkIGVycm9ycyBuZWVkIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAARVAU1lc3NhZ2UgZGlzY2FyZGVkIGR1ZSB0byBhbiBlcnJvciBpbiB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgICh1c3VhbGx5IGEgZm9ybWF0IGVycm9yKS4kUHJvY2Vzc2VkEAEIaWQ0ARBIMjU2BJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW4VBwFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuASx3ZWlnaHRfdXNlZCgBGFdlaWdodATASG93IG11Y2ggd2VpZ2h0IHdhcyB1c2VkIHRvIHByb2Nlc3MgdGhlIG1lc3NhZ2UuARxzdWNjZXNzIAEQYm9vbBiIV2hldGhlciB0aGUgbWVzc2FnZSB3YXMgcHJvY2Vzc2VkLgBJAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgdW5kZXJseWluZyBgTWVzc2FnZVByb2Nlc3NvcmAgd2FzIGludGVybmFsbHk1AXN1Y2Nlc3NmdWwuIEl0ICpzb2xlbHkqIG1lYW5zIHRoYXQgdGhlIE1RIHBhbGxldCB3aWxsIHRyZWF0IHRoaXMgYXMgYSBzdWNjZXNzTQFjb25kaXRpb24gYW5kIGRpc2NhcmQgdGhlIG1lc3NhZ2UuIEFueSBpbnRlcm5hbCBlcnJvciBuZWVkcyB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgEEVE1lc3NhZ2UgaXMgcHJvY2Vzc2VkLkhPdmVyd2VpZ2h0RW5xdWV1ZWQQAQhpZAQBIFt1ODsgMzJdBJRUaGUgYGJsYWtlMl8yNTZgIGhhc2ggb2YgdGhlIG1lc3NhZ2UuARhvcmlnaW4VBwFITWVzc2FnZU9yaWdpbk9mPFQ+BGRUaGUgcXVldWUgb2YgdGhlIG1lc3NhZ2UuAShwYWdlX2luZGV4EAEkUGFnZUluZGV4BGBUaGUgcGFnZSBvZiB0aGUgbWVzc2FnZS4BNG1lc3NhZ2VfaW5kZXgQARxUOjpTaXplBKRUaGUgaW5kZXggb2YgdGhlIG1lc3NhZ2Ugd2l0aGluIHRoZSBwYWdlLgIEjE1lc3NhZ2UgcGxhY2VkIGluIG92ZXJ3ZWlnaHQgcXVldWUuKFBhZ2VSZWFwZWQIARhvcmlnaW4VBwFITWVzc2FnZU9yaWdpbk9mPFQ+BFhUaGUgcXVldWUgb2YgdGhlIHBhZ2UuARRpbmRleBABJFBhZ2VJbmRleARYVGhlIGluZGV4IG9mIHRoZSBwYWdlLgMEVFRoaXMgcGFnZSB3YXMgcmVhcGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDUIEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBtZXNzYWdlc0xQcm9jZXNzTWVzc2FnZUVycm9yAAEYJEJhZEZvcm1hdAAAABxDb3JydXB0AAEALFVuc3VwcG9ydGVkAAIAKE92ZXJ3ZWlnaHQEACgBGFdlaWdodAADABRZaWVsZAAEAERTdGFja0xpbWl0UmVhY2hlZAAFAAA5CAxEcGFsbGV0X2Fzc2V0X3JhdGUYcGFsbGV0FEV2ZW50BARUAAEMQEFzc2V0UmF0ZUNyZWF0ZWQIAShhc3NldF9raW5kxAEwVDo6QXNzZXRLaW5kAAEQcmF0ZSEHASRGaXhlZFUxMjgAAABAQXNzZXRSYXRlUmVtb3ZlZAQBKGFzc2V0X2tpbmTEATBUOjpBc3NldEtpbmQAAQBAQXNzZXRSYXRlVXBkYXRlZAwBKGFzc2V0X2tpbmTEATBUOjpBc3NldEtpbmQAAQxvbGQhBwEkRml4ZWRVMTI4AAEMbmV3IQcBJEZpeGVkVTEyOAACAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldD0ICDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEABABDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAAQQgAAAL1AgBFCAgwZnJhbWVfc3lzdGVtWExhc3RSdW50aW1lVXBncmFkZUluZm8AAAgBMHNwZWNfdmVyc2lvbtQBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWVJCAFkc3BfcnVudGltZTo6UnVudGltZVN0cmluZwAASQgAAAUCAE0ICDBmcmFtZV9zeXN0ZW1gQ29kZVVwZ3JhZGVBdXRob3JpemF0aW9uBARUAAAIASRjb2RlX2hhc2g0ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbiABEGJvb2wAAFEIDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9jaygBGFdlaWdodAABJG1heF9ibG9jaygBGFdlaWdodAABJHBlcl9jbGFzc1UIAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAFUIDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBWQgADAEYbm9ybWFsWQgBBFQAASxvcGVyYXRpb25hbFkIAQRUAAEkbWFuZGF0b3J5WQgBBFQAAFkIDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWMoARhXZWlnaHQAATRtYXhfZXh0cmluc2ljcQcBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFscQcBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWRxBwE4T3B0aW9uPFdlaWdodD4AAF0IDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXhhCAFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AABhCAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUARAADAEYbm9ybWFsEAEEVAABLG9wZXJhdGlvbmFsEAEEVAABJG1hbmRhdG9yeRABBFQAAGUICChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZDABDHU2NAABFHdyaXRlMAEMdTY0AABpCAgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lSQgBNFJ1bnRpbWVTdHJpbmcAASRpbXBsX25hbWVJCAE0UnVudGltZVN0cmluZwABRGF1dGhvcmluZ192ZXJzaW9uEAEMdTMyAAEwc3BlY192ZXJzaW9uEAEMdTMyAAEwaW1wbF92ZXJzaW9uEAEMdTMyAAEQYXBpc20IARxBcGlzVmVjAAFMdHJhbnNhY3Rpb25fdmVyc2lvbhABDHUzMgABNHN0YXRlX3ZlcnNpb24IAQh1OAAAbQgEDENvdwQEVAFxCAAEAHEIAAAAcQgAAAJ1CAB1CAAABAgBBhAAeQgMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0fQgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAGBCARTAAAEAIUIARhWZWM8VD4AAIEIAAAECH0BMACFCAAAAoEIAIkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAI0IARhWZWM8VD4AAI0IAAACBACRCAQYT3B0aW9uBARUAZUIAQgQTm9uZQAAABBTb21lBACVCAAAAQAAlQgMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHMkUHJlRGlnZXN0AAEMHFByaW1hcnkEAJkIAUBQcmltYXJ5UHJlRGlnZXN0AAEAOFNlY29uZGFyeVBsYWluBAChCAFcU2Vjb25kYXJ5UGxhaW5QcmVEaWdlc3QAAgAwU2Vjb25kYXJ5VlJGBAClCAFUU2Vjb25kYXJ5VlJGUHJlRGlnZXN0AAMAAJkIDERzcF9jb25zZW5zdXNfYmFiZRxkaWdlc3RzQFByaW1hcnlQcmVEaWdlc3QAAAwBPGF1dGhvcml0eV9pbmRleBABVHN1cGVyOjpBdXRob3JpdHlJbmRleAABEHNsb3SBAQEQU2xvdAABNHZyZl9zaWduYXR1cmWdCAEwVnJmU2lnbmF0dXJlAACdCBAcc3BfY29yZRxzcjI1NTE5DHZyZjBWcmZTaWduYXR1cmUAAAgBKHByZV9vdXRwdXQEATBWcmZQcmVPdXRwdXQAARRwcm9vZiUCASBWcmZQcm9vZgAAoQgMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNcU2Vjb25kYXJ5UGxhaW5QcmVEaWdlc3QAAAgBPGF1dGhvcml0eV9pbmRleBABVHN1cGVyOjpBdXRob3JpdHlJbmRleAABEHNsb3SBAQEQU2xvdAAApQgMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNUU2Vjb25kYXJ5VlJGUHJlRGlnZXN0AAAMATxhdXRob3JpdHlfaW5kZXgQAVRzdXBlcjo6QXV0aG9yaXR5SW5kZXgAARBzbG90gQEBEFNsb3QAATR2cmZfc2lnbmF0dXJlnQgBMFZyZlNpZ25hdHVyZQAAqQgIRHNwX2NvbnNlbnN1c19iYWJlWEJhYmVFcG9jaENvbmZpZ3VyYXRpb24AAAgBBGONAQEoKHU2NCwgdTY0KQABNGFsbG93ZWRfc2xvdHORAQEwQWxsb3dlZFNsb3RzAACtCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbEIBFMAAAQAtQgBGFZlYzxUPgAAsQgAAAQIMBAAtQgAAAKxCAC5CAwscGFsbGV0X2JhYmUYcGFsbGV0FEVycm9yBARUAAEQYEludmFsaWRFcXVpdm9jYXRpb25Qcm9vZgAABDEBQW4gZXF1aXZvY2F0aW9uIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLmBJbnZhbGlkS2V5T3duZXJzaGlwUHJvb2YAAQQxAUEga2V5IG93bmVyc2hpcCBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5YRHVwbGljYXRlT2ZmZW5jZVJlcG9ydAACBBUBQSBnaXZlbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIHZhbGlkIGJ1dCBhbHJlYWR5IHByZXZpb3VzbHkgcmVwb3J0ZWQuUEludmFsaWRDb25maWd1cmF0aW9uAAMEjFN1Ym1pdHRlZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lr0IAAAEDAAYIADBCAw4cGFsbGV0X2luZGljZXMYcGFsbGV0FEVycm9yBARUAAEULE5vdEFzc2lnbmVkAAAEjFRoZSBpbmRleCB3YXMgbm90IGFscmVhZHkgYXNzaWduZWQuIE5vdE93bmVyAAEEpFRoZSBpbmRleCBpcyBhc3NpZ25lZCB0byBhbm90aGVyIGFjY291bnQuFEluVXNlAAIEcFRoZSBpbmRleCB3YXMgbm90IGF2YWlsYWJsZS4sTm90VHJhbnNmZXIAAwTIVGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWNjb3VudHMgYXJlIGlkZW50aWNhbC4kUGVybWFuZW50AAQE0FRoZSBpbmRleCBpcyBwZXJtYW5lbnQgYW5kIG1heSBub3QgYmUgZnJlZWQvY2hhbmdlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuxQgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAHJCARTAAAEANEIARhWZWM8VD4AAMkIDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQmFsYW5jZUxvY2sEHEJhbGFuY2UBGAAMAQhpZAEGAThMb2NrSWRlbnRpZmllcgABGGFtb3VudBgBHEJhbGFuY2UAARxyZWFzb25zzQgBHFJlYXNvbnMAAM0IDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMcUmVhc29ucwABDAxGZWUAAAAQTWlzYwABAAxBbGwAAgAA0QgAAALJCADVCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAdkIBFMAAAQA3QgBGFZlYzxUPgAA2QgMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxSZXNlcnZlRGF0YQhEUmVzZXJ2ZUlkZW50aWZpZXIBAQYcQmFsYW5jZQEYAAgBCGlkAQYBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50GAEcQmFsYW5jZQAA3QgAAALZCADhCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeUIBFMAAAQA9QgBGFZlYzxUPgAA5QgUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAHpCBxCYWxhbmNlARgACAEIaWTpCAEISWQAARhhbW91bnQYARxCYWxhbmNlAADpCAhYc3RhZ2luZ19rdXNhbWFfcnVudGltZURSdW50aW1lSG9sZFJlYXNvbgABCCBQcmVpbWFnZQQA7QgBbHBhbGxldF9wcmVpbWFnZTo6SG9sZFJlYXNvbgAgAAxOaXMEAPEIAVhwYWxsZXRfbmlzOjpIb2xkUmVhc29uACYAAO0IDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0KEhvbGRSZWFzb24AAQQgUHJlaW1hZ2UAAAAA8QgMKHBhbGxldF9uaXMYcGFsbGV0KEhvbGRSZWFzb24AAQQoTmZ0UmVjZWlwdAAAAAD1CAAAAuUIAPkIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB/QgEUwAABAAJCQEYVmVjPFQ+AAD9CBQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAQEJHEJhbGFuY2UBGAAIAQhpZAEJAQhJZAABGGFtb3VudBgBHEJhbGFuY2UAAAEJCFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lTFJ1bnRpbWVGcmVlemVSZWFzb24AAQQ8Tm9taW5hdGlvblBvb2xzBAAFCQGUcGFsbGV0X25vbWluYXRpb25fcG9vbHM6OkZyZWV6ZVJlYXNvbgApAAAFCQxccGFsbGV0X25vbWluYXRpb25fcG9vbHMYcGFsbGV0MEZyZWV6ZVJlYXNvbgABBDhQb29sTWluQmFsYW5jZQAAAAAJCQAAAv0IAA0JDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4RCQhocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQgUmVsZWFzZXMAAQgkVjFBbmNpZW50AAAACFYyAAEAABUJCDhwYWxsZXRfc3Rha2luZzRTdGFraW5nTGVkZ2VyBARUAAAUARRzdGFzaAABMFQ6OkFjY291bnRJZAABFHRvdGFs5AEwQmFsYW5jZU9mPFQ+AAEYYWN0aXZl5AEwQmFsYW5jZU9mPFQ+AAEkdW5sb2NraW5n5QEB8EJvdW5kZWRWZWM8VW5sb2NrQ2h1bms8QmFsYW5jZU9mPFQ+PiwgVDo6TWF4VW5sb2NraW5nQ2h1bmtzPgABWGxlZ2FjeV9jbGFpbWVkX3Jld2FyZHMZCQGUQm91bmRlZFZlYzxFcmFJbmRleCwgVDo6SGlzdG9yeURlcHRoPgAAGQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAwQEBGFZlYzxUPgAAHQkIOHBhbGxldF9zdGFraW5nLE5vbWluYXRpb25zBARUAAAMARx0YXJnZXRzIQkBtEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBNYXhOb21pbmF0aW9uc09mPFQ+PgABMHN1Ym1pdHRlZF9pbhABIEVyYUluZGV4AAEoc3VwcHJlc3NlZCABEGJvb2wAACEJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAK0BARhWZWM8VD4AACUJCDhwYWxsZXRfc3Rha2luZzRBY3RpdmVFcmFJbmZvAAAIARRpbmRleBABIEVyYUluZGV4AAEUc3RhcnQpCQEsT3B0aW9uPHU2ND4AACkJBBhPcHRpb24EBFQBMAEIEE5vbmUAAAAQU29tZQQAMAAAAQAALQkAAAQIEAAAMQkIKHNwX3N0YWtpbmcgRXhwb3N1cmUIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAMARR0b3RhbOQBHEJhbGFuY2UAAQxvd27kARxCYWxhbmNlAAEYb3RoZXJzNQkBrFZlYzxJbmRpdmlkdWFsRXhwb3N1cmU8QWNjb3VudElkLCBCYWxhbmNlPj4AADUJAAACOQkAOQkIKHNwX3N0YWtpbmdISW5kaXZpZHVhbEV4cG9zdXJlCCRBY2NvdW50SWQBABxCYWxhbmNlARgACAEMd2hvAAEkQWNjb3VudElkAAEUdmFsdWXkARxCYWxhbmNlAAA9CQgoc3Bfc3Rha2luZ1RQYWdlZEV4cG9zdXJlTWV0YWRhdGEEHEJhbGFuY2UBGAAQARR0b3RhbOQBHEJhbGFuY2UAAQxvd27kARxCYWxhbmNlAAE8bm9taW5hdG9yX2NvdW50EAEMdTMyAAEocGFnZV9jb3VudBABEFBhZ2UAAEEJAAAEDBAAEABFCQgoc3Bfc3Rha2luZzBFeHBvc3VyZVBhZ2UIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAIAShwYWdlX3RvdGFs5AEcQmFsYW5jZQABGG90aGVyczUJAaxWZWM8SW5kaXZpZHVhbEV4cG9zdXJlPEFjY291bnRJZCwgQmFsYW5jZT4+AABJCQg4cGFsbGV0X3N0YWtpbmc8RXJhUmV3YXJkUG9pbnRzBCRBY2NvdW50SWQBAAAIARR0b3RhbBABLFJld2FyZFBvaW50AAEoaW5kaXZpZHVhbE0JAYBCVHJlZU1hcDxBY2NvdW50SWQsIFJld2FyZFBvaW50PgAATQkEIEJUcmVlTWFwCARLAQAEVgEQAAQAUQkAAABRCQAAAlUJAFUJAAAECAAQAFkJAAACXQkAXQkIOHBhbGxldF9zdGFraW5nOFVuYXBwbGllZFNsYXNoCCRBY2NvdW50SWQBABxCYWxhbmNlARgAFAEkdmFsaWRhdG9yAAEkQWNjb3VudElkAAEMb3duGAEcQmFsYW5jZQABGG90aGVyc20EAWRWZWM8KEFjY291bnRJZCwgQmFsYW5jZSk+AAEkcmVwb3J0ZXJzrQEBOFZlYzxBY2NvdW50SWQ+AAEYcGF5b3V0GAEcQmFsYW5jZQAAYQkAAAQIlBgAZQkMOHBhbGxldF9zdGFraW5nIHNsYXNoaW5nNFNsYXNoaW5nU3BhbnMAABABKHNwYW5faW5kZXgQASRTcGFuSW5kZXgAAShsYXN0X3N0YXJ0EAEgRXJhSW5kZXgAAUhsYXN0X25vbnplcm9fc2xhc2gQASBFcmFJbmRleAABFHByaW9ywQEBNFZlYzxFcmFJbmRleD4AAGkJDDhwYWxsZXRfc3Rha2luZyBzbGFzaGluZyhTcGFuUmVjb3JkBBxCYWxhbmNlARgACAEcc2xhc2hlZBgBHEJhbGFuY2UAASBwYWlkX291dBgBHEJhbGFuY2UAAG0JEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0FEVycm9yBARUAAF8NE5vdENvbnRyb2xsZXIAAARkTm90IGEgY29udHJvbGxlciBhY2NvdW50LiBOb3RTdGFzaAABBFBOb3QgYSBzdGFzaCBhY2NvdW50LjRBbHJlYWR5Qm9uZGVkAAIEYFN0YXNoIGlzIGFscmVhZHkgYm9uZGVkLjRBbHJlYWR5UGFpcmVkAAMEdENvbnRyb2xsZXIgaXMgYWxyZWFkeSBwYWlyZWQuMEVtcHR5VGFyZ2V0cwAEBGBUYXJnZXRzIGNhbm5vdCBiZSBlbXB0eS44RHVwbGljYXRlSW5kZXgABQRARHVwbGljYXRlIGluZGV4LkRJbnZhbGlkU2xhc2hJbmRleAAGBIRTbGFzaCByZWNvcmQgaW5kZXggb3V0IG9mIGJvdW5kcy5ASW5zdWZmaWNpZW50Qm9uZAAHDFkBQ2Fubm90IGhhdmUgYSB2YWxpZGF0b3Igb3Igbm9taW5hdG9yIHJvbGUsIHdpdGggdmFsdWUgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGRlZmluZWQgYnk9AWdvdmVybmFuY2UgKHNlZSBgTWluVmFsaWRhdG9yQm9uZGAgYW5kIGBNaW5Ob21pbmF0b3JCb25kYCkuIElmIHVuYm9uZGluZyBpcyB0aGUVAWludGVudGlvbiwgYGNoaWxsYCBmaXJzdCB0byByZW1vdmUgb25lJ3Mgcm9sZSBhcyB2YWxpZGF0b3Ivbm9taW5hdG9yLjBOb01vcmVDaHVua3MACASQQ2FuIG5vdCBzY2hlZHVsZSBtb3JlIHVubG9jayBjaHVua3MuNE5vVW5sb2NrQ2h1bmsACQSgQ2FuIG5vdCByZWJvbmQgd2l0aG91dCB1bmxvY2tpbmcgY2h1bmtzLjBGdW5kZWRUYXJnZXQACgTIQXR0ZW1wdGluZyB0byB0YXJnZXQgYSBzdGFzaCB0aGF0IHN0aWxsIGhhcyBmdW5kcy5ISW52YWxpZEVyYVRvUmV3YXJkAAsEWEludmFsaWQgZXJhIHRvIHJld2FyZC5oSW52YWxpZE51bWJlck9mTm9taW5hdGlvbnMADAR4SW52YWxpZCBudW1iZXIgb2Ygbm9taW5hdGlvbnMuSE5vdFNvcnRlZEFuZFVuaXF1ZQANBIBJdGVtcyBhcmUgbm90IHNvcnRlZCBhbmQgdW5pcXVlLjhBbHJlYWR5Q2xhaW1lZAAOBAkBUmV3YXJkcyBmb3IgdGhpcyBlcmEgaGF2ZSBhbHJlYWR5IGJlZW4gY2xhaW1lZCBmb3IgdGhpcyB2YWxpZGF0b3IuLEludmFsaWRQYWdlAA8EhE5vIG5vbWluYXRvcnMgZXhpc3Qgb24gdGhpcyBwYWdlLlRJbmNvcnJlY3RIaXN0b3J5RGVwdGgAEATASW5jb3JyZWN0IHByZXZpb3VzIGhpc3RvcnkgZGVwdGggaW5wdXQgcHJvdmlkZWQuWEluY29ycmVjdFNsYXNoaW5nU3BhbnMAEQSwSW5jb3JyZWN0IG51bWJlciBvZiBzbGFzaGluZyBzcGFucyBwcm92aWRlZC4gQmFkU3RhdGUAEgQ5AUludGVybmFsIHN0YXRlIGhhcyBiZWNvbWUgc29tZWhvdyBjb3JydXB0ZWQgYW5kIHRoZSBvcGVyYXRpb24gY2Fubm90IGNvbnRpbnVlLjhUb29NYW55VGFyZ2V0cwATBJRUb28gbWFueSBub21pbmF0aW9uIHRhcmdldHMgc3VwcGxpZWQuJEJhZFRhcmdldAAUBD0BQSBub21pbmF0aW9uIHRhcmdldCB3YXMgc3VwcGxpZWQgdGhhdCB3YXMgYmxvY2tlZCBvciBvdGhlcndpc2Ugbm90IGEgdmFsaWRhdG9yLkBDYW5ub3RDaGlsbE90aGVyABUEVQFUaGUgdXNlciBoYXMgZW5vdWdoIGJvbmQgYW5kIHRodXMgY2Fubm90IGJlIGNoaWxsZWQgZm9yY2VmdWxseSBieSBhbiBleHRlcm5hbCBwZXJzb24uRFRvb01hbnlOb21pbmF0b3JzABYITQFUaGVyZSBhcmUgdG9vIG1hbnkgbm9taW5hdG9ycyBpbiB0aGUgc3lzdGVtLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIGFkanVzdCB0aGUgc3Rha2luZ7RzZXR0aW5ncyB0byBrZWVwIHRoaW5ncyBzYWZlIGZvciB0aGUgcnVudGltZS5EVG9vTWFueVZhbGlkYXRvcnMAFwhVAVRoZXJlIGFyZSB0b28gbWFueSB2YWxpZGF0b3IgY2FuZGlkYXRlcyBpbiB0aGUgc3lzdGVtLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIGFkanVzdCB0aGXUc3Rha2luZyBzZXR0aW5ncyB0byBrZWVwIHRoaW5ncyBzYWZlIGZvciB0aGUgcnVudGltZS5AQ29tbWlzc2lvblRvb0xvdwAYBOBDb21taXNzaW9uIGlzIHRvbyBsb3cuIE11c3QgYmUgYXQgbGVhc3QgYE1pbkNvbW1pc3Npb25gLixCb3VuZE5vdE1ldAAZBFhTb21lIGJvdW5kIGlzIG5vdCBtZXQuUENvbnRyb2xsZXJEZXByZWNhdGVkABoEAQFVc2VkIHdoZW4gYXR0ZW1wdGluZyB0byB1c2UgZGVwcmVjYXRlZCBjb250cm9sbGVyIGFjY291bnQgbG9naWMuTENhbm5vdFJlc3RvcmVMZWRnZXIAGwRYQ2Fubm90IHJlc2V0IGEgbGVkZ2VyLmxSZXdhcmREZXN0aW5hdGlvblJlc3RyaWN0ZWQAHASsUHJvdmlkZWQgcmV3YXJkIGRlc3RpbmF0aW9uIGlzIG5vdCBhbGxvd2VkLjhOb3RFbm91Z2hGdW5kcwAdBJxOb3QgZW5vdWdoIGZ1bmRzIGF2YWlsYWJsZSB0byB3aXRoZHJhdy5cVmlydHVhbFN0YWtlck5vdEFsbG93ZWQAHgSoT3BlcmF0aW9uIG5vdCBhbGxvd2VkIGZvciB2aXJ0dWFsIHN0YWtlcnMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnEJDChzcF9zdGFraW5nHG9mZmVuY2U4T2ZmZW5jZURldGFpbHMIIFJlcG9ydGVyAQAgT2ZmZW5kZXIBdQkACAEgb2ZmZW5kZXJ1CQEgT2ZmZW5kZXIAASRyZXBvcnRlcnOtAQE0VmVjPFJlcG9ydGVyPgAAdQkAAAQIADEJAHkJAAAECKg4AH0JAAAECDQQAIEJAAAChQkAhQkAAAQIAPUBAIkJAAAECI0JOACNCQwcc3BfY29yZRhjcnlwdG8kS2V5VHlwZUlkAAAEAEgBHFt1ODsgNF0AAJEJDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQURXJyb3IEBFQAARQwSW52YWxpZFByb29mAAAEYEludmFsaWQgb3duZXJzaGlwIHByb29mLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAABBJxObyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRCBmb3IgYWNjb3VudC40RHVwbGljYXRlZEtleQACBGRSZWdpc3RlcmVkIGR1cGxpY2F0ZSBrZXkuGE5vS2V5cwADBKRObyBrZXlzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY2NvdW50LiROb0FjY291bnQABAQZAUtleSBzZXR0aW5nIGFjY291bnQgaXMgbm90IGxpdmUsIHNvIGl0J3MgaW1wb3NzaWJsZSB0byBhc3NvY2lhdGUga2V5cy4EdEVycm9yIGZvciB0aGUgc2Vzc2lvbiBwYWxsZXQulQkIOHBhbGxldF9ncmFuZHBhLFN0b3JlZFN0YXRlBAROARABEBBMaXZlAAAAMFBlbmRpbmdQYXVzZQgBMHNjaGVkdWxlZF9hdBABBE4AARRkZWxheRABBE4AAQAYUGF1c2VkAAIANFBlbmRpbmdSZXN1bWUIATBzY2hlZHVsZWRfYXQQAQROAAEUZGVsYXkQAQROAAMAAJkJCDhwYWxsZXRfZ3JhbmRwYUxTdG9yZWRQZW5kaW5nQ2hhbmdlCAROARAUTGltaXQAABABMHNjaGVkdWxlZF9hdBABBE4AARRkZWxheRABBE4AAUBuZXh0X2F1dGhvcml0aWVznQkBbEJvdW5kZWRBdXRob3JpdHlMaXN0PExpbWl0PgABGGZvcmNlZD0CASRPcHRpb248Tj4AAJ0JDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBuARTAAAEALQBGFZlYzxUPgAAoQkMOHBhbGxldF9ncmFuZHBhGHBhbGxldBRFcnJvcgQEVAABHCxQYXVzZUZhaWxlZAAACAUBQXR0ZW1wdCB0byBzaWduYWwgR1JBTkRQQSBwYXVzZSB3aGVuIHRoZSBhdXRob3JpdHkgc2V0IGlzbid0IGxpdmWkKGVpdGhlciBwYXVzZWQgb3IgYWxyZWFkeSBwZW5kaW5nIHBhdXNlKS4wUmVzdW1lRmFpbGVkAAEIEQFBdHRlbXB0IHRvIHNpZ25hbCBHUkFORFBBIHJlc3VtZSB3aGVuIHRoZSBhdXRob3JpdHkgc2V0IGlzbid0IHBhdXNlZKAoZWl0aGVyIGxpdmUgb3IgYWxyZWFkeSBwZW5kaW5nIHJlc3VtZSkuNENoYW5nZVBlbmRpbmcAAgToQXR0ZW1wdCB0byBzaWduYWwgR1JBTkRQQSBjaGFuZ2Ugd2l0aCBvbmUgYWxyZWFkeSBwZW5kaW5nLhxUb29Tb29uAAMEvENhbm5vdCBzaWduYWwgZm9yY2VkIGNoYW5nZSBzbyBzb29uIGFmdGVyIGxhc3QuYEludmFsaWRLZXlPd25lcnNoaXBQcm9vZgAEBDEBQSBrZXkgb3duZXJzaGlwIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLmBJbnZhbGlkRXF1aXZvY2F0aW9uUHJvb2YABQQxAUFuIGVxdWl2b2NhdGlvbiBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5YRHVwbGljYXRlT2ZmZW5jZVJlcG9ydAAGBBUBQSBnaXZlbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIHZhbGlkIGJ1dCBhbHJlYWR5IHByZXZpb3VzbHkgcmVwb3J0ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqUJDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBAQIEUwAABACpCQEYVmVjPFQ+AACpCQAAAgECAK0JCDxwYWxsZXRfdHJlYXN1cnkgUHJvcG9zYWwIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAQASBwcm9wb3NlcgABJEFjY291bnRJZAABFHZhbHVlGAEcQmFsYW5jZQABLGJlbmVmaWNpYXJ5AAEkQWNjb3VudElkAAEQYm9uZBgBHEJhbGFuY2UAALEJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBEARTAAAEAMEBARhWZWM8VD4AALUJCDxwYWxsZXRfdHJlYXN1cnksU3BlbmRTdGF0dXMUJEFzc2V0S2luZAHEMEFzc2V0QmFsYW5jZQEYLEJlbmVmaWNpYXJ5AS0BLEJsb2NrTnVtYmVyARAkUGF5bWVudElkATAAGAEoYXNzZXRfa2luZMQBJEFzc2V0S2luZAABGGFtb3VudBgBMEFzc2V0QmFsYW5jZQABLGJlbmVmaWNpYXJ5LQEBLEJlbmVmaWNpYXJ5AAEodmFsaWRfZnJvbRABLEJsb2NrTnVtYmVyAAEkZXhwaXJlX2F0EAEsQmxvY2tOdW1iZXIAARhzdGF0dXO5CQFcUGF5bWVudFN0YXRlPFBheW1lbnRJZD4AALkJCDxwYWxsZXRfdHJlYXN1cnkwUGF5bWVudFN0YXRlBAhJZAEwAQwcUGVuZGluZwAAACRBdHRlbXB0ZWQEAQhpZDABCElkAAEAGEZhaWxlZAACAAC9CQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcm1pbGwAAAQAEAEMdTMyAADBCQg0ZnJhbWVfc3VwcG9ydCBQYWxsZXRJZAAABAABBgEcW3U4OyA4XQAAxQkMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXJyb3IIBFQABEkAASwwSW52YWxpZEluZGV4AAAErE5vIHByb3Bvc2FsLCBib3VudHkgb3Igc3BlbmQgYXQgdGhhdCBpbmRleC5AVG9vTWFueUFwcHJvdmFscwABBIBUb28gbWFueSBhcHByb3ZhbHMgaW4gdGhlIHF1ZXVlLlhJbnN1ZmZpY2llbnRQZXJtaXNzaW9uAAIIRQFUaGUgc3BlbmQgb3JpZ2luIGlzIHZhbGlkIGJ1dCB0aGUgYW1vdW50IGl0IGlzIGFsbG93ZWQgdG8gc3BlbmQgaXMgbG93ZXIgdGhhbiB0aGVMYW1vdW50IHRvIGJlIHNwZW50LkxQcm9wb3NhbE5vdEFwcHJvdmVkAAMEfFByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC5YRmFpbGVkVG9Db252ZXJ0QmFsYW5jZQAEBFEBVGhlIGJhbGFuY2Ugb2YgdGhlIGFzc2V0IGtpbmQgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHRoZSBiYWxhbmNlIG9mIHRoZSBuYXRpdmUgYXNzZXQuMFNwZW5kRXhwaXJlZAAFBLBUaGUgc3BlbmQgaGFzIGV4cGlyZWQgYW5kIGNhbm5vdCBiZSBjbGFpbWVkLixFYXJseVBheW91dAAGBKRUaGUgc3BlbmQgaXMgbm90IHlldCBlbGlnaWJsZSBmb3IgcGF5b3V0LkBBbHJlYWR5QXR0ZW1wdGVkAAcEnFRoZSBwYXltZW50IGhhcyBhbHJlYWR5IGJlZW4gYXR0ZW1wdGVkLixQYXlvdXRFcnJvcgAIBMxUaGVyZSB3YXMgc29tZSBpc3N1ZSB3aXRoIHRoZSBtZWNoYW5pc20gb2YgcGF5bWVudC4wTm90QXR0ZW1wdGVkAAkEpFRoZSBwYXlvdXQgd2FzIG5vdCB5ZXQgYXR0ZW1wdGVkL2NsYWltZWQuMEluY29uY2x1c2l2ZQAKBMRUaGUgcGF5bWVudCBoYXMgbmVpdGhlciBmYWlsZWQgbm9yIHN1Y2NlZWRlZCB5ZXQuBHhFcnJvciBmb3IgdGhlIHRyZWFzdXJ5IHBhbGxldC7JCQAABAgAVQEAzQkMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlGFZvdGluZxQcQmFsYW5jZQEYJEFjY291bnRJZAEALEJsb2NrTnVtYmVyARAkUG9sbEluZGV4ARAgTWF4Vm90ZXMAAQgcQ2FzdGluZwQA0QkByENhc3Rpbmc8QmFsYW5jZSwgQmxvY2tOdW1iZXIsIFBvbGxJbmRleCwgTWF4Vm90ZXM+AAAAKERlbGVnYXRpbmcEAOkJAaxEZWxlZ2F0aW5nPEJhbGFuY2UsIEFjY291bnRJZCwgQmxvY2tOdW1iZXI+AAEAANEJDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRxDYXN0aW5nEBxCYWxhbmNlARgsQmxvY2tOdW1iZXIBECRQb2xsSW5kZXgBECBNYXhWb3RlcwAADAEUdm90ZXPVCQHcQm91bmRlZFZlYzwoUG9sbEluZGV4LCBBY2NvdW50Vm90ZTxCYWxhbmNlPiksIE1heFZvdGVzPgABLGRlbGVnYXRpb25z4QkBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3LlCQF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgAA1QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHZCQRTAAAEAN0JARhWZWM8VD4AANkJAAAECBBFAgDdCQAAAtkJAOEJDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcUdHlwZXMsRGVsZWdhdGlvbnMEHEJhbGFuY2UBGAAIARR2b3RlcxgBHEJhbGFuY2UAARxjYXBpdGFsGAEcQmFsYW5jZQAA5QkMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlJFByaW9yTG9jawgsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgACAAQASxCbG9ja051bWJlcgAAGAEcQmFsYW5jZQAA6QkMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlKERlbGVnYXRpbmcMHEJhbGFuY2UBGCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEQABQBHGJhbGFuY2UYARxCYWxhbmNlAAEYdGFyZ2V0AAEkQWNjb3VudElkAAEoY29udmljdGlvbk0CAShDb252aWN0aW9uAAEsZGVsZWdhdGlvbnPhCQFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvcuUJAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AADtCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfEJBFMAAAQA9QkBGFZlYzxUPgAA8QkAAAQIVQEYAPUJAAAC8QkA+QkMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQURXJyb3IIBFQABEkAATAoTm90T25nb2luZwAABFBQb2xsIGlzIG5vdCBvbmdvaW5nLiBOb3RWb3RlcgABBKxUaGUgZ2l2ZW4gYWNjb3VudCBkaWQgbm90IHZvdGUgb24gdGhlIHBvbGwuME5vUGVybWlzc2lvbgACBMhUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uLjxOb1Blcm1pc3Npb25ZZXQAAwRZAVRoZSBhY3RvciBoYXMgbm8gcGVybWlzc2lvbiB0byBjb25kdWN0IHRoZSBhY3Rpb24gcmlnaHQgbm93IGJ1dCB3aWxsIGRvIGluIHRoZSBmdXR1cmUuREFscmVhZHlEZWxlZ2F0aW5nAAQEiFRoZSBhY2NvdW50IGlzIGFscmVhZHkgZGVsZWdhdGluZy40QWxyZWFkeVZvdGluZwAFCFUBVGhlIGFjY291bnQgY3VycmVudGx5IGhhcyB2b3RlcyBhdHRhY2hlZCB0byBpdCBhbmQgdGhlIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCB1bnRpbKB0aGVzZSBhcmUgcmVtb3ZlZCB0aHJvdWdoIGByZW1vdmVfdm90ZWAuREluc3VmZmljaWVudEZ1bmRzAAYE/FRvbyBoaWdoIGEgYmFsYW5jZSB3YXMgcHJvdmlkZWQgdGhhdCB0aGUgYWNjb3VudCBjYW5ub3QgYWZmb3JkLjROb3REZWxlZ2F0aW5nAAcEoFRoZSBhY2NvdW50IGlzIG5vdCBjdXJyZW50bHkgZGVsZWdhdGluZy4gTm9uc2Vuc2UACASURGVsZWdhdGlvbiB0byBvbmVzZWxmIG1ha2VzIG5vIHNlbnNlLjxNYXhWb3Rlc1JlYWNoZWQACQSATWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgcmVhY2hlZC4sQ2xhc3NOZWVkZWQACgQ5AVRoZSBjbGFzcyBtdXN0IGJlIHN1cHBsaWVkIHNpbmNlIGl0IGlzIG5vdCBlYXNpbHkgZGV0ZXJtaW5hYmxlIGZyb20gdGhlIHN0YXRlLiBCYWRDbGFzcwALBIRUaGUgY2xhc3MgSUQgc3VwcGxpZWQgaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu/QkMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4UmVmZXJlbmR1bUluZm8gHFRyYWNrSWQBVQE0UnVudGltZU9yaWdpbgFZAhhNb21lbnQBEBBDYWxsAVkBHEJhbGFuY2UBGBRUYWxseQFRByRBY2NvdW50SWQBADxTY2hlZHVsZUFkZHJlc3MB9QIBGBxPbmdvaW5nBAABCgGNAVJlZmVyZW5kdW1TdGF0dXM8VHJhY2tJZCwgUnVudGltZU9yaWdpbiwgTW9tZW50LCBDYWxsLCBCYWxhbmNlLCBUYWxseSwKQWNjb3VudElkLCBTY2hlZHVsZUFkZHJlc3MsPgAAACBBcHByb3ZlZAwAEAEYTW9tZW50AAAJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAAkKAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgABACBSZWplY3RlZAwAEAEYTW9tZW50AAAJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAAkKAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgACACRDYW5jZWxsZWQMABABGE1vbWVudAAACQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAAJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAwAgVGltZWRPdXQMABABGE1vbWVudAAACQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAAJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4ABAAYS2lsbGVkBAAQARhNb21lbnQABQAAAQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXNAUmVmZXJlbmR1bVN0YXR1cyAcVHJhY2tJZAFVATRSdW50aW1lT3JpZ2luAVkCGE1vbWVudAEQEENhbGwBWQEcQmFsYW5jZQEYFFRhbGx5AVEHJEFjY291bnRJZAEAPFNjaGVkdWxlQWRkcmVzcwH1AgAsARR0cmFja1UBARxUcmFja0lkAAEYb3JpZ2luWQIBNFJ1bnRpbWVPcmlnaW4AASBwcm9wb3NhbFkBARBDYWxsAAEkZW5hY3RtZW50dQIBUERpc3BhdGNoVGltZTxNb21lbnQ+AAEkc3VibWl0dGVkEAEYTW9tZW50AAFIc3VibWlzc2lvbl9kZXBvc2l0BQoBbERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPgABQGRlY2lzaW9uX2RlcG9zaXQJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AASBkZWNpZGluZw0KAXhPcHRpb248RGVjaWRpbmdTdGF0dXM8TW9tZW50Pj4AARR0YWxseVEHARRUYWxseQABIGluX3F1ZXVlIAEQYm9vbAABFGFsYXJtFQoBhE9wdGlvbjwoTW9tZW50LCBTY2hlZHVsZUFkZHJlc3MpPgAABQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMcRGVwb3NpdAgkQWNjb3VudElkAQAcQmFsYW5jZQEYAAgBDHdobwABJEFjY291bnRJZAABGGFtb3VudBgBHEJhbGFuY2UAAAkKBBhPcHRpb24EBFQBBQoBCBBOb25lAAAAEFNvbWUEAAUKAAABAAANCgQYT3B0aW9uBARUAREKAQgQTm9uZQAAABBTb21lBAARCgAAAQAAEQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXM4RGVjaWRpbmdTdGF0dXMELEJsb2NrTnVtYmVyARAACAEUc2luY2UQASxCbG9ja051bWJlcgABKGNvbmZpcm1pbmc9AgFMT3B0aW9uPEJsb2NrTnVtYmVyPgAAFQoEGE9wdGlvbgQEVAEZCgEIEE5vbmUAAAAQU29tZQQAGQoAAAEAABkKAAAECBD1AgAdCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASEKBFMAAAQAJQoBGFZlYzxUPgAAIQoAAAQIEBgAJQoAAAIhCgApCgAAAi0KAC0KAAAECFUBMQoAMQoMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMkVHJhY2tJbmZvCBxCYWxhbmNlARgYTW9tZW50ARAAJAEQbmFtZUkIATAmJ3N0YXRpYyBzdHIAATBtYXhfZGVjaWRpbmcQAQx1MzIAAUBkZWNpc2lvbl9kZXBvc2l0GAEcQmFsYW5jZQABOHByZXBhcmVfcGVyaW9kEAEYTW9tZW50AAE8ZGVjaXNpb25fcGVyaW9kEAEYTW9tZW50AAE4Y29uZmlybV9wZXJpb2QQARhNb21lbnQAAVBtaW5fZW5hY3RtZW50X3BlcmlvZBABGE1vbWVudAABMG1pbl9hcHByb3ZhbDUKARRDdXJ2ZQABLG1pbl9zdXBwb3J0NQoBFEN1cnZlAAA1CgxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlcxRDdXJ2ZQABDEBMaW5lYXJEZWNyZWFzaW5nDAEYbGVuZ3RolAEcUGVyYmlsbAABFGZsb29ylAEcUGVyYmlsbAABEGNlaWyUARxQZXJiaWxsAAAARFN0ZXBwZWREZWNyZWFzaW5nEAEUYmVnaW6UARxQZXJiaWxsAAEMZW5klAEcUGVyYmlsbAABEHN0ZXCUARxQZXJiaWxsAAEYcGVyaW9klAEcUGVyYmlsbAABAChSZWNpcHJvY2FsDAEYZmFjdG9yOQoBIEZpeGVkSTY0AAEgeF9vZmZzZXQ5CgEgRml4ZWRJNjQAASB5X29mZnNldDkKASBGaXhlZEk2NAACAAA5Cgw0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCBGaXhlZEk2NAAABAA9CgEMaTY0AAA9CgAABQwAQQoMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0FEVycm9yCARUAARJAAE4KE5vdE9uZ29pbmcAAARoUmVmZXJlbmR1bSBpcyBub3Qgb25nb2luZy4oSGFzRGVwb3NpdAABBLhSZWZlcmVuZHVtJ3MgZGVjaXNpb24gZGVwb3NpdCBpcyBhbHJlYWR5IHBhaWQuIEJhZFRyYWNrAAIEnFRoZSB0cmFjayBpZGVudGlmaWVyIGdpdmVuIHdhcyBpbnZhbGlkLhBGdWxsAAMEMQFUaGVyZSBhcmUgYWxyZWFkeSBhIGZ1bGwgY29tcGxlbWVudCBvZiByZWZlcmVuZGEgaW4gcHJvZ3Jlc3MgZm9yIHRoaXMgdHJhY2suKFF1ZXVlRW1wdHkABASAVGhlIHF1ZXVlIG9mIHRoZSB0cmFjayBpcyBlbXB0eS40QmFkUmVmZXJlbmR1bQAFBORUaGUgcmVmZXJlbmR1bSBpbmRleCBwcm92aWRlZCBpcyBpbnZhbGlkIGluIHRoaXMgY29udGV4dC4sTm90aGluZ1RvRG8ABgSsVGhlcmUgd2FzIG5vdGhpbmcgdG8gZG8gaW4gdGhlIGFkdmFuY2VtZW50LhxOb1RyYWNrAAcEoE5vIHRyYWNrIGV4aXN0cyBmb3IgdGhlIHByb3Bvc2FsIG9yaWdpbi4oVW5maW5pc2hlZAAIBAEBQW55IGRlcG9zaXQgY2Fubm90IGJlIHJlZnVuZGVkIHVudGlsIGFmdGVyIHRoZSBkZWNpc2lvbiBpcyBvdmVyLjBOb1Blcm1pc3Npb24ACQSoVGhlIGRlcG9zaXQgcmVmdW5kZXIgaXMgbm90IHRoZSBkZXBvc2l0b3IuJE5vRGVwb3NpdAAKBMxUaGUgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgc2luY2Ugbm9uZSB3YXMgbWFkZS4kQmFkU3RhdHVzAAsE0FRoZSByZWZlcmVuZHVtIHN0YXR1cyBpcyBpbnZhbGlkIGZvciB0aGlzIG9wZXJhdGlvbi5AUHJlaW1hZ2VOb3RFeGlzdAAMBHBUaGUgcHJlaW1hZ2UgZG9lcyBub3QgZXhpc3QuhFByZWltYWdlU3RvcmVkV2l0aERpZmZlcmVudExlbmd0aAANBBUBVGhlIHByZWltYWdlIGlzIHN0b3JlZCB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIHRoZSBvbmUgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkUKCGBwYWxsZXRfcmFua2VkX2NvbGxlY3RpdmUwTWVtYmVyUmVjb3JkAAAEARByYW5rVQEBEFJhbmsAAEkKAAAECFUBAABNCgAABAhVARAAUQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AABVCgxgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlGHBhbGxldBRFcnJvcggEVAAESQABLDRBbHJlYWR5TWVtYmVyAAAEcEFjY291bnQgaXMgYWxyZWFkeSBhIG1lbWJlci4kTm90TWVtYmVyAAEEYEFjY291bnQgaXMgbm90IGEgbWVtYmVyLihOb3RQb2xsaW5nAAIEuFRoZSBnaXZlbiBwb2xsIGluZGV4IGlzIHVua25vd24gb3IgaGFzIGNsb3NlZC4cT25nb2luZwADBIBUaGUgZ2l2ZW4gcG9sbCBpcyBzdGlsbCBvbmdvaW5nLjROb25lUmVtYWluaW5nAAQErFRoZXJlIGFyZSBubyBmdXJ0aGVyIHJlY29yZHMgdG8gYmUgcmVtb3ZlZC4oQ29ycnVwdGlvbgAFBGhVbmV4cGVjdGVkIGVycm9yIGluIHN0YXRlLihSYW5rVG9vTG93AAYElFRoZSBtZW1iZXIncyByYW5rIGlzIHRvbyBsb3cgdG8gdm90ZS44SW52YWxpZFdpdG5lc3MABwSYVGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIGlzIGluY29ycmVjdC4wTm9QZXJtaXNzaW9uAAgE+FRoZSBvcmlnaW4gaXMgbm90IHN1ZmZpY2llbnRseSBwcml2aWxlZ2VkIHRvIGRvIHRoZSBvcGVyYXRpb24uKFNhbWVNZW1iZXIACQTgVGhlIG5ldyBtZW1iZXIgdG8gZXhjaGFuZ2UgaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBtZW1iZXI4VG9vTWFueU1lbWJlcnMACgTMVGhlIG1heCBtZW1iZXIgY291bnQgZm9yIHRoZSByYW5rIGhhcyBiZWVuIHJlYWNoZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlkKDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzOFJlZmVyZW5kdW1JbmZvIBxUcmFja0lkAVUBNFJ1bnRpbWVPcmlnaW4BWQIYTW9tZW50ARAQQ2FsbAFZARxCYWxhbmNlARgUVGFsbHkBXQckQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAfUCARgcT25nb2luZwQAXQoBjQFSZWZlcmVuZHVtU3RhdHVzPFRyYWNrSWQsIFJ1bnRpbWVPcmlnaW4sIE1vbWVudCwgQ2FsbCwgQmFsYW5jZSwgVGFsbHksCkFjY291bnRJZCwgU2NoZWR1bGVBZGRyZXNzLD4AAAAgQXBwcm92ZWQMABABGE1vbWVudAAACQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAAJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAQAgUmVqZWN0ZWQMABABGE1vbWVudAAACQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAAJCgGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAgAkQ2FuY2VsbGVkDAAQARhNb21lbnQAAAkKAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAACQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAMAIFRpbWVkT3V0DAAQARhNb21lbnQAAAkKAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAACQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAQAGEtpbGxlZAQAEAEYTW9tZW50AAUAAF0KDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzQFJlZmVyZW5kdW1TdGF0dXMgHFRyYWNrSWQBVQE0UnVudGltZU9yaWdpbgFZAhhNb21lbnQBEBBDYWxsAVkBHEJhbGFuY2UBGBRUYWxseQFdByRBY2NvdW50SWQBADxTY2hlZHVsZUFkZHJlc3MB9QIALAEUdHJhY2tVAQEcVHJhY2tJZAABGG9yaWdpblkCATRSdW50aW1lT3JpZ2luAAEgcHJvcG9zYWxZAQEQQ2FsbAABJGVuYWN0bWVudHUCAVBEaXNwYXRjaFRpbWU8TW9tZW50PgABJHN1Ym1pdHRlZBABGE1vbWVudAABSHN1Ym1pc3Npb25fZGVwb3NpdAUKAWxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4AAUBkZWNpc2lvbl9kZXBvc2l0CQoBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEgZGVjaWRpbmcNCgF4T3B0aW9uPERlY2lkaW5nU3RhdHVzPE1vbWVudD4+AAEUdGFsbHldBwEUVGFsbHkAASBpbl9xdWV1ZSABEGJvb2wAARRhbGFybRUKAYRPcHRpb248KE1vbWVudCwgU2NoZWR1bGVBZGRyZXNzKT4AAGEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB9QIEUwAABABBCAEYVmVjPFQ+AABlCgxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXJyb3IIBFQABEkAATgoTm90T25nb2luZwAABGhSZWZlcmVuZHVtIGlzIG5vdCBvbmdvaW5nLihIYXNEZXBvc2l0AAEEuFJlZmVyZW5kdW0ncyBkZWNpc2lvbiBkZXBvc2l0IGlzIGFscmVhZHkgcGFpZC4gQmFkVHJhY2sAAgScVGhlIHRyYWNrIGlkZW50aWZpZXIgZ2l2ZW4gd2FzIGludmFsaWQuEEZ1bGwAAwQxAVRoZXJlIGFyZSBhbHJlYWR5IGEgZnVsbCBjb21wbGVtZW50IG9mIHJlZmVyZW5kYSBpbiBwcm9ncmVzcyBmb3IgdGhpcyB0cmFjay4oUXVldWVFbXB0eQAEBIBUaGUgcXVldWUgb2YgdGhlIHRyYWNrIGlzIGVtcHR5LjRCYWRSZWZlcmVuZHVtAAUE5FRoZSByZWZlcmVuZHVtIGluZGV4IHByb3ZpZGVkIGlzIGludmFsaWQgaW4gdGhpcyBjb250ZXh0LixOb3RoaW5nVG9EbwAGBKxUaGVyZSB3YXMgbm90aGluZyB0byBkbyBpbiB0aGUgYWR2YW5jZW1lbnQuHE5vVHJhY2sABwSgTm8gdHJhY2sgZXhpc3RzIGZvciB0aGUgcHJvcG9zYWwgb3JpZ2luLihVbmZpbmlzaGVkAAgEAQFBbnkgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgdW50aWwgYWZ0ZXIgdGhlIGRlY2lzaW9uIGlzIG92ZXIuME5vUGVybWlzc2lvbgAJBKhUaGUgZGVwb3NpdCByZWZ1bmRlciBpcyBub3QgdGhlIGRlcG9zaXRvci4kTm9EZXBvc2l0AAoEzFRoZSBkZXBvc2l0IGNhbm5vdCBiZSByZWZ1bmRlZCBzaW5jZSBub25lIHdhcyBtYWRlLiRCYWRTdGF0dXMACwTQVGhlIHJlZmVyZW5kdW0gc3RhdHVzIGlzIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uLkBQcmVpbWFnZU5vdEV4aXN0AAwEcFRoZSBwcmVpbWFnZSBkb2VzIG5vdCBleGlzdC6EUHJlaW1hZ2VTdG9yZWRXaXRoRGlmZmVyZW50TGVuZ3RoAA0EFQFUaGUgcHJlaW1hZ2UgaXMgc3RvcmVkIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIHRoYW4gdGhlIG9uZSBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuaQoMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0FEVycm9yBARUAAEUTFVuYXZhaWxhYmxlUHJlSW1hZ2UAAATIVGhlIHByZWltYWdlIG9mIHRoZSBjYWxsIGhhc2ggY291bGQgbm90IGJlIGxvYWRlZC48VW5kZWNvZGFibGVDYWxsAAEEeFRoZSBjYWxsIGNvdWxkIG5vdCBiZSBkZWNvZGVkLmBJbnZhbGlkQ2FsbFdlaWdodFdpdG5lc3MAAgTsVGhlIHdlaWdodCBvZiB0aGUgZGVjb2RlZCBjYWxsIHdhcyBoaWdoZXIgdGhhbiB0aGUgd2l0bmVzcy5QQ2FsbElzTm90V2hpdGVsaXN0ZWQAAwR0VGhlIGNhbGwgd2FzIG5vdCB3aGl0ZWxpc3RlZC5YQ2FsbEFscmVhZHlXaGl0ZWxpc3RlZAAEBKBUaGUgY2FsbCB3YXMgYWxyZWFkeSB3aGl0ZWxpc3RlZDsgTm8tT3AuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lm0KEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhhjbGFpbXMYcGFsbGV0FEVycm9yBARUAAEYYEludmFsaWRFdGhlcmV1bVNpZ25hdHVyZQAABGxJbnZhbGlkIEV0aGVyZXVtIHNpZ25hdHVyZS5AU2lnbmVySGFzTm9DbGFpbQABBHhFdGhlcmV1bSBhZGRyZXNzIGhhcyBubyBjbGFpbS5AU2VuZGVySGFzTm9DbGFpbQACBLBBY2NvdW50IElEIHNlbmRpbmcgdHJhbnNhY3Rpb24gaGFzIG5vIGNsYWltLjBQb3RVbmRlcmZsb3cAAwhJAVRoZXJlJ3Mgbm90IGVub3VnaCBpbiB0aGUgcG90IHRvIHBheSBvdXQgc29tZSB1bnZlc3RlZCBhbW91bnQuIEdlbmVyYWxseSBpbXBsaWVzIGEwbG9naWMgZXJyb3IuQEludmFsaWRTdGF0ZW1lbnQABASQQSBuZWVkZWQgc3RhdGVtZW50IHdhcyBub3QgaW5jbHVkZWQuTFZlc3RlZEJhbGFuY2VFeGlzdHMABQSkVGhlIGFjY291bnQgYWxyZWFkeSBoYXMgYSB2ZXN0ZWQgYmFsYW5jZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQucQoMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQudQoIOHBhbGxldF9zb2NpZXR5ME1lbWJlclJlY29yZAAAEAEQcmFuaxABEFJhbmsAARxzdHJpa2VzEAEsU3RyaWtlQ291bnQAASB2b3VjaGluZ3kKAVhPcHRpb248Vm91Y2hpbmdTdGF0dXM+AAEUaW5kZXgQAQx1MzIAAHkKBBhPcHRpb24EBFQBfQoBCBBOb25lAAAAEFNvbWUEAH0KAAABAAB9Cgg4cGFsbGV0X3NvY2lldHk4Vm91Y2hpbmdTdGF0dXMAAQggVm91Y2hpbmcAAAAYQmFubmVkAAEAAIEKCDhwYWxsZXRfc29jaWV0eTBQYXlvdXRSZWNvcmQIHEJhbGFuY2UBGChQYXlvdXRzVmVjAYUKAAgBEHBhaWQYARxCYWxhbmNlAAEccGF5b3V0c4UKAShQYXlvdXRzVmVjAACFCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASEKBFMAAAQAJQoBGFZlYzxUPgAAiQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGNCgRTAAAEAJUKARhWZWM8VD4AAI0KCDhwYWxsZXRfc29jaWV0eQxCaWQIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAMAQx3aG8AASRBY2NvdW50SWQAARBraW5kkQoBbEJpZEtpbmQ8QWNjb3VudElkLCBCYWxhbmNlPgABFHZhbHVlGAEcQmFsYW5jZQAAkQoIOHBhbGxldF9zb2NpZXR5HEJpZEtpbmQIJEFjY291bnRJZAEAHEJhbGFuY2UBGAEIHERlcG9zaXQEABgBHEJhbGFuY2UAAAAUVm91Y2gIAAABJEFjY291bnRJZAAAGAEcQmFsYW5jZQABAACVCgAAAo0KAJkKCDhwYWxsZXRfc29jaWV0eSRDYW5kaWRhY3kIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAUARRyb3VuZBABKFJvdW5kSW5kZXgAARBraW5kkQoBbEJpZEtpbmQ8QWNjb3VudElkLCBCYWxhbmNlPgABDGJpZBgBHEJhbGFuY2UAARR0YWxseZ0KARRUYWxseQABOHNrZXB0aWNfc3RydWNrIAEQYm9vbAAAnQoIOHBhbGxldF9zb2NpZXR5FFRhbGx5AAAIASRhcHByb3ZhbHMQASRWb3RlQ291bnQAAShyZWplY3Rpb25zEAEkVm90ZUNvdW50AAChCgAABAgAAAClCgg4cGFsbGV0X3NvY2lldHkQVm90ZQAACAEcYXBwcm92ZSABEGJvb2wAARh3ZWlnaHQQAQx1MzIAAKkKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAArQoIOHBhbGxldF9zb2NpZXR5MEludGFrZVJlY29yZAgkQWNjb3VudElkAQAcQmFsYW5jZQEYAAwBDHdobwABJEFjY291bnRJZAABDGJpZBgBHEJhbGFuY2UAARRyb3VuZBABKFJvdW5kSW5kZXgAALEKAAAEDAAAnQoAtQoMOHBhbGxldF9zb2NpZXR5GHBhbGxldBRFcnJvcggEVAAESQABgCROb3RNZW1iZXIAAARUVXNlciBpcyBub3QgYSBtZW1iZXIuNEFscmVhZHlNZW1iZXIAAQRkVXNlciBpcyBhbHJlYWR5IGEgbWVtYmVyLiRTdXNwZW5kZWQAAgRIVXNlciBpcyBzdXNwZW5kZWQuME5vdFN1c3BlbmRlZAADBFhVc2VyIGlzIG5vdCBzdXNwZW5kZWQuIE5vUGF5b3V0AAQESE5vdGhpbmcgdG8gcGF5b3V0LjhBbHJlYWR5Rm91bmRlZAAFBGBTb2NpZXR5IGFscmVhZHkgZm91bmRlZC48SW5zdWZmaWNpZW50UG90AAYEmE5vdCBlbm91Z2ggaW4gcG90IHRvIGFjY2VwdCBjYW5kaWRhdGUuPEFscmVhZHlWb3VjaGluZwAHBORNZW1iZXIgaXMgYWxyZWFkeSB2b3VjaGluZyBvciBiYW5uZWQgZnJvbSB2b3VjaGluZyBhZ2Fpbi5MTm90Vm91Y2hpbmdPbkJpZGRlcgAIBFxNZW1iZXIgaXMgbm90IHZvdWNoaW5nLhBIZWFkAAkEkENhbm5vdCByZW1vdmUgdGhlIGhlYWQgb2YgdGhlIGNoYWluLhxGb3VuZGVyAAoEaENhbm5vdCByZW1vdmUgdGhlIGZvdW5kZXIuKEFscmVhZHlCaWQACwRwVXNlciBoYXMgYWxyZWFkeSBtYWRlIGEgYmlkLkBBbHJlYWR5Q2FuZGlkYXRlAAwEcFVzZXIgaXMgYWxyZWFkeSBhIGNhbmRpZGF0ZS4wTm90Q2FuZGlkYXRlAA0EYFVzZXIgaXMgbm90IGEgY2FuZGlkYXRlLihNYXhNZW1iZXJzAA4EgFRvbyBtYW55IG1lbWJlcnMgaW4gdGhlIHNvY2lldHkuKE5vdEZvdW5kZXIADwR4VGhlIGNhbGxlciBpcyBub3QgdGhlIGZvdW5kZXIuHE5vdEhlYWQAEARsVGhlIGNhbGxlciBpcyBub3QgdGhlIGhlYWQuLE5vdEFwcHJvdmVkABEELQFUaGUgbWVtYmVyc2hpcCBjYW5ub3QgYmUgY2xhaW1lZCBhcyB0aGUgY2FuZGlkYXRlIHdhcyBub3QgY2xlYXJseSBhcHByb3ZlZC4sTm90UmVqZWN0ZWQAEgQlAVRoZSBjYW5kaWRhdGUgY2Fubm90IGJlIGtpY2tlZCBhcyB0aGUgY2FuZGlkYXRlIHdhcyBub3QgY2xlYXJseSByZWplY3RlZC4gQXBwcm92ZWQAEwQZAVRoZSBjYW5kaWRhY3kgY2Fubm90IGJlIGRyb3BwZWQgYXMgdGhlIGNhbmRpZGF0ZSB3YXMgY2xlYXJseSBhcHByb3ZlZC4gUmVqZWN0ZWQAFAQdAVRoZSBjYW5kaWRhY3kgY2Fubm90IGJlIGJlc3Rvd2VkIGFzIHRoZSBjYW5kaWRhdGUgd2FzIGNsZWFybHkgcmVqZWN0ZWQuKEluUHJvZ3Jlc3MAFQQVAVRoZSBjYW5kaWRhY3kgY2Fubm90IGJlIGNvbmNsdWRlZCBhcyB0aGUgdm90aW5nIGlzIHN0aWxsIGluIHByb2dyZXNzLiBUb29FYXJseQAWBEEBVGhlIGNhbmRpZGFjeSBjYW5ub3QgYmUgcHJ1bmVkIHVudGlsIGEgZnVsbCBhZGRpdGlvbmFsIGludGFrZSBwZXJpb2QgaGFzIHBhc3NlZC4UVm90ZWQAFwRoVGhlIHNrZXB0aWMgYWxyZWFkeSB2b3RlZC4cRXhwaXJlZAAYBPBUaGUgc2tlcHRpYyBuZWVkIG5vdCB2b3RlIG9uIGNhbmRpZGF0ZXMgZnJvbSBleHBpcmVkIHJvdW5kcy4kTm90QmlkZGVyABkEVFVzZXIgaXMgbm90IGEgYmlkZGVyLihOb0RlZmVuZGVyABoEfFRoZXJlIGlzIG5vIGRlZmVuZGVyIGN1cnJlbnRseS4gTm90R3JvdXAAGwRQR3JvdXAgZG9lc24ndCBleGlzdC48QWxyZWFkeUVsZXZhdGVkABwEsFRoZSBtZW1iZXIgaXMgYWxyZWFkeSBlbGV2YXRlZCB0byB0aGlzIHJhbmsuPEFscmVhZHlQdW5pc2hlZAAdBNxUaGUgc2tlcHRpYyBoYXMgYWxyZWFkeSBiZWVuIHB1bmlzaGVkIGZvciB0aGlzIG9mZmVuY2UuREluc3VmZmljaWVudEZ1bmRzAB4EwEZ1bmRzIGFyZSBpbnN1ZmZpY2llbnQgdG8gcGF5IG9mZiBzb2NpZXR5IGRlYnRzLhxOb1ZvdGVzAB8E0FRoZSBjYW5kaWRhdGUvZGVmZW5kZXIgaGFzIG5vIHN0YWxlIHZvdGVzIHRvIHJlbW92ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuuQoIPHBhbGxldF9yZWNvdmVyeThSZWNvdmVyeUNvbmZpZwwsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgcRnJpZW5kcwG9CgAQATBkZWxheV9wZXJpb2QQASxCbG9ja051bWJlcgABHGRlcG9zaXQYARxCYWxhbmNlAAEcZnJpZW5kc70KARxGcmllbmRzAAEkdGhyZXNob2xkVQEBDHUxNgAAvQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQArQEBGFZlYzxUPgAAwQoIPHBhbGxldF9yZWNvdmVyeThBY3RpdmVSZWNvdmVyeQwsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgcRnJpZW5kcwG9CgAMARxjcmVhdGVkEAEsQmxvY2tOdW1iZXIAARxkZXBvc2l0GAEcQmFsYW5jZQABHGZyaWVuZHO9CgEcRnJpZW5kcwAAxQoMPHBhbGxldF9yZWNvdmVyeRhwYWxsZXQURXJyb3IEBFQAAUAoTm90QWxsb3dlZAAABPBVc2VyIGlzIG5vdCBhbGxvd2VkIHRvIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZiB0aGlzIGFjY291bnQ0WmVyb1RocmVzaG9sZAABBIxUaHJlc2hvbGQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyb0BOb3RFbm91Z2hGcmllbmRzAAIE0EZyaWVuZHMgbGlzdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCB0aHJlc2hvbGQoTWF4RnJpZW5kcwADBKhGcmllbmRzIGxpc3QgbXVzdCBiZSBsZXNzIHRoYW4gbWF4IGZyaWVuZHMkTm90U29ydGVkAAQEyEZyaWVuZHMgbGlzdCBtdXN0IGJlIHNvcnRlZCBhbmQgZnJlZSBvZiBkdXBsaWNhdGVzOE5vdFJlY292ZXJhYmxlAAUEnFRoaXMgYWNjb3VudCBpcyBub3Qgc2V0IHVwIGZvciByZWNvdmVyeUhBbHJlYWR5UmVjb3ZlcmFibGUABgSsVGhpcyBhY2NvdW50IGlzIGFscmVhZHkgc2V0IHVwIGZvciByZWNvdmVyeThBbHJlYWR5U3RhcnRlZAAHBNxBIHJlY292ZXJ5IHByb2Nlc3MgaGFzIGFscmVhZHkgc3RhcnRlZCBmb3IgdGhpcyBhY2NvdW50KE5vdFN0YXJ0ZWQACATMQSByZWNvdmVyeSBwcm9jZXNzIGhhcyBub3Qgc3RhcnRlZCBmb3IgdGhpcyByZXNjdWVyJE5vdEZyaWVuZAAJBKhUaGlzIGFjY291bnQgaXMgbm90IGEgZnJpZW5kIHdobyBjYW4gdm91Y2gsRGVsYXlQZXJpb2QACgQZAVRoZSBmcmllbmQgbXVzdCB3YWl0IHVudGlsIHRoZSBkZWxheSBwZXJpb2QgdG8gdm91Y2ggZm9yIHRoaXMgcmVjb3Zlcnk4QWxyZWFkeVZvdWNoZWQACwS8VGhpcyB1c2VyIGhhcyBhbHJlYWR5IHZvdWNoZWQgZm9yIHRoaXMgcmVjb3ZlcnkkVGhyZXNob2xkAAwE6FRoZSB0aHJlc2hvbGQgZm9yIHJlY292ZXJpbmcgdGhpcyBhY2NvdW50IGhhcyBub3QgYmVlbiBtZXQsU3RpbGxBY3RpdmUADQT8VGhlcmUgYXJlIHN0aWxsIGFjdGl2ZSByZWNvdmVyeSBhdHRlbXB0cyB0aGF0IG5lZWQgdG8gYmUgY2xvc2VkMEFscmVhZHlQcm94eQAOBKxUaGlzIGFjY291bnQgaXMgYWxyZWFkeSBzZXQgdXAgZm9yIHJlY292ZXJ5IEJhZFN0YXRlAA8EeFNvbWUgaW50ZXJuYWwgc3RhdGUgaXMgYnJva2VuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7JCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAekCBFMAAAQAzQoBGFZlYzxUPgAAzQoAAALpAgDRCgg4cGFsbGV0X3Zlc3RpbmcgUmVsZWFzZXMAAQgIVjAAAAAIVjEAAQAA1QoMOHBhbGxldF92ZXN0aW5nGHBhbGxldBRFcnJvcgQEVAABFChOb3RWZXN0aW5nAAAEhFRoZSBhY2NvdW50IGdpdmVuIGlzIG5vdCB2ZXN0aW5nLlRBdE1heFZlc3RpbmdTY2hlZHVsZXMAAQglAVRoZSBhY2NvdW50IGFscmVhZHkgaGFzIGBNYXhWZXN0aW5nU2NoZWR1bGVzYCBjb3VudCBvZiBzY2hlZHVsZXMgYW5kIHRodXNRAWNhbm5vdCBhZGQgYW5vdGhlciBvbmUuIENvbnNpZGVyIG1lcmdpbmcgZXhpc3Rpbmcgc2NoZWR1bGVzIGluIG9yZGVyIHRvIGFkZCBhbm90aGVyLiRBbW91bnRMb3cAAgQFAUFtb3VudCBiZWluZyB0cmFuc2ZlcnJlZCBpcyB0b28gbG93IHRvIGNyZWF0ZSBhIHZlc3Rpbmcgc2NoZWR1bGUuYFNjaGVkdWxlSW5kZXhPdXRPZkJvdW5kcwADBNBBbiBpbmRleCB3YXMgb3V0IG9mIGJvdW5kcyBvZiB0aGUgdmVzdGluZyBzY2hlZHVsZXMuVEludmFsaWRTY2hlZHVsZVBhcmFtcwAEBA0BRmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyBzY2hlZHVsZSBiZWNhdXNlIHNvbWUgcGFyYW1ldGVyIHdhcyBpbnZhbGlkLgR0RXJyb3IgZm9yIHRoZSB2ZXN0aW5nIHBhbGxldC7ZCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAd0KBFMAAAQA5QoBGFZlYzxUPgAA3QoEGE9wdGlvbgQEVAHhCgEIEE5vbmUAAAAQU29tZQQA4QoAAAEAAOEKCEBwYWxsZXRfc2NoZWR1bGVyJFNjaGVkdWxlZBQQTmFtZQEEEENhbGwBWQEsQmxvY2tOdW1iZXIBEDRQYWxsZXRzT3JpZ2luAVkCJEFjY291bnRJZAEAABQBIG1heWJlX2lksQcBME9wdGlvbjxOYW1lPgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbFkBARBDYWxsAAE4bWF5YmVfcGVyaW9kaWPxAgGUT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXI+PgABGG9yaWdpblkCATRQYWxsZXRzT3JpZ2luAADlCgAAAt0KAOkKCEBwYWxsZXRfc2NoZWR1bGVyLFJldHJ5Q29uZmlnBBhQZXJpb2QBEAAMATR0b3RhbF9yZXRyaWVzCAEIdTgAASRyZW1haW5pbmcIAQh1OAABGHBlcmlvZBABGFBlcmlvZAAA7QoMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0FEVycm9yBARUAAEUQEZhaWxlZFRvU2NoZWR1bGUAAARkRmFpbGVkIHRvIHNjaGVkdWxlIGEgY2FsbCBOb3RGb3VuZAABBHxDYW5ub3QgZmluZCB0aGUgc2NoZWR1bGVkIGNhbGwuXFRhcmdldEJsb2NrTnVtYmVySW5QYXN0AAIEpEdpdmVuIHRhcmdldCBibG9jayBudW1iZXIgaXMgaW4gdGhlIHBhc3QuSFJlc2NoZWR1bGVOb0NoYW5nZQADBPBSZXNjaGVkdWxlIGZhaWxlZCBiZWNhdXNlIGl0IGRvZXMgbm90IGNoYW5nZSBzY2hlZHVsZWQgdGltZS4UTmFtZWQABATQQXR0ZW1wdCB0byB1c2UgYSBub24tbmFtZWQgZnVuY3Rpb24gb24gYSBuYW1lZCB0YXNrLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7xCgAABAj1ChgA9QoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAH5CgRTAAAEAP0KARhWZWM8VD4AAPkKCDBwYWxsZXRfcHJveHk8UHJveHlEZWZpbml0aW9uDCRBY2NvdW50SWQBACRQcm94eVR5cGUBAQMsQmxvY2tOdW1iZXIBEAAMASBkZWxlZ2F0ZQABJEFjY291bnRJZAABKHByb3h5X3R5cGUBAwEkUHJveHlUeXBlAAEUZGVsYXkQASxCbG9ja051bWJlcgAA/QoAAAL5CgABCwAABAgFCxgABQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEJCwRTAAAEAA0LARhWZWM8VD4AAAkLCDBwYWxsZXRfcHJveHkwQW5ub3VuY2VtZW50DCRBY2NvdW50SWQBABBIYXNoATQsQmxvY2tOdW1iZXIBEAAMARByZWFsAAEkQWNjb3VudElkAAEkY2FsbF9oYXNoNAEQSGFzaAABGGhlaWdodBABLEJsb2NrTnVtYmVyAAANCwAAAgkLABELDDBwYWxsZXRfcHJveHkYcGFsbGV0FEVycm9yBARUAAEgHFRvb01hbnkAAAQhAVRoZXJlIGFyZSB0b28gbWFueSBwcm94aWVzIHJlZ2lzdGVyZWQgb3IgdG9vIG1hbnkgYW5ub3VuY2VtZW50cyBwZW5kaW5nLiBOb3RGb3VuZAABBHRQcm94eSByZWdpc3RyYXRpb24gbm90IGZvdW5kLiBOb3RQcm94eQACBMxTZW5kZXIgaXMgbm90IGEgcHJveHkgb2YgdGhlIGFjY291bnQgdG8gYmUgcHJveGllZC4sVW5wcm94eWFibGUAAwQhAUEgY2FsbCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgcHJveHkgdHlwZSdzIGZpbHRlciB3YXMgYXR0ZW1wdGVkLiREdXBsaWNhdGUABARsQWNjb3VudCBpcyBhbHJlYWR5IGEgcHJveHkuME5vUGVybWlzc2lvbgAFBBUBQ2FsbCBtYXkgbm90IGJlIG1hZGUgYnkgcHJveHkgYmVjYXVzZSBpdCBtYXkgZXNjYWxhdGUgaXRzIHByaXZpbGVnZXMuLFVuYW5ub3VuY2VkAAYE0EFubm91bmNlbWVudCwgaWYgbWFkZSBhdCBhbGwsIHdhcyBtYWRlIHRvbyByZWNlbnRseS4sTm9TZWxmUHJveHkABwRkQ2Fubm90IGFkZCBzZWxmIGFzIHByb3h5LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4VCwAABAgABAAZCwg8cGFsbGV0X211bHRpc2lnIE11bHRpc2lnECxCbG9ja051bWJlcgEQHEJhbGFuY2UBGCRBY2NvdW50SWQBADBNYXhBcHByb3ZhbHMAABABEHdoZW4NAwFYVGltZXBvaW50PEJsb2NrTnVtYmVyPgABHGRlcG9zaXQYARxCYWxhbmNlAAEkZGVwb3NpdG9yAAEkQWNjb3VudElkAAEkYXBwcm92YWxzHQsBjEJvdW5kZWRWZWM8QWNjb3VudElkLCBNYXhBcHByb3ZhbHM+AAAdCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABACtAQEYVmVjPFQ+AAAhCww8cGFsbGV0X211bHRpc2lnGHBhbGxldBRFcnJvcgQEVAABOEBNaW5pbXVtVGhyZXNob2xkAAAEfFRocmVzaG9sZCBtdXN0IGJlIDIgb3IgZ3JlYXRlci48QWxyZWFkeUFwcHJvdmVkAAEErENhbGwgaXMgYWxyZWFkeSBhcHByb3ZlZCBieSB0aGlzIHNpZ25hdG9yeS5ETm9BcHByb3ZhbHNOZWVkZWQAAgScQ2FsbCBkb2Vzbid0IG5lZWQgYW55IChtb3JlKSBhcHByb3ZhbHMuRFRvb0Zld1NpZ25hdG9yaWVzAAMEqFRoZXJlIGFyZSB0b28gZmV3IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LkhUb29NYW55U2lnbmF0b3JpZXMABASsVGhlcmUgYXJlIHRvbyBtYW55IHNpZ25hdG9yaWVzIGluIHRoZSBsaXN0LlRTaWduYXRvcmllc091dE9mT3JkZXIABQQNAVRoZSBzaWduYXRvcmllcyB3ZXJlIHByb3ZpZGVkIG91dCBvZiBvcmRlcjsgdGhleSBzaG91bGQgYmUgb3JkZXJlZC5MU2VuZGVySW5TaWduYXRvcmllcwAGBA0BVGhlIHNlbmRlciB3YXMgY29udGFpbmVkIGluIHRoZSBvdGhlciBzaWduYXRvcmllczsgaXQgc2hvdWxkbid0IGJlLiBOb3RGb3VuZAAHBNxNdWx0aXNpZyBvcGVyYXRpb24gbm90IGZvdW5kIHdoZW4gYXR0ZW1wdGluZyB0byBjYW5jZWwuIE5vdE93bmVyAAgELQFPbmx5IHRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoZSBtdWx0aXNpZyBpcyBhYmxlIHRvIGNhbmNlbCBpdC4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4lCwg8cGFsbGV0X3ByZWltYWdlQE9sZFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAHEJhbGFuY2UBGAEILFVucmVxdWVzdGVkCAEcZGVwb3NpdHEEAVAoQWNjb3VudElkLCBCYWxhbmNlKQABDGxlbhABDHUzMgAAACRSZXF1ZXN0ZWQMARxkZXBvc2l0KQsBcE9wdGlvbjwoQWNjb3VudElkLCBCYWxhbmNlKT4AARRjb3VudBABDHUzMgABDGxlbj0CASxPcHRpb248dTMyPgABAAApCwQYT3B0aW9uBARUAXEEAQgQTm9uZQAAABBTb21lBABxBAAAAQAALQsIPHBhbGxldF9wcmVpbWFnZTRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBABhUaWNrZXQBMQsBCCxVbnJlcXVlc3RlZAgBGHRpY2tldDULAUwoQWNjb3VudElkLCBUaWNrZXQpAAEMbGVuEAEMdTMyAAAAJFJlcXVlc3RlZAwBMG1heWJlX3RpY2tldDkLAWxPcHRpb248KEFjY291bnRJZCwgVGlja2V0KT4AARRjb3VudBABDHUzMgABJG1heWJlX2xlbj0CASxPcHRpb248dTMyPgABAAAxCxQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zIGZ1bmdpYmxlREhvbGRDb25zaWRlcmF0aW9uFARBAARGAARSAAREAAhGcAAABAAYAShGOjpCYWxhbmNlAAA1CwAABAgAMQsAOQsEGE9wdGlvbgQEVAE1CwEIEE5vbmUAAAAQU29tZQQANQsAAAEAAD0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAQQsMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQURXJyb3IEBFQAASQYVG9vQmlnAAAEoFByZWltYWdlIGlzIHRvbyBsYXJnZSB0byBzdG9yZSBvbi1jaGFpbi4wQWxyZWFkeU5vdGVkAAEEpFByZWltYWdlIGhhcyBhbHJlYWR5IGJlZW4gbm90ZWQgb24tY2hhaW4uNE5vdEF1dGhvcml6ZWQAAgTIVGhlIHVzZXIgaXMgbm90IGF1dGhvcml6ZWQgdG8gcGVyZm9ybSB0aGlzIGFjdGlvbi4gTm90Tm90ZWQAAwT8VGhlIHByZWltYWdlIGNhbm5vdCBiZSByZW1vdmVkIHNpbmNlIGl0IGhhcyBub3QgeWV0IGJlZW4gbm90ZWQuJFJlcXVlc3RlZAAEBAkBQSBwcmVpbWFnZSBtYXkgbm90IGJlIHJlbW92ZWQgd2hlbiB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgcmVxdWVzdHMuME5vdFJlcXVlc3RlZAAFBC0BVGhlIHByZWltYWdlIHJlcXVlc3QgY2Fubm90IGJlIHJlbW92ZWQgc2luY2Ugbm8gb3V0c3RhbmRpbmcgcmVxdWVzdHMgZXhpc3QuHFRvb01hbnkABgRVAU1vcmUgdGhhbiBgTUFYX0hBU0hfVVBHUkFERV9CVUxLX0NPVU5UYCBoYXNoZXMgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdXBncmFkZWQgYXQgb25jZS4YVG9vRmV3AAcE5FRvbyBmZXcgaGFzaGVzIHdlcmUgcmVxdWVzdGVkIHRvIGJlIHVwZ3JhZGVkIChpLmUuIHplcm8pLhhOb0Nvc3QACARZAU5vIHRpY2tldCB3aXRoIGEgY29zdCB3YXMgcmV0dXJuZWQgYnkgW2BDb25maWc6OkNvbnNpZGVyYXRpb25gXSB0byBzdG9yZSB0aGUgcHJlaW1hZ2UuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkULCDxwYWxsZXRfYm91bnRpZXMYQm91bnR5DCRBY2NvdW50SWQBABxCYWxhbmNlARgsQmxvY2tOdW1iZXIBEAAYASBwcm9wb3NlcgABJEFjY291bnRJZAABFHZhbHVlGAEcQmFsYW5jZQABDGZlZRgBHEJhbGFuY2UAATxjdXJhdG9yX2RlcG9zaXQYARxCYWxhbmNlAAEQYm9uZBgBHEJhbGFuY2UAARhzdGF0dXNJCwGQQm91bnR5U3RhdHVzPEFjY291bnRJZCwgQmxvY2tOdW1iZXI+AABJCwg8cGFsbGV0X2JvdW50aWVzMEJvdW50eVN0YXR1cwgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBEAEYIFByb3Bvc2VkAAAAIEFwcHJvdmVkAAEAGEZ1bmRlZAACADxDdXJhdG9yUHJvcG9zZWQEARxjdXJhdG9yAAEkQWNjb3VudElkAAMAGEFjdGl2ZQgBHGN1cmF0b3IAASRBY2NvdW50SWQAASh1cGRhdGVfZHVlEAEsQmxvY2tOdW1iZXIABAA0UGVuZGluZ1BheW91dAwBHGN1cmF0b3IAASRBY2NvdW50SWQAASxiZW5lZmljaWFyeQABJEFjY291bnRJZAABJHVubG9ja19hdBABLEJsb2NrTnVtYmVyAAUAAE0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAUQsMPHBhbGxldF9ib3VudGllcxhwYWxsZXQURXJyb3IIBFQABEkAASxwSW5zdWZmaWNpZW50UHJvcG9zZXJzQmFsYW5jZQAABHhQcm9wb3NlcidzIGJhbGFuY2UgaXMgdG9vIGxvdy4wSW52YWxpZEluZGV4AAEEkE5vIHByb3Bvc2FsIG9yIGJvdW50eSBhdCB0aGF0IGluZGV4LjBSZWFzb25Ub29CaWcAAgSEVGhlIHJlYXNvbiBnaXZlbiBpcyBqdXN0IHRvbyBiaWcuQFVuZXhwZWN0ZWRTdGF0dXMAAwSAVGhlIGJvdW50eSBzdGF0dXMgaXMgdW5leHBlY3RlZC44UmVxdWlyZUN1cmF0b3IABARcUmVxdWlyZSBib3VudHkgY3VyYXRvci4wSW52YWxpZFZhbHVlAAUEVEludmFsaWQgYm91bnR5IHZhbHVlLihJbnZhbGlkRmVlAAYETEludmFsaWQgYm91bnR5IGZlZS40UGVuZGluZ1BheW91dAAHCGxBIGJvdW50eSBwYXlvdXQgaXMgcGVuZGluZy74VG8gY2FuY2VsIHRoZSBib3VudHksIHlvdSBtdXN0IHVuYXNzaWduIGFuZCBzbGFzaCB0aGUgY3VyYXRvci4kUHJlbWF0dXJlAAgERQFUaGUgYm91bnRpZXMgY2Fubm90IGJlIGNsYWltZWQvY2xvc2VkIGJlY2F1c2UgaXQncyBzdGlsbCBpbiB0aGUgY291bnRkb3duIHBlcmlvZC5QSGFzQWN0aXZlQ2hpbGRCb3VudHkACQQFAVRoZSBib3VudHkgY2Fubm90IGJlIGNsb3NlZCBiZWNhdXNlIGl0IGhhcyBhY3RpdmUgY2hpbGQgYm91bnRpZXMuNFRvb01hbnlRdWV1ZWQACgSYVG9vIG1hbnkgYXBwcm92YWxzIGFyZSBhbHJlYWR5IHF1ZXVlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuVQsIVHBhbGxldF9jaGlsZF9ib3VudGllcyxDaGlsZEJvdW50eQwkQWNjb3VudElkAQAcQmFsYW5jZQEYLEJsb2NrTnVtYmVyARAAFAE0cGFyZW50X2JvdW50eRABLEJvdW50eUluZGV4AAEUdmFsdWUYARxCYWxhbmNlAAEMZmVlGAEcQmFsYW5jZQABPGN1cmF0b3JfZGVwb3NpdBgBHEJhbGFuY2UAARhzdGF0dXNZCwGkQ2hpbGRCb3VudHlTdGF0dXM8QWNjb3VudElkLCBCbG9ja051bWJlcj4AAFkLCFRwYWxsZXRfY2hpbGRfYm91bnRpZXNEQ2hpbGRCb3VudHlTdGF0dXMIJEFjY291bnRJZAEALEJsb2NrTnVtYmVyARABEBRBZGRlZAAAADxDdXJhdG9yUHJvcG9zZWQEARxjdXJhdG9yAAEkQWNjb3VudElkAAEAGEFjdGl2ZQQBHGN1cmF0b3IAASRBY2NvdW50SWQAAgA0UGVuZGluZ1BheW91dAwBHGN1cmF0b3IAASRBY2NvdW50SWQAASxiZW5lZmljaWFyeQABJEFjY291bnRJZAABJHVubG9ja19hdBABLEJsb2NrTnVtYmVyAAMAAF0LDFRwYWxsZXRfY2hpbGRfYm91bnRpZXMYcGFsbGV0FEVycm9yBARUAAEMVFBhcmVudEJvdW50eU5vdEFjdGl2ZQAABKRUaGUgcGFyZW50IGJvdW50eSBpcyBub3QgaW4gYWN0aXZlIHN0YXRlLmRJbnN1ZmZpY2llbnRCb3VudHlCYWxhbmNlAAEE5FRoZSBib3VudHkgYmFsYW5jZSBpcyBub3QgZW5vdWdoIHRvIGFkZCBuZXcgY2hpbGQtYm91bnR5LlBUb29NYW55Q2hpbGRCb3VudGllcwACBA0BTnVtYmVyIG9mIGNoaWxkIGJvdW50aWVzIGV4Y2VlZHMgbGltaXQgYE1heEFjdGl2ZUNoaWxkQm91bnR5Q291bnRgLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5hCwiQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlNFJlYWR5U29sdXRpb24IJEFjY291bnRJZAAoTWF4V2lubmVycwAADAEgc3VwcG9ydHNlCwGYQm91bmRlZFN1cHBvcnRzPEFjY291bnRJZCwgTWF4V2lubmVycz4AARRzY29yZVUEATRFbGVjdGlvblNjb3JlAAEcY29tcHV0Zc0HATxFbGVjdGlvbkNvbXB1dGUAAGULDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBZQQEUwAABABhBAEYVmVjPFQ+AABpCwiQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlNFJvdW5kU25hcHNob3QIJEFjY291bnRJZAEAMERhdGFQcm92aWRlcgFtCwAIARh2b3RlcnNxCwFEVmVjPERhdGFQcm92aWRlcj4AARx0YXJnZXRzrQEBOFZlYzxBY2NvdW50SWQ+AABtCwAABAwAMCEJAHELAAACbQsAdQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAF5CwRTAAAEAH0LARhWZWM8VD4AAHkLAAAEDFUEEBAAfQsAAAJ5CwCBCwyQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlGHNpZ25lZEBTaWduZWRTdWJtaXNzaW9uDCRBY2NvdW50SWQBABxCYWxhbmNlARggU29sdXRpb24BKQMAEAEMd2hvAAEkQWNjb3VudElkAAEcZGVwb3NpdBgBHEJhbGFuY2UAATByYXdfc29sdXRpb24lAwFUUmF3U29sdXRpb248U29sdXRpb24+AAEgY2FsbF9mZWUYARxCYWxhbmNlAACFCwyQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlGHBhbGxldBRFcnJvcgQEVAABPGhQcmVEaXNwYXRjaEVhcmx5U3VibWlzc2lvbgAABGRTdWJtaXNzaW9uIHdhcyB0b28gZWFybHkubFByZURpc3BhdGNoV3JvbmdXaW5uZXJDb3VudAABBIhXcm9uZyBudW1iZXIgb2Ygd2lubmVycyBwcmVzZW50ZWQuZFByZURpc3BhdGNoV2Vha1N1Ym1pc3Npb24AAgSQU3VibWlzc2lvbiB3YXMgdG9vIHdlYWssIHNjb3JlLXdpc2UuPFNpZ25lZFF1ZXVlRnVsbAADBEkBVGhlIHF1ZXVlIHdhcyBmdWxsLCBhbmQgdGhlIHNvbHV0aW9uIHdhcyBub3QgYmV0dGVyIHRoYW4gYW55IG9mIHRoZSBleGlzdGluZyBvbmVzLlhTaWduZWRDYW5ub3RQYXlEZXBvc2l0AAQElFRoZSBvcmlnaW4gZmFpbGVkIHRvIHBheSB0aGUgZGVwb3NpdC5QU2lnbmVkSW52YWxpZFdpdG5lc3MABQSgV2l0bmVzcyBkYXRhIHRvIGRpc3BhdGNoYWJsZSBpcyBpbnZhbGlkLkxTaWduZWRUb29NdWNoV2VpZ2h0AAYEuFRoZSBzaWduZWQgc3VibWlzc2lvbiBjb25zdW1lcyB0b28gbXVjaCB3ZWlnaHQ8T2N3Q2FsbFdyb25nRXJhAAcEmE9DVyBzdWJtaXR0ZWQgc29sdXRpb24gZm9yIHdyb25nIHJvdW5kXE1pc3NpbmdTbmFwc2hvdE1ldGFkYXRhAAgEqFNuYXBzaG90IG1ldGFkYXRhIHNob3VsZCBleGlzdCBidXQgZGlkbid0LlhJbnZhbGlkU3VibWlzc2lvbkluZGV4AAkE0GBTZWxmOjppbnNlcnRfc3VibWlzc2lvbmAgcmV0dXJuZWQgYW4gaW52YWxpZCBpbmRleC44Q2FsbE5vdEFsbG93ZWQACgSYVGhlIGNhbGwgaXMgbm90IGFsbG93ZWQgYXQgdGhpcyBwb2ludC44RmFsbGJhY2tGYWlsZWQACwRMVGhlIGZhbGxiYWNrIGZhaWxlZCxCb3VuZE5vdE1ldAAMBEhTb21lIGJvdW5kIG5vdCBtZXQ4VG9vTWFueVdpbm5lcnMADQScU3VibWl0dGVkIHNvbHV0aW9uIGhhcyB0b28gbWFueSB3aW5uZXJzZFByZURpc3BhdGNoRGlmZmVyZW50Um91bmQADgS4U3VibWlzc2lvbiB3YXMgcHJlcGFyZWQgZm9yIGEgZGlmZmVyZW50IHJvdW5kLgQNAUVycm9yIG9mIHRoZSBwYWxsZXQgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gcmVzcG9uc2UgdG8gZGlzcGF0Y2hlcy6JCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASEKBFMAAAQAJQoBGFZlYzxUPgAAjQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGRCwRTAAAEAJULARhWZWM8VD4AAJELDChwYWxsZXRfbmlzGHBhbGxldAxCaWQIHEJhbGFuY2UBGCRBY2NvdW50SWQBAAAIARhhbW91bnQYARxCYWxhbmNlAAEMd2hvAAEkQWNjb3VudElkAACVCwAAApELAJkLDChwYWxsZXRfbmlzGHBhbGxldDRTdW1tYXJ5UmVjb3JkCCxCbG9ja051bWJlcgEQHEJhbGFuY2UBGAAUATxwcm9wb3J0aW9uX293ZWSdAgEsUGVycXVpbnRpbGwAARRpbmRleBABMFJlY2VpcHRJbmRleAABGHRoYXdlZJ0CASxQZXJxdWludGlsbAABLGxhc3RfcGVyaW9kEAEsQmxvY2tOdW1iZXIAAUByZWNlaXB0c19vbl9ob2xkGAEcQmFsYW5jZQAAnQsMKHBhbGxldF9uaXMYcGFsbGV0NFJlY2VpcHRSZWNvcmQMJEFjY291bnRJZAEALEJsb2NrTnVtYmVyARAcQmFsYW5jZQEYAAwBKHByb3BvcnRpb26dAgEsUGVycXVpbnRpbGwAARRvd25lcikLAXBPcHRpb248KEFjY291bnRJZCwgQmFsYW5jZSk+AAEYZXhwaXJ5EAEsQmxvY2tOdW1iZXIAAKELAAAECJ0CEAClCwwocGFsbGV0X25pcxhwYWxsZXQURXJyb3IEBFQAATxARHVyYXRpb25Ub29TbWFsbAAABKRUaGUgZHVyYXRpb24gb2YgdGhlIGJpZCBpcyBsZXNzIHRoYW4gb25lLjhEdXJhdGlvblRvb0JpZwABBPRUaGUgZHVyYXRpb24gaXMgdGhlIGJpZCBpcyBncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiBxdWV1ZXMuOEFtb3VudFRvb1NtYWxsAAIE3FRoZSBhbW91bnQgb2YgdGhlIGJpZCBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gYWxsb3dlZC4kQmlkVG9vTG93AAMIQQFUaGUgcXVldWUgZm9yIHRoZSBiaWQncyBkdXJhdGlvbiBpcyBmdWxsIGFuZCB0aGUgYW1vdW50IGJpZCBpcyB0b28gbG93IHRvIGdldCBpboh0aHJvdWdoIHJlcGxhY2luZyBhbiBleGlzdGluZyBiaWQuOFVua25vd25SZWNlaXB0AAQEZFJlY2VpcHQgaW5kZXggaXMgdW5rbm93bi4gTm90T3duZXIABQR0Tm90IHRoZSBvd25lciBvZiB0aGUgcmVjZWlwdC4oTm90RXhwaXJlZAAGBHBCb25kIG5vdCB5ZXQgYXQgZXhwaXJ5IGRhdGUuKFVua25vd25CaWQABwSoVGhlIGdpdmVuIGJpZCBmb3IgcmV0cmFjdGlvbiBpcyBub3QgZm91bmQuNFBvcnRpb25Ub29CaWcACATgVGhlIHBvcnRpb24gc3VwcGxpZWQgaXMgYmV5b25kIHRoZSB2YWx1ZSBvZiB0aGUgcmVjZWlwdC4gVW5mdW5kZWQACQSUTm90IGVub3VnaCBmdW5kcyBhcmUgaGVsZCB0byBwYXkgb3V0LjRBbHJlYWR5RnVuZGVkAAoEsFRoZXJlIGFyZSBlbm91Z2ggZnVuZHMgZm9yIHdoYXQgaXMgcmVxdWlyZWQuJFRocm90dGxlZAALBMxUaGUgdGhhdyB0aHJvdHRsZSBoYXMgYmVlbiByZWFjaGVkIGZvciB0aGlzIHBlcmlvZC4kTWFrZXNEdXN0AAwEFQFUaGUgb3BlcmF0aW9uIHdvdWxkIHJlc3VsdCBpbiBhIHJlY2VpcHQgd29ydGggYW4gaW5zaWduaWZpY2FudCB2YWx1ZS48QWxyZWFkeUNvbW11bmFsAA0EgFRoZSByZWNlaXB0IGlzIGFscmVhZHkgY29tbXVuYWwuOEFscmVhZHlQcml2YXRlAA4EfFRoZSByZWNlaXB0IGlzIGFscmVhZHkgcHJpdmF0ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuqQsMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAHJCARTAAAEANEIARhWZWM8VD4AAK0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB2QgEUwAABADdCAEYVmVjPFQ+AACxCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbULBFMAAAQAuQsBGFZlYzxUPgAAtQsUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAGhARxCYWxhbmNlARgACAEIaWShAQEISWQAARhhbW91bnQYARxCYWxhbmNlAAC5CwAAArULAL0LDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEVycm9yCARUAARJAAEwOFZlc3RpbmdCYWxhbmNlAAAEnFZlc3RpbmcgYmFsYW5jZSB0b28gaGlnaCB0byBzZW5kIHZhbHVlLlRMaXF1aWRpdHlSZXN0cmljdGlvbnMAAQTIQWNjb3VudCBsaXF1aWRpdHkgcmVzdHJpY3Rpb25zIHByZXZlbnQgd2l0aGRyYXdhbC5MSW5zdWZmaWNpZW50QmFsYW5jZQACBHhCYWxhbmNlIHRvbyBsb3cgdG8gc2VuZCB2YWx1ZS5IRXhpc3RlbnRpYWxEZXBvc2l0AAME7FZhbHVlIHRvbyBsb3cgdG8gY3JlYXRlIGFjY291bnQgZHVlIHRvIGV4aXN0ZW50aWFsIGRlcG9zaXQuNEV4cGVuZGFiaWxpdHkABASQVHJhbnNmZXIvcGF5bWVudCB3b3VsZCBraWxsIGFjY291bnQuXEV4aXN0aW5nVmVzdGluZ1NjaGVkdWxlAAUEzEEgdmVzdGluZyBzY2hlZHVsZSBhbHJlYWR5IGV4aXN0cyBmb3IgdGhpcyBhY2NvdW50LixEZWFkQWNjb3VudAAGBIxCZW5lZmljaWFyeSBhY2NvdW50IG11c3QgcHJlLWV4aXN0LjxUb29NYW55UmVzZXJ2ZXMABwS4TnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIGV4Y2VlZCBgTWF4UmVzZXJ2ZXNgLjBUb29NYW55SG9sZHMACAT4TnVtYmVyIG9mIGhvbGRzIGV4Y2VlZCBgVmFyaWFudENvdW50T2Y8VDo6UnVudGltZUhvbGRSZWFzb24+YC44VG9vTWFueUZyZWV6ZXMACQSYTnVtYmVyIG9mIGZyZWV6ZXMgZXhjZWVkIGBNYXhGcmVlemVzYC5MSXNzdWFuY2VEZWFjdGl2YXRlZAAKBAEBVGhlIGlzc3VhbmNlIGNhbm5vdCBiZSBtb2RpZmllZCBzaW5jZSBpdCBpcyBhbHJlYWR5IGRlYWN0aXZhdGVkLiREZWx0YVplcm8ACwRkVGhlIGRlbHRhIGNhbm5vdCBiZSB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7BCwxAcGFsbGV0X2JhZ3NfbGlzdBBsaXN0EE5vZGUIBFQABEkAABQBCGlkAAEwVDo6QWNjb3VudElkAAEQcHJldtkBAVBPcHRpb248VDo6QWNjb3VudElkPgABEG5leHTZAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AASRiYWdfdXBwZXIwASBUOjpTY29yZQABFHNjb3JlMAEgVDo6U2NvcmUAAMULDEBwYWxsZXRfYmFnc19saXN0EGxpc3QMQmFnCARUAARJAAAIARBoZWFk2QEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEQdGFpbNkBAVBPcHRpb248VDo6QWNjb3VudElkPgAAyQsAAAIwAM0LDEBwYWxsZXRfYmFnc19saXN0GHBhbGxldBRFcnJvcggEVAAESQABBBBMaXN0BADRCwEkTGlzdEVycm9yAAAEtEEgZXJyb3IgaW4gdGhlIGxpc3QgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7RCwxAcGFsbGV0X2JhZ3NfbGlzdBBsaXN0JExpc3RFcnJvcgABECREdXBsaWNhdGUAAAAoTm90SGVhdmllcgABADBOb3RJblNhbWVCYWcAAgAwTm9kZU5vdEZvdW5kAAMAANULCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhQb29sTWVtYmVyBARUAAAQARxwb29sX2lkEAEYUG9vbElkAAEYcG9pbnRzGAEwQmFsYW5jZU9mPFQ+AAFwbGFzdF9yZWNvcmRlZF9yZXdhcmRfY291bnRlciEHAUBUOjpSZXdhcmRDb3VudGVyAAE4dW5ib25kaW5nX2VyYXPZCwHgQm91bmRlZEJUcmVlTWFwPEVyYUluZGV4LCBCYWxhbmNlT2Y8VD4sIFQ6Ok1heFVuYm9uZGluZz4AANkLDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfbWFwPEJvdW5kZWRCVHJlZU1hcAwESwEQBFYBGARTAAAEAN0LAThCVHJlZU1hcDxLLCBWPgAA3QsEIEJUcmVlTWFwCARLARAEVgEYAAQAJQoAAADhCwhccGFsbGV0X25vbWluYXRpb25fcG9vbHM8Qm9uZGVkUG9vbElubmVyBARUAAAUAShjb21taXNzaW9u5QsBNENvbW1pc3Npb248VD4AAThtZW1iZXJfY291bnRlchABDHUzMgABGHBvaW50cxgBMEJhbGFuY2VPZjxUPgABFHJvbGVz8QsBXFBvb2xSb2xlczxUOjpBY2NvdW50SWQ+AAEUc3RhdGWJBAEkUG9vbFN0YXRlAADlCwhccGFsbGV0X25vbWluYXRpb25fcG9vbHMoQ29tbWlzc2lvbgQEVAAAFAEcY3VycmVudKEEAXxPcHRpb248KFBlcmJpbGwsIFQ6OkFjY291bnRJZCk+AAEMbWF46QsBPE9wdGlvbjxQZXJiaWxsPgABLGNoYW5nZV9yYXRl7QsBvE9wdGlvbjxDb21taXNzaW9uQ2hhbmdlUmF0ZTxCbG9ja051bWJlckZvcjxUPj4+AAE0dGhyb3R0bGVfZnJvbT0CAWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAFAY2xhaW1fcGVybWlzc2lvbq0EAbxPcHRpb248Q29tbWlzc2lvbkNsYWltUGVybWlzc2lvbjxUOjpBY2NvdW50SWQ+PgAA6QsEGE9wdGlvbgQEVAGUAQgQTm9uZQAAABBTb21lBACUAAABAADtCwQYT3B0aW9uBARUAakEAQgQTm9uZQAAABBTb21lBACpBAAAAQAA8QsIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzJFBvb2xSb2xlcwQkQWNjb3VudElkAQAAEAEkZGVwb3NpdG9yAAEkQWNjb3VudElkAAEQcm9vdNkBAURPcHRpb248QWNjb3VudElkPgABJG5vbWluYXRvctkBAURPcHRpb248QWNjb3VudElkPgABHGJvdW5jZXLZAQFET3B0aW9uPEFjY291bnRJZD4AAPULCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhSZXdhcmRQb29sBARUAAAUAXBsYXN0X3JlY29yZGVkX3Jld2FyZF9jb3VudGVyIQcBQFQ6OlJld2FyZENvdW50ZXIAAWxsYXN0X3JlY29yZGVkX3RvdGFsX3BheW91dHMYATBCYWxhbmNlT2Y8VD4AAVR0b3RhbF9yZXdhcmRzX2NsYWltZWQYATBCYWxhbmNlT2Y8VD4AAWB0b3RhbF9jb21taXNzaW9uX3BlbmRpbmcYATBCYWxhbmNlT2Y8VD4AAWB0b3RhbF9jb21taXNzaW9uX2NsYWltZWQYATBCYWxhbmNlT2Y8VD4AAPkLCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBTdWJQb29scwQEVAAACAEYbm9fZXJh/QsBNFVuYm9uZFBvb2w8VD4AASB3aXRoX2VyYQEMAQEBQm91bmRlZEJUcmVlTWFwPEVyYUluZGV4LCBVbmJvbmRQb29sPFQ+LCBUb3RhbFVuYm9uZGluZ1Bvb2xzPFQ+PgAA/QsIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzKFVuYm9uZFBvb2wEBFQAAAgBGHBvaW50cxgBMEJhbGFuY2VPZjxUPgABHGJhbGFuY2UYATBCYWxhbmNlT2Y8VD4AAAEMDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfbWFwPEJvdW5kZWRCVHJlZU1hcAwESwEQBFYB/QsEUwAABAAFDAE4QlRyZWVNYXA8SywgVj4AAAUMBCBCVHJlZU1hcAgESwEQBFYB/QsABAAJDAAAAAkMAAACDQwADQwAAAQIEP0LABEMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAFQwMXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzGHBhbGxldBRFcnJvcgQEVAABkDBQb29sTm90Rm91bmQAAASIQSAoYm9uZGVkKSBwb29sIGlkIGRvZXMgbm90IGV4aXN0LkhQb29sTWVtYmVyTm90Rm91bmQAAQRsQW4gYWNjb3VudCBpcyBub3QgYSBtZW1iZXIuSFJld2FyZFBvb2xOb3RGb3VuZAACBCEBQSByZXdhcmQgcG9vbCBkb2VzIG5vdCBleGlzdC4gSW4gYWxsIGNhc2VzIHRoaXMgaXMgYSBzeXN0ZW0gbG9naWMgZXJyb3IuQFN1YlBvb2xzTm90Rm91bmQAAwRoQSBzdWIgcG9vbCBkb2VzIG5vdCBleGlzdC5kQWNjb3VudEJlbG9uZ3NUb090aGVyUG9vbAAECE0BQW4gYWNjb3VudCBpcyBhbHJlYWR5IGRlbGVnYXRpbmcgaW4gYW5vdGhlciBwb29sLiBBbiBhY2NvdW50IG1heSBvbmx5IGJlbG9uZyB0byBvbmU8cG9vbCBhdCBhIHRpbWUuOEZ1bGx5VW5ib25kaW5nAAUIPQFUaGUgbWVtYmVyIGlzIGZ1bGx5IHVuYm9uZGVkIChhbmQgdGh1cyBjYW5ub3QgYWNjZXNzIHRoZSBib25kZWQgYW5kIHJld2FyZCBwb29sqGFueW1vcmUgdG8sIGZvciBleGFtcGxlLCBjb2xsZWN0IHJld2FyZHMpLkRNYXhVbmJvbmRpbmdMaW1pdAAGBAkBVGhlIG1lbWJlciBjYW5ub3QgdW5ib25kIGZ1cnRoZXIgY2h1bmtzIGR1ZSB0byByZWFjaGluZyB0aGUgbGltaXQuRENhbm5vdFdpdGhkcmF3QW55AAcETQFOb25lIG9mIHRoZSBmdW5kcyBjYW4gYmUgd2l0aGRyYXduIHlldCBiZWNhdXNlIHRoZSBib25kaW5nIGR1cmF0aW9uIGhhcyBub3QgcGFzc2VkLkRNaW5pbXVtQm9uZE5vdE1ldAAIFCkBVGhlIGFtb3VudCBkb2VzIG5vdCBtZWV0IHRoZSBtaW5pbXVtIGJvbmQgdG8gZWl0aGVyIGpvaW4gb3IgY3JlYXRlIGEgcG9vbC4AVQFUaGUgZGVwb3NpdG9yIGNhbiBuZXZlciB1bmJvbmQgdG8gYSB2YWx1ZSBsZXNzIHRoYW4gYFBhbGxldDo6ZGVwb3NpdG9yX21pbl9ib25kYC4gVGhlXQFjYWxsZXIgZG9lcyBub3QgaGF2ZSBub21pbmF0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgcG9vbC4gTWVtYmVycyBjYW4gbmV2ZXIgdW5ib25kIHRvIGFodmFsdWUgYmVsb3cgYE1pbkpvaW5Cb25kYC4wT3ZlcmZsb3dSaXNrAAkEIQFUaGUgdHJhbnNhY3Rpb24gY291bGQgbm90IGJlIGV4ZWN1dGVkIGR1ZSB0byBvdmVyZmxvdyByaXNrIGZvciB0aGUgcG9vbC40Tm90RGVzdHJveWluZwAKCF0BQSBwb29sIG11c3QgYmUgaW4gW2BQb29sU3RhdGU6OkRlc3Ryb3lpbmdgXSBpbiBvcmRlciBmb3IgdGhlIGRlcG9zaXRvciB0byB1bmJvbmQgb3IgZm9yuG90aGVyIG1lbWJlcnMgdG8gYmUgcGVybWlzc2lvbmxlc3NseSB1bmJvbmRlZC4wTm90Tm9taW5hdG9yAAsE9FRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZSBub21pbmF0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgcG9vbC5UTm90S2lja2VyT3JEZXN0cm95aW5nAAwEPQFFaXRoZXIgYSkgdGhlIGNhbGxlciBjYW5ub3QgbWFrZSBhIHZhbGlkIGtpY2sgb3IgYikgdGhlIHBvb2wgaXMgbm90IGRlc3Ryb3lpbmcuHE5vdE9wZW4ADQRwVGhlIHBvb2wgaXMgbm90IG9wZW4gdG8gam9pbiBNYXhQb29scwAOBIRUaGUgc3lzdGVtIGlzIG1heGVkIG91dCBvbiBwb29scy44TWF4UG9vbE1lbWJlcnMADwScVG9vIG1hbnkgbWVtYmVycyBpbiB0aGUgcG9vbCBvciBzeXN0ZW0uRENhbk5vdENoYW5nZVN0YXRlABAEiFRoZSBwb29scyBzdGF0ZSBjYW5ub3QgYmUgY2hhbmdlZC5URG9lc05vdEhhdmVQZXJtaXNzaW9uABEEuFRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZSBhZGVxdWF0ZSBwZXJtaXNzaW9ucy5UTWV0YWRhdGFFeGNlZWRzTWF4TGVuABIErE1ldGFkYXRhIGV4Y2VlZHMgW2BDb25maWc6Ok1heE1ldGFkYXRhTGVuYF0kRGVmZW5zaXZlBAAZDAE4RGVmZW5zaXZlRXJyb3IAEwgxAVNvbWUgZXJyb3Igb2NjdXJyZWQgdGhhdCBzaG91bGQgbmV2ZXIgaGFwcGVuLiBUaGlzIHNob3VsZCBiZSByZXBvcnRlZCB0byB0aGUwbWFpbnRhaW5lcnMunFBhcnRpYWxVbmJvbmROb3RBbGxvd2VkUGVybWlzc2lvbmxlc3NseQAUBLxQYXJ0aWFsIHVuYm9uZGluZyBub3cgYWxsb3dlZCBwZXJtaXNzaW9ubGVzc2x5LlxNYXhDb21taXNzaW9uUmVzdHJpY3RlZAAVBB0BVGhlIHBvb2wncyBtYXggY29tbWlzc2lvbiBjYW5ub3QgYmUgc2V0IGhpZ2hlciB0aGFuIHRoZSBleGlzdGluZyB2YWx1ZS5gQ29tbWlzc2lvbkV4Y2VlZHNNYXhpbXVtABYE7FRoZSBzdXBwbGllZCBjb21taXNzaW9uIGV4Y2VlZHMgdGhlIG1heCBhbGxvd2VkIGNvbW1pc3Npb24ueENvbW1pc3Npb25FeGNlZWRzR2xvYmFsTWF4aW11bQAXBOhUaGUgc3VwcGxpZWQgY29tbWlzc2lvbiBleGNlZWRzIGdsb2JhbCBtYXhpbXVtIGNvbW1pc3Npb24uZENvbW1pc3Npb25DaGFuZ2VUaHJvdHRsZWQAGAQJAU5vdCBlbm91Z2ggYmxvY2tzIGhhdmUgc3VycGFzc2VkIHNpbmNlIHRoZSBsYXN0IGNvbW1pc3Npb24gdXBkYXRlLnhDb21taXNzaW9uQ2hhbmdlUmF0ZU5vdEFsbG93ZWQAGQQBAVRoZSBzdWJtaXR0ZWQgY2hhbmdlcyB0byBjb21taXNzaW9uIGNoYW5nZSByYXRlIGFyZSBub3QgYWxsb3dlZC5MTm9QZW5kaW5nQ29tbWlzc2lvbgAaBKBUaGVyZSBpcyBubyBwZW5kaW5nIGNvbW1pc3Npb24gdG8gY2xhaW0uWE5vQ29tbWlzc2lvbkN1cnJlbnRTZXQAGwSMTm8gY29tbWlzc2lvbiBjdXJyZW50IGhhcyBiZWVuIHNldC4sUG9vbElkSW5Vc2UAHARkUG9vbCBpZCBjdXJyZW50bHkgaW4gdXNlLjRJbnZhbGlkUG9vbElkAB0EnFBvb2wgaWQgcHJvdmlkZWQgaXMgbm90IGNvcnJlY3QvdXNhYmxlLkxCb25kRXh0cmFSZXN0cmljdGVkAB4E/EJvbmRpbmcgZXh0cmEgaXMgcmVzdHJpY3RlZCB0byB0aGUgZXhhY3QgcGVuZGluZyByZXdhcmQgYW1vdW50LjxOb3RoaW5nVG9BZGp1c3QAHwSwTm8gaW1iYWxhbmNlIGluIHRoZSBFRCBkZXBvc2l0IGZvciB0aGUgcG9vbC44Tm90aGluZ1RvU2xhc2gAIATMTm8gc2xhc2ggcGVuZGluZyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIHRoZSBtZW1iZXIuPEFscmVhZHlNaWdyYXRlZAAhBBUBVGhlIHBvb2wgb3IgbWVtYmVyIGRlbGVnYXRpb24gaGFzIGFscmVhZHkgbWlncmF0ZWQgdG8gZGVsZWdhdGUgc3Rha2UuLE5vdE1pZ3JhdGVkACIEFQFUaGUgcG9vbCBvciBtZW1iZXIgZGVsZWdhdGlvbiBoYXMgbm90IG1pZ3JhdGVkIHlldCB0byBkZWxlZ2F0ZSBzdGFrZS4wTm90U3VwcG9ydGVkACME8FRoaXMgY2FsbCBpcyBub3QgYWxsb3dlZCBpbiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcGFsbGV0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4ZDAxccGFsbGV0X25vbWluYXRpb25fcG9vbHMYcGFsbGV0OERlZmVuc2l2ZUVycm9yAAEcaE5vdEVub3VnaFNwYWNlSW5VbmJvbmRQb29sAAAAMFBvb2xOb3RGb3VuZAABAEhSZXdhcmRQb29sTm90Rm91bmQAAgBAU3ViUG9vbHNOb3RGb3VuZAADAHBCb25kZWRTdGFzaEtpbGxlZFByZW1hdHVyZWx5AAQAVERlbGVnYXRpb25VbnN1cHBvcnRlZAAFADxTbGFzaE5vdEFwcGxpZWQABgAAHQwMTHBhbGxldF9mYXN0X3Vuc3Rha2UUdHlwZXM4VW5zdGFrZVJlcXVlc3QEBFQAAAgBHHN0YXNoZXMhDAHYQm91bmRlZFZlYzwoVDo6QWNjb3VudElkLCBCYWxhbmNlT2Y8VD4pLCBUOjpCYXRjaFNpemU+AAEcY2hlY2tlZCUMAZBCb3VuZGVkVmVjPEVyYUluZGV4LCBNYXhDaGVja2luZzxUPj4AACEMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBcQQEUwAABABtBAEYVmVjPFQ+AAAlDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARAEUwAABADBAQEYVmVjPFQ+AAApDAxMcGFsbGV0X2Zhc3RfdW5zdGFrZRhwYWxsZXQURXJyb3IEBFQAARg0Tm90Q29udHJvbGxlcgAADLhUaGUgcHJvdmlkZWQgQ29udHJvbGxlciBhY2NvdW50IHdhcyBub3QgZm91bmQuAMBUaGlzIG1lYW5zIHRoYXQgdGhlIGdpdmVuIGFjY291bnQgaXMgbm90IGJvbmRlZC40QWxyZWFkeVF1ZXVlZAABBKxUaGUgYm9uZGVkIGFjY291bnQgaGFzIGFscmVhZHkgYmVlbiBxdWV1ZWQuOE5vdEZ1bGx5Qm9uZGVkAAIEvFRoZSBib25kZWQgYWNjb3VudCBoYXMgYWN0aXZlIHVubG9ja2luZyBjaHVua3MuJE5vdFF1ZXVlZAADBLRUaGUgcHJvdmlkZWQgdW4tc3Rha2VyIGlzIG5vdCBpbiB0aGUgYFF1ZXVlYC4sQWxyZWFkeUhlYWQABAQFAVRoZSBwcm92aWRlZCB1bi1zdGFrZXIgaXMgYWxyZWFkeSBpbiBIZWFkLCBhbmQgY2Fubm90IGRlcmVnaXN0ZXIuOENhbGxOb3RBbGxvd2VkAAUEHQFUaGUgY2FsbCBpcyBub3QgYWxsb3dlZCBhdCB0aGlzIHBvaW50IGJlY2F1c2UgdGhlIHBhbGxldCBpcyBub3QgYWN0aXZlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zNGNvbmZpZ3VyYXRpb25ESG9zdENvbmZpZ3VyYXRpb24ELEJsb2NrTnVtYmVyARAAjAE0bWF4X2NvZGVfc2l6ZRABDHUzMgABSG1heF9oZWFkX2RhdGFfc2l6ZRABDHUzMgABWG1heF91cHdhcmRfcXVldWVfY291bnQQAQx1MzIAAVRtYXhfdXB3YXJkX3F1ZXVlX3NpemUQAQx1MzIAAVxtYXhfdXB3YXJkX21lc3NhZ2Vfc2l6ZRABDHUzMgABkG1heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZRABDHUzMgABiGhybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUQAQx1MzIAAWx2YWxpZGF0aW9uX3VwZ3JhZGVfY29vbGRvd24QASxCbG9ja051bWJlcgABYHZhbGlkYXRpb25fdXBncmFkZV9kZWxheRABLEJsb2NrTnVtYmVyAAFQYXN5bmNfYmFja2luZ19wYXJhbXO9BAFIQXN5bmNCYWNraW5nUGFyYW1zAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAFkbWF4X2Rvd253YXJkX21lc3NhZ2Vfc2l6ZRABDHUzMgABkGhybXBfbWF4X3BhcmFjaGFpbl9vdXRib3VuZF9jaGFubmVscxABDHUzMgABTGhybXBfc2VuZGVyX2RlcG9zaXQYARxCYWxhbmNlAAFYaHJtcF9yZWNpcGllbnRfZGVwb3NpdBgBHEJhbGFuY2UAAWRocm1wX2NoYW5uZWxfbWF4X2NhcGFjaXR5EAEMdTMyAAFsaHJtcF9jaGFubmVsX21heF90b3RhbF9zaXplEAEMdTMyAAGMaHJtcF9tYXhfcGFyYWNoYWluX2luYm91bmRfY2hhbm5lbHMQAQx1MzIAAXRocm1wX2NoYW5uZWxfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgABPGV4ZWN1dG9yX3BhcmFtc8EEAThFeGVjdXRvclBhcmFtcwABVGNvZGVfcmV0ZW50aW9uX3BlcmlvZBABLEJsb2NrTnVtYmVyAAE4bWF4X3ZhbGlkYXRvcnM9AgEsT3B0aW9uPHUzMj4AAThkaXNwdXRlX3BlcmlvZBABMFNlc3Npb25JbmRleAABpGRpc3B1dGVfcG9zdF9jb25jbHVzaW9uX2FjY2VwdGFuY2VfcGVyaW9kEAEsQmxvY2tOdW1iZXIAATRub19zaG93X3Nsb3RzEAEMdTMyAAFAbl9kZWxheV90cmFuY2hlcxABDHUzMgABaHplcm90aF9kZWxheV90cmFuY2hlX3dpZHRoEAEMdTMyAAFAbmVlZGVkX2FwcHJvdmFscxABDHUzMgABYHJlbGF5X3ZyZl9tb2R1bG9fc2FtcGxlcxABDHUzMgABOHB2Zl92b3RpbmdfdHRsEAEwU2Vzc2lvbkluZGV4AAGAbWluaW11bV92YWxpZGF0aW9uX3VwZ3JhZGVfZGVsYXkQASxCbG9ja051bWJlcgABVG1pbmltdW1fYmFja2luZ192b3RlcxABDHUzMgABNG5vZGVfZmVhdHVyZXP5BAEwTm9kZUZlYXR1cmVzAAFYYXBwcm92YWxfdm90aW5nX3BhcmFtc9UEAVBBcHByb3ZhbFZvdGluZ1BhcmFtcwABQHNjaGVkdWxlcl9wYXJhbXPZBAFwU2NoZWR1bGVyUGFyYW1zPEJsb2NrTnVtYmVyPgAAMQwAAAI1DAA1DAAABAgQLQwAOQwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluczRjb25maWd1cmF0aW9uGHBhbGxldBRFcnJvcgQEVAABBDxJbnZhbGlkTmV3VmFsdWUAAATcVGhlIG5ldyB2YWx1ZSBmb3IgYSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBpcyBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC49DAAAAgEFAEEMAAAC+QEARQwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxhzaGFyZWRoQWxsb3dlZFJlbGF5UGFyZW50c1RyYWNrZXIIEEhhc2gBNCxCbG9ja051bWJlcgEQAAgBGGJ1ZmZlckkMAVhWZWNEZXF1ZTwoSGFzaCwgSGFzaCk+AAE0bGF0ZXN0X251bWJlchABLEJsb2NrTnVtYmVyAABJDAAAAk0MAE0MAAAECDQ0AFEMAAACVQwAVQwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb25wQ2FuZGlkYXRlUGVuZGluZ0F2YWlsYWJpbGl0eQgESAE0BE4BEAAkARBjb3Jl9QcBJENvcmVJbmRleAABEGhhc2hVBQE0Q2FuZGlkYXRlSGFzaAABKGRlc2NyaXB0b3IVBQFYQ2FuZGlkYXRlRGVzY3JpcHRvcjxIPgABLGNvbW1pdG1lbnRzJQUBUENhbmRpZGF0ZUNvbW1pdG1lbnRzAAFIYXZhaWxhYmlsaXR5X3ZvdGVz+QQBYEJpdFZlYzx1OCwgQml0T3JkZXJMc2IwPgABHGJhY2tlcnP5BAFgQml0VmVjPHU4LCBCaXRPcmRlckxzYjA+AAFMcmVsYXlfcGFyZW50X251bWJlchABBE4AAUBiYWNrZWRfaW5fbnVtYmVyEAEETgABNGJhY2tpbmdfZ3JvdXD5BwEoR3JvdXBJbmRleAAAWQwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0FEVycm9yBARUAAFIZFZhbGlkYXRvckluZGV4T3V0T2ZCb3VuZHMAAAR4VmFsaWRhdG9yIGluZGV4IG91dCBvZiBib3VuZHMuUFVuc2NoZWR1bGVkQ2FuZGlkYXRlAAEErENhbmRpZGF0ZSBzdWJtaXR0ZWQgYnV0IHBhcmEgbm90IHNjaGVkdWxlZC5ASGVhZERhdGFUb29MYXJnZQACBKRIZWFkIGRhdGEgZXhjZWVkcyB0aGUgY29uZmlndXJlZCBtYXhpbXVtLlBQcmVtYXR1cmVDb2RlVXBncmFkZQADBGRDb2RlIHVwZ3JhZGUgcHJlbWF0dXJlbHkuPE5ld0NvZGVUb29MYXJnZQAEBGBPdXRwdXQgY29kZSBpcyB0b28gbGFyZ2VURGlzYWxsb3dlZFJlbGF5UGFyZW50AAUI7FRoZSBjYW5kaWRhdGUncyByZWxheS1wYXJlbnQgd2FzIG5vdCBhbGxvd2VkLiBFaXRoZXIgaXQgd2FzJQFub3QgcmVjZW50IGVub3VnaCBvciBpdCBkaWRuJ3QgYWR2YW5jZSBiYXNlZCBvbiB0aGUgbGFzdCBwYXJhY2hhaW4gYmxvY2suREludmFsaWRBc3NpZ25tZW50AAYIFQFGYWlsZWQgdG8gY29tcHV0ZSBncm91cCBpbmRleCBmb3IgdGhlIGNvcmU6IGVpdGhlciBpdCdzIG91dCBvZiBib3VuZHPob3IgdGhlIHJlbGF5IHBhcmVudCBkb2Vzbid0IGJlbG9uZyB0byB0aGUgY3VycmVudCBzZXNzaW9uLkRJbnZhbGlkR3JvdXBJbmRleAAHBJxJbnZhbGlkIGdyb3VwIGluZGV4IGluIGNvcmUgYXNzaWdubWVudC5MSW5zdWZmaWNpZW50QmFja2luZwAIBJBJbnN1ZmZpY2llbnQgKG5vbi1tYWpvcml0eSkgYmFja2luZy44SW52YWxpZEJhY2tpbmcACQTkSW52YWxpZCAoYmFkIHNpZ25hdHVyZSwgdW5rbm93biB2YWxpZGF0b3IsIGV0Yy4pIGJhY2tpbmcuRE5vdENvbGxhdG9yU2lnbmVkAAoEaENvbGxhdG9yIGRpZCBub3Qgc2lnbiBQb1YuaFZhbGlkYXRpb25EYXRhSGFzaE1pc21hdGNoAAsExFRoZSB2YWxpZGF0aW9uIGRhdGEgaGFzaCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZC6ASW5jb3JyZWN0RG93bndhcmRNZXNzYWdlSGFuZGxpbmcADATYVGhlIGRvd253YXJkIG1lc3NhZ2UgcXVldWUgaXMgbm90IHByb2Nlc3NlZCBjb3JyZWN0bHkuVEludmFsaWRVcHdhcmRNZXNzYWdlcwANBB0BQXQgbGVhc3Qgb25lIHVwd2FyZCBtZXNzYWdlIHNlbnQgZG9lcyBub3QgcGFzcyB0aGUgYWNjZXB0YW5jZSBjcml0ZXJpYS5gSHJtcFdhdGVybWFya01pc2hhbmRsaW5nAA4EEQFUaGUgY2FuZGlkYXRlIGRpZG4ndCBmb2xsb3cgdGhlIHJ1bGVzIG9mIEhSTVAgd2F0ZXJtYXJrIGFkdmFuY2VtZW50LkxJbnZhbGlkT3V0Ym91bmRIcm1wAA8E1FRoZSBIUk1QIG1lc3NhZ2VzIHNlbnQgYnkgdGhlIGNhbmRpZGF0ZSBpcyBub3QgdmFsaWQuZEludmFsaWRWYWxpZGF0aW9uQ29kZUhhc2gAEATcVGhlIHZhbGlkYXRpb24gY29kZSBoYXNoIG9mIHRoZSBjYW5kaWRhdGUgaXMgbm90IHZhbGlkLkBQYXJhSGVhZE1pc21hdGNoABEIVQFUaGUgYHBhcmFfaGVhZGAgaGFzaCBpbiB0aGUgY2FuZGlkYXRlIGRlc2NyaXB0b3IgZG9lc24ndCBtYXRjaCB0aGUgaGFzaCBvZiB0aGUgYWN0dWFsdHBhcmEgaGVhZCBpbiB0aGUgY29tbWl0bWVudHMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ll0MDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3TFNjcmFwZWRPbkNoYWluVm90ZXMEBEgBNAAMARxzZXNzaW9uEAEwU2Vzc2lvbkluZGV4AAGAYmFja2luZ192YWxpZGF0b3JzX3Blcl9jYW5kaWRhdGVhDAEdAVZlYzwoQ2FuZGlkYXRlUmVjZWlwdDxIPiwgVmVjPChWYWxpZGF0b3JJbmRleCwgVmFsaWRpdHlBdHRlc3RhdGlvbik+KQo+AAEgZGlzcHV0ZXNNBQFgTXVsdGlEaXNwdXRlU3RhdGVtZW50U2V0AABhDAAAAmUMAGUMAAAECPEHaQwAaQwAAAJtDABtDAAABAgBBUkFAHEMEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnM4cGFyYXNfaW5oZXJlbnQYcGFsbGV0FEVycm9yBARUAAEUZFRvb01hbnlJbmNsdXNpb25JbmhlcmVudHMAAATMSW5jbHVzaW9uIGluaGVyZW50IGNhbGxlZCBtb3JlIHRoYW4gb25jZSBwZXIgYmxvY2suTEludmFsaWRQYXJlbnRIZWFkZXIAAQhVAVRoZSBoYXNoIG9mIHRoZSBzdWJtaXR0ZWQgcGFyZW50IGhlYWRlciBkb2Vzbid0IGNvcnJlc3BvbmQgdG8gdGhlIHNhdmVkIGJsb2NrIGhhc2ggb2YsdGhlIHBhcmVudC5ISW5oZXJlbnRPdmVyd2VpZ2h0AAIECQFUaGUgZGF0YSBnaXZlbiB0byB0aGUgaW5oZXJlbnQgd2lsbCByZXN1bHQgaW4gYW4gb3ZlcndlaWdodCBibG9jay6EQ2FuZGlkYXRlc0ZpbHRlcmVkRHVyaW5nRXhlY3V0aW9uAAMITQFBIGNhbmRpZGF0ZSB3YXMgZmlsdGVyZWQgZHVyaW5nIGluaGVyZW50IGV4ZWN1dGlvbi4gVGhpcyBzaG91bGQgaGF2ZSBvbmx5IGJlZW4gZG9uZUBkdXJpbmcgY3JlYXRpb24uUFVuc2NoZWR1bGVkQ2FuZGlkYXRlAAQEdFRvbyBtYW55IGNhbmRpZGF0ZXMgc3VwcGxpZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnUMAAACPQwAeQwAAAJ9DAB9DBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJHNjaGVkdWxlchhwYWxsZXQwQ29yZU9jY3VwaWVkBAROARABCBBGcmVlAAAAFFBhcmFzBACBDAE0UGFyYXNFbnRyeTxOPgABAACBDBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJHNjaGVkdWxlchhwYWxsZXQoUGFyYXNFbnRyeQQETgEQAAwBKGFzc2lnbm1lbnSFDAEoQXNzaWdubWVudAABVGF2YWlsYWJpbGl0eV90aW1lb3V0cxABDHUzMgABDHR0bBABBE4AAIUMEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkc2NoZWR1bGVyGGNvbW1vbihBc3NpZ25tZW50AAEIEFBvb2wIARxwYXJhX2lkaQIBGFBhcmFJZAABKGNvcmVfaW5kZXj1BwEkQ29yZUluZGV4AAAAEEJ1bGsEAGkCARhQYXJhSWQAAQAAiQwEIEJUcmVlTWFwCARLAfUHBFYBjQwABACRDAAAAI0MAAACgQwAkQwAAAKVDACVDAAABAj1B40MAJkMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXNcUHZmQ2hlY2tBY3RpdmVWb3RlU3RhdGUELEJsb2NrTnVtYmVyARAAFAEwdm90ZXNfYWNjZXB0+QQBYEJpdFZlYzx1OCwgQml0T3JkZXJMc2IwPgABMHZvdGVzX3JlamVjdPkEAWBCaXRWZWM8dTgsIEJpdE9yZGVyTHNiMD4AAQxhZ2UQATBTZXNzaW9uSW5kZXgAAShjcmVhdGVkX2F0EAEsQmxvY2tOdW1iZXIAARhjYXVzZXOdDAF8VmVjPFB2ZkNoZWNrQ2F1c2U8QmxvY2tOdW1iZXI+PgAAnQwAAAKhDAChDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzNFB2ZkNoZWNrQ2F1c2UELEJsb2NrTnVtYmVyARABCChPbmJvYXJkaW5nBABpAgEYUGFyYUlkAAAAHFVwZ3JhZGUMAQhpZGkCARhQYXJhSWQAASxpbmNsdWRlZF9hdBABLEJsb2NrTnVtYmVyAAFAdXBncmFkZV9zdHJhdGVneaUMATxVcGdyYWRlU3RyYXRlZ3kAAQAApQwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhczxVcGdyYWRlU3RyYXRlZ3kAAQhAU2V0R29BaGVhZFNpZ25hbAAAAFBBcHBseUF0RXhwZWN0ZWRCbG9jawABAACpDAAAAiEFAK0MAAACaQIAsQwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhczRQYXJhTGlmZWN5Y2xlAAEcKE9uYm9hcmRpbmcAAAAoUGFyYXRocmVhZAABACRQYXJhY2hhaW4AAgBMVXBncmFkaW5nUGFyYXRocmVhZAADAFBEb3duZ3JhZGluZ1BhcmFjaGFpbgAEAFRPZmZib2FyZGluZ1BhcmF0aHJlYWQABQBQT2ZmYm9hcmRpbmdQYXJhY2hhaW4ABgAAtQwAAAQIaQIQALkMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXNAUGFyYVBhc3RDb2RlTWV0YQQETgEQAAgBNHVwZ3JhZGVfdGltZXO9DAFgVmVjPFJlcGxhY2VtZW50VGltZXM8Tj4+AAEsbGFzdF9wcnVuZWQ9AgEkT3B0aW9uPE4+AAC9DAAAAsEMAMEMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXNAUmVwbGFjZW1lbnRUaW1lcwQETgEQAAgBLGV4cGVjdGVkX2F0EAEETgABMGFjdGl2YXRlZF9hdBABBE4AAMUMAAACtQwAyQwMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjc4VXBncmFkZUdvQWhlYWQAAQgUQWJvcnQAAAAcR29BaGVhZAABAADNDAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N0hVcGdyYWRlUmVzdHJpY3Rpb24AAQQcUHJlc2VudAAAAADRDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzPFBhcmFHZW5lc2lzQXJncwAADAEwZ2VuZXNpc19oZWFkQQUBIEhlYWREYXRhAAE8dmFsaWRhdGlvbl9jb2RlPQUBOFZhbGlkYXRpb25Db2RlAAEkcGFyYV9raW5kIAEgUGFyYUtpbmQAANUMEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXMYcGFsbGV0FEVycm9yBARUAAE0NE5vdFJlZ2lzdGVyZWQAAASUUGFyYSBpcyBub3QgcmVnaXN0ZXJlZCBpbiBvdXIgc3lzdGVtLjRDYW5ub3RPbmJvYXJkAAEEFQFQYXJhIGNhbm5vdCBiZSBvbmJvYXJkZWQgYmVjYXVzZSBpdCBpcyBhbHJlYWR5IHRyYWNrZWQgYnkgb3VyIHN5c3RlbS44Q2Fubm90T2ZmYm9hcmQAAgScUGFyYSBjYW5ub3QgYmUgb2ZmYm9hcmRlZCBhdCB0aGlzIHRpbWUuNENhbm5vdFVwZ3JhZGUAAwTUUGFyYSBjYW5ub3QgYmUgdXBncmFkZWQgdG8gYSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbi48Q2Fubm90RG93bmdyYWRlAAQE0FBhcmEgY2Fubm90IGJlIGRvd25ncmFkZWQgdG8gYW4gb24tZGVtYW5kIHBhcmFjaGFpbi5YUHZmQ2hlY2tTdGF0ZW1lbnRTdGFsZQAFBLBUaGUgc3RhdGVtZW50IGZvciBQVkYgcHJlLWNoZWNraW5nIGlzIHN0YWxlLlxQdmZDaGVja1N0YXRlbWVudEZ1dHVyZQAGBOxUaGUgc3RhdGVtZW50IGZvciBQVkYgcHJlLWNoZWNraW5nIGlzIGZvciBhIGZ1dHVyZSBzZXNzaW9uLoRQdmZDaGVja1ZhbGlkYXRvckluZGV4T3V0T2ZCb3VuZHMABwSkQ2xhaW1lZCB2YWxpZGF0b3IgaW5kZXggaXMgb3V0IG9mIGJvdW5kcy5gUHZmQ2hlY2tJbnZhbGlkU2lnbmF0dXJlAAgEyFRoZSBzaWduYXR1cmUgZm9yIHRoZSBQVkYgcHJlLWNoZWNraW5nIGlzIGludmFsaWQuSFB2ZkNoZWNrRG91YmxlVm90ZQAJBLBUaGUgZ2l2ZW4gdmFsaWRhdG9yIGFscmVhZHkgaGFzIGNhc3QgYSB2b3RlLlhQdmZDaGVja1N1YmplY3RJbnZhbGlkAAoE9FRoZSBnaXZlbiBQVkYgZG9lcyBub3QgZXhpc3QgYXQgdGhlIG1vbWVudCBvZiBwcm9jZXNzIGEgdm90ZS5EQ2Fubm90VXBncmFkZUNvZGUACwTMUGFyYWNoYWluIGNhbm5vdCBjdXJyZW50bHkgc2NoZWR1bGUgYSBjb2RlIHVwZ3JhZGUuLEludmFsaWRDb2RlAAwEdEludmFsaWQgdmFsaWRhdGlvbiBjb2RlIHNpemUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkMAAAC3QwA3QwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyxpbml0aWFsaXplclRCdWZmZXJlZFNlc3Npb25DaGFuZ2UAAAwBKHZhbGlkYXRvcnNBDAFAVmVjPFZhbGlkYXRvcklkPgABGHF1ZXVlZEEMAUBWZWM8VmFsaWRhdG9ySWQ+AAE0c2Vzc2lvbl9pbmRleBABMFNlc3Npb25JbmRleAAA4QwAAALlDADlDAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzWEluYm91bmREb3dud2FyZE1lc3NhZ2UELEJsb2NrTnVtYmVyARAACAEcc2VudF9hdBABLEJsb2NrTnVtYmVyAAEMbXNnOAE8RG93bndhcmRNZXNzYWdlAADpDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zEGhybXBYSHJtcE9wZW5DaGFubmVsUmVxdWVzdAAAGAEkY29uZmlybWVkIAEQYm9vbAABEF9hZ2UQATBTZXNzaW9uSW5kZXgAAThzZW5kZXJfZGVwb3NpdBgBHEJhbGFuY2UAAUBtYXhfbWVzc2FnZV9zaXplEAEMdTMyAAEwbWF4X2NhcGFjaXR5EAEMdTMyAAE4bWF4X3RvdGFsX3NpemUQAQx1MzIAAO0MAAACgQUA8QwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wLEhybXBDaGFubmVsAAAgATBtYXhfY2FwYWNpdHkQAQx1MzIAAThtYXhfdG90YWxfc2l6ZRABDHUzMgABQG1heF9tZXNzYWdlX3NpemUQAQx1MzIAASRtc2dfY291bnQQAQx1MzIAASh0b3RhbF9zaXplEAEMdTMyAAEgbXFjX2hlYWR5AgEwT3B0aW9uPEhhc2g+AAE4c2VuZGVyX2RlcG9zaXQYARxCYWxhbmNlAAFEcmVjaXBpZW50X2RlcG9zaXQYARxCYWxhbmNlAAD1DAAAAvkMAPkMCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNISW5ib3VuZEhybXBNZXNzYWdlBCxCbG9ja051bWJlcgEQAAgBHHNlbnRfYXQQASxCbG9ja051bWJlcgABEGRhdGE4AVBzcF9zdGQ6OnZlYzo6VmVjPHU4PgAA/QwAAAIBDQABDQAABAgQrQwABQ0QbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBRFcnJvcgQEVAABUFRPcGVuSHJtcENoYW5uZWxUb1NlbGYAAATEVGhlIHNlbmRlciB0cmllZCB0byBvcGVuIGEgY2hhbm5lbCB0byB0aGVtc2VsdmVzLnxPcGVuSHJtcENoYW5uZWxJbnZhbGlkUmVjaXBpZW50AAEEiFRoZSByZWNpcGllbnQgaXMgbm90IGEgdmFsaWQgcGFyYS5sT3BlbkhybXBDaGFubmVsWmVyb0NhcGFjaXR5AAIEfFRoZSByZXF1ZXN0ZWQgY2FwYWNpdHkgaXMgemVyby6MT3BlbkhybXBDaGFubmVsQ2FwYWNpdHlFeGNlZWRzTGltaXQAAwTAVGhlIHJlcXVlc3RlZCBjYXBhY2l0eSBleGNlZWRzIHRoZSBnbG9iYWwgbGltaXQueE9wZW5Icm1wQ2hhbm5lbFplcm9NZXNzYWdlU2l6ZQAEBKBUaGUgcmVxdWVzdGVkIG1heGltdW0gbWVzc2FnZSBzaXplIGlzIDAumE9wZW5Icm1wQ2hhbm5lbE1lc3NhZ2VTaXplRXhjZWVkc0xpbWl0AAUEKQFUaGUgb3BlbiByZXF1ZXN0IHJlcXVlc3RlZCB0aGUgbWVzc2FnZSBzaXplIHRoYXQgZXhjZWVkcyB0aGUgZ2xvYmFsIGxpbWl0LnBPcGVuSHJtcENoYW5uZWxBbHJlYWR5RXhpc3RzAAYEaFRoZSBjaGFubmVsIGFscmVhZHkgZXhpc3RzfE9wZW5Icm1wQ2hhbm5lbEFscmVhZHlSZXF1ZXN0ZWQABwTQVGhlcmUgaXMgYWxyZWFkeSBhIHJlcXVlc3QgdG8gb3BlbiB0aGUgc2FtZSBjaGFubmVsLnBPcGVuSHJtcENoYW5uZWxMaW1pdEV4Y2VlZGVkAAgEHQFUaGUgc2VuZGVyIGFscmVhZHkgaGFzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIG91dGJvdW5kIGNoYW5uZWxzLnBBY2NlcHRIcm1wQ2hhbm5lbERvZXNudEV4aXN0AAkE4FRoZSBjaGFubmVsIGZyb20gdGhlIHNlbmRlciB0byB0aGUgb3JpZ2luIGRvZXNuJ3QgZXhpc3QuhEFjY2VwdEhybXBDaGFubmVsQWxyZWFkeUNvbmZpcm1lZAAKBIRUaGUgY2hhbm5lbCBpcyBhbHJlYWR5IGNvbmZpcm1lZC54QWNjZXB0SHJtcENoYW5uZWxMaW1pdEV4Y2VlZGVkAAsEJQFUaGUgcmVjaXBpZW50IGFscmVhZHkgaGFzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGluYm91bmQgY2hhbm5lbHMucENsb3NlSHJtcENoYW5uZWxVbmF1dGhvcml6ZWQADARVAVRoZSBvcmlnaW4gdHJpZXMgdG8gY2xvc2UgYSBjaGFubmVsIHdoZXJlIGl0IGlzIG5laXRoZXIgdGhlIHNlbmRlciBub3IgdGhlIHJlY2lwaWVudC5sQ2xvc2VIcm1wQ2hhbm5lbERvZXNudEV4aXN0AA0EnFRoZSBjaGFubmVsIHRvIGJlIGNsb3NlZCBkb2Vzbid0IGV4aXN0LnxDbG9zZUhybXBDaGFubmVsQWxyZWFkeVVuZGVyd2F5AA4EvFRoZSBjaGFubmVsIGNsb3NlIHJlcXVlc3QgaXMgYWxyZWFkeSByZXF1ZXN0ZWQuhENhbmNlbEhybXBPcGVuQ2hhbm5lbFVuYXV0aG9yaXplZAAPBF0BQ2FuY2VsaW5nIGlzIHJlcXVlc3RlZCBieSBuZWl0aGVyIHRoZSBzZW5kZXIgbm9yIHJlY2lwaWVudCBvZiB0aGUgb3BlbiBjaGFubmVsIHJlcXVlc3QuaE9wZW5Icm1wQ2hhbm5lbERvZXNudEV4aXN0ABAEfFRoZSBvcGVuIHJlcXVlc3QgZG9lc24ndCBleGlzdC58T3BlbkhybXBDaGFubmVsQWxyZWFkeUNvbmZpcm1lZAARBC0BQ2Fubm90IGNhbmNlbCBhbiBIUk1QIG9wZW4gY2hhbm5lbCByZXF1ZXN0IGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBjb25maXJtZWQuMFdyb25nV2l0bmVzcwASBIxUaGUgcHJvdmlkZWQgd2l0bmVzcyBkYXRhIGlzIHdyb25nLnBDaGFubmVsQ3JlYXRpb25Ob3RBdXRob3JpemVkABME6FRoZSBjaGFubmVsIGJldHdlZW4gdGhlc2UgdHdvIGNoYWlucyBjYW5ub3QgYmUgYXV0aG9yaXplZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuCQ0AAAL9AQANDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NyxTZXNzaW9uSW5mbwAANAFgYWN0aXZlX3ZhbGlkYXRvcl9pbmRpY2VzPQwBTFZlYzxWYWxpZGF0b3JJbmRleD4AASxyYW5kb21fc2VlZAQBIFt1ODsgMzJdAAE4ZGlzcHV0ZV9wZXJpb2QQATBTZXNzaW9uSW5kZXgAASh2YWxpZGF0b3JzEQ0BnEluZGV4ZWRWZWM8VmFsaWRhdG9ySW5kZXgsIFZhbGlkYXRvcklkPgABOGRpc2NvdmVyeV9rZXlzqQkBZFZlYzxBdXRob3JpdHlEaXNjb3ZlcnlJZD4AATxhc3NpZ25tZW50X2tleXMJDQFEVmVjPEFzc2lnbm1lbnRJZD4AAUB2YWxpZGF0b3JfZ3JvdXBzFQ0BrEluZGV4ZWRWZWM8R3JvdXBJbmRleCwgVmVjPFZhbGlkYXRvckluZGV4Pj4AARxuX2NvcmVzEAEMdTMyAAFoemVyb3RoX2RlbGF5X3RyYW5jaGVfd2lkdGgQAQx1MzIAAWByZWxheV92cmZfbW9kdWxvX3NhbXBsZXMQAQx1MzIAAUBuX2RlbGF5X3RyYW5jaGVzEAEMdTMyAAE0bm9fc2hvd19zbG90cxABDHUzMgABQG5lZWRlZF9hcHByb3ZhbHMQAQx1MzIAABENDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3KEluZGV4ZWRWZWMIBEsBAQUEVgH5AQAEAEEMARhWZWM8Vj4AABUNDExwb2xrYWRvdF9wcmltaXRpdmVzCHY3KEluZGV4ZWRWZWMIBEsB+QcEVgE9DAAEAHUMARhWZWM8Vj4AABkNAAAECBBVBQAdDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzBEaXNwdXRlU3RhdGUEBE4BEAAQATh2YWxpZGF0b3JzX2ZvcvkEAXxCaXRWZWM8dTgsIGJpdHZlYzo6b3JkZXI6OkxzYjA+AAFIdmFsaWRhdG9yc19hZ2FpbnN0+QQBfEJpdFZlYzx1OCwgYml0dmVjOjpvcmRlcjo6THNiMD4AARRzdGFydBABBE4AATBjb25jbHVkZWRfYXQ9AgEkT3B0aW9uPE4+AAAhDQQgQlRyZWVTZXQEBFQBAQUABAA9DAAAACUNEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXMYcGFsbGV0FEVycm9yBARUAAEkdER1cGxpY2F0ZURpc3B1dGVTdGF0ZW1lbnRTZXRzAAAEqER1cGxpY2F0ZSBkaXNwdXRlIHN0YXRlbWVudCBzZXRzIHByb3ZpZGVkLlxBbmNpZW50RGlzcHV0ZVN0YXRlbWVudAABBIxBbmNpZW50IGRpc3B1dGUgc3RhdGVtZW50IHByb3ZpZGVkLmRWYWxpZGF0b3JJbmRleE91dE9mQm91bmRzAAIE6FZhbGlkYXRvciBpbmRleCBvbiBzdGF0ZW1lbnQgaXMgb3V0IG9mIGJvdW5kcyBmb3Igc2Vzc2lvbi5ASW52YWxpZFNpZ25hdHVyZQADBHxJbnZhbGlkIHNpZ25hdHVyZSBvbiBzdGF0ZW1lbnQuSER1cGxpY2F0ZVN0YXRlbWVudAAEBMxWYWxpZGF0b3Igdm90ZSBzdWJtaXR0ZWQgbW9yZSB0aGFuIG9uY2UgdG8gZGlzcHV0ZS5IU2luZ2xlU2lkZWREaXNwdXRlAAUExEEgZGlzcHV0ZSB3aGVyZSB0aGVyZSBhcmUgb25seSB2b3RlcyBvbiBvbmUgc2lkZS48TWFsaWNpb3VzQmFja2VyAAYEnEEgZGlzcHV0ZSB2b3RlIGZyb20gYSBtYWxpY2lvdXMgYmFja2VyLkxNaXNzaW5nQmFja2luZ1ZvdGVzAAcE4E5vIGJhY2tpbmcgdm90ZXMgd2VyZSBwcm92aWRlcyBhbG9uZyBkaXNwdXRlIHN0YXRlbWVudHMuSFVuY29uZmlybWVkRGlzcHV0ZQAIBLBVbmNvbmZpcm1lZCBkaXNwdXRlIHN0YXRlbWVudCBzZXRzIHByb3ZpZGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4pDRBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NyBzbGFzaGluZzhQZW5kaW5nU2xhc2hlcwAACAEQa2V5cy0NAZRCVHJlZU1hcDxWYWxpZGF0b3JJbmRleCwgVmFsaWRhdG9ySWQ+AAEQa2luZJUFAUxTbGFzaGluZ09mZmVuY2VLaW5kAAAtDQQgQlRyZWVNYXAIBEsBAQUEVgH5AQAEADENAAAAMQ0AAAI1DQA1DQAABAgBBfkBADkNFGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXMgc2xhc2hpbmcYcGFsbGV0FEVycm9yBARUAAEYYEludmFsaWRLZXlPd25lcnNoaXBQcm9vZgAABIxUaGUga2V5IG93bmVyc2hpcCBwcm9vZiBpcyBpbnZhbGlkLkxJbnZhbGlkU2Vzc2lvbkluZGV4AAEEoFRoZSBzZXNzaW9uIGluZGV4IGlzIHRvbyBvbGQgb3IgaW52YWxpZC5QSW52YWxpZENhbmRpZGF0ZUhhc2gAAgR4VGhlIGNhbmRpZGF0ZSBoYXNoIGlzIGludmFsaWQuVEludmFsaWRWYWxpZGF0b3JJbmRleAADCAEBVGhlcmUgaXMgbm8gcGVuZGluZyBzbGFzaCBmb3IgdGhlIGdpdmVuIHZhbGlkYXRvciBpbmRleCBhbmQgdGltZRRzbG90LmBWYWxpZGF0b3JJbmRleElkTWlzbWF0Y2gABATQVGhlIHZhbGlkYXRvciBpbmRleCBkb2VzIG5vdCBtYXRjaCB0aGUgdmFsaWRhdG9yIGlkLlxEdXBsaWNhdGVTbGFzaGluZ1JlcG9ydAAFBA0BVGhlIGdpdmVuIHNsYXNoaW5nIHJlcG9ydCBpcyB2YWxpZCBidXQgYWxyZWFkeSBwcmV2aW91c2x5IHJlcG9ydGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC49DRBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zSGFzc2lnbmVyX29uX2RlbWFuZBR0eXBlc0RDb3JlQWZmaW5pdHlDb3VudAAACAEoY29yZV9pbmRlePUHASRDb3JlSW5kZXgAARRjb3VudBABDHUzMgAAQQ0QbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0hhc3NpZ25lcl9vbl9kZW1hbmQUdHlwZXM8UXVldWVTdGF0dXNUeXBlAAAQARx0cmFmZmljIQcBJEZpeGVkVTEyOAABKG5leHRfaW5kZXhFDQEoUXVldWVJbmRleAABOHNtYWxsZXN0X2luZGV4RQ0BKFF1ZXVlSW5kZXgAATRmcmVlZF9pbmRpY2VzSQ0BdEJpbmFyeUhlYXA8UmV2ZXJzZVF1ZXVlSW5kZXg+AABFDRBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zSGFzc2lnbmVyX29uX2RlbWFuZBR0eXBlcyhRdWV1ZUluZGV4AAAEABABDHUzMgAASQ0EKEJpbmFyeUhlYXAEBFQBTQ0ABABRDQAAAE0NEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNIYXNzaWduZXJfb25fZGVtYW5kFHR5cGVzRFJldmVyc2VRdWV1ZUluZGV4AAAEABABDHUzMgAAUQ0AAAJNDQBVDQQoQmluYXJ5SGVhcAQEVAFZDQAEAF0NAAAAWQ0QbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0hhc3NpZ25lcl9vbl9kZW1hbmQUdHlwZXM0RW5xdWV1ZWRPcmRlcgAACAEccGFyYV9pZGkCARhQYXJhSWQAAQxpZHhFDQEoUXVldWVJbmRleAAAXQ0AAAJZDQBhDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARgEUwAABABlDQEYVmVjPFQ+AABlDQAAAhgAaQ0QbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0hhc3NpZ25lcl9vbl9kZW1hbmQYcGFsbGV0FEVycm9yBARUAAEIJFF1ZXVlRnVsbAAABORUaGUgb3JkZXIgcXVldWUgaXMgZnVsbCwgYHBsYWNlX29yZGVyYCB3aWxsIG5vdCBjb250aW51ZS5wU3BvdFByaWNlSGlnaGVyVGhhbk1heEFtb3VudAABCE0BVGhlIGN1cnJlbnQgc3BvdCBwcmljZSBpcyBoaWdoZXIgdGhhbiB0aGUgbWF4IGFtb3VudCBzcGVjaWZpZWQgaW4gdGhlIGBwbGFjZV9vcmRlcmBgY2FsbCwgbWFraW5nIGl0IGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lm0NAAAECBD1BwBxDQxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zRGFzc2lnbmVyX2NvcmV0aW1lIFNjaGVkdWxlBAROARAADAEsYXNzaWdubWVudHPFBQGMVmVjPChDb3JlQXNzaWdubWVudCwgUGFydHNPZjU3NjAwKT4AASBlbmRfaGludD0CASRPcHRpb248Tj4AATRuZXh0X3NjaGVkdWxlPQIBJE9wdGlvbjxOPgAAdQ0MbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZThDb3JlRGVzY3JpcHRvcgQETgEQAAgBFHF1ZXVleQ0BaE9wdGlvbjxRdWV1ZURlc2NyaXB0b3I8Tj4+AAEwY3VycmVudF93b3JrgQ0BUE9wdGlvbjxXb3JrU3RhdGU8Tj4+AAB5DQQYT3B0aW9uBARUAX0NAQgQTm9uZQAAABBTb21lBAB9DQAAAQAAfQ0MbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZTxRdWV1ZURlc2NyaXB0b3IEBE4BEAAIARRmaXJzdBABBE4AARBsYXN0EAEETgAAgQ0EGE9wdGlvbgQEVAGFDQEIEE5vbmUAAAAQU29tZQQAhQ0AAAEAAIUNDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNEYXNzaWduZXJfY29yZXRpbWUkV29ya1N0YXRlBAROARAAEAEsYXNzaWdubWVudHOJDQGYVmVjPChDb3JlQXNzaWdubWVudCwgQXNzaWdubWVudFN0YXRlKT4AASBlbmRfaGludD0CASRPcHRpb248Tj4AAQxwb3NVAQEMdTE2AAEQc3RlcNEFATBQYXJ0c09mNTc2MDAAAIkNAAACjQ0AjQ0AAAQIzQWRDQCRDQxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zRGFzc2lnbmVyX2NvcmV0aW1lPEFzc2lnbm1lbnRTdGF0ZQAACAEUcmF0aW/RBQEwUGFydHNPZjU3NjAwAAEkcmVtYWluaW5n0QUBMFBhcnRzT2Y1NzYwMAAAlQ0QbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZRhwYWxsZXQURXJyb3IEBFQAARhAQXNzaWdubWVudHNFbXB0eQAAADRPdmVyU2NoZWR1bGVkAAEEkEFzc2lnbm1lbnRzIHRvZ2V0aGVyIGV4Y2VlZGVkIDU3NjAwLjhVbmRlclNjaGVkdWxlZAACBJBBc3NpZ25tZW50cyB0b2dldGhlciBsZXNzIHRoYW4gNTc2MDBARGlzYWxsb3dlZEluc2VydAADCFEBYXNzaWduX2NvcmUgaXMgb25seSBhbGxvd2VkIHRvIGFwcGVuZCBuZXcgYXNzaWdubWVudHMgYXQgdGhlIGVuZCBvZiBhbHJlYWR5IGV4aXN0aW5nFG9uZXMuPER1cGxpY2F0ZUluc2VydAAEBFUBVHJpZWQgdG8gaW5zZXJ0IGEgc2NoZWR1bGUgZm9yIHRoZSBzYW1lIGNvcmUgYW5kIGJsb2NrIG51bWJlciBhcyBhbiBleGlzdGluZyBzY2hlZHVsZVBBc3NpZ25tZW50c05vdFNvcnRlZAAFBKxUcmllZCB0byBhZGQgYW4gdW5zb3J0ZWQgc2V0IG9mIGFzc2lnbm1lbnRzBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LpkNDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjxwYXJhc19yZWdpc3RyYXIgUGFyYUluZm8IHEFjY291bnQBABxCYWxhbmNlARgADAEcbWFuYWdlcgABHEFjY291bnQAARxkZXBvc2l0GAEcQmFsYW5jZQABGGxvY2tlZLECATBPcHRpb248Ym9vbD4AAJ0NEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjxwYXJhc19yZWdpc3RyYXIYcGFsbGV0FEVycm9yBARUAAE4NE5vdFJlZ2lzdGVyZWQAAARkVGhlIElEIGlzIG5vdCByZWdpc3RlcmVkLkRBbHJlYWR5UmVnaXN0ZXJlZAABBHRUaGUgSUQgaXMgYWxyZWFkeSByZWdpc3RlcmVkLiBOb3RPd25lcgACBJxUaGUgY2FsbGVyIGlzIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBJZC4wQ29kZVRvb0xhcmdlAAMEXEludmFsaWQgcGFyYSBjb2RlIHNpemUuQEhlYWREYXRhVG9vTGFyZ2UABARwSW52YWxpZCBwYXJhIGhlYWQgZGF0YSBzaXplLjBOb3RQYXJhY2hhaW4ABQRgUGFyYSBpcyBub3QgYSBQYXJhY2hhaW4uNE5vdFBhcmF0aHJlYWQABgS8UGFyYSBpcyBub3QgYSBQYXJhdGhyZWFkIChvbi1kZW1hbmQgcGFyYWNoYWluKS5AQ2Fubm90RGVyZWdpc3RlcgAHBFhDYW5ub3QgZGVyZWdpc3RlciBwYXJhPENhbm5vdERvd25ncmFkZQAIBC0BQ2Fubm90IHNjaGVkdWxlIGRvd25ncmFkZSBvZiBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbiB0byBvbi1kZW1hbmQgcGFyYWNoYWluNENhbm5vdFVwZ3JhZGUACQQlAUNhbm5vdCBzY2hlZHVsZSB1cGdyYWRlIG9mIG9uLWRlbWFuZCBwYXJhY2hhaW4gdG8gbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4oUGFyYUxvY2tlZAAKCEkBUGFyYSBpcyBsb2NrZWQgZnJvbSBtYW5pcHVsYXRpb24gYnkgdGhlIG1hbmFnZXIuIE11c3QgdXNlIHBhcmFjaGFpbiBvciByZWxheSBjaGFpbixnb3Zlcm5hbmNlLixOb3RSZXNlcnZlZAALBNBUaGUgSUQgZ2l2ZW4gZm9yIHJlZ2lzdHJhdGlvbiBoYXMgbm90IGJlZW4gcmVzZXJ2ZWQuLEludmFsaWRDb2RlAAwEfFRoZSB2YWxpZGF0aW9uIGNvZGUgaXMgaW52YWxpZC4oQ2Fubm90U3dhcAANCFEBQ2Fubm90IHBlcmZvcm0gYSBwYXJhY2hhaW4gc2xvdCAvIGxpZmVjeWNsZSBzd2FwLiBDaGVjayB0aGF0IHRoZSBzdGF0ZSBvZiBib3RoIHBhcmFzhGFyZSBjb3JyZWN0IGZvciB0aGUgc3dhcCB0byB3b3JrLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6hDQAAAikLAKUNEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhRzbG90cxhwYWxsZXQURXJyb3IEBFQAAQhEUGFyYU5vdE9uYm9hcmRpbmcAAASMVGhlIHBhcmFjaGFpbiBJRCBpcyBub3Qgb25ib2FyZGluZy4oTGVhc2VFcnJvcgABBIhUaGVyZSB3YXMgYW4gZXJyb3Igd2l0aCB0aGUgbGVhc2UuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqkNAAAECABpAgCtDQAAAyQAAACxDQCxDQQYT3B0aW9uBARUAbUNAQgQTm9uZQAAABBTb21lBAC1DQAAAQAAtQ0AAAQMAGkCGAC5DRBccG9sa2Fkb3RfcnVudGltZV9jb21tb24gYXVjdGlvbnMYcGFsbGV0FEVycm9yBARUAAEcREF1Y3Rpb25JblByb2dyZXNzAAAEkFRoaXMgYXVjdGlvbiBpcyBhbHJlYWR5IGluIHByb2dyZXNzLkRMZWFzZVBlcmlvZEluUGFzdAABBIBUaGUgbGVhc2UgcGVyaW9kIGlzIGluIHRoZSBwYXN0LkRQYXJhTm90UmVnaXN0ZXJlZAACBFhQYXJhIGlzIG5vdCByZWdpc3RlcmVkRE5vdEN1cnJlbnRBdWN0aW9uAAMEWE5vdCBhIGN1cnJlbnQgYXVjdGlvbi4oTm90QXVjdGlvbgAEBDxOb3QgYW4gYXVjdGlvbi4wQXVjdGlvbkVuZGVkAAUEaEF1Y3Rpb24gaGFzIGFscmVhZHkgZW5kZWQuQEFscmVhZHlMZWFzZWRPdXQABgTYVGhlIHBhcmEgaXMgYWxyZWFkeSBsZWFzZWQgb3V0IGZvciBwYXJ0IG9mIHRoaXMgcmFuZ2UuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lr0NDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4gRnVuZEluZm8QJEFjY291bnRJZAEAHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQLExlYXNlUGVyaW9kARAAKAEkZGVwb3NpdG9yAAEkQWNjb3VudElkAAEgdmVyaWZpZXKxBQFMT3B0aW9uPE11bHRpU2lnbmVyPgABHGRlcG9zaXQYARxCYWxhbmNlAAEYcmFpc2VkGAEcQmFsYW5jZQABDGVuZBABLEJsb2NrTnVtYmVyAAEMY2FwGAEcQmFsYW5jZQABRGxhc3RfY29udHJpYnV0aW9uwQ0BdExhc3RDb250cmlidXRpb248QmxvY2tOdW1iZXI+AAEwZmlyc3RfcGVyaW9kEAEsTGVhc2VQZXJpb2QAASxsYXN0X3BlcmlvZBABLExlYXNlUGVyaW9kAAEoZnVuZF9pbmRleBABJEZ1bmRJbmRleAAAwQ0MXHBvbGthZG90X3J1bnRpbWVfY29tbW9uJGNyb3dkbG9hbkBMYXN0Q29udHJpYnV0aW9uBCxCbG9ja051bWJlcgEQAQwUTmV2ZXIAAAAkUHJlRW5kaW5nBAAQAQx1MzIAAQAYRW5kaW5nBAAQASxCbG9ja051bWJlcgACAADFDRBccG9sa2Fkb3RfcnVudGltZV9jb21tb24kY3Jvd2Rsb2FuGHBhbGxldBRFcnJvcgQEVAABXERGaXJzdFBlcmlvZEluUGFzdAAABPRUaGUgY3VycmVudCBsZWFzZSBwZXJpb2QgaXMgbW9yZSB0aGFuIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2QuZEZpcnN0UGVyaW9kVG9vRmFySW5GdXR1cmUAAQQRAVRoZSBmaXJzdCBsZWFzZSBwZXJpb2QgbmVlZHMgdG8gYXQgbGVhc3QgYmUgbGVzcyB0aGFuIDMgYG1heF92YWx1ZWAubExhc3RQZXJpb2RCZWZvcmVGaXJzdFBlcmlvZAACBOhMYXN0IGxlYXNlIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBmaXJzdCBsZWFzZSBwZXJpb2QuYExhc3RQZXJpb2RUb29GYXJJbkZ1dHVyZQADBC0BVGhlIGxhc3QgbGVhc2UgcGVyaW9kIGNhbm5vdCBiZSBtb3JlIHRoYW4gMyBwZXJpb2RzIGFmdGVyIHRoZSBmaXJzdCBwZXJpb2QuPENhbm5vdEVuZEluUGFzdAAEBEUBVGhlIGNhbXBhaWduIGVuZHMgYmVmb3JlIHRoZSBjdXJyZW50IGJsb2NrIG51bWJlci4gVGhlIGVuZCBtdXN0IGJlIGluIHRoZSBmdXR1cmUuREVuZFRvb0ZhckluRnV0dXJlAAUEwFRoZSBlbmQgZGF0ZSBmb3IgdGhpcyBjcm93ZGxvYW4gaXMgbm90IHNlbnNpYmxlLiBPdmVyZmxvdwAGBFhUaGVyZSB3YXMgYW4gb3ZlcmZsb3cuUENvbnRyaWJ1dGlvblRvb1NtYWxsAAcE6FRoZSBjb250cmlidXRpb24gd2FzIGJlbG93IHRoZSBtaW5pbXVtLCBgTWluQ29udHJpYnV0aW9uYC40SW52YWxpZFBhcmFJZAAIBExJbnZhbGlkIGZ1bmQgaW5kZXguLENhcEV4Y2VlZGVkAAkEkENvbnRyaWJ1dGlvbnMgZXhjZWVkIG1heGltdW0gYW1vdW50LlhDb250cmlidXRpb25QZXJpb2RPdmVyAAoEqFRoZSBjb250cmlidXRpb24gcGVyaW9kIGhhcyBhbHJlYWR5IGVuZGVkLjRJbnZhbGlkT3JpZ2luAAsEjFRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsIGlzIGludmFsaWQuME5vdFBhcmFjaGFpbgAMBMhUaGlzIGNyb3dkbG9hbiBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgcGFyYWNoYWluLixMZWFzZUFjdGl2ZQANBBUBVGhpcyBwYXJhY2hhaW4gbGVhc2UgaXMgc3RpbGwgYWN0aXZlIGFuZCByZXRpcmVtZW50IGNhbm5vdCB5ZXQgYmVnaW4uQEJpZE9yTGVhc2VBY3RpdmUADgQxAVRoaXMgcGFyYWNoYWluJ3MgYmlkIG9yIGxlYXNlIGlzIHN0aWxsIGFjdGl2ZSBhbmQgd2l0aGRyYXcgY2Fubm90IHlldCBiZWdpbi4wRnVuZE5vdEVuZGVkAA8EgFRoZSBjcm93ZGxvYW4gaGFzIG5vdCB5ZXQgZW5kZWQuPE5vQ29udHJpYnV0aW9ucwAQBNBUaGVyZSBhcmUgbm8gY29udHJpYnV0aW9ucyBzdG9yZWQgaW4gdGhpcyBjcm93ZGxvYW4uSE5vdFJlYWR5VG9EaXNzb2x2ZQARCFUBVGhlIGNyb3dkbG9hbiBpcyBub3QgcmVhZHkgdG8gZGlzc29sdmUuIFBvdGVudGlhbGx5IHN0aWxsIGhhcyBhIHNsb3Qgb3IgaW4gcmV0aXJlbWVudBxwZXJpb2QuQEludmFsaWRTaWduYXR1cmUAEgRISW52YWxpZCBzaWduYXR1cmUuME1lbW9Ub29MYXJnZQATBHxUaGUgcHJvdmlkZWQgbWVtbyBpcyB0b28gbGFyZ2UuREFscmVhZHlJbk5ld1JhaXNlABQEhFRoZSBmdW5kIGlzIGFscmVhZHkgaW4gYE5ld1JhaXNlYEhWcmZEZWxheUluUHJvZ3Jlc3MAFQS0Tm8gY29udHJpYnV0aW9ucyBhbGxvd2VkIGR1cmluZyB0aGUgVlJGIGRlbGF5NE5vTGVhc2VQZXJpb2QAFgQtAUEgbGVhc2UgcGVyaW9kIGhhcyBub3Qgc3RhcnRlZCB5ZXQsIGR1ZSB0byBhbiBvZmZzZXQgaW4gdGhlIHN0YXJ0aW5nIGJsb2NrLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7JDRBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGNvcmV0aW1lGHBhbGxldBRFcnJvcgQEVAABDCROb3RCcm9rZXIAAAQpAVRoZSBwYXJhaWQgbWFraW5nIHRoZSBjYWxsIGlzIG5vdCB0aGUgY29yZXRpbWUgYnJva2VyYWdlIHN5c3RlbSBwYXJhY2hhaW4uWFJlcXVlc3RlZEZ1dHVyZVJldmVudWUAAQhFAVJlcXVlc3RlZCByZXZlbnVlIGluZm9ybWF0aW9uIGB3aGVuYCBwYXJhbWV0ZXIgd2FzIGluIHRoZSBmdXR1cmUgZnJvbSB0aGUgY3VycmVudDRibG9jayBoZWlnaHQuTEFzc2V0VHJhbnNmZXJGYWlsZWQAAgS8RmFpbGVkIHRvIHRyYW5zZmVyIGFzc2V0cyB0byB0aGUgY29yZXRpbWUgY2hhaW4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuzQ0MKHBhbGxldF94Y20YcGFsbGV0LFF1ZXJ5U3RhdHVzBCxCbG9ja051bWJlcgEQAQwcUGVuZGluZxABJHJlc3BvbmRlci0BAURWZXJzaW9uZWRMb2NhdGlvbgABTG1heWJlX21hdGNoX3F1ZXJpZXLRDQFkT3B0aW9uPFZlcnNpb25lZExvY2F0aW9uPgABMG1heWJlX25vdGlmedUNAUBPcHRpb248KHU4LCB1OCk+AAEcdGltZW91dBABLEJsb2NrTnVtYmVyAAAAPFZlcnNpb25Ob3RpZmllcggBGG9yaWdpbi0BAURWZXJzaW9uZWRMb2NhdGlvbgABJGlzX2FjdGl2ZSABEGJvb2wAAQAUUmVhZHkIASByZXNwb25zZd0NAURWZXJzaW9uZWRSZXNwb25zZQABCGF0EAEsQmxvY2tOdW1iZXIAAgAA0Q0EGE9wdGlvbgQEVAEtAQEIEE5vbmUAAAAQU29tZQQALQEAAAEAANUNBBhPcHRpb24EBFQB2Q0BCBBOb25lAAAAEFNvbWUEANkNAAABAADZDQAABAgICADdDQgMeGNtRFZlcnNpb25lZFJlc3BvbnNlAAEMCFYyBAAFBgEwdjI6OlJlc3BvbnNlAAIACFYzBABNBgEwdjM6OlJlc3BvbnNlAAMACFY0BACxBgEwdjQ6OlJlc3BvbnNlAAQAAOENAAAECBAtAQDlDQAABAwwKBAA6Q0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHtDQRTAAAEAPENARhWZWM8VD4AAO0NAAAECC0BEADxDQAAAu0NAPUNDChwYWxsZXRfeGNtGHBhbGxldFRWZXJzaW9uTWlncmF0aW9uU3RhZ2UAARBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAABcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQBQTm90aWZ5Q3VycmVudFRhcmdldHMEAPkNATxPcHRpb248VmVjPHU4Pj4AAgBoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAwAA+Q0EGE9wdGlvbgQEVAE4AQgQTm9uZQAAABBTb21lBAA4AAABAAD9DQAABAwQAA0HAAEODChwYWxsZXRfeGNtGHBhbGxldGhSZW1vdGVMb2NrZWRGdW5naWJsZVJlY29yZAhIQ29uc3VtZXJJZGVudGlmaWVyAaEBME1heENvbnN1bWVycwAAEAEYYW1vdW50GAEQdTEyOAABFG93bmVyLQEBRFZlcnNpb25lZExvY2F0aW9uAAEYbG9ja2VyLQEBRFZlcnNpb25lZExvY2F0aW9uAAEkY29uc3VtZXJzBQ4B0EJvdW5kZWRWZWM8KENvbnN1bWVySWRlbnRpZmllciwgdTEyOCksIE1heENvbnN1bWVycz4AAAUODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCQ4EUwAABAANDgEYVmVjPFQ+AAAJDgAABAihARgADQ4AAAIJDgARDgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARUOBFMAAAQAGQ4BGFZlYzxUPgAAFQ4AAAQIGC0BABkOAAACFQ4AHQ4MKHBhbGxldF94Y20YcGFsbGV0FEVycm9yBARUAAFgLFVucmVhY2hhYmxlAAAIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuLFNlbmRGYWlsdXJlAAEIQQFUaGVyZSB3YXMgc29tZSBvdGhlciBpc3N1ZSAoaS5lLiBub3QgdG8gZG8gd2l0aCByb3V0aW5nKSBpbiBzZW5kaW5nIHRoZSBtZXNzYWdlLshQZXJoYXBzIGEgbGFjayBvZiBzcGFjZSBmb3IgYnVmZmVyaW5nIHRoZSBtZXNzYWdlLiBGaWx0ZXJlZAACBJxUaGUgbWVzc2FnZSBleGVjdXRpb24gZmFpbHMgdGhlIGZpbHRlci5IVW53ZWlnaGFibGVNZXNzYWdlAAMEtFRoZSBtZXNzYWdlJ3Mgd2VpZ2h0IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLmBEZXN0aW5hdGlvbk5vdEludmVydGlibGUABATcVGhlIGRlc3RpbmF0aW9uIGBMb2NhdGlvbmAgcHJvdmlkZWQgY2Fubm90IGJlIGludmVydGVkLhRFbXB0eQAFBIBUaGUgYXNzZXRzIHRvIGJlIHNlbnQgYXJlIGVtcHR5LjhDYW5ub3RSZWFuY2hvcgAGBDUBQ291bGQgbm90IHJlLWFuY2hvciB0aGUgYXNzZXRzIHRvIGRlY2xhcmUgdGhlIGZlZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi40VG9vTWFueUFzc2V0cwAHBMRUb28gbWFueSBhc3NldHMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuNEludmFsaWRPcmlnaW4ACAR4T3JpZ2luIGlzIGludmFsaWQgZm9yIHNlbmRpbmcuKEJhZFZlcnNpb24ACQQhAVRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlIGludGVycHJldGVkLixCYWRMb2NhdGlvbgAKCEEBVGhlIGdpdmVuIGxvY2F0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIChlLmcuIGJlY2F1c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZCBpbiB0aGVgZGVzaXJlZCB2ZXJzaW9uIG9mIFhDTSkuOE5vU3Vic2NyaXB0aW9uAAsEvFRoZSByZWZlcmVuY2VkIHN1YnNjcmlwdGlvbiBjb3VsZCBub3QgYmUgZm91bmQuREFscmVhZHlTdWJzY3JpYmVkAAwEEQFUaGUgbG9jYXRpb24gaXMgaW52YWxpZCBzaW5jZSBpdCBhbHJlYWR5IGhhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHVzLlhDYW5ub3RDaGVja091dFRlbGVwb3J0AA0EKQFDb3VsZCBub3QgY2hlY2stb3V0IHRoZSBhc3NldHMgZm9yIHRlbGVwb3J0YXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluLihMb3dCYWxhbmNlAA4EQQFUaGUgb3duZXIgZG9lcyBub3Qgb3duIChhbGwpIG9mIHRoZSBhc3NldCB0aGF0IHRoZXkgd2lzaCB0byBkbyB0aGUgb3BlcmF0aW9uIG9uLjBUb29NYW55TG9ja3MADwTAVGhlIGFzc2V0IG93bmVyIGhhcyB0b28gbWFueSBsb2NrcyBvbiB0aGUgYXNzZXQuTEFjY291bnROb3RTb3ZlcmVpZ24AEAQxAVRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBhbiBpZGVudGlmaWFibGUgc292ZXJlaWduIGFjY291bnQgZm9yIGFueSBsb2NhdGlvbi4oRmVlc05vdE1ldAARBCkBVGhlIG9wZXJhdGlvbiByZXF1aXJlZCBmZWVzIHRvIGJlIHBhaWQgd2hpY2ggdGhlIGluaXRpYXRvciBjb3VsZCBub3QgbWVldC4wTG9ja05vdEZvdW5kABIE9EEgcmVtb3RlIGxvY2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZC4USW5Vc2UAEwRJAVRoZSB1bmxvY2sgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIGNvbnN1bWVycyBvZiB0aGUgbG9jay5oSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAFQTwSW52YWxpZCBhc3NldCwgcmVzZXJ2ZSBjaGFpbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgaXQueEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQAWBEUBSW52YWxpZCBhc3NldCwgZG8gbm90IHN1cHBvcnQgcmVtb3RlIGFzc2V0IHJlc2VydmVzIHdpdGggZGlmZmVyZW50IGZlZXMgcmVzZXJ2ZXMuPFRvb01hbnlSZXNlcnZlcwAXBEkBVG9vIG1hbnkgYXNzZXRzIHdpdGggZGlmZmVyZW50IHJlc2VydmUgbG9jYXRpb25zIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLmBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAGAR8TG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4hDghQcGFsbGV0X21lc3NhZ2VfcXVldWUkQm9va1N0YXRlBDRNZXNzYWdlT3JpZ2luARUHABgBFGJlZ2luEAEkUGFnZUluZGV4AAEMZW5kEAEkUGFnZUluZGV4AAEUY291bnQQASRQYWdlSW5kZXgAAUByZWFkeV9uZWlnaGJvdXJzJQ4BhE9wdGlvbjxOZWlnaGJvdXJzPE1lc3NhZ2VPcmlnaW4+PgABNG1lc3NhZ2VfY291bnQwAQx1NjQAARBzaXplMAEMdTY0AAAlDgQYT3B0aW9uBARUASkOAQgQTm9uZQAAABBTb21lBAApDgAAAQAAKQ4IUHBhbGxldF9tZXNzYWdlX3F1ZXVlKE5laWdoYm91cnMENE1lc3NhZ2VPcmlnaW4BFQcACAEQcHJldhUHATRNZXNzYWdlT3JpZ2luAAEQbmV4dBUHATRNZXNzYWdlT3JpZ2luAAAtDgAABAgVBxAAMQ4IUHBhbGxldF9tZXNzYWdlX3F1ZXVlEFBhZ2UIEFNpemUBECBIZWFwU2l6ZQAAGAEkcmVtYWluaW5nEAEQU2l6ZQABOHJlbWFpbmluZ19zaXplEAEQU2l6ZQABLGZpcnN0X2luZGV4EAEQU2l6ZQABFGZpcnN0EAEQU2l6ZQABEGxhc3QQARBTaXplAAEQaGVhcDUOAZxCb3VuZGVkVmVjPHU4LCBJbnRvVTMyPEhlYXBTaXplLCBTaXplPj4AADUODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAOQ4MUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABJCxOb3RSZWFwYWJsZQAACEkBUGFnZSBpcyBub3QgcmVhcGFibGUgYmVjYXVzZSBpdCBoYXMgaXRlbXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBhbmQgaXMgbm90IG9sZBxlbm91Z2guGE5vUGFnZQABBIRQYWdlIHRvIGJlIHJlYXBlZCBkb2VzIG5vdCBleGlzdC4kTm9NZXNzYWdlAAIEqFRoZSByZWZlcmVuY2VkIG1lc3NhZ2UgY291bGQgbm90IGJlIGZvdW5kLkBBbHJlYWR5UHJvY2Vzc2VkAAMEAQFUaGUgbWVzc2FnZSB3YXMgYWxyZWFkeSBwcm9jZXNzZWQgYW5kIGNhbm5vdCBiZSBwcm9jZXNzZWQgYWdhaW4uGFF1ZXVlZAAEBKxUaGUgbWVzc2FnZSBpcyBxdWV1ZWQgZm9yIGZ1dHVyZSBleGVjdXRpb24uSEluc3VmZmljaWVudFdlaWdodAAFBBkBVGhlcmUgaXMgdGVtcG9yYXJpbHkgbm90IGVub3VnaCB3ZWlnaHQgdG8gY29udGludWUgc2VydmljaW5nIG1lc3NhZ2VzLmBUZW1wb3JhcmlseVVucHJvY2Vzc2FibGUABhCoVGhpcyBtZXNzYWdlIGlzIHRlbXBvcmFyaWx5IHVucHJvY2Vzc2FibGUuAFkBU3VjaCBlcnJvcnMgYXJlIGV4cGVjdGVkLCBidXQgbm90IGd1YXJhbnRlZWQsIHRvIHJlc29sdmUgdGhlbXNlbHZlcyBldmVudHVhbGx5IHRocm91Z2gkcmV0cnlpbmcuLFF1ZXVlUGF1c2VkAAcM7FRoZSBxdWV1ZSBpcyBwYXVzZWQgYW5kIG5vIG1lc3NhZ2UgY2FuIGJlIGV4ZWN1dGVkIGZyb20gaXQuAB0BVGhpcyBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGFuZCBtYXkgcmVzb2x2ZSBpbiB0aGUgZnV0dXJlIGJ5IHJlLXRyeWluZy5MUmVjdXJzaXZlRGlzYWxsb3dlZAAIBDEBQW5vdGhlciBjYWxsIGlzIGluIHByb2dyZXNzIGFuZCBuZWVkcyB0byBmaW5pc2ggYmVmb3JlIHRoaXMgY2FsbCBjYW4gaGFwcGVuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC49DgxEcGFsbGV0X2Fzc2V0X3JhdGUYcGFsbGV0FEVycm9yBARUAAEMQFVua25vd25Bc3NldEtpbmQAAAR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uNEFscmVhZHlFeGlzdHMAAQRRAVRoZSBnaXZlbiBhc3NldCBJRCBhbHJlYWR5IGhhcyBhbiBhc3NpZ25lZCBjb252ZXJzaW9uIHJhdGUgYW5kIGNhbm5vdCBiZSByZS1jcmVhdGVkLiBPdmVyZmxvdwACBMxPdmVyZmxvdyBvY3VycmVkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGludmVyc2UgcmF0ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuQQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEFAgRTAAAEAEUOARhWZWM8VD4AAEUOAAACBQIASQ4MMHBhbGxldF9iZWVmeRhwYWxsZXQURXJyb3IEBFQAARBgSW52YWxpZEtleU93bmVyc2hpcFByb29mAAAEMQFBIGtleSBvd25lcnNoaXAgcHJvb2YgcHJvdmlkZWQgYXMgcGFydCBvZiBhbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIGludmFsaWQuYEludmFsaWRFcXVpdm9jYXRpb25Qcm9vZgABBDEBQW4gZXF1aXZvY2F0aW9uIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLlhEdXBsaWNhdGVPZmZlbmNlUmVwb3J0AAIEFQFBIGdpdmVuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgdmFsaWQgYnV0IGFscmVhZHkgcHJldmlvdXNseSByZXBvcnRlZC5QSW52YWxpZENvbmZpZ3VyYXRpb24AAwSMU3VibWl0dGVkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuTQ4MSHNwX2NvbnNlbnN1c19iZWVmeQxtbXJEQmVlZnlBdXRob3JpdHlTZXQEWEF1dGhvcml0eVNldENvbW1pdG1lbnQBNAAMAQhpZDABVGNyYXRlOjpWYWxpZGF0b3JTZXRJZAABDGxlbhABDHUzMgABRGtleXNldF9jb21taXRtZW50NAFYQXV0aG9yaXR5U2V0Q29tbWl0bWVudAAAUQ4AAAQkVQ5ZDl0OYQ5lDm0OcQ51DnkOAFUOEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc1RjaGVja19ub25femVyb19zZW5kZXJIQ2hlY2tOb25aZXJvU2VuZGVyBARUAAAAAFkOEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0hjaGVja19zcGVjX3ZlcnNpb25AQ2hlY2tTcGVjVmVyc2lvbgQEVAAAAABdDhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNAY2hlY2tfdHhfdmVyc2lvbjhDaGVja1R4VmVyc2lvbgQEVAAAAABhDhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM0Y2hlY2tfZ2VuZXNpczBDaGVja0dlbmVzaXMEBFQAAAAAZQ4QMGZyYW1lX3N5c3RlbShleHRlbnNpb25zPGNoZWNrX21vcnRhbGl0eThDaGVja01vcnRhbGl0eQQEVAAABABpDgEMRXJhAABpDhAoc3BfcnVudGltZRxnZW5lcmljDGVyYQxFcmEAAQEEIEltbW9ydGFsAAAAHE1vcnRhbDEEAAgAAAEAHE1vcnRhbDIEAAgAAAIAHE1vcnRhbDMEAAgAAAMAHE1vcnRhbDQEAAgAAAQAHE1vcnRhbDUEAAgAAAUAHE1vcnRhbDYEAAgAAAYAHE1vcnRhbDcEAAgAAAcAHE1vcnRhbDgEAAgAAAgAHE1vcnRhbDkEAAgAAAkAIE1vcnRhbDEwBAAIAAAKACBNb3J0YWwxMQQACAAACwAgTW9ydGFsMTIEAAgAAAwAIE1vcnRhbDEzBAAIAAANACBNb3J0YWwxNAQACAAADgAgTW9ydGFsMTUEAAgAAA8AIE1vcnRhbDE2BAAIAAAQACBNb3J0YWwxNwQACAAAEQAgTW9ydGFsMTgEAAgAABIAIE1vcnRhbDE5BAAIAAATACBNb3J0YWwyMAQACAAAFAAgTW9ydGFsMjEEAAgAABUAIE1vcnRhbDIyBAAIAAAWACBNb3J0YWwyMwQACAAAFwAgTW9ydGFsMjQEAAgAABgAIE1vcnRhbDI1BAAIAAAZACBNb3J0YWwyNgQACAAAGgAgTW9ydGFsMjcEAAgAABsAIE1vcnRhbDI4BAAIAAAcACBNb3J0YWwyOQQACAAAHQAgTW9ydGFsMzAEAAgAAB4AIE1vcnRhbDMxBAAIAAAfACBNb3J0YWwzMgQACAAAIAAgTW9ydGFsMzMEAAgAACEAIE1vcnRhbDM0BAAIAAAiACBNb3J0YWwzNQQACAAAIwAgTW9ydGFsMzYEAAgAACQAIE1vcnRhbDM3BAAIAAAlACBNb3J0YWwzOAQACAAAJgAgTW9ydGFsMzkEAAgAACcAIE1vcnRhbDQwBAAIAAAoACBNb3J0YWw0MQQACAAAKQAgTW9ydGFsNDIEAAgAACoAIE1vcnRhbDQzBAAIAAArACBNb3J0YWw0NAQACAAALAAgTW9ydGFsNDUEAAgAAC0AIE1vcnRhbDQ2BAAIAAAuACBNb3J0YWw0NwQACAAALwAgTW9ydGFsNDgEAAgAADAAIE1vcnRhbDQ5BAAIAAAxACBNb3J0YWw1MAQACAAAMgAgTW9ydGFsNTEEAAgAADMAIE1vcnRhbDUyBAAIAAA0ACBNb3J0YWw1MwQACAAANQAgTW9ydGFsNTQEAAgAADYAIE1vcnRhbDU1BAAIAAA3ACBNb3J0YWw1NgQACAAAOAAgTW9ydGFsNTcEAAgAADkAIE1vcnRhbDU4BAAIAAA6ACBNb3J0YWw1OQQACAAAOwAgTW9ydGFsNjAEAAgAADwAIE1vcnRhbDYxBAAIAAA9ACBNb3J0YWw2MgQACAAAPgAgTW9ydGFsNjMEAAgAAD8AIE1vcnRhbDY0BAAIAABAACBNb3J0YWw2NQQACAAAQQAgTW9ydGFsNjYEAAgAAEIAIE1vcnRhbDY3BAAIAABDACBNb3J0YWw2OAQACAAARAAgTW9ydGFsNjkEAAgAAEUAIE1vcnRhbDcwBAAIAABGACBNb3J0YWw3MQQACAAARwAgTW9ydGFsNzIEAAgAAEgAIE1vcnRhbDczBAAIAABJACBNb3J0YWw3NAQACAAASgAgTW9ydGFsNzUEAAgAAEsAIE1vcnRhbDc2BAAIAABMACBNb3J0YWw3NwQACAAATQAgTW9ydGFsNzgEAAgAAE4AIE1vcnRhbDc5BAAIAABPACBNb3J0YWw4MAQACAAAUAAgTW9ydGFsODEEAAgAAFEAIE1vcnRhbDgyBAAIAABSACBNb3J0YWw4MwQACAAAUwAgTW9ydGFsODQEAAgAAFQAIE1vcnRhbDg1BAAIAABVACBNb3J0YWw4NgQACAAAVgAgTW9ydGFsODcEAAgAAFcAIE1vcnRhbDg4BAAIAABYACBNb3J0YWw4OQQACAAAWQAgTW9ydGFsOTAEAAgAAFoAIE1vcnRhbDkxBAAIAABbACBNb3J0YWw5MgQACAAAXAAgTW9ydGFsOTMEAAgAAF0AIE1vcnRhbDk0BAAIAABeACBNb3J0YWw5NQQACAAAXwAgTW9ydGFsOTYEAAgAAGAAIE1vcnRhbDk3BAAIAABhACBNb3J0YWw5OAQACAAAYgAgTW9ydGFsOTkEAAgAAGMAJE1vcnRhbDEwMAQACAAAZAAkTW9ydGFsMTAxBAAIAABlACRNb3J0YWwxMDIEAAgAAGYAJE1vcnRhbDEwMwQACAAAZwAkTW9ydGFsMTA0BAAIAABoACRNb3J0YWwxMDUEAAgAAGkAJE1vcnRhbDEwNgQACAAAagAkTW9ydGFsMTA3BAAIAABrACRNb3J0YWwxMDgEAAgAAGwAJE1vcnRhbDEwOQQACAAAbQAkTW9ydGFsMTEwBAAIAABuACRNb3J0YWwxMTEEAAgAAG8AJE1vcnRhbDExMgQACAAAcAAkTW9ydGFsMTEzBAAIAABxACRNb3J0YWwxMTQEAAgAAHIAJE1vcnRhbDExNQQACAAAcwAkTW9ydGFsMTE2BAAIAAB0ACRNb3J0YWwxMTcEAAgAAHUAJE1vcnRhbDExOAQACAAAdgAkTW9ydGFsMTE5BAAIAAB3ACRNb3J0YWwxMjAEAAgAAHgAJE1vcnRhbDEyMQQACAAAeQAkTW9ydGFsMTIyBAAIAAB6ACRNb3J0YWwxMjMEAAgAAHsAJE1vcnRhbDEyNAQACAAAfAAkTW9ydGFsMTI1BAAIAAB9ACRNb3J0YWwxMjYEAAgAAH4AJE1vcnRhbDEyNwQACAAAfwAkTW9ydGFsMTI4BAAIAACAACRNb3J0YWwxMjkEAAgAAIEAJE1vcnRhbDEzMAQACAAAggAkTW9ydGFsMTMxBAAIAACDACRNb3J0YWwxMzIEAAgAAIQAJE1vcnRhbDEzMwQACAAAhQAkTW9ydGFsMTM0BAAIAACGACRNb3J0YWwxMzUEAAgAAIcAJE1vcnRhbDEzNgQACAAAiAAkTW9ydGFsMTM3BAAIAACJACRNb3J0YWwxMzgEAAgAAIoAJE1vcnRhbDEzOQQACAAAiwAkTW9ydGFsMTQwBAAIAACMACRNb3J0YWwxNDEEAAgAAI0AJE1vcnRhbDE0MgQACAAAjgAkTW9ydGFsMTQzBAAIAACPACRNb3J0YWwxNDQEAAgAAJAAJE1vcnRhbDE0NQQACAAAkQAkTW9ydGFsMTQ2BAAIAACSACRNb3J0YWwxNDcEAAgAAJMAJE1vcnRhbDE0OAQACAAAlAAkTW9ydGFsMTQ5BAAIAACVACRNb3J0YWwxNTAEAAgAAJYAJE1vcnRhbDE1MQQACAAAlwAkTW9ydGFsMTUyBAAIAACYACRNb3J0YWwxNTMEAAgAAJkAJE1vcnRhbDE1NAQACAAAmgAkTW9ydGFsMTU1BAAIAACbACRNb3J0YWwxNTYEAAgAAJwAJE1vcnRhbDE1NwQACAAAnQAkTW9ydGFsMTU4BAAIAACeACRNb3J0YWwxNTkEAAgAAJ8AJE1vcnRhbDE2MAQACAAAoAAkTW9ydGFsMTYxBAAIAAChACRNb3J0YWwxNjIEAAgAAKIAJE1vcnRhbDE2MwQACAAAowAkTW9ydGFsMTY0BAAIAACkACRNb3J0YWwxNjUEAAgAAKUAJE1vcnRhbDE2NgQACAAApgAkTW9ydGFsMTY3BAAIAACnACRNb3J0YWwxNjgEAAgAAKgAJE1vcnRhbDE2OQQACAAAqQAkTW9ydGFsMTcwBAAIAACqACRNb3J0YWwxNzEEAAgAAKsAJE1vcnRhbDE3MgQACAAArAAkTW9ydGFsMTczBAAIAACtACRNb3J0YWwxNzQEAAgAAK4AJE1vcnRhbDE3NQQACAAArwAkTW9ydGFsMTc2BAAIAACwACRNb3J0YWwxNzcEAAgAALEAJE1vcnRhbDE3OAQACAAAsgAkTW9ydGFsMTc5BAAIAACzACRNb3J0YWwxODAEAAgAALQAJE1vcnRhbDE4MQQACAAAtQAkTW9ydGFsMTgyBAAIAAC2ACRNb3J0YWwxODMEAAgAALcAJE1vcnRhbDE4NAQACAAAuAAkTW9ydGFsMTg1BAAIAAC5ACRNb3J0YWwxODYEAAgAALoAJE1vcnRhbDE4NwQACAAAuwAkTW9ydGFsMTg4BAAIAAC8ACRNb3J0YWwxODkEAAgAAL0AJE1vcnRhbDE5MAQACAAAvgAkTW9ydGFsMTkxBAAIAAC/ACRNb3J0YWwxOTIEAAgAAMAAJE1vcnRhbDE5MwQACAAAwQAkTW9ydGFsMTk0BAAIAADCACRNb3J0YWwxOTUEAAgAAMMAJE1vcnRhbDE5NgQACAAAxAAkTW9ydGFsMTk3BAAIAADFACRNb3J0YWwxOTgEAAgAAMYAJE1vcnRhbDE5OQQACAAAxwAkTW9ydGFsMjAwBAAIAADIACRNb3J0YWwyMDEEAAgAAMkAJE1vcnRhbDIwMgQACAAAygAkTW9ydGFsMjAzBAAIAADLACRNb3J0YWwyMDQEAAgAAMwAJE1vcnRhbDIwNQQACAAAzQAkTW9ydGFsMjA2BAAIAADOACRNb3J0YWwyMDcEAAgAAM8AJE1vcnRhbDIwOAQACAAA0AAkTW9ydGFsMjA5BAAIAADRACRNb3J0YWwyMTAEAAgAANIAJE1vcnRhbDIxMQQACAAA0wAkTW9ydGFsMjEyBAAIAADUACRNb3J0YWwyMTMEAAgAANUAJE1vcnRhbDIxNAQACAAA1gAkTW9ydGFsMjE1BAAIAADXACRNb3J0YWwyMTYEAAgAANgAJE1vcnRhbDIxNwQACAAA2QAkTW9ydGFsMjE4BAAIAADaACRNb3J0YWwyMTkEAAgAANsAJE1vcnRhbDIyMAQACAAA3AAkTW9ydGFsMjIxBAAIAADdACRNb3J0YWwyMjIEAAgAAN4AJE1vcnRhbDIyMwQACAAA3wAkTW9ydGFsMjI0BAAIAADgACRNb3J0YWwyMjUEAAgAAOEAJE1vcnRhbDIyNgQACAAA4gAkTW9ydGFsMjI3BAAIAADjACRNb3J0YWwyMjgEAAgAAOQAJE1vcnRhbDIyOQQACAAA5QAkTW9ydGFsMjMwBAAIAADmACRNb3J0YWwyMzEEAAgAAOcAJE1vcnRhbDIzMgQACAAA6AAkTW9ydGFsMjMzBAAIAADpACRNb3J0YWwyMzQEAAgAAOoAJE1vcnRhbDIzNQQACAAA6wAkTW9ydGFsMjM2BAAIAADsACRNb3J0YWwyMzcEAAgAAO0AJE1vcnRhbDIzOAQACAAA7gAkTW9ydGFsMjM5BAAIAADvACRNb3J0YWwyNDAEAAgAAPAAJE1vcnRhbDI0MQQACAAA8QAkTW9ydGFsMjQyBAAIAADyACRNb3J0YWwyNDMEAAgAAPMAJE1vcnRhbDI0NAQACAAA9AAkTW9ydGFsMjQ1BAAIAAD1ACRNb3J0YWwyNDYEAAgAAPYAJE1vcnRhbDI0NwQACAAA9wAkTW9ydGFsMjQ4BAAIAAD4ACRNb3J0YWwyNDkEAAgAAPkAJE1vcnRhbDI1MAQACAAA+gAkTW9ydGFsMjUxBAAIAAD7ACRNb3J0YWwyNTIEAAgAAPwAJE1vcnRhbDI1MwQACAAA/QAkTW9ydGFsMjU0BAAIAAD+ACRNb3J0YWwyNTUEAAgAAP8AAG0OEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9ucyxjaGVja19ub25jZShDaGVja05vbmNlBARUAAAEANQBIFQ6Ok5vbmNlAABxDhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnMwY2hlY2tfd2VpZ2h0LENoZWNrV2VpZ2h0BARUAAAAAHUOCGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudGBDaGFyZ2VUcmFuc2FjdGlvblBheW1lbnQEBFQAAAQA5AEwQmFsYW5jZU9mPFQ+AAB5Dgh0ZnJhbWVfbWV0YWRhdGFfaGFzaF9leHRlbnNpb25EQ2hlY2tNZXRhZGF0YUhhc2gEBFQAAAQBEG1vZGV9DgEQTW9kZQAAfQ4IdGZyYW1lX21ldGFkYXRhX2hhc2hfZXh0ZW5zaW9uEE1vZGUAAQggRGlzYWJsZWQAAAAcRW5hYmxlZAABAACBDghYc3RhZ2luZ19rdXNhbWFfcnVudGltZRxSdW50aW1lAAAAAIUODDByZWxheV9jb21tb24QYXBpczRJbmZsYXRpb25JbmZvAAAIASRpbmZsYXRpb26dAgFcc3BfcnVudGltZTo6UGVycXVpbnRpbGwAASRuZXh0X21pbnSJDgHwKHBvbGthZG90X3ByaW1pdGl2ZXM6OkJhbGFuY2UsIHBvbGthZG90X3ByaW1pdGl2ZXM6OkJhbGFuY2UpAACJDgAABAgYGACNDhAoc3BfcnVudGltZRxnZW5lcmljFGJsb2NrFEJsb2NrCBhIZWFkZXIBeQEkRXh0cmluc2ljAZEOAAgBGGhlYWRlcnkBARhIZWFkZXIAAShleHRyaW5zaWNzlQ4BOFZlYzxFeHRyaW5zaWM+AACRDhAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAZ0BEENhbGwBXQEkU2lnbmF0dXJlAb0FFEV4dHJhAVEOAAQAOAAAAJUOAAACkQ4AmQ4IKHNwX3J1bnRpbWVYRXh0cmluc2ljSW5jbHVzaW9uTW9kZQABCDRBbGxFeHRyaW5zaWNzAAAANE9ubHlJbmhlcmVudHMAAQAAnQ4IHHNwX2NvcmU4T3BhcXVlTWV0YWRhdGEAAAQAOAEcVmVjPHU4PgAAoQ4EGE9wdGlvbgQEVAGdDgEIEE5vbmUAAAAQU29tZQQAnQ4AAAEAAKUOBBhSZXN1bHQIBFQBmQcERQGpDgEICE9rBACZBwAAAAAMRXJyBACpDgAAAQAAqQ4MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlgVHJhbnNhY3Rpb25WYWxpZGl0eUVycm9yAAEIHEludmFsaWQEAK0OAUhJbnZhbGlkVHJhbnNhY3Rpb24AAAAcVW5rbm93bgQAsQ4BSFVua25vd25UcmFuc2FjdGlvbgABAACtDgwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUhJbnZhbGlkVHJhbnNhY3Rpb24AASwQQ2FsbAAAABxQYXltZW50AAEAGEZ1dHVyZQACABRTdGFsZQADACBCYWRQcm9vZgAEAERBbmNpZW50QmlydGhCbG9jawAFAERFeGhhdXN0c1Jlc291cmNlcwAGABhDdXN0b20EAAgBCHU4AAcAMEJhZE1hbmRhdG9yeQAIAExNYW5kYXRvcnlWYWxpZGF0aW9uAAkAJEJhZFNpZ25lcgAKAACxDgwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUhVbmtub3duVHJhbnNhY3Rpb24AAQwwQ2Fubm90TG9va3VwAAAATE5vVW5zaWduZWRWYWxpZGF0b3IAAQAYQ3VzdG9tBAAIAQh1OAACAAC1Dggwc3BfaW5oZXJlbnRzMEluaGVyZW50RGF0YQAABAEQZGF0YbkOAZRCVHJlZU1hcDxJbmhlcmVudElkZW50aWZpZXIsIFZlYzx1OD4+AAC5DgQgQlRyZWVNYXAIBEsBAQYEVgE4AAQAvQ4AAAC9DgAAAsEOAMEOAAAECAEGOADFDggwc3BfaW5oZXJlbnRzUENoZWNrSW5oZXJlbnRzUmVzdWx0AAAMARBva2F5IAEQYm9vbAABLGZhdGFsX2Vycm9yIAEQYm9vbAABGGVycm9yc7UOATBJbmhlcmVudERhdGEAAMkODChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5RFRyYW5zYWN0aW9uU291cmNlAAEMHEluQmxvY2sAAAAUTG9jYWwAAQAgRXh0ZXJuYWwAAgAAzQ4EGFJlc3VsdAgEVAHRDgRFAakOAQgIT2sEANEOAAAAAAxFcnIEAKkOAAABAADRDgwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eUBWYWxpZFRyYW5zYWN0aW9uAAAUASBwcmlvcml0eTABTFRyYW5zYWN0aW9uUHJpb3JpdHkAASByZXF1aXJlc20BAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXNtAQFMVmVjPFRyYW5zYWN0aW9uVGFnPgABJGxvbmdldml0eTABUFRyYW5zYWN0aW9uTG9uZ2V2aXR5AAEkcHJvcGFnYXRlIAEQYm9vbAAA1Q4AAAQIdQzZDgDZDgxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2N0RHcm91cFJvdGF0aW9uSW5mbwQETgEQAAwBTHNlc3Npb25fc3RhcnRfYmxvY2sQAQROAAFgZ3JvdXBfcm90YXRpb25fZnJlcXVlbmN5EAEETgABDG5vdxABBE4AAN0OAAAC4Q4A4Q4MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjckQ29yZVN0YXRlCARIATQETgEQAQwgT2NjdXBpZWQEAOUOAUhPY2N1cGllZENvcmU8SCwgTj4AAAAkU2NoZWR1bGVkBADtDgE0U2NoZWR1bGVkQ29yZQABABBGcmVlAAIAAOUODExwb2xrYWRvdF9wcmltaXRpdmVzCHY3ME9jY3VwaWVkQ29yZQgESAE0BE4BEAAgAVBuZXh0X3VwX29uX2F2YWlsYWJsZekOAVRPcHRpb248U2NoZWR1bGVkQ29yZT4AAThvY2N1cGllZF9zaW5jZRABBE4AASx0aW1lX291dF9hdBABBE4AAUxuZXh0X3VwX29uX3RpbWVfb3V06Q4BVE9wdGlvbjxTY2hlZHVsZWRDb3JlPgABMGF2YWlsYWJpbGl0efkEAXxCaXRWZWM8dTgsIGJpdHZlYzo6b3JkZXI6OkxzYjA+AAFEZ3JvdXBfcmVzcG9uc2libGX5BwEoR3JvdXBJbmRleAABOGNhbmRpZGF0ZV9oYXNoVQUBNENhbmRpZGF0ZUhhc2gAAVBjYW5kaWRhdGVfZGVzY3JpcHRvchUFAVhDYW5kaWRhdGVEZXNjcmlwdG9yPEg+AADpDgQYT3B0aW9uBARUAe0OAQgQTm9uZQAAABBTb21lBADtDgAAAQAA7Q4MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjc0U2NoZWR1bGVkQ29yZQAACAEccGFyYV9pZGkCAQhJZAABIGNvbGxhdG9y8Q4BSE9wdGlvbjxDb2xsYXRvcklkPgAA8Q4EGE9wdGlvbgQEVAEZBQEIEE5vbmUAAAAQU29tZQQAGQUAAAEAAPUODExwb2xrYWRvdF9wcmltaXRpdmVzCHY3WE9jY3VwaWVkQ29yZUFzc3VtcHRpb24AAQwgSW5jbHVkZWQAAAAgVGltZWRPdXQAAQAQRnJlZQACAAD5DgQYT3B0aW9uBARUAf0OAQgQTm9uZQAAABBTb21lBAD9DgAAAQAA/Q4MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjdcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEIBEgBNAROARAAEAEscGFyZW50X2hlYWRBBQEgSGVhZERhdGEAAUxyZWxheV9wYXJlbnRfbnVtYmVyEAEETgABZHJlbGF5X3BhcmVudF9zdG9yYWdlX3Jvb3Q0AQRIAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAABDwQYT3B0aW9uBARUAQUPAQgQTm9uZQAAABBTb21lBAAFDwAAAQAABQ8AAAQI/Q4hBQAJDwQYT3B0aW9uBARUAREFAQgQTm9uZQAAABBTb21lBAARBQAAAQAADQ8AAAIRDwARDwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzhDYW5kaWRhdGVFdmVudAQESAE0AQw8Q2FuZGlkYXRlQmFja2VkEADxBwFMQ2FuZGlkYXRlUmVjZWlwdDxIPgAAQQUBIEhlYWREYXRhAAD1BwEkQ29yZUluZGV4AAD5BwEoR3JvdXBJbmRleAAAAERDYW5kaWRhdGVJbmNsdWRlZBAA8QcBTENhbmRpZGF0ZVJlY2VpcHQ8SD4AAEEFASBIZWFkRGF0YQAA9QcBJENvcmVJbmRleAAA+QcBKEdyb3VwSW5kZXgAAQBEQ2FuZGlkYXRlVGltZWRPdXQMAPEHAUxDYW5kaWRhdGVSZWNlaXB0PEg+AABBBQEgSGVhZERhdGEAAPUHASRDb3JlSW5kZXgAAgAAFQ8EIEJUcmVlTWFwCARLAWkCBFYB9QwABAAZDwAAABkPAAACHQ8AHQ8AAAQIaQL1DAAhDwQYT3B0aW9uBARUAV0MAQgQTm9uZQAAABBTb21lBABdDAAAAQAAJQ8EGE9wdGlvbgQEVAENDQEIEE5vbmUAAAAQU29tZQQADQ0AAAEAACkPBBhPcHRpb24EBFQBIQUBCBBOb25lAAAAEFNvbWUEACEFAAABAAAtDwAAAjEPADEPAAAEDBBVBR0NADUPBBhPcHRpb24EBFQBwQQBCBBOb25lAAAAEFNvbWUEAMEEAAABAAA5DwAAAj0PAD0PAAAEDBBVBSkNAEEPBBhPcHRpb24EBFQBRQ8BCBBOb25lAAAAEFNvbWUEAEUPAAABAABFDxBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NyBzbGFzaGluZ1xPcGFxdWVLZXlPd25lcnNoaXBQcm9vZgAABAA4ARxWZWM8dTg+AABJDwQYT3B0aW9uBARUAaEBAQgQTm9uZQAAABBTb21lBAChAQAAAQAATQ8EGE9wdGlvbgQEVAFRDwEIEE5vbmUAAAAQU29tZQQAUQ8AAAEAAFEPEExwb2xrYWRvdF9wcmltaXRpdmVzCHY3NGFzeW5jX2JhY2tpbmcwQmFja2luZ1N0YXRlCARIATQETgEQAAgBLGNvbnN0cmFpbnRzVQ8BOENvbnN0cmFpbnRzPE4+AAFQcGVuZGluZ19hdmFpbGFiaWxpdHl1DwGcVmVjPENhbmRpZGF0ZVBlbmRpbmdBdmFpbGFiaWxpdHk8SCwgTj4+AABVDxBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzRhc3luY19iYWNraW5nLENvbnN0cmFpbnRzBAROARAAOAFcbWluX3JlbGF5X3BhcmVudF9udW1iZXIQAQROAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAE0bWF4X2NvZGVfc2l6ZRABDHUzMgABNHVtcF9yZW1haW5pbmcQAQx1MzIAAUx1bXBfcmVtYWluaW5nX2J5dGVzEAEMdTMyAAFkbWF4X3VtcF9udW1fcGVyX2NhbmRpZGF0ZRABDHUzMgABWGRtcF9yZW1haW5pbmdfbWVzc2FnZXPBAQEYVmVjPE4+AAEwaHJtcF9pbmJvdW5kWQ8BZEluYm91bmRIcm1wTGltaXRhdGlvbnM8Tj4AAURocm1wX2NoYW5uZWxzX291dF0PAaRWZWM8KElkLCBPdXRib3VuZEhybXBDaGFubmVsTGltaXRhdGlvbnMpPgABaG1heF9ocm1wX251bV9wZXJfY2FuZGlkYXRlEAEMdTMyAAE8cmVxdWlyZWRfcGFyZW50QQUBIEhlYWREYXRhAAFQdmFsaWRhdGlvbl9jb2RlX2hhc2ghBQFIVmFsaWRhdGlvbkNvZGVIYXNoAAFMdXBncmFkZV9yZXN0cmljdGlvbmkPAWhPcHRpb248VXBncmFkZVJlc3RyaWN0aW9uPgABWGZ1dHVyZV92YWxpZGF0aW9uX2NvZGVtDwF8T3B0aW9uPChOLCBWYWxpZGF0aW9uQ29kZUhhc2gpPgAAWQ8QTHBvbGthZG90X3ByaW1pdGl2ZXMIdjc0YXN5bmNfYmFja2luZ1hJbmJvdW5kSHJtcExpbWl0YXRpb25zBAROARAABAFAdmFsaWRfd2F0ZXJtYXJrc8EBARhWZWM8Tj4AAF0PAAACYQ8AYQ8AAAQIaQJlDwBlDxBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2NzRhc3luY19iYWNraW5neE91dGJvdW5kSHJtcENoYW5uZWxMaW1pdGF0aW9ucwAACAE8Ynl0ZXNfcmVtYWluaW5nEAEMdTMyAAFIbWVzc2FnZXNfcmVtYWluaW5nEAEMdTMyAABpDwQYT3B0aW9uBARUAc0MAQgQTm9uZQAAABBTb21lBADNDAAAAQAAbQ8EGE9wdGlvbgQEVAFxDwEIEE5vbmUAAAAQU29tZQQAcQ8AAAEAAHEPAAAECBAhBQB1DwAAAnkPAHkPEExwb2xrYWRvdF9wcmltaXRpdmVzCHY3NGFzeW5jX2JhY2tpbmdwQ2FuZGlkYXRlUGVuZGluZ0F2YWlsYWJpbGl0eQgESAE0BE4BEAAUAThjYW5kaWRhdGVfaGFzaFUFATRDYW5kaWRhdGVIYXNoAAEoZGVzY3JpcHRvchUFAVhDYW5kaWRhdGVEZXNjcmlwdG9yPEg+AAEsY29tbWl0bWVudHMlBQFQQ2FuZGlkYXRlQ29tbWl0bWVudHMAAUxyZWxheV9wYXJlbnRfbnVtYmVyEAEETgABMG1heF9wb3Zfc2l6ZRABDHUzMgAAfQ8EIEJUcmVlTWFwCARLAfUHBFYBrQwABACBDwAAAIEPAAAChQ8AhQ8AAAQI9QetDACJDwAAAhEFAI0PBBhPcHRpb24EBFQBkQ8BCBBOb25lAAAAEFNvbWUEAJEPAAABAACRDwhIc3BfY29uc2Vuc3VzX2JlZWZ5MFZhbGlkYXRvclNldAQsQXV0aG9yaXR5SWQBBQIACAEodmFsaWRhdG9yc0UOAUBWZWM8QXV0aG9yaXR5SWQ+AAEIaWQwAThWYWxpZGF0b3JTZXRJZAAAlQ8IKHNwX3J1bnRpbWUsT3BhcXVlVmFsdWUAAAQAOAEcVmVjPHU4PgAAmQ8EGE9wdGlvbgQEVAGVDwEIEE5vbmUAAAAQU29tZQQAlQ8AAAEAAJ0PBBhSZXN1bHQIBFQBNARFAaEPAQgIT2sEADQAAAAADEVycgQAoQ8AAAEAAKEPCERzcF9tbXJfcHJpbWl0aXZlcxRFcnJvcgABKEBJbnZhbGlkTnVtZXJpY09wAAAAEFB1c2gAAQAcR2V0Um9vdAACABhDb21taXQAAwA0R2VuZXJhdGVQcm9vZgAEABhWZXJpZnkABQAwTGVhZk5vdEZvdW5kAAYARFBhbGxldE5vdEluY2x1ZGVkAAcAQEludmFsaWRMZWFmSW5kZXgACABUSW52YWxpZEJlc3RLbm93bkJsb2NrAAkAAKUPBBhSZXN1bHQIBFQBMARFAaEPAQgIT2sEADAAAAAADEVycgQAoQ8AAAEAAKkPBBhSZXN1bHQIBFQBrQ8ERQGhDwEICE9rBACtDwAAAAAMRXJyBAChDwAAAQAArQ8AAAQIsQ+5DwCxDwAAArUPALUPCERzcF9tbXJfcHJpbWl0aXZlc0xFbmNvZGFibGVPcGFxdWVMZWFmAAAEADgBHFZlYzx1OD4AALkPCERzcF9tbXJfcHJpbWl0aXZlcyRMZWFmUHJvb2YEEEhhc2gBNAAMATBsZWFmX2luZGljZXPJCwE4VmVjPExlYWZJbmRleD4AAShsZWFmX2NvdW50MAEkTm9kZUluZGV4AAEUaXRlbXMVAwEkVmVjPEhhc2g+AAC9DwQYUmVzdWx0CARUAaEBBEUBoQ8BCAhPawQAoQEAAAAADEVycgQAoQ8AAAEAAMEPCERzcF9jb25zZW5zdXNfYmFiZURCYWJlQ29uZmlndXJhdGlvbgAAGAE0c2xvdF9kdXJhdGlvbjABDHU2NAABMGVwb2NoX2xlbmd0aDABDHU2NAABBGONAQEoKHU2NCwgdTY0KQABLGF1dGhvcml0aWVzhQgBnFZlYzwoQXV0aG9yaXR5SWQsIEJhYmVBdXRob3JpdHlXZWlnaHQpPgABKHJhbmRvbW5lc3MEAShSYW5kb21uZXNzAAE0YWxsb3dlZF9zbG90c5EBATBBbGxvd2VkU2xvdHMAAMUPCERzcF9jb25zZW5zdXNfYmFiZRRFcG9jaAAAGAEsZXBvY2hfaW5kZXgwAQx1NjQAAShzdGFydF9zbG90gQEBEFNsb3QAASBkdXJhdGlvbjABDHU2NAABLGF1dGhvcml0aWVzhQgBnFZlYzwoQXV0aG9yaXR5SWQsIEJhYmVBdXRob3JpdHlXZWlnaHQpPgABKHJhbmRvbW5lc3MEAShSYW5kb21uZXNzAAEYY29uZmlnqQgBWEJhYmVFcG9jaENvbmZpZ3VyYXRpb24AAMkPBBhPcHRpb24EBFQBzQ8BCBBOb25lAAAAEFNvbWUEAM0PAAABAADNDwhEc3BfY29uc2Vuc3VzX2JhYmVcT3BhcXVlS2V5T3duZXJzaGlwUHJvb2YAAAQAOAEcVmVjPHU4PgAA0Q8EGE9wdGlvbgQEVAHVDwEIEE5vbmUAAAAQU29tZQQA1Q8AAAEAANUPAAAC2Q8A2Q8AAAQIOI0JAN0PDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlc0xSdW50aW1lRGlzcGF0Y2hJbmZvCBxCYWxhbmNlARgYV2VpZ2h0ASgADAEYd2VpZ2h0KAEYV2VpZ2h0AAEUY2xhc3NgATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWUYARxCYWxhbmNlAADhDwxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQEYAAgBNGluY2x1c2lvbl9mZWXlDwF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXAYARxCYWxhbmNlAADlDwQYT3B0aW9uBARUAekPAQgQTm9uZQAAABBTb21lBADpDwAAAQAA6Q8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQEYAAwBIGJhc2VfZmVlGAEcQmFsYW5jZQABHGxlbl9mZWUYARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZRgBHEJhbGFuY2UAAO0PBBhSZXN1bHQIBFQB8Q8ERQH1DwEICE9rBADxDwAAAAAMRXJyBAD1DwAAAQAA8Q8AAAINBwD1DwxAeGNtX3J1bnRpbWVfYXBpcxBmZWVzFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAAPkPBBhSZXN1bHQIBFQBKARFAfUPAQgIT2sEACgAAAAADEVycgQA9Q8AAAEAAP0PBBhSZXN1bHQIBFQBGARFAfUPAQgIT2sEABgAAAAADEVycgQA9Q8AAAEAAAEQBBhSZXN1bHQIBFQB2QYERQH1DwEICE9rBADZBgAAAAAMRXJyBAD1DwAAAQAABRAEGFJlc3VsdAgEVAEJEARFASEQAQgIT2sEAAkQAAAAAAxFcnIEACEQAAABAAAJEAxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuRENhbGxEcnlSdW5FZmZlY3RzBBRFdmVudAFUABABQGV4ZWN1dGlvbl9yZXN1bHRpBwFoRGlzcGF0Y2hSZXN1bHRXaXRoUG9zdEluZm8AAThlbWl0dGVkX2V2ZW50cw0QAShWZWM8RXZlbnQ+AAEkbG9jYWxfeGNtERABYE9wdGlvbjxWZXJzaW9uZWRYY208KCk+PgABOGZvcndhcmRlZF94Y21zFRABvFZlYzwoVmVyc2lvbmVkTG9jYXRpb24sIFZlYzxWZXJzaW9uZWRYY208KCk+Pik+AAANEAAAAlQAERAEGE9wdGlvbgQEVAHZBQEIEE5vbmUAAAAQU29tZQQA2QUAAAEAABUQAAACGRAAGRAAAAQILQEdEAAdEAAAAtkFACEQDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW4URXJyb3IAAQg0VW5pbXBsZW1lbnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAACUQBBhSZXN1bHQIBFQBKRAERQEhEAEICE9rBAApEAAAAAAMRXJyBAAhEAAAAQAAKRAMQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkBYY21EcnlSdW5FZmZlY3RzBBRFdmVudAFUAAwBQGV4ZWN1dGlvbl9yZXN1bHQtCAEcT3V0Y29tZQABOGVtaXR0ZWRfZXZlbnRzDRABKFZlYzxFdmVudD4AAThmb3J3YXJkZWRfeGNtcxUQAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAALRAEGFJlc3VsdAgEVAEABEUBMRABCAhPawQAAAAAAAAMRXJyBAAxEAAAAQAAMRAMQHhjbV9ydW50aW1lX2FwaXMsY29udmVyc2lvbnMURXJyb3IAAQgsVW5zdXBwb3J0ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAAA1EAQYUmVzdWx0CARUAaEBBEUBSQgBCAhPawQAoQEAAAAADEVycgQASQgAAAEAADkQBBhPcHRpb24EBFQBSQgBCBBOb25lAAAAEFNvbWUEAEkIAAABAAA9EAAAAkkIAEEQCFhzdGFnaW5nX2t1c2FtYV9ydW50aW1lMFJ1bnRpbWVFcnJvcgABwBhTeXN0ZW0EAHkIAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAAAEEJhYmUEALkIAWxwYWxsZXRfYmFiZTo6RXJyb3I8UnVudGltZT4AAQAcSW5kaWNlcwQAwQgBeHBhbGxldF9pbmRpY2VzOjpFcnJvcjxSdW50aW1lPgADACBCYWxhbmNlcwQADQkBfHBhbGxldF9iYWxhbmNlczo6RXJyb3I8UnVudGltZT4ABAAcU3Rha2luZwQAbQkBeHBhbGxldF9zdGFraW5nOjpFcnJvcjxSdW50aW1lPgAGABxTZXNzaW9uBACRCQF4cGFsbGV0X3Nlc3Npb246OkVycm9yPFJ1bnRpbWU+AAgAHEdyYW5kcGEEAKEJAXhwYWxsZXRfZ3JhbmRwYTo6RXJyb3I8UnVudGltZT4ACgAgVHJlYXN1cnkEAMUJAXxwYWxsZXRfdHJlYXN1cnk6OkVycm9yPFJ1bnRpbWU+ABIAQENvbnZpY3Rpb25Wb3RpbmcEAPkJAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkVycm9yPFJ1bnRpbWU+ABQAJFJlZmVyZW5kYQQAQQoBgHBhbGxldF9yZWZlcmVuZGE6OkVycm9yPFJ1bnRpbWU+ABUAUEZlbGxvd3NoaXBDb2xsZWN0aXZlBABVCgE5AXBhbGxldF9yYW5rZWRfY29sbGVjdGl2ZTo6RXJyb3I8UnVudGltZSwgcGFsbGV0X3JhbmtlZF9jb2xsZWN0aXZlOjoKSW5zdGFuY2UxPgAWAExGZWxsb3dzaGlwUmVmZXJlbmRhBABlCgH0cGFsbGV0X3JlZmVyZW5kYTo6RXJyb3I8UnVudGltZSwgcGFsbGV0X3JlZmVyZW5kYTo6SW5zdGFuY2UyPgAXACRXaGl0ZWxpc3QEAGkKAYBwYWxsZXRfd2hpdGVsaXN0OjpFcnJvcjxSdW50aW1lPgAsABhDbGFpbXMEAG0KAVhjbGFpbXM6OkVycm9yPFJ1bnRpbWU+ABMAHFV0aWxpdHkEAHEKAXhwYWxsZXRfdXRpbGl0eTo6RXJyb3I8UnVudGltZT4AGAAcU29jaWV0eQQAtQoBeHBhbGxldF9zb2NpZXR5OjpFcnJvcjxSdW50aW1lPgAaACBSZWNvdmVyeQQAxQoBfHBhbGxldF9yZWNvdmVyeTo6RXJyb3I8UnVudGltZT4AGwAcVmVzdGluZwQA1QoBeHBhbGxldF92ZXN0aW5nOjpFcnJvcjxSdW50aW1lPgAcACRTY2hlZHVsZXIEAO0KAYBwYWxsZXRfc2NoZWR1bGVyOjpFcnJvcjxSdW50aW1lPgAdABRQcm94eQQAEQsBcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4AHgAgTXVsdGlzaWcEACELAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+AB8AIFByZWltYWdlBABBCwF8cGFsbGV0X3ByZWltYWdlOjpFcnJvcjxSdW50aW1lPgAgACBCb3VudGllcwQAUQsBfHBhbGxldF9ib3VudGllczo6RXJyb3I8UnVudGltZT4AIwA0Q2hpbGRCb3VudGllcwQAXQsBlHBhbGxldF9jaGlsZF9ib3VudGllczo6RXJyb3I8UnVudGltZT4AKABoRWxlY3Rpb25Qcm92aWRlck11bHRpUGhhc2UEAIULAdBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfcGhhc2U6OkVycm9yPFJ1bnRpbWU+ACUADE5pcwQApQsBaHBhbGxldF9uaXM6OkVycm9yPFJ1bnRpbWU+ACYAWE5pc0NvdW50ZXJwYXJ0QmFsYW5jZXMEAL0LAexwYWxsZXRfYmFsYW5jZXM6OkVycm9yPFJ1bnRpbWUsIHBhbGxldF9iYWxhbmNlczo6SW5zdGFuY2UyPgAtACRWb3Rlckxpc3QEAM0LAfRwYWxsZXRfYmFnc19saXN0OjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfYmFnc19saXN0OjpJbnN0YW5jZTE+ACcAPE5vbWluYXRpb25Qb29scwQAFQwBnHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpFcnJvcjxSdW50aW1lPgApACxGYXN0VW5zdGFrZQQAKQwBjHBhbGxldF9mYXN0X3Vuc3Rha2U6OkVycm9yPFJ1bnRpbWU+ACoANENvbmZpZ3VyYXRpb24EADkMAaBwYXJhY2hhaW5zX2NvbmZpZ3VyYXRpb246OkVycm9yPFJ1bnRpbWU+ADMANFBhcmFJbmNsdXNpb24EAFkMAZBwYXJhY2hhaW5zX2luY2x1c2lvbjo6RXJyb3I8UnVudGltZT4ANQAwUGFyYUluaGVyZW50BABxDAGkcGFyYWNoYWluc19wYXJhc19pbmhlcmVudDo6RXJyb3I8UnVudGltZT4ANgAUUGFyYXMEANUMAYBwYXJhY2hhaW5zX3BhcmFzOjpFcnJvcjxSdW50aW1lPgA4ABBIcm1wBAAFDQF8cGFyYWNoYWluc19ocm1wOjpFcnJvcjxSdW50aW1lPgA8ADRQYXJhc0Rpc3B1dGVzBAAlDQGMcGFyYWNoYWluc19kaXNwdXRlczo6RXJyb3I8UnVudGltZT4APgA0UGFyYXNTbGFzaGluZwQAOQ0BjHBhcmFjaGFpbnNfc2xhc2hpbmc6OkVycm9yPFJ1bnRpbWU+AD8AaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyBABpDQG0cGFyYWNoYWluc19hc3NpZ25lcl9vbl9kZW1hbmQ6OkVycm9yPFJ1bnRpbWU+AEAAaENvcmV0aW1lQXNzaWdubWVudFByb3ZpZGVyBACVDQGwcGFyYWNoYWluc19hc3NpZ25lcl9jb3JldGltZTo6RXJyb3I8UnVudGltZT4AQQAkUmVnaXN0cmFyBACdDQF8cGFyYXNfcmVnaXN0cmFyOjpFcnJvcjxSdW50aW1lPgBGABRTbG90cwQApQ0BVHNsb3RzOjpFcnJvcjxSdW50aW1lPgBHACBBdWN0aW9ucwQAuQ0BYGF1Y3Rpb25zOjpFcnJvcjxSdW50aW1lPgBIACRDcm93ZGxvYW4EAMUNAWRjcm93ZGxvYW46OkVycm9yPFJ1bnRpbWU+AEkAIENvcmV0aW1lBADJDQFgY29yZXRpbWU6OkVycm9yPFJ1bnRpbWU+AEoAJFhjbVBhbGxldAQAHQ4BaHBhbGxldF94Y206OkVycm9yPFJ1bnRpbWU+AGMAME1lc3NhZ2VRdWV1ZQQAOQ4BkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgBkACRBc3NldFJhdGUEAD0OAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXJyb3I8UnVudGltZT4AZQAUQmVlZnkEAEkOAXBwYWxsZXRfYmVlZnk6OkVycm9yPFJ1bnRpbWU+AMgAAAEBGFN5c3RlbQEYU3lzdGVtSBxBY2NvdW50AQEEAgAMQQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAToIFRoZSBmdWxsIGFjY291bnQgaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxhciBhY2NvdW50IElELjhFeHRyaW5zaWNDb3VudAAAEAQABLggVG90YWwgZXh0cmluc2ljcyBjb3VudCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suQEluaGVyZW50c0FwcGxpZWQBACAEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4sQmxvY2tXZWlnaHQBACQYAAAAAAAABIggVGhlIGN1cnJlbnQgd2VpZ2h0IGZvciB0aGUgYmxvY2suQEFsbEV4dHJpbnNpY3NMZW4AABAEAARBASBUb3RhbCBsZW5ndGggKGluIGJ5dGVzKSBmb3IgYWxsIGV4dHJpbnNpY3MgcHV0IHRvZ2V0aGVyLCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suJEJsb2NrSGFzaAEBBAUQNIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy40RXh0cmluc2ljRGF0YQEBBAUQOAQABD0BIEV4dHJpbnNpY3MgZGF0YSBmb3IgdGhlIGN1cnJlbnQgYmxvY2sgKG1hcHMgYW4gZXh0cmluc2ljJ3MgaW5kZXggdG8gaXRzIGRhdGEpLhhOdW1iZXIBABAQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLihQYXJlbnRIYXNoAQA0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suGERpZ2VzdAEAPAQABPAgRGlnZXN0IG9mIHRoZSBjdXJyZW50IGJsb2NrLCBhbHNvIHBhcnQgb2YgdGhlIGJsb2NrIGhlYWRlci4YRXZlbnRzAQBMBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLihFdmVudENvdW50AQAQEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4sRXZlbnRUb3BpY3MBAQQCNEEIBAAoJQEgTWFwcGluZyBiZXR3ZWVuIGEgdG9waWMgKHJlcHJlc2VudGVkIGJ5IFQ6Okhhc2gpIGFuZCBhIHZlY3RvciBvZiBpbmRleGVzlCBvZiBldmVudHMgaW4gdGhlIGA8RXZlbnRzPFQ+PmAgbGlzdC4AUQEgQWxsIHRvcGljIHZlY3RvcnMgaGF2ZSBkZXRlcm1pbmlzdGljIHN0b3JhZ2UgbG9jYXRpb25zIGRlcGVuZGluZyBvbiB0aGUgdG9waWMuIFRoaXNFASBhbGxvd3MgbGlnaHQtY2xpZW50cyB0byBsZXZlcmFnZSB0aGUgY2hhbmdlcyB0cmllIHN0b3JhZ2UgdHJhY2tpbmcgbWVjaGFuaXNtIGFuZOQgaW4gY2FzZSBvZiBjaGFuZ2VzIGZldGNoIHRoZSBsaXN0IG9mIGV2ZW50cyBvZiBpbnRlcmVzdC4AWQEgVGhlIHZhbHVlIGhhcyB0aGUgdHlwZSBgKEJsb2NrTnVtYmVyRm9yPFQ+LCBFdmVudEluZGV4KWAgYmVjYXVzZSBpZiB3ZSB1c2VkIG9ubHkganVzdE0BIHRoZSBgRXZlbnRJbmRleGAgdGhlbiBpbiBjYXNlIGlmIHRoZSB0b3BpYyBoYXMgdGhlIHNhbWUgY29udGVudHMgb24gdGhlIG5leHQgYmxvY2sBASBubyBub3RpZmljYXRpb24gd2lsbCBiZSB0cmlnZ2VyZWQgdGh1cyB0aGUgZXZlbnQgbWlnaHQgYmUgbG9zdC5ITGFzdFJ1bnRpbWVVcGdyYWRlAABFCAQABFUBIFN0b3JlcyB0aGUgYHNwZWNfdmVyc2lvbmAgYW5kIGBzcGVjX25hbWVgIG9mIHdoZW4gdGhlIGxhc3QgcnVudGltZSB1cGdyYWRlIGhhcHBlbmVkLlRVcGdyYWRlZFRvVTMyUmVmQ291bnQBACAEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuYFVwZ3JhZGVkVG9UcmlwbGVSZWZDb3VudAEAIAQACF0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IEFjY291bnRJbmZvIGNvbnRhaW5zIHRocmVlIHR5cGVzIG9mIGBSZWZDb3VudGAuIEZhbHNlSCAoZGVmYXVsdCkgaWYgbm90LjhFeGVjdXRpb25QaGFzZQAAPQgEAASIIFRoZSBleGVjdXRpb24gcGhhc2Ugb2YgdGhlIGJsb2NrLkRBdXRob3JpemVkVXBncmFkZQAATQgEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgFhAQFYGDBCbG9ja1dlaWdodHNRCAECB6gaClMDAAsAIEqp0QET//////////9Cc7sdAAELMPNwj1gBE6NwPQrXo3C9AQsAmPc+XQET/////////78BAABCc7sdAAELMHvD+cwBE6NwPQrXo3D9AQsAIEqp0QET//////////8BBwCIUmp0EwAAAAAAAABAQnO7HQAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4sQmxvY2tMZW5ndGhdCDAAADwAAABQAAAAUAAEqCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBibG9jayAoaW4gYnl0ZXMpLjhCbG9ja0hhc2hDb3VudBAQABAAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4gRGJXZWlnaHRlCEBAeH0BAAAAAADh9QUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuHFZlcnNpb25pCO0EGGt1c2FtYTRwYXJpdHkta3VzYW1hAgAAAPhNDwAAAAAAXMUf8fo/XQzKAQAAAN9qy2iZB2CbBQAAADfjl/x8kfXkAgAAAED+OtQB+JWaBgAAANK8mJfu0I8VAwAAAPeLJ4vlP0VMAgAAAK8sApeiPm09CwAAAEnqrxtUigywAwAAAJHV3xiw0s9YAgAAACpekkZVOZ5gAQAAAO2ZxayyXu31AwAAAMvKJeOfFCOHAgAAAGh61ErTfwPCAQAAAKs8BXIpH+uLAQAAALydiZBPW5I/AQAAADfIuxNQqaKoBAAAAPP/FNWrUnBZAwAAAG/1LuhY5sW9AQAAAJGxyLFjKOuSAQAAAJ/7UFqnONacAQAAABemvA0AYq6zAQAAABjvWKO2e6dwAQAAAPvFd7nXR+/WAQAAABoAAAABBIQgR2V0IHRoZSBjaGFpbidzIGluLWNvZGUgdmVyc2lvbi4oU1M1OFByZWZpeFUBCAIAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgF5CAAAEEJhYmUBEEJhYmVEKEVwb2NoSW5kZXgBADAgAAAAAAAAAAAEVCBDdXJyZW50IGVwb2NoIGluZGV4LixBdXRob3JpdGllcwEAfQgEAARsIEN1cnJlbnQgZXBvY2ggYXV0aG9yaXRpZXMuLEdlbmVzaXNTbG90AQCBASAAAAAAAAAAAAj4IFRoZSBzbG90IGF0IHdoaWNoIHRoZSBmaXJzdCBlcG9jaCBhY3R1YWxseSBzdGFydGVkLiBUaGlzIGlzIDCQIHVudGlsIHRoZSBmaXJzdCBibG9jayBvZiB0aGUgY2hhaW4uLEN1cnJlbnRTbG90AQCBASAAAAAAAAAAAARUIEN1cnJlbnQgc2xvdCBudW1iZXIuKFJhbmRvbW5lc3MBAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAouCBUaGUgZXBvY2ggcmFuZG9tbmVzcyBmb3IgdGhlICpjdXJyZW50KiBlcG9jaC4ALCAjIFNlY3VyaXR5AAUBIFRoaXMgTVVTVCBOT1QgYmUgdXNlZCBmb3IgZ2FtYmxpbmcsIGFzIGl0IGNhbiBiZSBpbmZsdWVuY2VkIGJ5IGH4IG1hbGljaW91cyB2YWxpZGF0b3IgaW4gdGhlIHNob3J0IHRlcm0uIEl0IE1BWSBiZSB1c2VkIGluIG1hbnkVASBjcnlwdG9ncmFwaGljIHByb3RvY29scywgaG93ZXZlciwgc28gbG9uZyBhcyBvbmUgcmVtZW1iZXJzIHRoYXQgdGhpcxUBIChsaWtlIGV2ZXJ5dGhpbmcgZWxzZSBvbi1jaGFpbikgaXQgaXMgcHVibGljLiBGb3IgZXhhbXBsZSwgaXQgY2FuIGJlBQEgdXNlZCB3aGVyZSBhIG51bWJlciBpcyBuZWVkZWQgdGhhdCBjYW5ub3QgaGF2ZSBiZWVuIGNob3NlbiBieSBhbg0BIGFkdmVyc2FyeSwgZm9yIHB1cnBvc2VzIHN1Y2ggYXMgcHVibGljLWNvaW4gemVyby1rbm93bGVkZ2UgcHJvb2ZzLmBQZW5kaW5nRXBvY2hDb25maWdDaGFuZ2UAAIkBBAAEYQEgUGVuZGluZyBlcG9jaCBjb25maWd1cmF0aW9uIGNoYW5nZSB0aGF0IHdpbGwgYmUgYXBwbGllZCB3aGVuIHRoZSBuZXh0IGVwb2NoIGlzIGVuYWN0ZWQuOE5leHRSYW5kb21uZXNzAQAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFwgTmV4dCBlcG9jaCByYW5kb21uZXNzLjxOZXh0QXV0aG9yaXRpZXMBAH0IBAAEYCBOZXh0IGVwb2NoIGF1dGhvcml0aWVzLjBTZWdtZW50SW5kZXgBABAQAAAAACR8IFJhbmRvbW5lc3MgdW5kZXIgY29uc3RydWN0aW9uLgD4IFdlIG1ha2UgYSB0cmFkZS1vZmYgYmV0d2VlbiBzdG9yYWdlIGFjY2Vzc2VzIGFuZCBsaXN0IGxlbmd0aC4BASBXZSBzdG9yZSB0aGUgdW5kZXItY29uc3RydWN0aW9uIHJhbmRvbW5lc3MgaW4gc2VnbWVudHMgb2YgdXAgdG+UIGBVTkRFUl9DT05TVFJVQ1RJT05fU0VHTUVOVF9MRU5HVEhgLgDsIE9uY2UgYSBzZWdtZW50IHJlYWNoZXMgdGhpcyBsZW5ndGgsIHdlIGJlZ2luIHRoZSBuZXh0IG9uZS4JASBXZSByZXNldCBhbGwgc2VnbWVudHMgYW5kIHJldHVybiB0byBgMGAgYXQgdGhlIGJlZ2lubmluZyBvZiBldmVyeRwgZXBvY2guRFVuZGVyQ29uc3RydWN0aW9uAQEEBRCJCAQABBUBIFRXT1gtTk9URTogYFNlZ21lbnRJbmRleGAgaXMgYW4gaW5jcmVhc2luZyBpbnRlZ2VyLCBzbyB0aGlzIGlzIG9rYXkuLEluaXRpYWxpemVkAACRCAQACAEBIFRlbXBvcmFyeSB2YWx1ZSAoY2xlYXJlZCBhdCBibG9jayBmaW5hbGl6YXRpb24pIHdoaWNoIGlzIGBTb21lYB0BIGlmIHBlci1ibG9jayBpbml0aWFsaXphdGlvbiBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBmb3IgY3VycmVudCBibG9jay5MQXV0aG9yVnJmUmFuZG9tbmVzcwEAsQcEABAVASBUaGlzIGZpZWxkIHNob3VsZCBhbHdheXMgYmUgcG9wdWxhdGVkIGR1cmluZyBibG9jayBwcm9jZXNzaW5nIHVubGVzcxkBIHNlY29uZGFyeSBwbGFpbiBzbG90cyBhcmUgZW5hYmxlZCAod2hpY2ggZG9uJ3QgY29udGFpbiBhIFZSRiBvdXRwdXQpLgBJASBJdCBpcyBzZXQgaW4gYG9uX2ZpbmFsaXplYCwgYmVmb3JlIGl0IHdpbGwgY29udGFpbiB0aGUgdmFsdWUgZnJvbSB0aGUgbGFzdCBibG9jay4oRXBvY2hTdGFydAEA9QIgAAAAAAAAAAAUXQEgVGhlIGJsb2NrIG51bWJlcnMgd2hlbiB0aGUgbGFzdCBhbmQgY3VycmVudCBlcG9jaCBoYXZlIHN0YXJ0ZWQsIHJlc3BlY3RpdmVseSBgTi0xYCBhbmQUIGBOYC5JASBOT1RFOiBXZSB0cmFjayB0aGlzIGlzIGluIG9yZGVyIHRvIGFubm90YXRlIHRoZSBibG9jayBudW1iZXIgd2hlbiBhIGdpdmVuIHBvb2wgb2ZZASBlbnRyb3B5IHdhcyBmaXhlZCAoaS5lLiBpdCB3YXMga25vd24gdG8gY2hhaW4gb2JzZXJ2ZXJzKS4gU2luY2UgZXBvY2hzIGFyZSBkZWZpbmVkIGluWQEgc2xvdHMsIHdoaWNoIG1heSBiZSBza2lwcGVkLCB0aGUgYmxvY2sgbnVtYmVycyBtYXkgbm90IGxpbmUgdXAgd2l0aCB0aGUgc2xvdCBudW1iZXJzLiBMYXRlbmVzcwEAEBAAAAAAFNggSG93IGxhdGUgdGhlIGN1cnJlbnQgYmxvY2sgaXMgY29tcGFyZWQgdG8gaXRzIHBhcmVudC4AFQEgVGhpcyBlbnRyeSBpcyBwb3B1bGF0ZWQgYXMgcGFydCBvZiBibG9jayBleGVjdXRpb24gYW5kIGlzIGNsZWFuZWQgdXARASBvbiBibG9jayBmaW5hbGl6YXRpb24uIFF1ZXJ5aW5nIHRoaXMgc3RvcmFnZSBlbnRyeSBvdXRzaWRlIG9mIGJsb2NrsCBleGVjdXRpb24gY29udGV4dCBzaG91bGQgYWx3YXlzIHlpZWxkIHplcm8uLEVwb2NoQ29uZmlnAACpCAQACGEBIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgY3VycmVudCBlcG9jaC4gU2hvdWxkIG5ldmVyIGJlIGBOb25lYCBhcyBpdCBpcyBpbml0aWFsaXplZCBpbiQgZ2VuZXNpcy48TmV4dEVwb2NoQ29uZmlnAACpCAQACC0BIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgbmV4dCBlcG9jaCwgYE5vbmVgIGlmIHRoZSBjb25maWcgd2lsbCBub3QgY2hhbmdl6CAoeW91IGNhbiBmYWxsYmFjayB0byBgRXBvY2hDb25maWdgIGluc3RlYWQgaW4gdGhhdCBjYXNlKS40U2tpcHBlZEVwb2NocwEArQgEACApASBBIGxpc3Qgb2YgdGhlIGxhc3QgMTAwIHNraXBwZWQgZXBvY2hzIGFuZCB0aGUgY29ycmVzcG9uZGluZyBzZXNzaW9uIGluZGV4cCB3aGVuIHRoZSBlcG9jaCB3YXMgc2tpcHBlZC4AMQEgVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHZhbGlkYXRpbmcgZXF1aXZvY2F0aW9uIHByb29mcy4gQW4gZXF1aXZvY2F0aW9uIHByb29mNQEgbXVzdCBjb250YWlucyBhIGtleS1vd25lcnNoaXAgcHJvb2YgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiwgdGhlcmVmb3JlIHdlIG5lZWQgYTkBIHdheSB0byB0aWUgdG9nZXRoZXIgc2Vzc2lvbnMgYW5kIGVwb2NoIGluZGljZXMsIGkuZS4gd2UgbmVlZCB0byB2YWxpZGF0ZSB0aGF0KQEgYSB2YWxpZGF0b3Igd2FzIHRoZSBvd25lciBvZiBhIGdpdmVuIGtleSBvbiBhIGdpdmVuIHNlc3Npb24sIGFuZCB3aGF0IHRoZbAgYWN0aXZlIGVwb2NoIGluZGV4IHdhcyBkdXJpbmcgdGhhdCBzZXNzaW9uLgFxAQAQNEVwb2NoRHVyYXRpb24wIFgCAAAAAAAADOwgVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzbG90cywgdGhhdCBlYWNoIGVwb2NoIHNob3VsZCBsYXN0LhkBIE5PVEU6IEN1cnJlbnRseSBpdCBpcyBub3QgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBlcG9jaCBkdXJhdGlvbiBhZnRlciEBIHRoZSBjaGFpbiBoYXMgc3RhcnRlZC4gQXR0ZW1wdGluZyB0byBkbyBzbyB3aWxsIGJyaWNrIGJsb2NrIHByb2R1Y3Rpb24uREV4cGVjdGVkQmxvY2tUaW1lMCBwFwAAAAAAABQFASBUaGUgZXhwZWN0ZWQgYXZlcmFnZSBibG9jayB0aW1lIGF0IHdoaWNoIEJBQkUgc2hvdWxkIGJlIGNyZWF0aW5nEQEgYmxvY2tzLiBTaW5jZSBCQUJFIGlzIHByb2JhYmlsaXN0aWMgaXQgaXMgbm90IHRyaXZpYWwgdG8gZmlndXJlIG91dAUBIHdoYXQgdGhlIGV4cGVjdGVkIGF2ZXJhZ2UgYmxvY2sgdGltZSBzaG91bGQgYmUgYmFzZWQgb24gdGhlIHNsb3QJASBkdXJhdGlvbiBhbmQgdGhlIHNlY3VyaXR5IHBhcmFtZXRlciBgY2AgKHdoZXJlIGAxIC0gY2AgcmVwcmVzZW50c6AgdGhlIHByb2JhYmlsaXR5IG9mIGEgc2xvdCBiZWluZyBlbXB0eSkuOE1heEF1dGhvcml0aWVzEBCghgEABIggTWF4IG51bWJlciBvZiBhdXRob3JpdGllcyBhbGxvd2VkNE1heE5vbWluYXRvcnMQEAACAAAE1CBUaGUgbWF4aW11bSBudW1iZXIgb2Ygbm9taW5hdG9ycyBmb3IgZWFjaCB2YWxpZGF0b3IuAbkIAQAkVGltZXN0YW1wASRUaW1lc3RhbXAIDE5vdwEAMCAAAAAAAAAAAASgIFRoZSBjdXJyZW50IHRpbWUgZm9yIHRoZSBjdXJyZW50IGJsb2NrLiREaWRVcGRhdGUBACAEABDYIFdoZXRoZXIgdGhlIHRpbWVzdGFtcCBoYXMgYmVlbiB1cGRhdGVkIGluIHRoaXMgYmxvY2suAFUBIFRoaXMgdmFsdWUgaXMgdXBkYXRlZCB0byBgdHJ1ZWAgdXBvbiBzdWNjZXNzZnVsIHN1Ym1pc3Npb24gb2YgYSB0aW1lc3RhbXAgYnkgYSBub2RlLkUBIEl0IGlzIHRoZW4gY2hlY2tlZCBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgZXhlY3V0aW9uIGluIHRoZSBgb25fZmluYWxpemVgIGhvb2suAZUBAAQ0TWluaW11bVBlcmlvZDAguAsAAAAAAAAYjCBUaGUgbWluaW11bSBwZXJpb2QgYmV0d2VlbiBibG9ja3MuAE0BIEJlIGF3YXJlIHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlICpleHBlY3RlZCogcGVyaW9kIHRoYXQgdGhlIGJsb2NrIHByb2R1Y3Rpb25JASBhcHBhcmF0dXMgcHJvdmlkZXMuIFlvdXIgY2hvc2VuIGNvbnNlbnN1cyBzeXN0ZW0gd2lsbCBnZW5lcmFsbHkgd29yayB3aXRoIHRoaXMgdG9hASBkZXRlcm1pbmUgYSBzZW5zaWJsZSBibG9jayB0aW1lLiBGb3IgZXhhbXBsZSwgaW4gdGhlIEF1cmEgcGFsbGV0IGl0IHdpbGwgYmUgZG91YmxlIHRoaXNwIHBlcmlvZCBvbiBkZWZhdWx0IHNldHRpbmdzLgACABxJbmRpY2VzARxJbmRpY2VzBCBBY2NvdW50cwABBAIQvQgEAASIIFRoZSBsb29rdXAgZnJvbSBpbmRleCB0byBhY2NvdW50LgGZAQF8BBxEZXBvc2l0GEA0TdLCBwAAAAAAAAAAAAAABKwgVGhlIGRlcG9zaXQgbmVlZGVkIGZvciByZXNlcnZpbmcgYW4gaW5kZXguAcEIAwAgQmFsYW5jZXMBIEJhbGFuY2VzHDRUb3RhbElzc3VhbmNlAQAYQAAAAAAAAAAAAAAAAAAAAAAEmCBUaGUgdG90YWwgdW5pdHMgaXNzdWVkIGluIHRoZSBzeXN0ZW0uQEluYWN0aXZlSXNzdWFuY2UBABhAAAAAAAAAAAAAAAAAAAAAAAQJASBUaGUgdG90YWwgdW5pdHMgb2Ygb3V0c3RhbmRpbmcgZGVhY3RpdmF0ZWQgYmFsYW5jZSBpbiB0aGUgc3lzdGVtLhxBY2NvdW50AQEEAgAUAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYAkBIFRoZSBCYWxhbmNlcyBwYWxsZXQgZXhhbXBsZSBvZiBzdG9yaW5nIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7GQIgICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTdG9yYWdlTWFwU2hpbTxTZWxmOjpBY2NvdW50PFJ1bnRpbWU+LCBmcmFtZV9zeXN0ZW06OlByb3ZpZGVyPFJ1bnRpbWU+LCBBY2NvdW50SWQsIFNlbGY6OkFjY291bnREYXRhPEJhbGFuY2U+PgwgIH0QIGBgYAAVASBZb3UgY2FuIGFsc28gc3RvcmUgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudCBpbiB0aGUgYFN5c3RlbWAgcGFsbGV0LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUge3QgICB0eXBlIEFjY291bnRTdG9yZSA9IFN5c3RlbQwgIH0QIGBgYABRASBCdXQgdGhpcyBjb21lcyB3aXRoIHRyYWRlb2Zmcywgc3RvcmluZyBhY2NvdW50IGJhbGFuY2VzIGluIHRoZSBzeXN0ZW0gcGFsbGV0IHN0b3Jlc20BIGBmcmFtZV9zeXN0ZW1gIGRhdGEgYWxvbmdzaWRlIHRoZSBhY2NvdW50IGRhdGEgY29udHJhcnkgdG8gc3RvcmluZyBhY2NvdW50IGJhbGFuY2VzIGluIHRoZSkBIGBCYWxhbmNlc2AgcGFsbGV0LCB3aGljaCB1c2VzIGEgYFN0b3JhZ2VNYXBgIHRvIHN0b3JlIGJhbGFuY2VzIGRhdGEgb25seS5BASBOT1RFOiBUaGlzIGlzIG9ubHkgdXNlZCBpbiB0aGUgY2FzZSB0aGF0IHRoaXMgcGFsbGV0IGlzIHVzZWQgdG8gc3RvcmUgYmFsYW5jZXMuFExvY2tzAQEEAgDFCAQAELggQW55IGxpcXVpZGl0eSBsb2NrcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuJQEgTk9URTogU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgd2hlbiBzZXR0aW5nLCBjaGFuZ2luZyBhbmQgZnJlZWluZyBhIGxvY2suAK0BIFVzZSBvZiBsb2NrcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBmcmVlemVzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AgUmVzZXJ2ZXMBAQQCANUIBAAMpCBOYW1lZCByZXNlcnZlcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gFEhvbGRzAQEEAgDhCAQABGwgSG9sZHMgb24gYWNjb3VudCBiYWxhbmNlcy4cRnJlZXplcwEBBAIA+QgEAASIIEZyZWV6ZSBsb2NrcyBvbiBhY2NvdW50IGJhbGFuY2VzLgGpAQGAEEhFeGlzdGVudGlhbERlcG9zaXQYQFVD3hMAAAAAAAAAAAAAAAAgQQEgVGhlIG1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIGtlZXAgYW4gYWNjb3VudCBvcGVuLiBNVVNUIEJFIEdSRUFURVIgVEhBTiBaRVJPIQBZASBJZiB5b3UgKnJlYWxseSogbmVlZCBpdCB0byBiZSB6ZXJvLCB5b3UgY2FuIGVuYWJsZSB0aGUgZmVhdHVyZSBgaW5zZWN1cmVfemVyb19lZGAgZm9yYQEgdGhpcyBwYWxsZXQuIEhvd2V2ZXIsIHlvdSBkbyBzbyBhdCB5b3VyIG93biByaXNrOiB0aGlzIHdpbGwgb3BlbiB1cCBhIG1ham9yIERvUyB2ZWN0b3IuWQEgSW4gY2FzZSB5b3UgaGF2ZSBtdWx0aXBsZSBzb3VyY2VzIG9mIHByb3ZpZGVyIHJlZmVyZW5jZXMsIHlvdSBtYXkgYWxzbyBnZXQgdW5leHBlY3RlZIwgYmVoYXZpb3VyIGlmIHlvdSBzZXQgdGhpcyB0byB6ZXJvLgDwIEJvdHRvbSBsaW5lOiBEbyB5b3Vyc2VsZiBhIGZhdm91ciBhbmQgbWFrZSBpdCBhdCBsZWFzdCBvbmUhIE1heExvY2tzEBAyAAAAEPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHRoYXQgc2hvdWxkIGV4aXN0IG9uIGFuIGFjY291bnQu3CBOb3Qgc3RyaWN0bHkgZW5mb3JjZWQsIGJ1dCB1c2VkIGZvciB3ZWlnaHQgZXN0aW1hdGlvbi4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYCxNYXhSZXNlcnZlcxAQMgAAAAwNASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudC4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AoTWF4RnJlZXplcxAQCAAAAARhASBUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5kaXZpZHVhbCBmcmVlemUgbG9ja3MgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudCBhdCBhbnkgdGltZS4BDQkEAEhUcmFuc2FjdGlvblBheW1lbnQBSFRyYW5zYWN0aW9uUGF5bWVudAhETmV4dEZlZU11bHRpcGxpZXIBACEHQAAAZKeztuANAAAAAAAAAAAAOFN0b3JhZ2VWZXJzaW9uAQARCQQAAAABiARgT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyCAQFVFkBIEEgZmVlIG11bHRpcGxpZXIgZm9yIGBPcGVyYXRpb25hbGAgZXh0cmluc2ljcyB0byBjb21wdXRlICJ2aXJ0dWFsIHRpcCIgdG8gYm9vc3QgdGhlaXIsIGBwcmlvcml0eWAAUQEgVGhpcyB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBgZmluYWxfZmVlYCB0byBvYnRhaW4gYSAidmlydHVhbCB0aXAiIHRoYXQgaXMgbGF0ZXL0IGFkZGVkIHRvIGEgdGlwIGNvbXBvbmVudCBpbiByZWd1bGFyIGBwcmlvcml0eWAgY2FsY3VsYXRpb25zLk0BIEl0IG1lYW5zIHRoYXQgYSBgTm9ybWFsYCB0cmFuc2FjdGlvbiBjYW4gZnJvbnQtcnVuIGEgc2ltaWxhcmx5LXNpemVkIGBPcGVyYXRpb25hbGBBASBleHRyaW5zaWMgKHdpdGggbm8gdGlwKSwgYnkgaW5jbHVkaW5nIGEgdGlwIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgdmlydHVhbCB0aXAuADwgYGBgcnVzdCxpZ25vcmVAIC8vIEZvciBgTm9ybWFsYIwgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXApOwBUIC8vIEZvciBgT3BlcmF0aW9uYWxgEQEgbGV0IHZpcnR1YWxfdGlwID0gKGluY2x1c2lvbl9mZWUgKyB0aXApICogT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyO8QgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXAgKyB2aXJ0dWFsX3RpcCk7ECBgYGAAUQEgTm90ZSB0aGF0IHNpbmNlIHdlIHVzZSBgZmluYWxfZmVlYCB0aGUgbXVsdGlwbGllciBhcHBsaWVzIGFsc28gdG8gdGhlIHJlZ3VsYXIgYHRpcGBdASBzZW50IHdpdGggdGhlIHRyYW5zYWN0aW9uLiBTbywgbm90IG9ubHkgZG9lcyB0aGUgdHJhbnNhY3Rpb24gZ2V0IGEgcHJpb3JpdHkgYnVtcCBiYXNlZGEBIG9uIHRoZSBgaW5jbHVzaW9uX2ZlZWAsIGJ1dCB3ZSBhbHNvIGFtcGxpZnkgdGhlIGltcGFjdCBvZiB0aXBzIGFwcGxpZWQgdG8gYE9wZXJhdGlvbmFsYDggdHJhbnNhY3Rpb25zLgAhAChBdXRob3JzaGlwAShBdXRob3JzaGlwBBhBdXRob3IAAAAEAARkIEF1dGhvciBvZiBjdXJyZW50IGJsb2NrLgAAAAAFABxTdGFraW5nARxTdGFraW5nrDhWYWxpZGF0b3JDb3VudAEAEBAAAAAABJwgVGhlIGlkZWFsIG51bWJlciBvZiBhY3RpdmUgdmFsaWRhdG9ycy5UTWluaW11bVZhbGlkYXRvckNvdW50AQAQEAAAAAAEQQEgTWluaW11bSBudW1iZXIgb2Ygc3Rha2luZyBwYXJ0aWNpcGFudHMgYmVmb3JlIGVtZXJnZW5jeSBjb25kaXRpb25zIGFyZSBpbXBvc2VkLjRJbnZ1bG5lcmFibGVzAQCtAQQADFkBIEFueSB2YWxpZGF0b3JzIHRoYXQgbWF5IG5ldmVyIGJlIHNsYXNoZWQgb3IgZm9yY2libHkga2lja2VkLiBJdCdzIGEgVmVjIHNpbmNlIHRoZXkncmVNASBlYXN5IHRvIGluaXRpYWxpemUgYW5kIHRoZSBwZXJmb3JtYW5jZSBoaXQgaXMgbWluaW1hbCAod2UgZXhwZWN0IG5vIG1vcmUgdGhhbiBmb3VyrCBpbnZ1bG5lcmFibGVzKSBhbmQgcmVzdHJpY3RlZCB0byB0ZXN0bmV0cy4YQm9uZGVkAAEEBQAABAAMAQEgTWFwIGZyb20gYWxsIGxvY2tlZCAic3Rhc2giIGFjY291bnRzIHRvIHRoZSBjb250cm9sbGVyIGFjY291bnQuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guQE1pbk5vbWluYXRvckJvbmQBABhAAAAAAAAAAAAAAAAAAAAAAAQhASBUaGUgbWluaW11bSBhY3RpdmUgYm9uZCB0byBiZWNvbWUgYW5kIG1haW50YWluIHRoZSByb2xlIG9mIGEgbm9taW5hdG9yLkBNaW5WYWxpZGF0b3JCb25kAQAYQAAAAAAAAAAAAAAAAAAAAAAEIQEgVGhlIG1pbmltdW0gYWN0aXZlIGJvbmQgdG8gYmVjb21lIGFuZCBtYWludGFpbiB0aGUgcm9sZSBvZiBhIHZhbGlkYXRvci5ITWluaW11bUFjdGl2ZVN0YWtlAQAYQAAAAAAAAAAAAAAAAAAAAAAEEQEgVGhlIG1pbmltdW0gYWN0aXZlIG5vbWluYXRvciBzdGFrZSBvZiB0aGUgbGFzdCBzdWNjZXNzZnVsIGVsZWN0aW9uLjRNaW5Db21taXNzaW9uAQCUEAAAAAAM6CBUaGUgbWluaW11bSBhbW91bnQgb2YgY29tbWlzc2lvbiB0aGF0IHZhbGlkYXRvcnMgY2FuIHNldC4AgCBJZiBzZXQgdG8gYDBgLCBubyBsaW1pdCBleGlzdHMuGExlZGdlcgABBAIAFQkEABBFASBNYXAgZnJvbSBhbGwgKHVubG9ja2VkKSAiY29udHJvbGxlciIgYWNjb3VudHMgdG8gdGhlIGluZm8gcmVnYXJkaW5nIHRoZSBzdGFraW5nLgB1ASBOb3RlOiBBbGwgdGhlIHJlYWRzIGFuZCBtdXRhdGlvbnMgdG8gdGhpcyBzdG9yYWdlICpNVVNUKiBiZSBkb25lIHRocm91Z2ggdGhlIG1ldGhvZHMgZXhwb3NlZOggYnkgW2BTdGFraW5nTGVkZ2VyYF0gdG8gZW5zdXJlIGRhdGEgYW5kIGxvY2sgY29uc2lzdGVuY3kuFFBheWVlAAEEBQCQBAAM5CBXaGVyZSB0aGUgcmV3YXJkIHBheW1lbnQgc2hvdWxkIGJlIG1hZGUuIEtleWVkIGJ5IHN0YXNoLgDQIFRXT1gtTk9URTogU0FGRSBzaW5jZSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLihWYWxpZGF0b3JzAQEEBQCYCAAADEUBIFRoZSBtYXAgZnJvbSAod2FubmFiZSkgdmFsaWRhdG9yIHN0YXNoIGtleSB0byB0aGUgcHJlZmVyZW5jZXMgb2YgdGhhdCB2YWxpZGF0b3IuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guUENvdW50ZXJGb3JWYWxpZGF0b3JzAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXBITWF4VmFsaWRhdG9yc0NvdW50AAAQBAAMMQEgVGhlIG1heGltdW0gdmFsaWRhdG9yIGNvdW50IGJlZm9yZSB3ZSBzdG9wIGFsbG93aW5nIG5ldyB2YWxpZGF0b3JzIHRvIGpvaW4uANAgV2hlbiB0aGlzIHZhbHVlIGlzIG5vdCBzZXQsIG5vIGxpbWl0cyBhcmUgZW5mb3JjZWQuKE5vbWluYXRvcnMAAQQFAB0JBABMdQEgVGhlIG1hcCBmcm9tIG5vbWluYXRvciBzdGFzaCBrZXkgdG8gdGhlaXIgbm9taW5hdGlvbiBwcmVmZXJlbmNlcywgbmFtZWx5IHRoZSB2YWxpZGF0b3JzIHRoYXRYIHRoZXkgd2lzaCB0byBzdXBwb3J0LgA5ASBOb3RlIHRoYXQgdGhlIGtleXMgb2YgdGhpcyBzdG9yYWdlIG1hcCBtaWdodCBiZWNvbWUgbm9uLWRlY29kYWJsZSBpbiBjYXNlIHRoZS0BIGFjY291bnQncyBbYE5vbWluYXRpb25zUXVvdGE6Ok1heE5vbWluYXRpb25zYF0gY29uZmlndXJhdGlvbiBpcyBkZWNyZWFzZWQukCBJbiB0aGlzIHJhcmUgY2FzZSwgdGhlc2Ugbm9taW5hdG9yc2UBIGFyZSBzdGlsbCBleGlzdGVudCBpbiBzdG9yYWdlLCB0aGVpciBrZXkgaXMgY29ycmVjdCBhbmQgcmV0cmlldmFibGUgKGkuZS4gYGNvbnRhaW5zX2tleWBxASBpbmRpY2F0ZXMgdGhhdCB0aGV5IGV4aXN0KSwgYnV0IHRoZWlyIHZhbHVlIGNhbm5vdCBiZSBkZWNvZGVkLiBUaGVyZWZvcmUsIHRoZSBub24tZGVjb2RhYmxlbQEgbm9taW5hdG9ycyB3aWxsIGVmZmVjdGl2ZWx5IG5vdC1leGlzdCwgdW50aWwgdGhleSByZS1zdWJtaXQgdGhlaXIgcHJlZmVyZW5jZXMgc3VjaCB0aGF0IGl0AQEgaXMgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhlIG5ld2x5IHNldCBgQ29uZmlnOjpNYXhOb21pbmF0aW9uc2AuAGEBIFRoaXMgaW1wbGllcyB0aGF0IGA6Oml0ZXJfa2V5cygpLmNvdW50KClgIGFuZCBgOjppdGVyKCkuY291bnQoKWAgbWlnaHQgcmV0dXJuIGRpZmZlcmVudG0BIHZhbHVlcyBmb3IgdGhpcyBtYXAuIE1vcmVvdmVyLCB0aGUgbWFpbiBgOjpjb3VudCgpYCBpcyBhbGlnbmVkIHdpdGggdGhlIGZvcm1lciwgbmFtZWx5IHRoZWwgbnVtYmVyIG9mIGtleXMgdGhhdCBleGlzdC4AbQEgTGFzdGx5LCBpZiBhbnkgb2YgdGhlIG5vbWluYXRvcnMgYmVjb21lIG5vbi1kZWNvZGFibGUsIHRoZXkgY2FuIGJlIGNoaWxsZWQgaW1tZWRpYXRlbHkgdmlhuCBbYENhbGw6OmNoaWxsX290aGVyYF0gZGlzcGF0Y2hhYmxlIGJ5IGFueW9uZS4A0CBUV09YLU5PVEU6IFNBRkUgc2luY2UgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC5QQ291bnRlckZvck5vbWluYXRvcnMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcDhWaXJ0dWFsU3Rha2VycwABBAUAoQEEABjIIFN0YWtlcnMgd2hvc2UgZnVuZHMgYXJlIG1hbmFnZWQgYnkgb3RoZXIgcGFsbGV0cy4AdQEgVGhpcyBwYWxsZXQgZG9lcyBub3QgYXBwbHkgYW55IGxvY2tzIG9uIHRoZW0sIHRoZXJlZm9yZSB0aGV5IGFyZSBvbmx5IHZpcnR1YWxseSBib25kZWQuIFRoZXltASBhcmUgZXhwZWN0ZWQgdG8gYmUga2V5bGVzcyBhY2NvdW50cyBhbmQgaGVuY2Ugc2hvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIG11dGF0ZSB0aGVpciBsZWRnZXJxASBkaXJlY3RseSB2aWEgdGhpcyBwYWxsZXQuIEluc3RlYWQsIHRoZXNlIGFjY291bnRzIGFyZSBtYW5hZ2VkIGJ5IG90aGVyIHBhbGxldHMgYW5kIGFjY2Vzc2VkKQEgdmlhIGxvdyBsZXZlbCBhcGlzLiBXZSBrZWVwIHRyYWNrIG9mIHRoZW0gdG8gZG8gbWluaW1hbCBpbnRlZ3JpdHkgY2hlY2tzLmBDb3VudGVyRm9yVmlydHVhbFN0YWtlcnMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcEhNYXhOb21pbmF0b3JzQ291bnQAABAEAAwxASBUaGUgbWF4aW11bSBub21pbmF0b3IgY291bnQgYmVmb3JlIHdlIHN0b3AgYWxsb3dpbmcgbmV3IHZhbGlkYXRvcnMgdG8gam9pbi4A0CBXaGVuIHRoaXMgdmFsdWUgaXMgbm90IHNldCwgbm8gbGltaXRzIGFyZSBlbmZvcmNlZC4oQ3VycmVudEVyYQAAEAQAEFwgVGhlIGN1cnJlbnQgZXJhIGluZGV4LgBlASBUaGlzIGlzIHRoZSBsYXRlc3QgcGxhbm5lZCBlcmEsIGRlcGVuZGluZyBvbiBob3cgdGhlIFNlc3Npb24gcGFsbGV0IHF1ZXVlcyB0aGUgdmFsaWRhdG9ygCBzZXQsIGl0IG1pZ2h0IGJlIGFjdGl2ZSBvciBub3QuJEFjdGl2ZUVyYQAAJQkEABDYIFRoZSBhY3RpdmUgZXJhIGluZm9ybWF0aW9uLCBpdCBob2xkcyBpbmRleCBhbmQgc3RhcnQuAFkBIFRoZSBhY3RpdmUgZXJhIGlzIHRoZSBlcmEgYmVpbmcgY3VycmVudGx5IHJld2FyZGVkLiBWYWxpZGF0b3Igc2V0IG9mIHRoaXMgZXJhIG11c3QgYmWsIGVxdWFsIHRvIFtgU2Vzc2lvbkludGVyZmFjZTo6dmFsaWRhdG9yc2BdLlRFcmFzU3RhcnRTZXNzaW9uSW5kZXgAAQQFEBAEABBVASBUaGUgc2Vzc2lvbiBpbmRleCBhdCB3aGljaCB0aGUgZXJhIHN0YXJ0IGZvciB0aGUgbGFzdCBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy4AYQEgTm90ZTogVGhpcyB0cmFja3MgdGhlIHN0YXJ0aW5nIHNlc3Npb24gKGkuZS4gc2Vzc2lvbiBpbmRleCB3aGVuIGVyYSBzdGFydCBiZWluZyBhY3RpdmUp8CBmb3IgdGhlIGVyYXMgaW4gYFtDdXJyZW50RXJhIC0gSElTVE9SWV9ERVBUSCwgQ3VycmVudEVyYV1gLixFcmFzU3Rha2VycwEBCAUFLQkxCQwAAAAgeCBFeHBvc3VyZSBvZiB2YWxpZGF0b3IgYXQgZXJhLgBhASBUaGlzIGlzIGtleWVkIGZpcnN0IGJ5IHRoZSBlcmEgaW5kZXggdG8gYWxsb3cgYnVsayBkZWxldGlvbiBhbmQgdGhlbiB0aGUgc3Rhc2ggYWNjb3VudC4AzCBJcyBpdCByZW1vdmVkIGFmdGVyIFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLkEBIElmIHN0YWtlcnMgaGFzbid0IGJlZW4gc2V0IG9yIGhhcyBiZWVuIHJlbW92ZWQgdGhlbiBlbXB0eSBleHBvc3VyZSBpcyByZXR1cm5lZC4AKQEgTm90ZTogRGVwcmVjYXRlZCBzaW5jZSB2MTQuIFVzZSBgRXJhSW5mb2AgaW5zdGVhZCB0byB3b3JrIHdpdGggZXhwb3N1cmVzLkxFcmFzU3Rha2Vyc092ZXJ2aWV3AAEIBQUtCT0JBAAwuCBTdW1tYXJ5IG9mIHZhbGlkYXRvciBleHBvc3VyZSBhdCBhIGdpdmVuIGVyYS4AcQEgVGhpcyBjb250YWlucyB0aGUgdG90YWwgc3Rha2UgaW4gc3VwcG9ydCBvZiB0aGUgdmFsaWRhdG9yIGFuZCB0aGVpciBvd24gc3Rha2UuIEluIGFkZGl0aW9uLHUBIGl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gZ2V0IHRoZSBudW1iZXIgb2Ygbm9taW5hdG9ycyBiYWNraW5nIHRoaXMgdmFsaWRhdG9yIGFuZCB0aGUgbnVtYmVyIG9maQEgZXhwb3N1cmUgcGFnZXMgdGhleSBhcmUgZGl2aWRlZCBpbnRvLiBUaGUgcGFnZSBjb3VudCBpcyB1c2VmdWwgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2asIHBhZ2VzIG9mIHJld2FyZHMgdGhhdCBuZWVkcyB0byBiZSBjbGFpbWVkLgBhASBUaGlzIGlzIGtleWVkIGZpcnN0IGJ5IHRoZSBlcmEgaW5kZXggdG8gYWxsb3cgYnVsayBkZWxldGlvbiBhbmQgdGhlbiB0aGUgc3Rhc2ggYWNjb3VudC6sIFNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHRocm91Z2ggYEVyYUluZm9gLgDMIElzIGl0IHJlbW92ZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuQQEgSWYgc3Rha2VycyBoYXNuJ3QgYmVlbiBzZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCB0aGVuIGVtcHR5IG92ZXJ2aWV3IGlzIHJldHVybmVkLkhFcmFzU3Rha2Vyc0NsaXBwZWQBAQgFBS0JMQkMAAAAQJggQ2xpcHBlZCBFeHBvc3VyZSBvZiB2YWxpZGF0b3IgYXQgZXJhLgBlASBOb3RlOiBUaGlzIGlzIGRlcHJlY2F0ZWQsIHNob3VsZCBiZSB1c2VkIGFzIHJlYWQtb25seSBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuMQEgTmV3IGBFeHBvc3VyZWBzIGFyZSBzdG9yZWQgaW4gYSBwYWdlZCBtYW5uZXIgaW4gYEVyYXNTdGFrZXJzUGFnZWRgIGluc3RlYWQuAFkBIFRoaXMgaXMgc2ltaWxhciB0byBbYEVyYXNTdGFrZXJzYF0gYnV0IG51bWJlciBvZiBub21pbmF0b3JzIGV4cG9zZWQgaXMgcmVkdWNlZCB0byB0aGWoIGBUOjpNYXhFeHBvc3VyZVBhZ2VTaXplYCBiaWdnZXN0IHN0YWtlcnMuHQEgKE5vdGU6IHRoZSBmaWVsZCBgdG90YWxgIGFuZCBgb3duYCBvZiB0aGUgZXhwb3N1cmUgcmVtYWlucyB1bmNoYW5nZWQpLvQgVGhpcyBpcyB1c2VkIHRvIGxpbWl0IHRoZSBpL28gY29zdCBmb3IgdGhlIG5vbWluYXRvciBwYXlvdXQuAF0BIFRoaXMgaXMga2V5ZWQgZmlzdCBieSB0aGUgZXJhIGluZGV4IHRvIGFsbG93IGJ1bGsgZGVsZXRpb24gYW5kIHRoZW4gdGhlIHN0YXNoIGFjY291bnQuAMwgSXQgaXMgcmVtb3ZlZCBhZnRlciBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy5BASBJZiBzdGFrZXJzIGhhc24ndCBiZWVuIHNldCBvciBoYXMgYmVlbiByZW1vdmVkIHRoZW4gZW1wdHkgZXhwb3N1cmUgaXMgcmV0dXJuZWQuACkBIE5vdGU6IERlcHJlY2F0ZWQgc2luY2UgdjE0LiBVc2UgYEVyYUluZm9gIGluc3RlYWQgdG8gd29yayB3aXRoIGV4cG9zdXJlcy5ARXJhc1N0YWtlcnNQYWdlZAABDAUFBUEJRQkEABjAIFBhZ2luYXRlZCBleHBvc3VyZSBvZiBhIHZhbGlkYXRvciBhdCBnaXZlbiBlcmEuAHEBIFRoaXMgaXMga2V5ZWQgZmlyc3QgYnkgdGhlIGVyYSBpbmRleCB0byBhbGxvdyBidWxrIGRlbGV0aW9uLCB0aGVuIHN0YXNoIGFjY291bnQgYW5kIGZpbmFsbHnUIHRoZSBwYWdlLiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB0aHJvdWdoIGBFcmFJbmZvYC4A1CBUaGlzIGlzIGNsZWFyZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuOENsYWltZWRSZXdhcmRzAQEIBQUtCcEBBAAY3CBIaXN0b3J5IG9mIGNsYWltZWQgcGFnZWQgcmV3YXJkcyBieSBlcmEgYW5kIHZhbGlkYXRvci4AaQEgVGhpcyBpcyBrZXllZCBieSBlcmEgYW5kIHZhbGlkYXRvciBzdGFzaCB3aGljaCBtYXBzIHRvIHRoZSBzZXQgb2YgcGFnZSBpbmRleGVzIHdoaWNoIGhhdmU4IGJlZW4gY2xhaW1lZC4AzCBJdCBpcyByZW1vdmVkIGFmdGVyIFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLkhFcmFzVmFsaWRhdG9yUHJlZnMBAQgFBS0JmAgAABQRASBTaW1pbGFyIHRvIGBFcmFzU3Rha2Vyc2AsIHRoaXMgaG9sZHMgdGhlIHByZWZlcmVuY2VzIG9mIHZhbGlkYXRvcnMuAGEBIFRoaXMgaXMga2V5ZWQgZmlyc3QgYnkgdGhlIGVyYSBpbmRleCB0byBhbGxvdyBidWxrIGRlbGV0aW9uIGFuZCB0aGVuIHRoZSBzdGFzaCBhY2NvdW50LgDMIElzIGl0IHJlbW92ZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuTEVyYXNWYWxpZGF0b3JSZXdhcmQAAQQFEBgEAAwtASBUaGUgdG90YWwgdmFsaWRhdG9yIGVyYSBwYXlvdXQgZm9yIHRoZSBsYXN0IFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLgAhASBFcmFzIHRoYXQgaGF2ZW4ndCBmaW5pc2hlZCB5ZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCBkb2Vzbid0IGhhdmUgcmV3YXJkLkBFcmFzUmV3YXJkUG9pbnRzAQEEBRBJCRQAAAAAAAjQIFJld2FyZHMgZm9yIHRoZSBsYXN0IFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLiUBIElmIHJld2FyZCBoYXNuJ3QgYmVlbiBzZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCB0aGVuIDAgcmV3YXJkIGlzIHJldHVybmVkLjhFcmFzVG90YWxTdGFrZQEBBAUQGEAAAAAAAAAAAAAAAAAAAAAACBEBIFRoZSB0b3RhbCBhbW91bnQgc3Rha2VkIGZvciB0aGUgbGFzdCBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy4dASBJZiB0b3RhbCBoYXNuJ3QgYmVlbiBzZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCB0aGVuIDAgc3Rha2UgaXMgcmV0dXJuZWQuIEZvcmNlRXJhAQCgBAAEVCBNb2RlIG9mIGVyYSBmb3JjaW5nLkBNYXhTdGFrZWRSZXdhcmRzAAC9AQQADBkBIE1heGltdW0gc3Rha2VkIHJld2FyZHMsIGkuZS4gdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGVyYSBpbmZsYXRpb24gdGhhdGwgaXMgdXNlZCBmb3Igc3Rha2UgcmV3YXJkcy6sIFNlZSBbRXJhIHBheW91dF0oLi9pbmRleC5odG1sI2VyYS1wYXlvdXQpLkxTbGFzaFJld2FyZEZyYWN0aW9uAQCUEAAAAAAM+CBUaGUgcGVyY2VudGFnZSBvZiB0aGUgc2xhc2ggdGhhdCBpcyBkaXN0cmlidXRlZCB0byByZXBvcnRlcnMuAOQgVGhlIHJlc3Qgb2YgdGhlIHNsYXNoZWQgdmFsdWUgaXMgaGFuZGxlZCBieSB0aGUgYFNsYXNoYC5MQ2FuY2VsZWRTbGFzaFBheW91dAEAGEAAAAAAAAAAAAAAAAAAAAAACBUBIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgZ2l2ZW4gdG8gcmVwb3J0ZXJzIG9mIGEgc2xhc2ggZXZlbnQgd2hpY2ggd2Fz7CBjYW5jZWxlZCBieSBleHRyYW9yZGluYXJ5IGNpcmN1bXN0YW5jZXMgKGUuZy4gZ292ZXJuYW5jZSkuQFVuYXBwbGllZFNsYXNoZXMBAQQFEFkJBAAExCBBbGwgdW5hcHBsaWVkIHNsYXNoZXMgdGhhdCBhcmUgcXVldWVkIGZvciBsYXRlci4oQm9uZGVkRXJhcwEAQQgEABAlASBBIG1hcHBpbmcgZnJvbSBzdGlsbC1ib25kZWQgZXJhcyB0byB0aGUgZmlyc3Qgc2Vzc2lvbiBpbmRleCBvZiB0aGF0IGVyYS4AyCBNdXN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGZvciBlcmFzIGZvciB0aGUgcmFuZ2U6vCBgW2FjdGl2ZV9lcmEgLSBib3VuZGluZ19kdXJhdGlvbjsgYWN0aXZlX2VyYV1gTFZhbGlkYXRvclNsYXNoSW5FcmEAAQgFBS0JYQkEAAhFASBBbGwgc2xhc2hpbmcgZXZlbnRzIG9uIHZhbGlkYXRvcnMsIG1hcHBlZCBieSBlcmEgdG8gdGhlIGhpZ2hlc3Qgc2xhc2ggcHJvcG9ydGlvbnAgYW5kIHNsYXNoIHZhbHVlIG9mIHRoZSBlcmEuTE5vbWluYXRvclNsYXNoSW5FcmEAAQgFBS0JGAQABGEBIEFsbCBzbGFzaGluZyBldmVudHMgb24gbm9taW5hdG9ycywgbWFwcGVkIGJ5IGVyYSB0byB0aGUgaGlnaGVzdCBzbGFzaCB2YWx1ZSBvZiB0aGUgZXJhLjRTbGFzaGluZ1NwYW5zAAEEBQBlCQQABIwgU2xhc2hpbmcgc3BhbnMgZm9yIHN0YXNoIGFjY291bnRzLiRTcGFuU2xhc2gBAQQFVQlpCYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg9ASBSZWNvcmRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYXhpbXVtIHNsYXNoIG9mIGEgc3Rhc2ggd2l0aGluIGEgc2xhc2hpbmcgc3Bhbiy4IGFzIHdlbGwgYXMgaG93IG11Y2ggcmV3YXJkIGhhcyBiZWVuIHBhaWQgb3V0LlRDdXJyZW50UGxhbm5lZFNlc3Npb24BABAQAAAAAAzoIFRoZSBsYXN0IHBsYW5uZWQgc2Vzc2lvbiBzY2hlZHVsZWQgYnkgdGhlIHNlc3Npb24gcGFsbGV0LgBxASBUaGlzIGlzIGJhc2ljYWxseSBpbiBzeW5jIHdpdGggdGhlIGNhbGwgdG8gW2BwYWxsZXRfc2Vzc2lvbjo6U2Vzc2lvbk1hbmFnZXI6Om5ld19zZXNzaW9uYF0uSERpc2FibGVkVmFsaWRhdG9ycwEAwQEEABx1ASBJbmRpY2VzIG9mIHZhbGlkYXRvcnMgdGhhdCBoYXZlIG9mZmVuZGVkIGluIHRoZSBhY3RpdmUgZXJhLiBUaGUgb2ZmZW5kZXJzIGFyZSBkaXNhYmxlZCBmb3IgYWkBIHdob2xlIGVyYS4gRm9yIHRoaXMgcmVhc29uIHRoZXkgYXJlIGtlcHQgaGVyZSAtIG9ubHkgc3Rha2luZyBwYWxsZXQga25vd3MgYWJvdXQgZXJhcy4gVGhlVQEgaW1wbGVtZW50b3Igb2YgW2BEaXNhYmxpbmdTdHJhdGVneWBdIGRlZmluZXMgaWYgYSB2YWxpZGF0b3Igc2hvdWxkIGJlIGRpc2FibGVkIHdoaWNobQEgaW1wbGljaXRseSBtZWFucyB0aGF0IHRoZSBpbXBsZW1lbnRvciBhbHNvIGNvbnRyb2xzIHRoZSBtYXggbnVtYmVyIG9mIGRpc2FibGVkIHZhbGlkYXRvcnMuAG0BIFRoZSB2ZWMgaXMgYWx3YXlzIGtlcHQgc29ydGVkIHNvIHRoYXQgd2UgY2FuIGZpbmQgd2hldGhlciBhIGdpdmVuIHZhbGlkYXRvciBoYXMgcHJldmlvdXNseXggb2ZmZW5kZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC44Q2hpbGxUaHJlc2hvbGQAAL0BBAAMUQEgVGhlIHRocmVzaG9sZCBmb3Igd2hlbiB1c2VycyBjYW4gc3RhcnQgY2FsbGluZyBgY2hpbGxfb3RoZXJgIGZvciBvdGhlciB2YWxpZGF0b3JzIC9ZASBub21pbmF0b3JzLiBUaGUgdGhyZXNob2xkIGlzIGNvbXBhcmVkIHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMgLyBub21pbmF0b3JzKQEgKGBDb3VudEZvcipgKSBpbiB0aGUgc3lzdGVtIGNvbXBhcmVkIHRvIHRoZSBjb25maWd1cmVkIG1heCAoYE1heCpDb3VudGApLgG1AQGMGDBIaXN0b3J5RGVwdGgQEFQAAABQjCBOdW1iZXIgb2YgZXJhcyB0byBrZWVwIGluIGhpc3RvcnkuAOggRm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGtlcHQgZm9yIGVyYXMgaW4gYFtjdXJyZW50X2VyYSAtCQEgSGlzdG9yeURlcHRoLCBjdXJyZW50X2VyYV1gOiBgRXJhc1N0YWtlcnNgLCBgRXJhc1N0YWtlcnNDbGlwcGVkYCwFASBgRXJhc1ZhbGlkYXRvclByZWZzYCwgYEVyYXNWYWxpZGF0b3JSZXdhcmRgLCBgRXJhc1Jld2FyZFBvaW50c2AsRQEgYEVyYXNUb3RhbFN0YWtlYCwgYEVyYXNTdGFydFNlc3Npb25JbmRleGAsIGBDbGFpbWVkUmV3YXJkc2AsIGBFcmFzU3Rha2Vyc1BhZ2VkYCxcIGBFcmFzU3Rha2Vyc092ZXJ2aWV3YC4A5CBNdXN0IGJlIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGVyYXMgZGVsYXllZCBieSBzZXNzaW9uLvggSS5lLiBhY3RpdmUgZXJhIG11c3QgYWx3YXlzIGJlIGluIGhpc3RvcnkuIEkuZS4gYGFjdGl2ZV9lcmEgPsQgY3VycmVudF9lcmEgLSBoaXN0b3J5X2RlcHRoYCBtdXN0IGJlIGd1YXJhbnRlZWQuABEBIElmIG1pZ3JhdGluZyBhbiBleGlzdGluZyBwYWxsZXQgZnJvbSBzdG9yYWdlIHZhbHVlIHRvIGNvbmZpZyB2YWx1ZSzsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBzYW1lIHZhbHVlIG9yIGdyZWF0ZXIgYXMgaW4gc3RvcmFnZS4AFQEgTm90ZTogYEhpc3RvcnlEZXB0aGAgaXMgdXNlZCBhcyB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBgQm91bmRlZFZlY2AtASBpdGVtIGBTdGFraW5nTGVkZ2VyLmxlZ2FjeV9jbGFpbWVkX3Jld2FyZHNgLiBTZXR0aW5nIHRoaXMgdmFsdWUgbG93ZXIgdGhhbtggdGhlIGV4aXN0aW5nIHZhbHVlIGNhbiBsZWFkIHRvIGluY29uc2lzdGVuY2llcyBpbiB0aGUVASBgU3Rha2luZ0xlZGdlcmAgYW5kIHdpbGwgbmVlZCB0byBiZSBoYW5kbGVkIHByb3Blcmx5IGluIGEgbWlncmF0aW9uLvAgVGhlIHRlc3QgYHJlZHVjaW5nX2hpc3RvcnlfZGVwdGhfYWJydXB0YCBzaG93cyB0aGlzIGVmZmVjdC44U2Vzc2lvbnNQZXJFcmEQEAYAAAAEcCBOdW1iZXIgb2Ygc2Vzc2lvbnMgcGVyIGVyYS48Qm9uZGluZ0R1cmF0aW9uEBAcAAAABOQgTnVtYmVyIG9mIGVyYXMgdGhhdCBzdGFrZWQgZnVuZHMgbXVzdCByZW1haW4gYm9uZGVkIGZvci5IU2xhc2hEZWZlckR1cmF0aW9uEBAbAAAAEAEBIE51bWJlciBvZiBlcmFzIHRoYXQgc2xhc2hlcyBhcmUgZGVmZXJyZWQgYnksIGFmdGVyIGNvbXB1dGF0aW9uLgANASBUaGlzIHNob3VsZCBiZSBsZXNzIHRoYW4gdGhlIGJvbmRpbmcgZHVyYXRpb24uIFNldCB0byAwIGlmIHNsYXNoZXMVASBzaG91bGQgYmUgYXBwbGllZCBpbW1lZGlhdGVseSwgd2l0aG91dCBvcHBvcnR1bml0eSBmb3IgaW50ZXJ2ZW50aW9uLkxNYXhFeHBvc3VyZVBhZ2VTaXplEBAAAgAALLAgVGhlIG1heGltdW0gc2l6ZSBvZiBlYWNoIGBUOjpFeHBvc3VyZVBhZ2VgLgApASBBbiBgRXhwb3N1cmVQYWdlYCBpcyB3ZWFrbHkgYm91bmRlZCB0byBhIG1heGltdW0gb2YgYE1heEV4cG9zdXJlUGFnZVNpemVgMCBub21pbmF0b3JzLgAhASBGb3Igb2xkZXIgbm9uLXBhZ2VkIGV4cG9zdXJlLCBhIHJld2FyZCBwYXlvdXQgd2FzIHJlc3RyaWN0ZWQgdG8gdGhlIHRvcCEBIGBNYXhFeHBvc3VyZVBhZ2VTaXplYCBub21pbmF0b3JzLiBUaGlzIGlzIHRvIGxpbWl0IHRoZSBpL28gY29zdCBmb3IgdGhlSCBub21pbmF0b3IgcGF5b3V0LgBZASBOb3RlOiBgTWF4RXhwb3N1cmVQYWdlU2l6ZWAgaXMgdXNlZCB0byBib3VuZCBgQ2xhaW1lZFJld2FyZHNgIGFuZCBpcyB1bnNhZmUgdG8gcmVkdWNlkCB3aXRob3V0IGhhbmRsaW5nIGl0IGluIGEgbWlncmF0aW9uLkhNYXhVbmxvY2tpbmdDaHVua3MQECAAAAAoBQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGB1bmxvY2tpbmdgIGNodW5rcyBhIFtgU3Rha2luZ0xlZGdlcmBdIGNhbgkBIGhhdmUuIEVmZmVjdGl2ZWx5IGRldGVybWluZXMgaG93IG1hbnkgdW5pcXVlIGVyYXMgYSBzdGFrZXIgbWF5IGJlOCB1bmJvbmRpbmcgaW4uAPggTm90ZTogYE1heFVubG9ja2luZ0NodW5rc2AgaXMgdXNlZCBhcyB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZQEBIGBCb3VuZGVkVmVjYCBpdGVtIGBTdGFraW5nTGVkZ2VyLnVubG9ja2luZ2AuIFNldHRpbmcgdGhpcyB2YWx1ZQUBIGxvd2VyIHRoYW4gdGhlIGV4aXN0aW5nIHZhbHVlIGNhbiBsZWFkIHRvIGluY29uc2lzdGVuY2llcyBpbiB0aGUJASBgU3Rha2luZ0xlZGdlcmAgYW5kIHdpbGwgbmVlZCB0byBiZSBoYW5kbGVkIHByb3Blcmx5IGluIGEgcnVudGltZQUBIG1pZ3JhdGlvbi4gVGhlIHRlc3QgYHJlZHVjaW5nX21heF91bmxvY2tpbmdfY2h1bmtzX2FicnVwdGAgc2hvd3M0IHRoaXMgZWZmZWN0LgFtCQYAIE9mZmVuY2VzASBPZmZlbmNlcwgcUmVwb3J0cwABBAU0cQkEAARJASBUaGUgcHJpbWFyeSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBhbGwgb2ZmZW5jZSByZWNvcmRzIGtleWVkIGJ5IHJlcG9ydCBpZGVudGlmaWVycy5YQ29uY3VycmVudFJlcG9ydHNJbmRleAEBCAUFeQkVAwQABCkBIEEgdmVjdG9yIG9mIHJlcG9ydHMgb2YgdGhlIHNhbWUga2luZCB0aGF0IGhhcHBlbmVkIGF0IHRoZSBzYW1lIHRpbWUgc2xvdC4AAaQAAAcAKEhpc3RvcmljYWwBKEhpc3RvcmljYWwISEhpc3RvcmljYWxTZXNzaW9ucwABBAUQfQkEAARdASBNYXBwaW5nIGZyb20gaGlzdG9yaWNhbCBzZXNzaW9uIGluZGljZXMgdG8gc2Vzc2lvbi1kYXRhIHJvb3QgaGFzaCBhbmQgdmFsaWRhdG9yIGNvdW50LixTdG9yZWRSYW5nZQAA9QIEAATkIFRoZSByYW5nZSBvZiBoaXN0b3JpY2FsIHNlc3Npb25zIHdlIHN0b3JlLiBbZmlyc3QsIGxhc3QpAAAAACIAHFNlc3Npb24BHFNlc3Npb24cKFZhbGlkYXRvcnMBAK0BBAAEfCBUaGUgY3VycmVudCBzZXQgb2YgdmFsaWRhdG9ycy4wQ3VycmVudEluZGV4AQAQEAAAAAAEeCBDdXJyZW50IGluZGV4IG9mIHRoZSBzZXNzaW9uLjRRdWV1ZWRDaGFuZ2VkAQAgBAAIOQEgVHJ1ZSBpZiB0aGUgdW5kZXJseWluZyBlY29ub21pYyBpZGVudGl0aWVzIG9yIHdlaWdodGluZyBiZWhpbmQgdGhlIHZhbGlkYXRvcnOkIGhhcyBjaGFuZ2VkIGluIHRoZSBxdWV1ZWQgdmFsaWRhdG9yIHNldC4oUXVldWVkS2V5cwEAgQkEAAg9ASBUaGUgcXVldWVkIGtleXMgZm9yIHRoZSBuZXh0IHNlc3Npb24uIFdoZW4gdGhlIG5leHQgc2Vzc2lvbiBiZWdpbnMsIHRoZXNlIGtleXPgIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkYXRvcidzIHNlc3Npb24ga2V5cy5IRGlzYWJsZWRWYWxpZGF0b3JzAQDBAQQAFIAgSW5kaWNlcyBvZiBkaXNhYmxlZCB2YWxpZGF0b3JzLgA9ASBUaGUgdmVjIGlzIGFsd2F5cyBrZXB0IHNvcnRlZCBzbyB0aGF0IHdlIGNhbiBmaW5kIHdoZXRoZXIgYSBnaXZlbiB2YWxpZGF0b3IgaXM9ASBkaXNhYmxlZCB1c2luZyBiaW5hcnkgc2VhcmNoLiBJdCBnZXRzIGNsZWFyZWQgd2hlbiBgb25fc2Vzc2lvbl9lbmRpbmdgIHJldHVybnNkIGEgbmV3IHNldCBvZiBpZGVudGl0aWVzLiBOZXh0S2V5cwABBAUA9QEEAAScIFRoZSBuZXh0IHNlc3Npb24ga2V5cyBmb3IgYSB2YWxpZGF0b3IuIEtleU93bmVyAAEEBYkJAAQABAkBIFRoZSBvd25lciBvZiBhIGtleS4gVGhlIGtleSBpcyB0aGUgYEtleVR5cGVJZGAgKyB0aGUgZW5jb2RlZCBrZXkuAfEBAawAAZEJCAAcR3JhbmRwYQEcR3JhbmRwYRwUU3RhdGUBAJUJBAAEkCBTdGF0ZSBvZiB0aGUgY3VycmVudCBhdXRob3JpdHkgc2V0LjRQZW5kaW5nQ2hhbmdlAACZCQQABMQgUGVuZGluZyBjaGFuZ2U6IChzaWduYWxlZCBhdCwgc2NoZWR1bGVkIGNoYW5nZSkuKE5leHRGb3JjZWQAABAEAAS8IG5leHQgYmxvY2sgbnVtYmVyIHdoZXJlIHdlIGNhbiBmb3JjZSBhIGNoYW5nZS4cU3RhbGxlZAAA9QIEAASQIGB0cnVlYCBpZiB3ZSBhcmUgY3VycmVudGx5IHN0YWxsZWQuMEN1cnJlbnRTZXRJZAEAMCAAAAAAAAAAAAhdASBUaGUgbnVtYmVyIG9mIGNoYW5nZXMgKGJvdGggaW4gdGVybXMgb2Yga2V5cyBhbmQgdW5kZXJseWluZyBlY29ub21pYyByZXNwb25zaWJpbGl0aWVzKcQgaW4gdGhlICJzZXQiIG9mIEdyYW5kcGEgdmFsaWRhdG9ycyBmcm9tIGdlbmVzaXMuMFNldElkU2Vzc2lvbgABBAUwEAQAKFkBIEEgbWFwcGluZyBmcm9tIGdyYW5kcGEgc2V0IElEIHRvIHRoZSBpbmRleCBvZiB0aGUgKm1vc3QgcmVjZW50KiBzZXNzaW9uIGZvciB3aGljaCBpdHNoIG1lbWJlcnMgd2VyZSByZXNwb25zaWJsZS4ARQEgVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHZhbGlkYXRpbmcgZXF1aXZvY2F0aW9uIHByb29mcy4gQW4gZXF1aXZvY2F0aW9uIHByb29mIG11c3RNASBjb250YWlucyBhIGtleS1vd25lcnNoaXAgcHJvb2YgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiwgdGhlcmVmb3JlIHdlIG5lZWQgYSB3YXkgdG8gdGllRQEgdG9nZXRoZXIgc2Vzc2lvbnMgYW5kIEdSQU5EUEEgc2V0IGlkcywgaS5lLiB3ZSBuZWVkIHRvIHZhbGlkYXRlIHRoYXQgYSB2YWxpZGF0b3JBASB3YXMgdGhlIG93bmVyIG9mIGEgZ2l2ZW4ga2V5IG9uIGEgZ2l2ZW4gc2Vzc2lvbiwgYW5kIHdoYXQgdGhlIGFjdGl2ZSBzZXQgSUQgd2FzVCBkdXJpbmcgdGhhdCBzZXNzaW9uLgC4IFRXT1gtTk9URTogYFNldElkYCBpcyBub3QgdW5kZXIgdXNlciBjb250cm9sLixBdXRob3JpdGllcwEAnQkEAASEIFRoZSBjdXJyZW50IGxpc3Qgb2YgYXV0aG9yaXRpZXMuAQ0CAbAMOE1heEF1dGhvcml0aWVzEBCghgEABFwgTWF4IEF1dGhvcml0aWVzIGluIHVzZTRNYXhOb21pbmF0b3JzEBAAAgAABNQgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5vbWluYXRvcnMgZm9yIGVhY2ggdmFsaWRhdG9yLlhNYXhTZXRJZFNlc3Npb25FbnRyaWVzMCCoAAAAAAAAABg5ASBUaGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyB0byBrZWVwIGluIHRoZSBzZXQgaWQgdG8gc2Vzc2lvbiBpbmRleCBtYXBwaW5nLgAxASBTaW5jZSB0aGUgYFNldElkU2Vzc2lvbmAgbWFwIGlzIG9ubHkgdXNlZCBmb3IgdmFsaWRhdGluZyBlcXVpdm9jYXRpb25zIHRoaXMpASB2YWx1ZSBzaG91bGQgcmVsYXRlIHRvIHRoZSBib25kaW5nIGR1cmF0aW9uIG9mIHdoYXRldmVyIHN0YWtpbmcgc3lzdGVtIGlzNQEgYmVpbmcgdXNlZCAoaWYgYW55KS4gSWYgZXF1aXZvY2F0aW9uIGhhbmRsaW5nIGlzIG5vdCBlbmFibGVkIHRoZW4gdGhpcyB2YWx1ZTQgY2FuIGJlIHplcm8uAaEJCgBIQXV0aG9yaXR5RGlzY292ZXJ5AUhBdXRob3JpdHlEaXNjb3ZlcnkIEEtleXMBAKUJBAAEjCBLZXlzIG9mIHRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQuIE5leHRLZXlzAQClCQQABIAgS2V5cyBvZiB0aGUgbmV4dCBhdXRob3JpdHkgc2V0LgAAAAAMACBUcmVhc3VyeQEgVHJlYXN1cnkYNFByb3Bvc2FsQ291bnQBABAQAAAAAASkIE51bWJlciBvZiBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4kUHJvcG9zYWxzAAEEBRCtCQQABHwgUHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuLERlYWN0aXZhdGVkAQAYQAAAAAAAAAAAAAAAAAAAAAAE8CBUaGUgYW1vdW50IHdoaWNoIGhhcyBiZWVuIHJlcG9ydGVkIGFzIGluYWN0aXZlIHRvIEN1cnJlbmN5LiRBcHByb3ZhbHMBALEJBAAE+CBQcm9wb3NhbCBpbmRpY2VzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGJ1dCBub3QgeWV0IGF3YXJkZWQuKFNwZW5kQ291bnQBABAQAAAAAASkIFRoZSBjb3VudCBvZiBzcGVuZHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4YU3BlbmRzAAEEBRC1CQQABNAgU3BlbmRzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGFuZCBiZWluZyBwcm9jZXNzZWQuATkCAcAULFNwZW5kUGVyaW9kEBCAUQEABIggUGVyaW9kIGJldHdlZW4gc3VjY2Vzc2l2ZSBzcGVuZHMuEEJ1cm69CRDQBwAABBEBIFBlcmNlbnRhZ2Ugb2Ygc3BhcmUgZnVuZHMgKGlmIGFueSkgdGhhdCBhcmUgYnVybnQgcGVyIHNwZW5kIHBlcmlvZC4gUGFsbGV0SWTBCSBweS90cnNyeQQZASBUaGUgdHJlYXN1cnkncyBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4wTWF4QXBwcm92YWxzEBBkAAAADBUBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhcHByb3ZhbHMgdGhhdCBjYW4gd2FpdCBpbiB0aGUgc3BlbmRpbmcgcXVldWUuAE0BIE5PVEU6IFRoaXMgcGFyYW1ldGVyIGlzIGFsc28gdXNlZCB3aXRoaW4gdGhlIEJvdW50aWVzIFBhbGxldCBleHRlbnNpb24gaWYgZW5hYmxlZC4wUGF5b3V0UGVyaW9kEBCAlwYABBkBIFRoZSBwZXJpb2QgZHVyaW5nIHdoaWNoIGFuIGFwcHJvdmVkIHRyZWFzdXJ5IHNwZW5kIGhhcyB0byBiZSBjbGFpbWVkLgHFCRIAQENvbnZpY3Rpb25Wb3RpbmcBQENvbnZpY3Rpb25Wb3RpbmcIJFZvdGluZ0ZvcgEBCAUFyQnNCdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIdQEgQWxsIHZvdGluZyBmb3IgYSBwYXJ0aWN1bGFyIHZvdGVyIGluIGEgcGFydGljdWxhciB2b3RpbmcgY2xhc3MuIFdlIHN0b3JlIHRoZSBiYWxhbmNlIGZvciB0aGWcIG51bWJlciBvZiB2b3RlcyB0aGF0IHdlIGhhdmUgcmVjb3JkZWQuNENsYXNzTG9ja3NGb3IBAQQFAO0JBAAMaQEgVGhlIHZvdGluZyBjbGFzc2VzIHdoaWNoIGhhdmUgYSBub24temVybyBsb2NrIHJlcXVpcmVtZW50IGFuZCB0aGUgbG9jayBhbW91bnRzIHdoaWNoIHRoZXltASByZXF1aXJlLiBUaGUgYWN0dWFsIGFtb3VudCBsb2NrZWQgb24gYmVoYWxmIG9mIHRoaXMgcGFsbGV0IHNob3VsZCBhbHdheXMgYmUgdGhlIG1heGltdW0gb2YsIHRoaXMgbGlzdC4BQQIBTQEIIE1heFZvdGVzEBAAAgAAEPAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdm90ZXMgYW4gYWNjb3VudCBtYXkgaGF2ZS4AVQEgQWxzbyB1c2VkIHRvIGNvbXB1dGUgd2VpZ2h0LCBhbiBvdmVybHkgbGFyZ2UgdmFsdWUgY2FuIGxlYWQgdG8gZXh0cmluc2ljcyB3aXRoIGxhcmdlwCB3ZWlnaHQgZXN0aW1hdGlvbjogc2VlIGBkZWxlZ2F0ZWAgZm9yIGluc3RhbmNlLkRWb3RlTG9ja2luZ1BlcmlvZBAQwIkBABCQIFRoZSBtaW5pbXVtIHBlcmlvZCBvZiB2b3RlIGxvY2tpbmcuAGUBIEl0IHNob3VsZCBiZSBubyBzaG9ydGVyIHRoYW4gZW5hY3RtZW50IHBlcmlvZCB0byBlbnN1cmUgdGhhdCBpbiB0aGUgY2FzZSBvZiBhbiBhcHByb3ZhbCxJASB0aG9zZSBzdWNjZXNzZnVsIHZvdGVycyBhcmUgbG9ja2VkIGludG8gdGhlIGNvbnNlcXVlbmNlcyB0aGF0IHRoZWlyIHZvdGVzIGVudGFpbC4B+QkUACRSZWZlcmVuZGEBJFJlZmVyZW5kYRQ8UmVmZXJlbmR1bUNvdW50AQAQEAAAAAAEMQEgVGhlIG5leHQgZnJlZSByZWZlcmVuZHVtIGluZGV4LCBha2EgdGhlIG51bWJlciBvZiByZWZlcmVuZGEgc3RhcnRlZCBzbyBmYXIuRFJlZmVyZW5kdW1JbmZvRm9yAAEEAhD9CQQABLQgSW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgZ2l2ZW4gcmVmZXJlbmR1bS4oVHJhY2tRdWV1ZQEBBAVVAR0KBAAQXQEgVGhlIHNvcnRlZCBsaXN0IG9mIHJlZmVyZW5kYSByZWFkeSB0byBiZSBkZWNpZGVkIGJ1dCBub3QgeWV0IGJlaW5nIGRlY2lkZWQsIG9yZGVyZWQgYnl8IGNvbnZpY3Rpb24td2VpZ2h0ZWQgYXBwcm92YWxzLgBBASBUaGlzIHNob3VsZCBiZSBlbXB0eSBpZiBgRGVjaWRpbmdDb3VudGAgaXMgbGVzcyB0aGFuIGBUcmFja0luZm86Om1heF9kZWNpZGluZ2AuNERlY2lkaW5nQ291bnQBAQQFVQEQEAAAAAAExCBUaGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBiZWluZyBkZWNpZGVkIGN1cnJlbnRseS4oTWV0YWRhdGFPZgABBAIQNAQAGAUBIFRoZSBtZXRhZGF0YSBpcyBhIGdlbmVyYWwgaW5mb3JtYXRpb24gY29uY2VybmluZyB0aGUgcmVmZXJlbmR1bS5JASBUaGUgYEhhc2hgIHJlZmVycyB0byB0aGUgcHJlaW1hZ2Ugb2YgdGhlIGBQcmVpbWFnZXNgIHByb3ZpZGVyIHdoaWNoIGNhbiBiZSBhIEpTT06IIGR1bXAgb3IgSVBGUyBoYXNoIG9mIGEgSlNPTiBmaWxlLgB1ASBDb25zaWRlciBhIGdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgYSBtZXRhZGF0YSBvZiBmaW5pc2hlZCByZWZlcmVuZHVtcyB0byBgdW5yZXF1ZXN0YCAocmVtb3ZlKUQgbGFyZ2UgcHJlaW1hZ2VzLgFVAgFRARREU3VibWlzc2lvbkRlcG9zaXQYQFVN0sIHAAAAAAAAAAAAAAAENQEgVGhlIG1pbmltdW0gYW1vdW50IHRvIGJlIHVzZWQgYXMgYSBkZXBvc2l0IGZvciBhIHB1YmxpYyByZWZlcmVuZHVtIHByb3Bvc2FsLiRNYXhRdWV1ZWQQEGQAAAAE5CBNYXhpbXVtIHNpemUgb2YgdGhlIHJlZmVyZW5kdW0gcXVldWUgZm9yIGEgc2luZ2xlIHRyYWNrLkRVbmRlY2lkaW5nVGltZW91dBAQgBMDAAhVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBhZnRlciBzdWJtaXNzaW9uIHRoYXQgYSByZWZlcmVuZHVtIG11c3QgYmVnaW4gYmVpbmcgZGVjaWRlZCBieS7kIE9uY2UgdGhpcyBwYXNzZXMsIHRoZW4gYW55b25lIG1heSBjYW5jZWwgdGhlIHJlZmVyZW5kdW0uNEFsYXJtSW50ZXJ2YWwQEAEAAAAMXQEgUXVhbnRpemF0aW9uIGxldmVsIGZvciB0aGUgcmVmZXJlbmR1bSB3YWtldXAgc2NoZWR1bGVyLiBBIGhpZ2hlciBudW1iZXIgd2lsbCByZXN1bHQgaW5dASBmZXdlciBzdG9yYWdlIHJlYWRzL3dyaXRlcyBuZWVkZWQgZm9yIHNtYWxsZXIgdm90ZXJzLCBidXQgYWxzbyByZXN1bHQgaW4gZGVsYXlzIHRvIHRoZVUBIGF1dG9tYXRpYyByZWZlcmVuZHVtIHN0YXR1cyBjaGFuZ2VzLiBFeHBsaWNpdCBzZXJ2aWNpbmcgaW5zdHJ1Y3Rpb25zIGFyZSB1bmFmZmVjdGVkLhhUcmFja3MpChkXQAAAEHJvb3QBAAAAINM/JabXCwAAAAAAAAAAALAEAACAEwMAQDgAAEA4AAACkNc+DQAAAABXQ94TAAAAAFRD3hMAAAAAAADKmjsAAAAAAGXNHQEASHdoaXRlbGlzdGVkX2NhbGxlcmQAAABQyOw2Ki8BAAAAAAAAAAAALAEAAIATAwBkAAAAZAAAAALslyUQAAAAAHtXPBcAAAAAQjkvEgAAAAACDgCEAAAAAADW5h8BAAAAADlieQIAAAAAAgA8d2lzaF9mb3JfY2hhbmdlCgAAAKCQ2W1UXgIAAAAAAAAAAACwBAAAgBMDAEA4AABkAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAABlzR0KADRzdGFraW5nX2FkbWluCgAAAChkdhuVlwAAAAAAAAAAAACwBAAAgBMDAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8LACR0cmVhc3VyZXIKAAAACBR+BVEeAAAAAAAAAAAAALAEAACAEwMAgHAAAEA4AAACkNc+DQAAAABXQ94TAAAAAFRD3hMAAAAAAADKmjsAAAAAAGXNHQwALGxlYXNlX2FkbWluCgAAAChkdhuVlwAAAAAAAAAAAACwBAAAgBMDAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8NAEBmZWxsb3dzaGlwX2FkbWluCgAAAChkdhuVlwAAAAAAAAAAAACwBAAAgBMDAAgHAABkAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8OADRnZW5lcmFsX2FkbWluCgAAAChkdhuVlwAAAAAAAAAAAACwBAAAgBMDAAgHAABkAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAJZovQCAAAAAKMpawUAAAAALmtK/f////8PADRhdWN0aW9uX2FkbWluCgAAAChkdhuVlwAAAAAAAAAAAACwBAAAgBMDAAgHAABkAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAJZovQCAAAAAKMpawUAAAAALmtK/f////8UAFByZWZlcmVuZHVtX2NhbmNlbGxlcugDAABQyOw2Ki8BAAAAAAAAAAAAsAQAAMCJAQAIBwAAZAAAAADJQzAkAGXNHQDKmjsCXW94AAAAAADoLu0AAAAAAIxoif//////FQBEcmVmZXJlbmR1bV9raWxsZXLoAwAAkOmfEtPrBQAAAAAAAAAAALAEAACAEwMACAcAAGQAAAAAyUMwJABlzR0Aypo7Al1veAAAAAAA6C7tAAAAAACMaIn//////x4AMHNtYWxsX3RpcHBlcsgAAABVTdLCBwAAAAAAAAAAAAAACgAAAMCJAQBkAAAACgAAAABJkUkVAGXNHQDKmjsC+boYAAAAAAAqTTEAAAAAAGtZ5///////HwAoYmlnX3RpcHBlcmQAAABSBTecTQAAAAAAAAAAAAAAZAAAAMCJAQBYAgAAZAAAAABJkUkVAGXNHQDKmjsCaU8/AAAAAAA1ln0AAAAAAOU0wf//////IAA0c21hbGxfc3BlbmRlcjIAAAA0NSYaCAMAAAAAAAAAAAAAYAkAAIATAwAgHAAAQDgAAADJQzAkAGXNHQDKmjsCXW94AAAAAADoLu0AAAAAAIxoif//////IQA4bWVkaXVtX3NwZW5kZXIyAAAAaGpMNBAGAAAAAAAAAAAAAGAJAACAEwMAQDgAAEA4AAAAWwH2MABlzR0Aypo7AhFh2wAAAAAAv9GqAQAAAAAglyr//////yIALGJpZ19zcGVuZGVyMgAAANDUmGggDAAAAAAAAAAAAABgCQAAgBMDAIBwAABAOAAAAADKmjsAZc0dAMqaOwJBPLABAAAAAHVdNAMAAAAARdFl/v////8E4CBJbmZvcm1hdGlvbiBjb25jZXJuaW5nIHRoZSBkaWZmZXJlbnQgcmVmZXJlbmR1bSB0cmFja3MuAUEKFQBQRmVsbG93c2hpcENvbGxlY3RpdmUBUEZlbGxvd3NoaXBDb2xsZWN0aXZlGCxNZW1iZXJDb3VudAEBBAVVARAQAAAAAAhpASBUaGUgbnVtYmVyIG9mIG1lbWJlcnMgaW4gdGhlIGNvbGxlY3RpdmUgd2hvIGhhdmUgYXQgbGVhc3QgdGhlIHJhbmsgYWNjb3JkaW5nIHRvIHRoZSBpbmRleDAgb2YgdGhlIHZlYy4cTWVtYmVycwABBAUARQoEAAScIFRoZSBjdXJyZW50IG1lbWJlcnMgb2YgdGhlIGNvbGxlY3RpdmUuJElkVG9JbmRleAABCAUFSQoQBAAEYQEgVGhlIGluZGV4IG9mIGVhY2ggcmFua3MncyBtZW1iZXIgaW50byB0aGUgZ3JvdXAgb2YgbWVtYmVycyB3aG8gaGF2ZSBhdCBsZWFzdCB0aGF0IHJhbmsuJEluZGV4VG9JZAABCAUFTQoABAAIXQEgVGhlIG1lbWJlcnMgaW4gdGhlIGNvbGxlY3RpdmUgYnkgaW5kZXguIEFsbCBpbmRpY2VzIGluIHRoZSByYW5nZSBgMC4uTWVtYmVyQ291bnRgIHdpbGxlASByZXR1cm4gYFNvbWVgLCBob3dldmVyIGEgbWVtYmVyJ3MgaW5kZXggaXMgbm90IGd1YXJhbnRlZWQgdG8gcmVtYWluIHVuY2hhbmdlZCBvdmVyIHRpbWUuGFZvdGluZwABCAIFLQlZBwQABLQgVm90ZXMgb24gYSBnaXZlbiBwcm9wb3NhbCwgaWYgaXQgaXMgb25nb2luZy40Vm90aW5nQ2xlYW51cAABBAIQUQoEAAABfQIBVQcAAVUKFgBMRmVsbG93c2hpcFJlZmVyZW5kYQFMRmVsbG93c2hpcFJlZmVyZW5kYRQ8UmVmZXJlbmR1bUNvdW50AQAQEAAAAAAEMQEgVGhlIG5leHQgZnJlZSByZWZlcmVuZHVtIGluZGV4LCBha2EgdGhlIG51bWJlciBvZiByZWZlcmVuZGEgc3RhcnRlZCBzbyBmYXIuRFJlZmVyZW5kdW1JbmZvRm9yAAEEAhBZCgQABLQgSW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgZ2l2ZW4gcmVmZXJlbmR1bS4oVHJhY2tRdWV1ZQEBBAVVAWEKBAAQXQEgVGhlIHNvcnRlZCBsaXN0IG9mIHJlZmVyZW5kYSByZWFkeSB0byBiZSBkZWNpZGVkIGJ1dCBub3QgeWV0IGJlaW5nIGRlY2lkZWQsIG9yZGVyZWQgYnl8IGNvbnZpY3Rpb24td2VpZ2h0ZWQgYXBwcm92YWxzLgBBASBUaGlzIHNob3VsZCBiZSBlbXB0eSBpZiBgRGVjaWRpbmdDb3VudGAgaXMgbGVzcyB0aGFuIGBUcmFja0luZm86Om1heF9kZWNpZGluZ2AuNERlY2lkaW5nQ291bnQBAQQFVQEQEAAAAAAExCBUaGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBiZWluZyBkZWNpZGVkIGN1cnJlbnRseS4oTWV0YWRhdGFPZgABBAIQNAQAGAUBIFRoZSBtZXRhZGF0YSBpcyBhIGdlbmVyYWwgaW5mb3JtYXRpb24gY29uY2VybmluZyB0aGUgcmVmZXJlbmR1bS5JASBUaGUgYEhhc2hgIHJlZmVycyB0byB0aGUgcHJlaW1hZ2Ugb2YgdGhlIGBQcmVpbWFnZXNgIHByb3ZpZGVyIHdoaWNoIGNhbiBiZSBhIEpTT06IIGR1bXAgb3IgSVBGUyBoYXNoIG9mIGEgSlNPTiBmaWxlLgB1ASBDb25zaWRlciBhIGdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgYSBtZXRhZGF0YSBvZiBmaW5pc2hlZCByZWZlcmVuZHVtcyB0byBgdW5yZXF1ZXN0YCAocmVtb3ZlKUQgbGFyZ2UgcHJlaW1hZ2VzLgGBAgFhBxREU3VibWlzc2lvbkRlcG9zaXQYQAAAAAAAAAAAAAAAAAAAAAAENQEgVGhlIG1pbmltdW0gYW1vdW50IHRvIGJlIHVzZWQgYXMgYSBkZXBvc2l0IGZvciBhIHB1YmxpYyByZWZlcmVuZHVtIHByb3Bvc2FsLiRNYXhRdWV1ZWQQEGQAAAAE5CBNYXhpbXVtIHNpemUgb2YgdGhlIHJlZmVyZW5kdW0gcXVldWUgZm9yIGEgc2luZ2xlIHRyYWNrLkRVbmRlY2lkaW5nVGltZW91dBAQwIkBAAhVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBhZnRlciBzdWJtaXNzaW9uIHRoYXQgYSByZWZlcmVuZHVtIG11c3QgYmVnaW4gYmVpbmcgZGVjaWRlZCBieS7kIE9uY2UgdGhpcyBwYXNzZXMsIHRoZW4gYW55b25lIG1heSBjYW5jZWwgdGhlIHJlZmVyZW5kdW0uNEFsYXJtSW50ZXJ2YWwQEAEAAAAMXQEgUXVhbnRpemF0aW9uIGxldmVsIGZvciB0aGUgcmVmZXJlbmR1bSB3YWtldXAgc2NoZWR1bGVyLiBBIGhpZ2hlciBudW1iZXIgd2lsbCByZXN1bHQgaW5dASBmZXdlciBzdG9yYWdlIHJlYWRzL3dyaXRlcyBuZWVkZWQgZm9yIHNtYWxsZXIgdm90ZXJzLCBidXQgYWxzbyByZXN1bHQgaW4gZGVsYXlzIHRvIHRoZVUBIGF1dG9tYXRpYyByZWZlcmVuZHVtIHN0YXR1cyBjaGFuZ2VzLiBFeHBsaWNpdCBzZXJ2aWNpbmcgaW5zdHJ1Y3Rpb25zIGFyZSB1bmFmZmVjdGVkLhhUcmFja3MpCs0LKAAAKGNhbmRpZGF0ZXMKAAAANDUmGggDAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQEAHG1lbWJlcnMKAAAAUgU3nE0AAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQIALHByb2ZpY2llbnRzCgAAAFIFN5xNAAAAAAAAAAAAAAAsAQAAwIkBACwBAAAKAAAAAADKmjsAZc0dAMqaOwAAypo7AAAAAABlzR0DABxmZWxsb3dzCgAAAFIFN5xNAAAAAAAAAAAAAAAsAQAAwIkBACwBAAAKAAAAAADKmjsAZc0dAMqaOwAAypo7AAAAAABlzR0EADhzZW5pb3IgZmVsbG93cwoAAABSBTecTQAAAAAAAAAAAAAALAEAAMCJAQAsAQAACgAAAAAAypo7AGXNHQDKmjsAAMqaOwAAAAAAZc0dBQAcZXhwZXJ0cwoAAABVTdLCBwAAAAAAAAAAAAAALAEAAMCJAQAsAQAACgAAAAAAypo7AGXNHQDKmjsAAMqaOwAAAAAAZc0dBgA4c2VuaW9yIGV4cGVydHMKAAAAVU3SwgcAAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQcAHG1hc3RlcnMKAAAAVU3SwgcAAAAAAAAAAAAAACwBAADAiQEALAEAAAoAAAAAAMqaOwBlzR0Aypo7AADKmjsAAAAAAGXNHQgAOHNlbmlvciBtYXN0ZXJzCgAAAFVN0sIHAAAAAAAAAAAAAAAsAQAAwIkBACwBAAAKAAAAAADKmjsAZc0dAMqaOwAAypo7AAAAAABlzR0JADRncmFuZCBtYXN0ZXJzCgAAAFVN0sIHAAAAAAAAAAAAAAAsAQAAwIkBACwBAAAKAAAAAADKmjsAZc0dAMqaOwAAypo7AAAAAABlzR0E4CBJbmZvcm1hdGlvbiBjb25jZXJuaW5nIHRoZSBkaWZmZXJlbnQgcmVmZXJlbmR1bSB0cmFja3MuAWUKFwAcT3JpZ2lucwAAAAAAKwAkV2hpdGVsaXN0ASRXaGl0ZWxpc3QEPFdoaXRlbGlzdGVkQ2FsbAABBAU0oQEEAAABhQIBZQcAAWkKLAAoUGFyYW1ldGVycwEoUGFyYW1ldGVycwQoUGFyYW1ldGVycwABBAJ9B4kHBAAETCBTdG9yZWQgcGFyYW1ldGVycy4BiQIBeQcAAC4AGENsYWltcwEYQ2xhaW1zFBhDbGFpbXMAAQQGwQIYBAAAFFRvdGFsAQAYQAAAAAAAAAAAAAAAAAAAAAAAHFZlc3RpbmcAAQQGwQLJAgQAEHggVmVzdGluZyBzY2hlZHVsZSBmb3IgYSBjbGFpbS4NASBGaXJzdCBiYWxhbmNlIGlzIHRoZSB0b3RhbCBhbW91bnQgdGhhdCBzaG91bGQgYmUgaGVsZCBmb3IgdmVzdGluZy7kIFNlY29uZCBiYWxhbmNlIGlzIGhvdyBtdWNoIHNob3VsZCBiZSB1bmxvY2tlZCBwZXIgYmxvY2suzCBUaGUgYmxvY2sgbnVtYmVyIGlzIHdoZW4gdGhlIHZlc3Rpbmcgc2hvdWxkIHN0YXJ0LhxTaWduaW5nAAEEBsEC0QIEAATAIFRoZSBzdGF0ZW1lbnQga2luZCB0aGF0IG11c3QgYmUgc2lnbmVkLCBpZiBhbnkuJFByZWNsYWltcwABBAYAwQIEAAQtASBQcmUtY2xhaW1lZCBFdGhlcmV1bSBhY2NvdW50cywgYnkgdGhlIEFjY291bnQgSUQgdGhhdCB0aGV5IGFyZSBjbGFpbWVkIHRvLgG1AgGRBwQYUHJlZml4OIB8UGF5IEtTTXMgdG8gdGhlIEt1c2FtYSBhY2NvdW50OgABbQoTABxVdGlsaXR5AAHVAgGVBwRMYmF0Y2hlZF9jYWxsc19saW1pdBAQqioAAASoIFRoZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIGJhdGNoZWQgY2FsbHMuAXEKGAAcU29jaWV0eQEcU29jaWV0eVAoUGFyYW1ldGVycwAAoQcEAATcIFRoZSBtYXggbnVtYmVyIG9mIG1lbWJlcnMgZm9yIHRoZSBzb2NpZXR5IGF0IG9uZSB0aW1lLgxQb3QBABhAAAAAAAAAAAAAAAAAAAAAAARBASBBbW91bnQgb2Ygb3VyIGFjY291bnQgYmFsYW5jZSB0aGF0IGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIG5leHQgcm91bmQncyBiaWQocykuHEZvdW5kZXIAAAAEAARIIFRoZSBmaXJzdCBtZW1iZXIuEEhlYWQAAAAEAARBASBUaGUgbW9zdCBwcmltYXJ5IGZyb20gdGhlIG1vc3QgcmVjZW50bHkgYXBwcm92ZWQgcmFuayAwIG1lbWJlcnMgaW4gdGhlIHNvY2lldHkuFFJ1bGVzAAA0BAAIUQEgQSBoYXNoIG9mIHRoZSBydWxlcyBvZiB0aGlzIHNvY2lldHkgY29uY2VybmluZyBtZW1iZXJzaGlwLiBDYW4gb25seSBiZSBzZXQgb25jZSBhbmRUIG9ubHkgYnkgdGhlIGZvdW5kZXIuHE1lbWJlcnMAAQQFAHUKBAAEIQEgVGhlIGN1cnJlbnQgbWVtYmVycyBhbmQgdGhlaXIgcmFuay4gRG9lc24ndCBpbmNsdWRlIGBTdXNwZW5kZWRNZW1iZXJzYC4cUGF5b3V0cwEBBAUAgQpEAAAAAAAAAAAAAAAAAAAAAAAE3CBJbmZvcm1hdGlvbiByZWdhcmRpbmcgcmFuay0wIHBheW91dHMsIHBhc3QgYW5kIGZ1dHVyZS4sTWVtYmVyQ291bnQBABAQAAAAAARJASBUaGUgbnVtYmVyIG9mIGl0ZW1zIGluIGBNZW1iZXJzYCBjdXJyZW50bHkuIChEb2Vzbid0IGluY2x1ZGUgYFN1c3BlbmRlZE1lbWJlcnNgLik0TWVtYmVyQnlJbmRleAABBAUQAAQACF0BIFRoZSBjdXJyZW50IGl0ZW1zIGluIGBNZW1iZXJzYCBrZXllZCBieSB0aGVpciB1bmlxdWUgaW5kZXguIEtleXMgYXJlIGRlbnNlbHkgcG9wdWxhdGVkzCBgMC4uTWVtYmVyQ291bnRgIChkb2VzIG5vdCBpbmNsdWRlIGBNZW1iZXJDb3VudGApLkBTdXNwZW5kZWRNZW1iZXJzAAEEBQB1CgQABAEBIFRoZSBzZXQgb2Ygc3VzcGVuZGVkIG1lbWJlcnMsIHdpdGggdGhlaXIgb2xkIG1lbWJlcnNoaXAgcmVjb3JkLihSb3VuZENvdW50AQAQEAAAAAAEoCBUaGUgbnVtYmVyIG9mIHJvdW5kcyB3aGljaCBoYXZlIHBhc3NlZC4QQmlkcwEAiQoEAAToIFRoZSBjdXJyZW50IGJpZHMsIHN0b3JlZCBvcmRlcmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgYmlkLihDYW5kaWRhdGVzAAEEAgCZCgQAABxTa2VwdGljAAAABAAEVCBUaGUgY3VycmVudCBza2VwdGljLhRWb3RlcwABCAUFoQqlCgQABNAgRG91YmxlIG1hcCBmcm9tIENhbmRpZGF0ZSAtPiBWb3RlciAtPiAoTWF5YmUpIFZvdGUuPFZvdGVDbGVhckN1cnNvcgABBAUAqQoEAAT0IENsZWFyLWN1cnNvciBmb3IgVm90ZSwgbWFwIGZyb20gQ2FuZGlkYXRlIC0+IChNYXliZSkgQ3Vyc29yLiBOZXh0SGVhZAAArQoEAAx1ASBBdCB0aGUgZW5kIG9mIHRoZSBjbGFpbSBwZXJpb2QsIHRoaXMgY29udGFpbnMgdGhlIG1vc3QgcmVjZW50bHkgYXBwcm92ZWQgbWVtYmVycyAoYWxvbmcgd2l0aGUBIHRoZWlyIGJpZCBhbmQgcm91bmQgSUQpIHdobyBpcyBmcm9tIHRoZSBtb3N0IHJlY2VudCByb3VuZCB3aXRoIHRoZSBsb3dlc3QgYmlkLiBUaGV5IHdpbGxcIGJlY29tZSB0aGUgbmV3IGBIZWFkYC5MQ2hhbGxlbmdlUm91bmRDb3VudAEAEBAAAAAABFkBIFRoZSBudW1iZXIgb2YgY2hhbGxlbmdlIHJvdW5kcyB0aGVyZSBoYXZlIGJlZW4uIFVzZWQgdG8gaWRlbnRpZnkgc3RhbGUgRGVmZW5kZXJWb3Rlcy4kRGVmZW5kaW5nAACxCgQABFkBIFRoZSBkZWZlbmRpbmcgbWVtYmVyIGN1cnJlbnRseSBiZWluZyBjaGFsbGVuZ2VkLCBhbG9uZyB3aXRoIGEgcnVubmluZyB0YWxseSBvZiB2b3Rlcy40RGVmZW5kZXJWb3RlcwABCAUFLQmlCgQABMggVm90ZXMgZm9yIHRoZSBkZWZlbmRlciwga2V5ZWQgYnkgY2hhbGxlbmdlIHJvdW5kLgHdAgGdByQgUGFsbGV0SWTBCSBweS9zb2NpZQRoIFRoZSBzb2NpZXRpZXMncyBwYWxsZXQgaWQwR3JhY2VTdHJpa2VzEBAKAAAABAkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdHJpa2VzIGJlZm9yZSBhIG1lbWJlciBnZXRzIGZ1bmRzIHNsYXNoZWQuLFBlcmlvZFNwZW5kGEAECr+CKA8AAAAAAAAAAAAABC0BIFRoZSBhbW91bnQgb2YgaW5jZW50aXZlIHBhaWQgd2l0aGluIGVhY2ggcGVyaW9kLiBEb2Vzbid0IGluY2x1ZGUgVm90ZXJUaXAuMFZvdGluZ1BlcmlvZBAQQBkBAAg9ASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBvbiB3aGljaCBuZXcgY2FuZGlkYXRlcyBzaG91bGQgYmUgdm90ZWQgb24uIFRvZ2V0aGVyIHdpdGhNASBgQ2xhaW1QZXJpb2RgLCB0aGlzIHN1bXMgdG8gdGhlIG51bWJlciBvZiBibG9ja3MgYmV0d2VlbiBjYW5kaWRhdGUgaW50YWtlIHBlcmlvZHMuLENsYWltUGVyaW9kEBCAcAAACE0BIFRoZSBudW1iZXIgb2YgYmxvY2tzIG9uIHdoaWNoIG5ldyBjYW5kaWRhdGVzIGNhbiBjbGFpbSB0aGVpciBtZW1iZXJzaGlwIGFuZCBiZSB0aGUwIG5hbWVkIGhlYWQuPE1heExvY2tEdXJhdGlvbhAQAE7tAASkIFRoZSBtYXhpbXVtIGR1cmF0aW9uIG9mIHRoZSBwYXlvdXQgbG9jay48Q2hhbGxlbmdlUGVyaW9kEBDAiQEABNAgVGhlIG51bWJlciBvZiBibG9ja3MgYmV0d2VlbiBtZW1iZXJzaGlwIGNoYWxsZW5nZXMuKE1heFBheW91dHMQEAgAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBheW91dHMgYSBtZW1iZXIgbWF5IGhhdmUgd2FpdGluZyB1bmNsYWltZWQuHE1heEJpZHMQEAACAAAEkCBUaGUgbWF4aW11bSBudW1iZXIgb2YgYmlkcyBhdCBvbmNlLgG1ChoAIFJlY292ZXJ5ASBSZWNvdmVyeQwsUmVjb3ZlcmFibGUAAQQFALkKBAAECQEgVGhlIHNldCBvZiByZWNvdmVyYWJsZSBhY2NvdW50cyBhbmQgdGhlaXIgcmVjb3ZlcnkgY29uZmlndXJhdGlvbi5AQWN0aXZlUmVjb3ZlcmllcwABCAUFoQrBCgQAEGggQWN0aXZlIHJlY292ZXJ5IGF0dGVtcHRzLgAVASBGaXJzdCBhY2NvdW50IGlzIHRoZSBhY2NvdW50IHRvIGJlIHJlY292ZXJlZCwgYW5kIHRoZSBzZWNvbmQgYWNjb3VudKwgaXMgdGhlIHVzZXIgdHJ5aW5nIHRvIHJlY292ZXIgdGhlIGFjY291bnQuFFByb3h5AAEEAgAABAAMkCBUaGUgbGlzdCBvZiBhbGxvd2VkIHByb3h5IGFjY291bnRzLgD4IE1hcCBmcm9tIHRoZSB1c2VyIHdobyBjYW4gYWNjZXNzIGl0IHRvIHRoZSByZWNvdmVyZWQgYWNjb3VudC4B4QIBpQcQRENvbmZpZ0RlcG9zaXRCYXNlGEAEghvOJgAAAAAAAAAAAAAAEFUBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSByZWNvdmVyeSBjb25maWd1cmF0aW9uLgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXOoIGAyICsgc2l6ZW9mKEJsb2NrTnVtYmVyLCBCYWxhbmNlKWAgYnl0ZXMuTEZyaWVuZERlcG9zaXRGYWN0b3IYQJomaeEDAAAAAAAAAAAAAAAULQEgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIGFkZGl0aW9uYWwgdXNlciB3aGVuIGNyZWF0aW5nIGEgcmVjb3Zlcnk8IGNvbmZpZ3VyYXRpb24uAE0BIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIGBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UcIHZhbHVlLihNYXhGcmllbmRzEBAJAAAAGA0BIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBmcmllbmRzIGFsbG93ZWQgaW4gYSByZWNvdmVyeSBjb25maWd1cmF0aW9uLgANASBOT1RFOiBUaGUgdGhyZXNob2xkIHByb2dyYW1tZWQgaW4gdGhpcyBQYWxsZXQgdXNlcyB1MTYsIHNvIGl0IGRvZXMJASBub3QgcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gaGF2ZSBhIGxpbWl0IGhlcmUgZ3JlYXRlciB0aGFuIHUxNjo6TUFYLhUBIEJ1dCBhbHNvLCB0aGF0IGlzIGEgbG90IG1vcmUgdGhhbiB5b3Ugc2hvdWxkIHByb2JhYmx5IHNldCB0aGlzIHZhbHVlNCB0byBhbnl3YXkuLi48UmVjb3ZlcnlEZXBvc2l0GEAEghvOJgAAAAAAAAAAAAAAHB0BIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3Igc3RhcnRpbmcgYSByZWNvdmVyeS4ANQEgVGhpcyBpcyBwcmltYXJpbHkgaGVsZCBmb3IgZGV0ZXJyaW5nIG1hbGljaW91cyByZWNvdmVyeSBhdHRlbXB0cywgYW5kIHNob3VsZCkBIGhhdmUgYSB2YWx1ZSBsYXJnZSBlbm91Z2ggdGhhdCBhIGJhZCBhY3RvciB3b3VsZCBjaG9vc2Ugbm90IHRvIHBsYWNlIHRoaXMpASBkZXBvc2l0LiBJdCBhbHNvIGFjdHMgdG8gZnVuZCBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzQQEgYHNpemVvZihCbG9ja051bWJlciwgQmFsYW5jZSArIFQgKiBBY2NvdW50SWQpYCBieXRlcy4gV2hlcmUgVCBpcyBhIGNvbmZpZ3VyYWJsZSwgdGhyZXNob2xkLgHFChsAHFZlc3RpbmcBHFZlc3RpbmcIHFZlc3RpbmcAAQQCAMkKBAAE2CBJbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIHZlc3Rpbmcgb2YgYSBnaXZlbiBhY2NvdW50LjhTdG9yYWdlVmVyc2lvbgEA0QoEAAx8IFN0b3JhZ2UgdmVyc2lvbiBvZiB0aGUgcGFsbGV0LgAxASBOZXcgbmV0d29ya3Mgc3RhcnQgd2l0aCBsYXRlc3QgdmVyc2lvbiwgYXMgZGV0ZXJtaW5lZCBieSB0aGUgZ2VuZXNpcyBidWlsZC4B5QIBqQcIRE1pblZlc3RlZFRyYW5zZmVyGEA0TdLCBwAAAAAAAAAAAAAABOggVGhlIG1pbmltdW0gYW1vdW50IHRyYW5zZmVycmVkIHRvIGNhbGwgYHZlc3RlZF90cmFuc2ZlcmAuTE1heFZlc3RpbmdTY2hlZHVsZXMQEBwAAAAAAdUKHAAkU2NoZWR1bGVyASRTY2hlZHVsZXIQPEluY29tcGxldGVTaW5jZQAAEAQAABhBZ2VuZGEBAQQFENkKBAAETQEgSXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGhlIGJsb2NrIG51bWJlciB0aGF0IHRoZXkgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uLhxSZXRyaWVzAAEEAvUC6QoEAAQhASBSZXRyeSBjb25maWd1cmF0aW9ucyBmb3IgaXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGFzayBhZGRyZXNzLhhMb29rdXAAAQQFBPUCBAAQ+CBMb29rdXAgZnJvbSBhIG5hbWUgdG8gdGhlIGJsb2NrIG51bWJlciBhbmQgaW5kZXggb2YgdGhlIHRhc2suAFkBIEZvciB2MyAtPiB2NCB0aGUgcHJldmlvdXNseSB1bmJvdW5kZWQgaWRlbnRpdGllcyBhcmUgQmxha2UyLTI1NiBoYXNoZWQgdG8gZm9ybSB0aGUgdjQwIGlkZW50aXRpZXMuAe0CAa0HCDRNYXhpbXVtV2VpZ2h0KEALAIBuh3QBE8zMzMzMzMzMBCkBIFRoZSBtYXhpbXVtIHdlaWdodCB0aGF0IG1heSBiZSBzY2hlZHVsZWQgcGVyIGJsb2NrIGZvciBhbnkgZGlzcGF0Y2hhYmxlcy5QTWF4U2NoZWR1bGVkUGVyQmxvY2sQEDIAAAAUHQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHNjaGVkdWxlZCBjYWxscyBpbiB0aGUgcXVldWUgZm9yIGEgc2luZ2xlIGJsb2NrLgAYIE5PVEU6UQEgKyBEZXBlbmRlbnQgcGFsbGV0cycgYmVuY2htYXJrcyBtaWdodCByZXF1aXJlIGEgaGlnaGVyIGxpbWl0IGZvciB0aGUgc2V0dGluZy4gU2V0IGHEIGhpZ2hlciBsaW1pdCB1bmRlciBgcnVudGltZS1iZW5jaG1hcmtzYCBmZWF0dXJlLgHtCh0AFFByb3h5ARRQcm94eQgcUHJveGllcwEBBAUA8QpEAAAAAAAAAAAAAAAAAAAAAAAIRQEgVGhlIHNldCBvZiBhY2NvdW50IHByb3hpZXMuIE1hcHMgdGhlIGFjY291bnQgd2hpY2ggaGFzIGRlbGVnYXRlZCB0byB0aGUgYWNjb3VudHMhASB3aGljaCBhcmUgYmVpbmcgZGVsZWdhdGVkIHRvLCB0b2dldGhlciB3aXRoIHRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0LjRBbm5vdW5jZW1lbnRzAQEEBQABC0QAAAAAAAAAAAAAAAAAAAAAAASsIFRoZSBhbm5vdW5jZW1lbnRzIG1hZGUgYnkgdGhlIHByb3h5IChrZXkpLgH5AgG1BxhAUHJveHlEZXBvc2l0QmFzZRhAsAlTSJsAAAAAAAAAAAAAABARASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgcHJveHkuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpcyUBIGBzaXplb2YoQmFsYW5jZSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpcyBgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLkhQcm94eURlcG9zaXRGYWN0b3IYQLSmkEEAAAAAAAAAAAAAAAAUvCBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgcHJveHkgYWRkZWQuADUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIHBsdXMgYW4gaW5zdGFuY2Ugb2YgYFByb3h5VHlwZWAgbW9yZSBpbnRvIGFhASBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4gVGh1cywgd2hlbiBjb25maWd1cmluZyBgUHJveHlEZXBvc2l0RmFjdG9yYCBvbmUgc2hvdWxkIHRha2X0IGludG8gYWNjb3VudCBgMzIgKyBwcm94eV90eXBlLmVuY29kZSgpLmxlbigpYCBieXRlcyBvZiBkYXRhLihNYXhQcm94aWVzEBAgAAAABPAgVGhlIG1heGltdW0gYW1vdW50IG9mIHByb3hpZXMgYWxsb3dlZCBmb3IgYSBzaW5nbGUgYWNjb3VudC4oTWF4UGVuZGluZxAQIAAAAARFASBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZS1kZWxheWVkIGFubm91bmNlbWVudHMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwZW5kaW5nLlxBbm5vdW5jZW1lbnREZXBvc2l0QmFzZRhAsAlTSJsAAAAAAAAAAAAAABAxASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGFuIGFubm91bmNlbWVudC4ASQEgVGhpcyBpcyBoZWxkIHdoZW4gYSBuZXcgc3RvcmFnZSBpdGVtIGhvbGRpbmcgYSBgQmFsYW5jZWAgaXMgY3JlYXRlZCAodHlwaWNhbGx5IDE2ICBieXRlcykuZEFubm91bmNlbWVudERlcG9zaXRGYWN0b3IYQGhNIYMAAAAAAAAAAAAAAAAQ1CBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgYW5ub3VuY2VtZW50IG1hZGUuAFkBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIGFuIGBBY2NvdW50SWRgLCBgSGFzaGAgYW5kIGBCbG9ja051bWJlcmAgKHR5cGljYWxseSA2OCBieXRlcymMIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4BEQseACBNdWx0aXNpZwEgTXVsdGlzaWcEJE11bHRpc2lncwABCAUCFQsZCwQABJQgVGhlIHNldCBvZiBvcGVuIG11bHRpc2lnIG9wZXJhdGlvbnMuAQUDAbkHDCxEZXBvc2l0QmFzZRhA8BlF55sAAAAAAAAAAAAAABhZASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgbXVsdGlzaWcgZXhlY3V0aW9uIG9yIHRvhCBzdG9yZSBhIGRpc3BhdGNoIGNhbGwgZm9yIGxhdGVyLgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMxASBgNCArIHNpemVvZigoQmxvY2tOdW1iZXIsIEJhbGFuY2UsIEFjY291bnRJZCkpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXOAIGAzMiArIHNpemVvZihBY2NvdW50SWQpYCBieXRlcy40RGVwb3NpdEZhY3RvchhAgAaUPwAAAAAAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuOE1heFNpZ25hdG9yaWVzEBBkAAAABOwgVGhlIG1heGltdW0gYW1vdW50IG9mIHNpZ25hdG9yaWVzIGFsbG93ZWQgaW4gdGhlIG11bHRpc2lnLgEhCx8AIFByZWltYWdlASBQcmVpbWFnZQwkU3RhdHVzRm9yAAEEBjQlCwQABJAgVGhlIHJlcXVlc3Qgc3RhdHVzIG9mIGEgZ2l2ZW4gaGFzaC5AUmVxdWVzdFN0YXR1c0ZvcgABBAY0LQsEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guLFByZWltYWdlRm9yAAEEBn0JPQsEAAABEQMBvQcAAUELIAAgQm91bnRpZXMBIEJvdW50aWVzECxCb3VudHlDb3VudAEAEBAAAAAABMAgTnVtYmVyIG9mIGJvdW50eSBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4gQm91bnRpZXMAAQQFEEULBAAEeCBCb3VudGllcyB0aGF0IGhhdmUgYmVlbiBtYWRlLkhCb3VudHlEZXNjcmlwdGlvbnMAAQQFEE0LBAAEgCBUaGUgZGVzY3JpcHRpb24gb2YgZWFjaCBib3VudHkuPEJvdW50eUFwcHJvdmFscwEAsQkEAATsIEJvdW50eSBpbmRpY2VzIHRoYXQgaGF2ZSBiZWVuIGFwcHJvdmVkIGJ1dCBub3QgeWV0IGZ1bmRlZC4BGQMBwQckREJvdW50eURlcG9zaXRCYXNlGEA0TdLCBwAAAAAAAAAAAAAABOggVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIHBsYWNpbmcgYSBib3VudHkgcHJvcG9zYWwuYEJvdW50eURlcG9zaXRQYXlvdXREZWxheRAQAAAAAARZASBUaGUgZGVsYXkgcGVyaW9kIGZvciB3aGljaCBhIGJvdW50eSBiZW5lZmljaWFyeSBuZWVkIHRvIHdhaXQgYmVmb3JlIGNsYWltIHRoZSBwYXlvdXQuSEJvdW50eVVwZGF0ZVBlcmlvZBAQgMYTAARsIEJvdW50eSBkdXJhdGlvbiBpbiBibG9ja3MuYEN1cmF0b3JEZXBvc2l0TXVsdGlwbGllcr0JECChBwAQGQEgVGhlIGN1cmF0b3IgZGVwb3NpdCBpcyBjYWxjdWxhdGVkIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgY3VyYXRvciBmZWUuADkBIFRoaXMgZGVwb3NpdCBoYXMgb3B0aW9uYWwgdXBwZXIgYW5kIGxvd2VyIGJvdW5kcyB3aXRoIGBDdXJhdG9yRGVwb3NpdE1heGAgYW5kVCBgQ3VyYXRvckRlcG9zaXRNaW5gLkRDdXJhdG9yRGVwb3NpdE1heN0BRAEEghvOJgAAAAAAAAAAAAAABEkBIE1heGltdW0gYW1vdW50IG9mIGZ1bmRzIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiBhIGRlcG9zaXQgZm9yIG1ha2luZyBhIHByb3Bvc2FsLkRDdXJhdG9yRGVwb3NpdE1pbt0BRAFSoa7GAAAAAAAAAAAAAAAABEkBIE1pbmltdW0gYW1vdW50IG9mIGZ1bmRzIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiBhIGRlcG9zaXQgZm9yIG1ha2luZyBhIHByb3Bvc2FsLkhCb3VudHlWYWx1ZU1pbmltdW0YQGiapIUPAAAAAAAAAAAAAAAEcCBNaW5pbXVtIHZhbHVlIGZvciBhIGJvdW50eS5IRGF0YURlcG9zaXRQZXJCeXRlGEBVQ94TAAAAAAAAAAAAAAAABGEBIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IHBlciBieXRlIHdpdGhpbiB0aGUgdGlwIHJlcG9ydCByZWFzb24gb3IgYm91bnR5IGRlc2NyaXB0aW9uLkxNYXhpbXVtUmVhc29uTGVuZ3RoEBAAQAAADIggTWF4aW11bSBhY2NlcHRhYmxlIHJlYXNvbiBsZW5ndGguAGUBIEJlbmNobWFya3MgZGVwZW5kIG9uIHRoaXMgdmFsdWUsIGJlIHN1cmUgdG8gdXBkYXRlIHdlaWdodHMgZmlsZSB3aGVuIGNoYW5naW5nIHRoaXMgdmFsdWUBUQsjADRDaGlsZEJvdW50aWVzATRDaGlsZEJvdW50aWVzFEBDaGlsZEJvdW50eUNvdW50AQAQEAAAAAAEgCBOdW1iZXIgb2YgdG90YWwgY2hpbGQgYm91bnRpZXMuTFBhcmVudENoaWxkQm91bnRpZXMBAQQFEBAQAAAAAAiwIE51bWJlciBvZiBjaGlsZCBib3VudGllcyBwZXIgcGFyZW50IGJvdW50eS7gIE1hcCBvZiBwYXJlbnQgYm91bnR5IGluZGV4IHRvIG51bWJlciBvZiBjaGlsZCBib3VudGllcy40Q2hpbGRCb3VudGllcwABCAUF9QJVCwQABJQgQ2hpbGQgYm91bnRpZXMgdGhhdCBoYXZlIGJlZW4gYWRkZWQuXENoaWxkQm91bnR5RGVzY3JpcHRpb25zAAEEBRBNCwQABJggVGhlIGRlc2NyaXB0aW9uIG9mIGVhY2ggY2hpbGQtYm91bnR5LkxDaGlsZHJlbkN1cmF0b3JGZWVzAQEEBRAYQAAAAAAAAAAAAAAAAAAAAAAEAQEgVGhlIGN1bXVsYXRpdmUgY2hpbGQtYm91bnR5IGN1cmF0b3IgZmVlIGZvciBlYWNoIHBhcmVudCBib3VudHkuAR0DAcUHCGRNYXhBY3RpdmVDaGlsZEJvdW50eUNvdW50EBBkAAAABB0BIE1heGltdW0gbnVtYmVyIG9mIGNoaWxkIGJvdW50aWVzIHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgcGFyZW50IGJvdW50eS5cQ2hpbGRCb3VudHlWYWx1ZU1pbmltdW0YQKRCXY0BAAAAAAAAAAAAAAAEiCBNaW5pbXVtIHZhbHVlIGZvciBhIGNoaWxkLWJvdW50eS4BXQsoAGhFbGVjdGlvblByb3ZpZGVyTXVsdGlQaGFzZQFoRWxlY3Rpb25Qcm92aWRlck11bHRpUGhhc2UoFFJvdW5kAQAQEAEAAAAYrCBJbnRlcm5hbCBjb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIHJvdW5kcy4AVQEgVGhpcyBpcyB1c2VmdWwgZm9yIGRlLWR1cGxpY2F0aW9uIG9mIHRyYW5zYWN0aW9ucyBzdWJtaXR0ZWQgdG8gdGhlIHBvb2wsIGFuZCBnZW5lcmFsbCBkaWFnbm9zdGljcyBvZiB0aGUgcGFsbGV0LgBNASBUaGlzIGlzIG1lcmVseSBpbmNyZW1lbnRlZCBvbmNlIHBlciBldmVyeSB0aW1lIHRoYXQgYW4gdXBzdHJlYW0gYGVsZWN0YCBpcyBjYWxsZWQuMEN1cnJlbnRQaGFzZQEA0QcEAAQ8IEN1cnJlbnQgcGhhc2UuOFF1ZXVlZFNvbHV0aW9uAABhCwQADD0BIEN1cnJlbnQgYmVzdCBzb2x1dGlvbiwgc2lnbmVkIG9yIHVuc2lnbmVkLCBxdWV1ZWQgdG8gYmUgcmV0dXJuZWQgdXBvbiBgZWxlY3RgLgBgIEFsd2F5cyBzb3J0ZWQgYnkgc2NvcmUuIFNuYXBzaG90AABpCwQAEHAgU25hcHNob3QgZGF0YSBvZiB0aGUgcm91bmQuAF0BIFRoaXMgaXMgY3JlYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzaWduZWQgcGhhc2UgYW5kIGNsZWFyZWQgdXBvbiBjYWxsaW5nIGBlbGVjdGAuKQEgTm90ZTogVGhpcyBzdG9yYWdlIHR5cGUgbXVzdCBvbmx5IGJlIG11dGF0ZWQgdGhyb3VnaCBbYFNuYXBzaG90V3JhcHBlcmBdLjhEZXNpcmVkVGFyZ2V0cwAAEAQAEMwgRGVzaXJlZCBudW1iZXIgb2YgdGFyZ2V0cyB0byBlbGVjdCBmb3IgdGhpcyByb3VuZC4AqCBPbmx5IGV4aXN0cyB3aGVuIFtgU25hcHNob3RgXSBpcyBwcmVzZW50LikBIE5vdGU6IFRoaXMgc3RvcmFnZSB0eXBlIG11c3Qgb25seSBiZSBtdXRhdGVkIHRocm91Z2ggW2BTbmFwc2hvdFdyYXBwZXJgXS5AU25hcHNob3RNZXRhZGF0YQAAWQQEABCYIFRoZSBtZXRhZGF0YSBvZiB0aGUgW2BSb3VuZFNuYXBzaG90YF0AqCBPbmx5IGV4aXN0cyB3aGVuIFtgU25hcHNob3RgXSBpcyBwcmVzZW50LikBIE5vdGU6IFRoaXMgc3RvcmFnZSB0eXBlIG11c3Qgb25seSBiZSBtdXRhdGVkIHRocm91Z2ggW2BTbmFwc2hvdFdyYXBwZXJgXS5kU2lnbmVkU3VibWlzc2lvbk5leHRJbmRleAEAEBAAAAAAJAEBIFRoZSBuZXh0IGluZGV4IHRvIGJlIGFzc2lnbmVkIHRvIGFuIGluY29taW5nIHNpZ25lZCBzdWJtaXNzaW9uLgB1ASBFdmVyeSBhY2NlcHRlZCBzdWJtaXNzaW9uIGlzIGFzc2lnbmVkIGEgdW5pcXVlIGluZGV4OyB0aGF0IGluZGV4IGlzIGJvdW5kIHRvIHRoYXQgcGFydGljdWxhcmUBIHN1Ym1pc3Npb24gZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWxlY3Rpb24uIE9uIGVsZWN0aW9uIGZpbmFsaXphdGlvbiwgdGhlIG5leHQgaW5kZXggaXMwIHJlc2V0IHRvIDAuAGkBIFdlIGNhbid0IGp1c3QgdXNlIGBTaWduZWRTdWJtaXNzaW9uSW5kaWNlcy5sZW4oKWAsIGJlY2F1c2UgdGhhdCdzIGEgYm91bmRlZCBzZXQ7IHBhc3QgaXRzWQEgY2FwYWNpdHksIGl0IHdpbGwgc2ltcGx5IHNhdHVyYXRlLiBXZSBjYW4ndCBqdXN0IGl0ZXJhdGUgb3ZlciBgU2lnbmVkU3VibWlzc2lvbnNNYXBgLPQgYmVjYXVzZSBpdGVyYXRpb24gaXMgc2xvdy4gSW5zdGVhZCwgd2Ugc3RvcmUgdGhlIHZhbHVlIGhlcmUuXFNpZ25lZFN1Ym1pc3Npb25JbmRpY2VzAQB1CwQAGG0BIEEgc29ydGVkLCBib3VuZGVkIHZlY3RvciBvZiBgKHNjb3JlLCBibG9ja19udW1iZXIsIGluZGV4KWAsIHdoZXJlIGVhY2ggYGluZGV4YCBwb2ludHMgdG8gYXggdmFsdWUgaW4gYFNpZ25lZFN1Ym1pc3Npb25zYC4AcQEgV2UgbmV2ZXIgbmVlZCB0byBwcm9jZXNzIG1vcmUgdGhhbiBhIHNpbmdsZSBzaWduZWQgc3VibWlzc2lvbiBhdCBhIHRpbWUuIFNpZ25lZCBzdWJtaXNzaW9uc3UBIGNhbiBiZSBxdWl0ZSBsYXJnZSwgc28gd2UncmUgd2lsbGluZyB0byBwYXkgdGhlIGNvc3Qgb2YgbXVsdGlwbGUgZGF0YWJhc2UgYWNjZXNzZXMgdG8gYWNjZXNzIQEgdGhlbSBvbmUgYXQgYSB0aW1lIGluc3RlYWQgb2YgcmVhZGluZyBhbmQgZGVjb2RpbmcgYWxsIG9mIHRoZW0gYXQgb25jZS5QU2lnbmVkU3VibWlzc2lvbnNNYXAAAQQFEIELBAAcdCBVbmNoZWNrZWQsIHNpZ25lZCBzb2x1dGlvbnMuAGkBIFRvZ2V0aGVyIHdpdGggYFN1Ym1pc3Npb25JbmRpY2VzYCwgdGhpcyBzdG9yZXMgYSBib3VuZGVkIHNldCBvZiBgU2lnbmVkU3VibWlzc2lvbnNgIHdoaWxl7CBhbGxvd2luZyB1cyB0byBrZWVwIG9ubHkgYSBzaW5nbGUgb25lIGluIG1lbW9yeSBhdCBhIHRpbWUuAGkBIFR3b3ggbm90ZTogdGhlIGtleSBvZiB0aGUgbWFwIGlzIGFuIGF1dG8taW5jcmVtZW50aW5nIGluZGV4IHdoaWNoIHVzZXJzIGNhbm5vdCBpbnNwZWN0IG9y9CBhZmZlY3Q7IHdlIHNob3VsZG4ndCBuZWVkIGEgY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlIGhhc2hlci5UTWluaW11bVVudHJ1c3RlZFNjb3JlAABVBAQAEF0BIFRoZSBtaW5pbXVtIHNjb3JlIHRoYXQgZWFjaCAndW50cnVzdGVkJyBzb2x1dGlvbiBtdXN0IGF0dGFpbiBpbiBvcmRlciB0byBiZSBjb25zaWRlcmVkKCBmZWFzaWJsZS4AuCBDYW4gYmUgc2V0IHZpYSBgc2V0X21pbmltdW1fdW50cnVzdGVkX3Njb3JlYC4BIQMByQc4VEJldHRlclNpZ25lZFRocmVzaG9sZJQQAAAAAAhNASBUaGUgbWluaW11bSBhbW91bnQgb2YgaW1wcm92ZW1lbnQgdG8gdGhlIHNvbHV0aW9uIHNjb3JlIHRoYXQgZGVmaW5lcyBhIHNvbHV0aW9uIGFzeCAiYmV0dGVyIiBpbiB0aGUgU2lnbmVkIHBoYXNlLjhPZmZjaGFpblJlcGVhdBAQEgAAABC0IFRoZSByZXBlYXQgdGhyZXNob2xkIG9mIHRoZSBvZmZjaGFpbiB3b3JrZXIuAGEBIEZvciBleGFtcGxlLCBpZiBpdCBpcyA1LCB0aGF0IG1lYW5zIHRoYXQgYXQgbGVhc3QgNSBibG9ja3Mgd2lsbCBlbGFwc2UgYmV0d2VlbiBhdHRlbXB0c4QgdG8gc3VibWl0IHRoZSB3b3JrZXIncyBzb2x1dGlvbi48TWluZXJUeFByaW9yaXR5MCBlZmZmZmZm5gQlASBUaGUgcHJpb3JpdHkgb2YgdGhlIHVuc2lnbmVkIHRyYW5zYWN0aW9uIHN1Ym1pdHRlZCBpbiB0aGUgdW5zaWduZWQtcGhhc2VQU2lnbmVkTWF4U3VibWlzc2lvbnMQEBAAAAAc5CBNYXhpbXVtIG51bWJlciBvZiBzaWduZWQgc3VibWlzc2lvbnMgdGhhdCBjYW4gYmUgcXVldWVkLgBVASBJdCBpcyBiZXN0IHRvIGF2b2lkIGFkanVzdGluZyB0aGlzIGR1cmluZyBhbiBlbGVjdGlvbiwgYXMgaXQgaW1wYWN0cyBkb3duc3RyZWFtIGRhdGFlASBzdHJ1Y3R1cmVzLiBJbiBwYXJ0aWN1bGFyLCBgU2lnbmVkU3VibWlzc2lvbkluZGljZXM8VD5gIGlzIGJvdW5kZWQgb24gdGhpcyB2YWx1ZS4gSWYgeW919CB1cGRhdGUgdGhpcyB2YWx1ZSBkdXJpbmcgYW4gZWxlY3Rpb24sIHlvdSBfbXVzdF8gZW5zdXJlIHRoYXRNASBgU2lnbmVkU3VibWlzc2lvbkluZGljZXMubGVuKClgIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbmV3IHZhbHVlLiBPdGhlcndpc2Us8CBhdHRlbXB0cyB0byBzdWJtaXQgbmV3IHNvbHV0aW9ucyBtYXkgY2F1c2UgYSBydW50aW1lIHBhbmljLjxTaWduZWRNYXhXZWlnaHQoQAuI2GY8VQETo3A9CtejcL0UlCBNYXhpbXVtIHdlaWdodCBvZiBhIHNpZ25lZCBzb2x1dGlvbi4AXQEgSWYgW2BDb25maWc6Ok1pbmVyQ29uZmlnYF0gaXMgYmVpbmcgaW1wbGVtZW50ZWQgdG8gc3VibWl0IHNpZ25lZCBzb2x1dGlvbnMgKG91dHNpZGUgb2Y9ASB0aGlzIHBhbGxldCksIHRoZW4gW2BNaW5lckNvbmZpZzo6c29sdXRpb25fd2VpZ2h0YF0gaXMgdXNlZCB0byBjb21wYXJlIGFnYWluc3QwIHRoaXMgdmFsdWUuQFNpZ25lZE1heFJlZnVuZHMQEAQAAAAEGQEgVGhlIG1heGltdW0gYW1vdW50IG9mIHVuY2hlY2tlZCBzb2x1dGlvbnMgdG8gcmVmdW5kIHRoZSBjYWxsIGZlZSBmb3IuQFNpZ25lZFJld2FyZEJhc2UYQADodkgXAAAAAAAAAAAAAAAEiCBCYXNlIHJld2FyZCBmb3IgYSBzaWduZWQgc29sdXRpb25EU2lnbmVkRGVwb3NpdEJ5dGUYQJD3BAAAAAAAAAAAAAAAAAAEoCBQZXItYnl0ZSBkZXBvc2l0IGZvciBhIHNpZ25lZCBzb2x1dGlvbi5MU2lnbmVkRGVwb3NpdFdlaWdodBhAAAAAAAAAAAAAAAAAAAAAAASoIFBlci13ZWlnaHQgZGVwb3NpdCBmb3IgYSBzaWduZWQgc29sdXRpb24uKE1heFdpbm5lcnMQENAHAAAQNQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHdpbm5lcnMgdGhhdCBjYW4gYmUgZWxlY3RlZCBieSB0aGlzIGBFbGVjdGlvblByb3ZpZGVyYEAgaW1wbGVtZW50YXRpb24uAFEBIE5vdGU6IFRoaXMgbXVzdCBhbHdheXMgYmUgZ3JlYXRlciBvciBlcXVhbCB0byBgVDo6RGF0YVByb3ZpZGVyOjpkZXNpcmVkX3RhcmdldHMoKWAuOE1pbmVyTWF4TGVuZ3RoEBAAADYAADhNaW5lck1heFdlaWdodChAC4jYZjxVAROjcD0K16NwvQBUTWluZXJNYXhWb3Rlc1BlclZvdGVyEBAYAAAAADxNaW5lck1heFdpbm5lcnMQENAHAAAAAYULJQAMTmlzAQxOaXMQLFF1ZXVlVG90YWxzAQCJC0mc0QcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGEBIFRoZSB0b3RhbHMgb2YgaXRlbXMgYW5kIGJhbGFuY2VzIHdpdGhpbiBlYWNoIHF1ZXVlLiBTYXZlcyBhIGxvdCBvZiBzdG9yYWdlIHJlYWRzIGluIHRoZYAgY2FzZSBvZiBzcGFyc2VseSBwYWNrZWQgcXVldWVzLgBtASBUaGUgdmVjdG9yIGlzIGluZGV4ZWQgYnkgZHVyYXRpb24gaW4gYFBlcmlvZGBzLCBvZmZzZXQgYnkgb25lLCBzbyBpbmZvcm1hdGlvbiBvbiB0aGUgcXVldWXUIHdob3NlIGR1cmF0aW9uIGlzIG9uZSBgUGVyaW9kYCB3b3VsZCBiZSBzdG9yYWdlIGAwYC4YUXVldWVzAQEEAhCNCwQABOAgVGhlIHF1ZXVlcyBvZiBiaWRzLiBJbmRleGVkIGJ5IGR1cmF0aW9uIChpbiBgUGVyaW9kYHMpLhxTdW1tYXJ5AQCZC6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLAgU3VtbWFyeSBpbmZvcm1hdGlvbiBvdmVyIHRoZSBnZW5lcmFsIHN0YXRlLiBSZWNlaXB0cwABBAIQnQsEAARBASBUaGUgY3VycmVudGx5IG91dHN0YW5kaW5nIHJlY2VpcHRzLCBpbmRleGVkIGFjY29yZGluZyB0byB0aGUgb3JkZXIgb2YgY3JlYXRpb24uAXUEAdkHKCBQYWxsZXRJZMEJIHB5L25pcyAgBBkBIFRoZSB0cmVhc3VyeSdzIHBhbGxldCBpZCwgdXNlZCBmb3IgZGVyaXZpbmcgaXRzIHNvdmVyZWlnbiBhY2NvdW50IElELihRdWV1ZUNvdW50EBD0AQAACF0BIE51bWJlciBvZiBkdXJhdGlvbiBxdWV1ZXMgaW4gdG90YWwuIFRoaXMgc2V0cyB0aGUgbWF4aW11bSBkdXJhdGlvbiBzdXBwb3J0ZWQsIHdoaWNoIGlzjCB0aGlzIHZhbHVlIG11bHRpcGxpZWQgYnkgYFBlcmlvZGAuLE1heFF1ZXVlTGVuEBDoAwAADPAgTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCBtYXkgYmUgaW4gZWFjaCBkdXJhdGlvbiBxdWV1ZS4AaCBNdXN0IGJlIGxhcmdlciB0aGFuIHplcm8uMEZpZm9RdWV1ZUxlbhAQ+gAAAAwJASBQb3J0aW9uIG9mIHRoZSBxdWV1ZSB3aGljaCBpcyBmcmVlIGZyb20gb3JkZXJpbmcgYW5kIGp1c3QgYSBGSUZPLgCcIE11c3QgYmUgbm8gZ3JlYXRlciB0aGFuIGBNYXhRdWV1ZUxlbmAuKEJhc2VQZXJpb2QQEMCJAQAIQQEgVGhlIGJhc2UgcGVyaW9kIGZvciB0aGUgZHVyYXRpb24gcXVldWVzLiBUaGlzIGlzIHRoZSBjb21tb24gbXVsdGlwbGUgYWNyb3NzIGFsbMwgc3VwcG9ydGVkIGZyZWV6aW5nIGR1cmF0aW9ucyB0aGF0IGNhbiBiZSBiaWQgdXBvbi4YTWluQmlkGEA0NSYaCAMAAAAAAAAAAAAAGCEBIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBmdW5kcyB0aGF0IG1heSBiZSBwbGFjZWQgaW4gYSBiaWQuIE5vdGUgdGhhdCB0aGlzYQEgZG9lcyBub3QgYWN0dWFsbHkgbGltaXQgdGhlIGFtb3VudCB3aGljaCBtYXkgYmUgcmVwcmVzZW50ZWQgaW4gYSByZWNlaXB0IHNpbmNlIGJpZHMgbWF5bCBiZSBzcGxpdCB1cCBieSB0aGUgc3lzdGVtLgBlASBJdCBzaG91bGQgYmUgYXQgbGVhc3QgYmlnIGVub3VnaCB0byBlbnN1cmUgdGhhdCB0aGVyZSBpcyBubyBwb3NzaWJsZSBzdG9yYWdlIHNwYW0gYXR0YWNrZCBvciBxdWV1ZS1maWxsaW5nIGF0dGFjay4oTWluUmVjZWlwdJ0CIADodkgXAAAACFUBIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBmdW5kcyB3aGljaCBtYXkgaW50ZW50aW9uYWxseSBiZSBsZWZ0IHJlbWFpbmluZyB1bmRlciBhIHNpbmdsZSQgcmVjZWlwdC4wSW50YWtlUGVyaW9kEBAyAAAAEF0BIFRoZSBudW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gY29uc2VjdXRpdmUgYXR0ZW1wdHMgdG8gZGVxdWV1ZSBiaWRzIGFuZCBjcmVhdGUgcmVjZWlwdHMuAF0BIEEgbGFyZ2VyIHZhbHVlIHJlc3VsdHMgaW4gZmV3ZXIgc3RvcmFnZSBoaXRzIGVhY2ggYmxvY2ssIGJ1dCBhIHNsb3dlciBwZXJpb2QgdG8gZ2V0IHRvMCB0aGUgdGFyZ2V0LjxNYXhJbnRha2VXZWlnaHQoPAcA0O2QLhOZmZmZmZmZGQxVASBUaGUgbWF4aW11bSBhbW91bnQgb2YgYmlkcyB0aGF0IGNhbiBjb25zb2xpZGF0ZWQgaW50byByZWNlaXB0cyBpbiBhIHNpbmdsZSBpbnRha2UuIEFdASBsYXJnZXIgdmFsdWUgaGVyZSBtZWFucyBsZXNzIG9mIHRoZSBibG9jayBhdmFpbGFibGUgZm9yIHRyYW5zYWN0aW9ucyBzaG91bGQgdGhlcmUgYmUgYTggZ2x1dCBvZiBiaWRzLjBUaGF3VGhyb3R0bGWhCzAAANnprC14AwUAAAAESQEgVGhlIG1heGltdW0gcHJvcG9ydGlvbiB3aGljaCBtYXkgYmUgdGhhd2VkIGFuZCB0aGUgcGVyaW9kIG92ZXIgd2hpY2ggaXQgaXMgcmVzZXQuAaULJgBYTmlzQ291bnRlcnBhcnRCYWxhbmNlcwFYTmlzQ291bnRlcnBhcnRCYWxhbmNlcxw0VG90YWxJc3N1YW5jZQEAGEAAAAAAAAAAAAAAAAAAAAAABJggVGhlIHRvdGFsIHVuaXRzIGlzc3VlZCBpbiB0aGUgc3lzdGVtLkBJbmFjdGl2ZUlzc3VhbmNlAQAYQAAAAAAAAAAAAAAAAAAAAAAECQEgVGhlIHRvdGFsIHVuaXRzIG9mIG91dHN0YW5kaW5nIGRlYWN0aXZhdGVkIGJhbGFuY2UgaW4gdGhlIHN5c3RlbS4cQWNjb3VudAEBBAIAFAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGAJASBUaGUgQmFsYW5jZXMgcGFsbGV0IGV4YW1wbGUgb2Ygc3RvcmluZyB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUgexkCICAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3RvcmFnZU1hcFNoaW08U2VsZjo6QWNjb3VudDxSdW50aW1lPiwgZnJhbWVfc3lzdGVtOjpQcm92aWRlcjxSdW50aW1lPiwgQWNjb3VudElkLCBTZWxmOjpBY2NvdW50RGF0YTxCYWxhbmNlPj4MICB9ECBgYGAAFQEgWW91IGNhbiBhbHNvIHN0b3JlIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQgaW4gdGhlIGBTeXN0ZW1gIHBhbGxldC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHt0ICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTeXN0ZW0MICB9ECBgYGAAUQEgQnV0IHRoaXMgY29tZXMgd2l0aCB0cmFkZW9mZnMsIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUgc3lzdGVtIHBhbGxldCBzdG9yZXNtASBgZnJhbWVfc3lzdGVtYCBkYXRhIGFsb25nc2lkZSB0aGUgYWNjb3VudCBkYXRhIGNvbnRyYXJ5IHRvIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUpASBgQmFsYW5jZXNgIHBhbGxldCwgd2hpY2ggdXNlcyBhIGBTdG9yYWdlTWFwYCB0byBzdG9yZSBiYWxhbmNlcyBkYXRhIG9ubHkuQQEgTk9URTogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIHBhbGxldCBpcyB1c2VkIHRvIHN0b3JlIGJhbGFuY2VzLhRMb2NrcwEBBAIAqQsEABC4IEFueSBsaXF1aWRpdHkgbG9ja3Mgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLiUBIE5PVEU6IFNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHdoZW4gc2V0dGluZywgY2hhbmdpbmcgYW5kIGZyZWVpbmcgYSBsb2NrLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gIFJlc2VydmVzAQEEAgCtCwQADKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYBRIb2xkcwEBBAIA4QgEAARsIEhvbGRzIG9uIGFjY291bnQgYmFsYW5jZXMuHEZyZWV6ZXMBAQQCALELBAAEiCBGcmVlemUgbG9ja3Mgb24gYWNjb3VudCBiYWxhbmNlcy4BeQQB3QcQSEV4aXN0ZW50aWFsRGVwb3NpdBhAAOQLVAIAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEgTWF4TG9ja3MQEAQAAAAQ9CBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9ja3MgdGhhdCBzaG91bGQgZXhpc3Qgb24gYW4gYWNjb3VudC7cIE5vdCBzdHJpY3RseSBlbmZvcmNlZCwgYnV0IHVzZWQgZm9yIHdlaWdodCBlc3RpbWF0aW9uLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gLE1heFJlc2VydmVzEBAEAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYChNYXhGcmVlemVzEBABAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgG9Cy0AJFZvdGVyTGlzdAEkVm90ZXJMaXN0DCRMaXN0Tm9kZXMAAQQFAMELBAAMgCBBIHNpbmdsZSBub2RlLCB3aXRoaW4gc29tZSBiYWcuAAUBIE5vZGVzIHN0b3JlIGxpbmtzIGZvcndhcmQgYW5kIGJhY2sgd2l0aGluIHRoZWlyIHJlc3BlY3RpdmUgYmFncy5MQ291bnRlckZvckxpc3ROb2RlcwEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwIExpc3RCYWdzAAEEBTDFCwQADGQgQSBiYWcgc3RvcmVkIGluIHN0b3JhZ2UuABkBIFN0b3JlcyBhIGBCYWdgIHN0cnVjdCwgd2hpY2ggc3RvcmVzIGhlYWQgYW5kIHRhaWwgcG9pbnRlcnMgdG8gaXRzZWxmLgF9BAHhBwQ0QmFnVGhyZXNob2xkc8kLCRkhA1Wg/AEAAAAA2qZGAgAAAABuc5sCAAAAAHmX/AIAAAAA0N5rAwAAAAAzWOsDAAAAAA1ffQQAAAAAmqYkBQAAAACxRuQFAAAAAGfKvwYAAAAA1kC7BwAAAABTUNsIAAAAAHFMJQoAAAAANk+fCwAAAAAAVlANAAAAAJhiQA8AAAAAG6F4EQAAAABlkwMUAAAAAM1C7RYAAAAAIHlDGgAAAADkARYeAAAAAB71diIAAAAA+Qx7JwAAAADgBzotAAAAAOgYzzMAAAAAjGhZOwAAAAAuqPxDAAAAAAq74U0AAAAAw3c3WQAAAAAZhjNmAAAAAOhcE3UAAAAAGGUdhgAAAADoRqKZAAAAAL5n/q8AAAAAhJ+byQAAAACtLfPmAAAAACj3jwgBAAAA2BcRLwEAAAC+0yxbAQAAAML1s40BAAAACqyVxwEAAAAr9OMJAgAAACKs2FUCAAAAEGDbrAIAAAAu8IcQAwAAAHwutoIDAAAAK5iCBQQAAAAXVFibBAAAAJ2l/EYFAAAA/wmcCwYAAABsPtnsBgAAAMR13u4HAAAAlg9xFgkAAACqLQhpCgAAAPiS5uwLAAAAjEY4qQ0AAACXhjSmDwAAAG2sRO0RAAAAeLkwiRQAAAAWYFKGFwAAAOR5z/IaAAAAQADd3h4AAAD/wwtdIwAAAIJPoIIoAAAAJ5P3Zy4AAACmOPooNQAAAEi/oOU8AAAAR9KKwkUAAADFpazpTwAAAPaOFYtbAAAAkIPT3WgAAABmtfcgeAAAAM8bwZyJAAAA/G/yo50AAAAe71mVtAAAAMAgkt3OAAAAsu0D+ewAAAAHiTN2DwEAANMOY/g2AQAAElKXOmQBAADhIw0TmAEAAKByL3fTAQAAeAEhgBcCAABlM+9vZQIAAEKFhre+AgAAKOeE/SQDAACxPwommgMAANAWrFsgBAAAIsi2GboEAAB5x+w3agUAAOCS+/czBgAAPQXmFBsHAAD3Aa3UIwgAANgQihxTCQAAyKsbiK4KAACy7/CDPAwAAOhY8msEDgAAD303rg4QAADVp+7yZBIAAFg/E0oSFQAAF1PLXyMYAABcNmS4phsAAKYaCvWsHwAAM/J/IkkkAABLOkwTkSkAACiIBcedLwAAN9On4Is2AAD/oSIufD4AAPDEoUOURwAA5a1vLf9RAAAHbrs77l0AAKvwBuyZawAAjGyO9EJ7AAA61pp2M40AALpXaV3AoQAAXdok8Eq5AAC2b2CeQtQAAHZVlg8n8wAAJY1sf4oWAQBRaetxFD8BALm+csyEbQEAPEsXYreiAQDMLzQEqN8BAPcnbip3JQIASAszSG91AgAdXPXoCtECAA9kELD7OQMAqQR3XTKyAwAt4SH95zsEADCvt2yo2QQA+3U+aV6OBQA8RORdYV0GACy5OzWFSgcAqPjLdyxaCAB6SLkNXZEJAD09xwXY9QoADR5C0jSODAAcsL58AGIOACR5Y2TheRAAG43tL8DfEgDT6UK19p4VAOjKmbSFxBgA0MiMZVJfHADC9Xf5bIAgAAq84mBhOyUAdL1N0pOmKgDsS2HIqtswAEiwN20I+DcAwBOEsVUdQADcK/2hIXJJAHC2Re2XIlQAbPxR+lFhYABskwhtRmhuAJyq6IbbeX4AwDaDdiHikACgZJtlOvilACijTO72H74AOFqil67L2QBIMzUWXX75ANDK5FIOzh0BAJCnrqRmRwHgnZKlBg13ATB3jtzCoq0B0Au41Tsq7AFAsYwJb8szAoBRkwJu2YUCoPbWY6PY4wJgu8uHAYZPA6BF+LY838oDQIFt6DcsWARAXiCp0An6BICNckU9drMFgPNbwDffhwaATuyoODJ7BwCxmKEO75EIgAsvmyo90QmAokiUBQQ/CwByTFoTB+IMANj4l8YFwg4AmJC+PeDnEABDT2VGwV0TANYc/31OLxYAmzK4c99pGQAAh3XQvBwdANpW669oWSEA2stCgfEzJgA8iJ73UMMrAAq35svYITIANG2tUq9tOQBQR+kzXslBACTuGOh1XEsAONS0AElUVgAIfXaywuRiAJgcA5lcSXEAiB5VPzjGgQCwy5ChYamUAChP5Z5ATKoAwOVKMEAVwwBgzXQ3s3nf//////////+s0CBUaGUgbGlzdCBvZiB0aHJlc2hvbGRzIHNlcGFyYXRpbmcgdGhlIHZhcmlvdXMgYmFncy4ASQEgSWRzIGFyZSBzZXBhcmF0ZWQgaW50byB1bnNvcnRlZCBiYWdzIGFjY29yZGluZyB0byB0aGVpciBzY29yZS4gVGhpcyBzcGVjaWZpZXMgdGhlYQEgdGhyZXNob2xkcyBzZXBhcmF0aW5nIHRoZSBiYWdzLiBBbiBpZCdzIGJhZyBpcyB0aGUgbGFyZ2VzdCBiYWcgZm9yIHdoaWNoIHRoZSBpZCdzIHNjb3JluCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gaXRzIHVwcGVyIHRocmVzaG9sZC4AZQEgV2hlbiBpZHMgYXJlIGl0ZXJhdGVkLCBoaWdoZXIgYmFncyBhcmUgaXRlcmF0ZWQgY29tcGxldGVseSBiZWZvcmUgbG93ZXIgYmFncy4gVGhpcyBtZWFuc1kBIHRoYXQgaXRlcmF0aW9uIGlzIF9zZW1pLXNvcnRlZF86IGlkcyBvZiBoaWdoZXIgc2NvcmUgdGVuZCB0byBjb21lIGJlZm9yZSBpZHMgb2YgbG93ZXItASBzY29yZSwgYnV0IHBlZXIgaWRzIHdpdGhpbiBhIHBhcnRpY3VsYXIgYmFnIGFyZSBzb3J0ZWQgaW4gaW5zZXJ0aW9uIG9yZGVyLgBoICMgRXhwcmVzc2luZyB0aGUgY29uc3RhbnQATQEgVGhpcyBjb25zdGFudCBtdXN0IGJlIHNvcnRlZCBpbiBzdHJpY3RseSBpbmNyZWFzaW5nIG9yZGVyLiBEdXBsaWNhdGUgaXRlbXMgYXJlIG5vdCwgcGVybWl0dGVkLgBBASBUaGVyZSBpcyBhbiBpbXBsaWVkIHVwcGVyIGxpbWl0IG9mIGBTY29yZTo6TUFYYDsgdGhhdCB2YWx1ZSBkb2VzIG5vdCBuZWVkIHRvIGJlIQEgc3BlY2lmaWVkIHdpdGhpbiB0aGUgYmFnLiBGb3IgYW55IHR3byB0aHJlc2hvbGQgbGlzdHMsIGlmIG9uZSBlbmRzIHdpdGgxASBgU2NvcmU6Ok1BWGAsIHRoZSBvdGhlciBvbmUgZG9lcyBub3QsIGFuZCB0aGV5IGFyZSBvdGhlcndpc2UgZXF1YWwsIHRoZSB0d298IGxpc3RzIHdpbGwgYmVoYXZlIGlkZW50aWNhbGx5LgA4ICMgQ2FsY3VsYXRpb24AVQEgSXQgaXMgcmVjb21tZW5kZWQgdG8gZ2VuZXJhdGUgdGhlIHNldCBvZiB0aHJlc2hvbGRzIGluIGEgZ2VvbWV0cmljIHNlcmllcywgc3VjaCB0aGF0QQEgdGhlcmUgZXhpc3RzIHNvbWUgY29uc3RhbnQgcmF0aW8gc3VjaCB0aGF0IGB0aHJlc2hvbGRbayArIDFdID09ICh0aHJlc2hvbGRba10gKtAgY29uc3RhbnRfcmF0aW8pLm1heCh0aHJlc2hvbGRba10gKyAxKWAgZm9yIGFsbCBga2AuAFkBIFRoZSBoZWxwZXJzIGluIHRoZSBgL3V0aWxzL2ZyYW1lL2dlbmVyYXRlLWJhZ3NgIG1vZHVsZSBjYW4gc2ltcGxpZnkgdGhpcyBjYWxjdWxhdGlvbi4ALCAjIEV4YW1wbGVzAFEBIC0gSWYgYEJhZ1RocmVzaG9sZHM6OmdldCgpLmlzX2VtcHR5KClgLCB0aGVuIGFsbCBpZHMgYXJlIHB1dCBpbnRvIHRoZSBzYW1lIGJhZywgYW5ksCAgIGl0ZXJhdGlvbiBpcyBzdHJpY3RseSBpbiBpbnNlcnRpb24gb3JkZXIuYQEgLSBJZiBgQmFnVGhyZXNob2xkczo6Z2V0KCkubGVuKCkgPT0gNjRgLCBhbmQgdGhlIHRocmVzaG9sZHMgYXJlIGRldGVybWluZWQgYWNjb3JkaW5nIHRvEQEgICB0aGUgcHJvY2VkdXJlIGdpdmVuIGFib3ZlLCB0aGVuIHRoZSBjb25zdGFudCByYXRpbyBpcyBlcXVhbCB0byAyLmUBIC0gSWYgYEJhZ1RocmVzaG9sZHM6OmdldCgpLmxlbigpID09IDIwMGAsIGFuZCB0aGUgdGhyZXNob2xkcyBhcmUgZGV0ZXJtaW5lZCBhY2NvcmRpbmcgdG9ZASAgIHRoZSBwcm9jZWR1cmUgZ2l2ZW4gYWJvdmUsIHRoZW4gdGhlIGNvbnN0YW50IHJhdGlvIGlzIGFwcHJveGltYXRlbHkgZXF1YWwgdG8gMS4yNDguYQEgLSBJZiB0aGUgdGhyZXNob2xkIGxpc3QgYmVnaW5zIGBbMSwgMiwgMywgLi4uXWAsIHRoZW4gYW4gaWQgd2l0aCBzY29yZSAwIG9yIDEgd2lsbCBmYWxs8CAgIGludG8gYmFnIDAsIGFuIGlkIHdpdGggc2NvcmUgMiB3aWxsIGZhbGwgaW50byBiYWcgMSwgZXRjLgAwICMgTWlncmF0aW9uAGEBIEluIHRoZSBldmVudCB0aGF0IHRoaXMgbGlzdCBldmVyIGNoYW5nZXMsIGEgY29weSBvZiB0aGUgb2xkIGJhZ3MgbGlzdCBtdXN0IGJlIHJldGFpbmVkLl0BIFdpdGggdGhhdCBgTGlzdDo6bWlncmF0ZWAgY2FuIGJlIGNhbGxlZCwgd2hpY2ggd2lsbCBwZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSBtaWdyYXRpb24uAc0LJwA8Tm9taW5hdGlvblBvb2xzATxOb21pbmF0aW9uUG9vbHNUQFRvdGFsVmFsdWVMb2NrZWQBABhAAAAAAAAAAAAAAAAAAAAAABSMIFRoZSBzdW0gb2YgZnVuZHMgYWNyb3NzIGFsbCBwb29scy4AcQEgVGhpcyBtaWdodCBiZSBsb3dlciBidXQgbmV2ZXIgaGlnaGVyIHRoYW4gdGhlIHN1bSBvZiBgdG90YWxfYmFsYW5jZWAgb2YgYWxsIFtgUG9vbE1lbWJlcnNgXVkBIGJlY2F1c2UgY2FsbGluZyBgcG9vbF93aXRoZHJhd191bmJvbmRlZGAgbWlnaHQgZGVjcmVhc2UgdGhlIHRvdGFsIHN0YWtlIG9mIHRoZSBwb29sJ3MpASBgYm9uZGVkX2FjY291bnRgIHdpdGhvdXQgYWRqdXN0aW5nIHRoZSBwYWxsZXQtaW50ZXJuYWwgYFVuYm9uZGluZ1Bvb2xgJ3MuLE1pbkpvaW5Cb25kAQAYQAAAAAAAAAAAAAAAAAAAAAAEnCBNaW5pbXVtIGFtb3VudCB0byBib25kIHRvIGpvaW4gYSBwb29sLjRNaW5DcmVhdGVCb25kAQAYQAAAAAAAAAAAAAAAAAAAAAAcoCBNaW5pbXVtIGJvbmQgcmVxdWlyZWQgdG8gY3JlYXRlIGEgcG9vbC4AZQEgVGhpcyBpcyB0aGUgYW1vdW50IHRoYXQgdGhlIGRlcG9zaXRvciBtdXN0IHB1dCBhcyB0aGVpciBpbml0aWFsIHN0YWtlIGluIHRoZSBwb29sLCBhcyBhboggaW5kaWNhdGlvbiBvZiAic2tpbiBpbiB0aGUgZ2FtZSIuAGkBIFRoaXMgaXMgdGhlIHZhbHVlIHRoYXQgd2lsbCBhbHdheXMgZXhpc3QgaW4gdGhlIHN0YWtpbmcgbGVkZ2VyIG9mIHRoZSBwb29sIGJvbmRlZCBhY2NvdW50gCB3aGlsZSBhbGwgb3RoZXIgYWNjb3VudHMgbGVhdmUuIE1heFBvb2xzAAAQBAAIaQEgTWF4aW11bSBudW1iZXIgb2Ygbm9taW5hdGlvbiBwb29scyB0aGF0IGNhbiBleGlzdC4gSWYgYE5vbmVgLCB0aGVuIGFuIHVuYm91bmRlZCBudW1iZXIgb2ZEIHBvb2xzIGNhbiBleGlzdC44TWF4UG9vbE1lbWJlcnMAABAEAAhJASBNYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIHRoYXQgY2FuIGV4aXN0IGluIHRoZSBzeXN0ZW0uIElmIGBOb25lYCwgdGhlbiB0aGUgY291bnS4IG1lbWJlcnMgYXJlIG5vdCBib3VuZCBvbiBhIHN5c3RlbSB3aWRlIGJhc2lzLlRNYXhQb29sTWVtYmVyc1BlclBvb2wAABAEAAhBASBNYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIHRoYXQgbWF5IGJlbG9uZyB0byBwb29sLiBJZiBgTm9uZWAsIHRoZW4gdGhlIGNvdW50IG9mqCBtZW1iZXJzIGlzIG5vdCBib3VuZCBvbiBhIHBlciBwb29sIGJhc2lzLkxHbG9iYWxNYXhDb21taXNzaW9uAACUBAAMaQEgVGhlIG1heGltdW0gY29tbWlzc2lvbiB0aGF0IGNhbiBiZSBjaGFyZ2VkIGJ5IGEgcG9vbC4gVXNlZCBvbiBjb21taXNzaW9uIHBheW91dHMgdG8gYm91bmQlASBwb29sIGNvbW1pc3Npb25zIHRoYXQgYXJlID4gYEdsb2JhbE1heENvbW1pc3Npb25gLCBuZWNlc3NhcnkgaWYgYSBmdXR1cmUNASBgR2xvYmFsTWF4Q29tbWlzc2lvbmAgaXMgbG93ZXIgdGhhbiBzb21lIGN1cnJlbnQgcG9vbCBjb21taXNzaW9ucy4sUG9vbE1lbWJlcnMAAQQFANULBAAMQCBBY3RpdmUgbWVtYmVycy4A0CBUV09YLU5PVEU6IFNBRkUgc2luY2UgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC5UQ291bnRlckZvclBvb2xNZW1iZXJzAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAsQm9uZGVkUG9vbHMAAQQFEOELBAAEaCBTdG9yYWdlIGZvciBib25kZWQgcG9vbHMuVENvdW50ZXJGb3JCb25kZWRQb29scwEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwLFJld2FyZFBvb2xzAAEEBRD1CwQACHUBIFJld2FyZCBwb29scy4gVGhpcyBpcyB3aGVyZSB0aGVyZSByZXdhcmRzIGZvciBlYWNoIHBvb2wgYWNjdW11bGF0ZS4gV2hlbiBhIG1lbWJlcnMgcGF5b3V0IGlzWQEgY2xhaW1lZCwgdGhlIGJhbGFuY2UgY29tZXMgb3V0IG9mIHRoZSByZXdhcmQgcG9vbC4gS2V5ZWQgYnkgdGhlIGJvbmRlZCBwb29scyBhY2NvdW50LlRDb3VudGVyRm9yUmV3YXJkUG9vbHMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcDxTdWJQb29sc1N0b3JhZ2UAAQQFEPkLBAAIGQEgR3JvdXBzIG9mIHVuYm9uZGluZyBwb29scy4gRWFjaCBncm91cCBvZiB1bmJvbmRpbmcgcG9vbHMgYmVsb25ncyB0byBhKQEgYm9uZGVkIHBvb2wsIGhlbmNlIHRoZSBuYW1lIHN1Yi1wb29scy4gS2V5ZWQgYnkgdGhlIGJvbmRlZCBwb29scyBhY2NvdW50LmRDb3VudGVyRm9yU3ViUG9vbHNTdG9yYWdlAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAgTWV0YWRhdGEBAQQFEBEMBAAEXCBNZXRhZGF0YSBmb3IgdGhlIHBvb2wuSENvdW50ZXJGb3JNZXRhZGF0YQEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwKExhc3RQb29sSWQBABAQAAAAAATQIEV2ZXIgaW5jcmVhc2luZyBudW1iZXIgb2YgYWxsIHBvb2xzIGNyZWF0ZWQgc28gZmFyLkxSZXZlcnNlUG9vbElkTG9va3VwAAEEBQAQBAAQ3CBBIHJldmVyc2UgbG9va3VwIGZyb20gdGhlIHBvb2wncyBhY2NvdW50IGlkIHRvIGl0cyBpZC4AdQEgVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHNsYXNoaW5nIGFuZCBvbiBhdXRvbWF0aWMgd2l0aGRyYXcgdXBkYXRlLiBJbiBhbGwgb3RoZXIgaW5zdGFuY2VzLCB0aGUlASBwb29sIGlkIGlzIHVzZWQsIGFuZCB0aGUgYWNjb3VudHMgYXJlIGRldGVybWluaXN0aWNhbGx5IGRlcml2ZWQgZnJvbSBpdC50Q291bnRlckZvclJldmVyc2VQb29sSWRMb29rdXABABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcEBDbGFpbVBlcm1pc3Npb25zAQEEBQCdBAQCBAEBIE1hcCBmcm9tIGEgcG9vbCBtZW1iZXIgYWNjb3VudCB0byB0aGVpciBvcHRlZCBjbGFpbSBwZXJtaXNzaW9uLgGBBAHlBwwgUGFsbGV0SWTBCSBweS9ub3BscwSEIFRoZSBub21pbmF0aW9uIHBvb2wncyBwYWxsZXQgaWQuSE1heFBvaW50c1RvQmFsYW5jZQgECjAdASBUaGUgbWF4aW11bSBwb29sIHBvaW50cy10by1iYWxhbmNlIHJhdGlvIHRoYXQgYW4gYG9wZW5gIHBvb2wgY2FuIGhhdmUuAFUBIFRoaXMgaXMgaW1wb3J0YW50IGluIHRoZSBldmVudCBzbGFzaGluZyB0YWtlcyBwbGFjZSBhbmQgdGhlIHBvb2wncyBwb2ludHMtdG8tYmFsYW5jZXwgcmF0aW8gYmVjb21lcyBkaXNwcm9wb3J0aW9uYWwuAGUBIE1vcmVvdmVyLCB0aGlzIHJlbGF0ZXMgdG8gdGhlIGBSZXdhcmRDb3VudGVyYCB0eXBlIGFzIHdlbGwsIGFzIHRoZSBhcml0aG1ldGljIG9wZXJhdGlvbnNVASBhcmUgYSBmdW5jdGlvbiBvZiBudW1iZXIgb2YgcG9pbnRzLCBhbmQgYnkgc2V0dGluZyB0aGlzIHZhbHVlIHRvIGUuZy4gMTAsIHlvdSBlbnN1cmVlASB0aGF0IHRoZSB0b3RhbCBudW1iZXIgb2YgcG9pbnRzIGluIHRoZSBzeXN0ZW0gYXJlIGF0IG1vc3QgMTAgdGltZXMgdGhlIHRvdGFsX2lzc3VhbmNlIG9mnCB0aGUgY2hhaW4sIGluIHRoZSBhYnNvbHV0ZSB3b3JzZSBjYXNlLgBJASBGb3IgYSB2YWx1ZSBvZiAxMCwgdGhlIHRocmVzaG9sZCB3b3VsZCBiZSBhIHBvb2wgcG9pbnRzLXRvLWJhbGFuY2UgcmF0aW8gb2YgMTA6MS4xASBTdWNoIGEgc2NlbmFyaW8gd291bGQgYWxzbyBiZSB0aGUgZXF1aXZhbGVudCBvZiB0aGUgcG9vbCBiZWluZyA5MCUgc2xhc2hlZC4wTWF4VW5ib25kaW5nEBAgAAAABD0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXMgdW5ib25kaW5nIGNodW5rcyB0aGF0IGNhbiBleGlzdCBwZXIgbWVtYmVyLgEVDCkALEZhc3RVbnN0YWtlASxGYXN0VW5zdGFrZRAQSGVhZAAAHQwEAAzAIFRoZSBjdXJyZW50ICJoZWFkIG9mIHRoZSBxdWV1ZSIgYmVpbmcgdW5zdGFrZWQuACkBIFRoZSBoZWFkIGluIGl0c2VsZiBjYW4gYmUgYSBiYXRjaCBvZiB1cCB0byBbYENvbmZpZzo6QmF0Y2hTaXplYF0gc3Rha2Vycy4UUXVldWUAAQQFABgEAAzAIFRoZSBtYXAgb2YgYWxsIGFjY291bnRzIHdpc2hpbmcgdG8gYmUgdW5zdGFrZWQuADkBIEtlZXBzIHRyYWNrIG9mIGBBY2NvdW50SWRgIHdpc2hpbmcgdG8gdW5zdGFrZSBhbmQgaXQncyBjb3JyZXNwb25kaW5nIGRlcG9zaXQuPENvdW50ZXJGb3JRdWV1ZQEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwTEVyYXNUb0NoZWNrUGVyQmxvY2sBABAQAAAAACCMIE51bWJlciBvZiBlcmFzIHRvIGNoZWNrIHBlciBibG9jay4ANQEgSWYgc2V0IHRvIDAsIHRoaXMgcGFsbGV0IGRvZXMgYWJzb2x1dGVseSBub3RoaW5nLiBDYW5ub3QgYmUgc2V0IHRvIG1vcmUgdGhhbpAgW2BDb25maWc6Ok1heEVyYXNUb0NoZWNrUGVyQmxvY2tgXS4AZQEgQmFzZWQgb24gdGhlIGFtb3VudCBvZiB3ZWlnaHQgYXZhaWxhYmxlIGF0IFtgUGFsbGV0Ojpvbl9pZGxlYF0sIHVwIHRvIHRoaXMgbWFueSBlcmFzIGFyZV0BIGNoZWNrZWQuIFRoZSBjaGVja2luZyBpcyByZXByZXNlbnRlZCBieSB1cGRhdGluZyBbYFVuc3Rha2VSZXF1ZXN0OjpjaGVja2VkYF0sIHdoaWNoIGlzUCBzdG9yZWQgaW4gW2BIZWFkYF0uAbUEAekHBBxEZXBvc2l0GEA0TdLCBwAAAAAAAAAAAAAACGUBIERlcG9zaXQgdG8gdGFrZSBmb3IgdW5zdGFraW5nLCB0byBtYWtlIHN1cmUgd2UncmUgYWJsZSB0byBzbGFzaCB0aGUgaXQgaW4gb3JkZXIgdG8gY292ZXLAIHRoZSBjb3N0cyBvZiByZXNvdXJjZXMgb24gdW5zdWNjZXNzZnVsIHVuc3Rha2UuASkMKgBAUGFyYWNoYWluc09yaWdpbgAAAAAAMhB5ASBUaGVyZSBpcyBubyB3YXkgdG8gcmVnaXN0ZXIgYW4gb3JpZ2luIHR5cGUgaW4gYGNvbnN0cnVjdF9ydW50aW1lYCB3aXRob3V0IGEgcGFsbGV0IHRoZSBvcmlnaW4wIGJlbG9uZ3MgdG8uAHUBIFRoaXMgbW9kdWxlIGZ1bGZpbGxzIG9ubHkgdGhlIHNpbmdsZSBwdXJwb3NlIG9mIGhvdXNpbmcgdGhlIGBPcmlnaW5gIGluIGBjb25zdHJ1Y3RfcnVudGltZWAuNENvbmZpZ3VyYXRpb24BNENvbmZpZ3VyYXRpb24MMEFjdGl2ZUNvbmZpZwEALQxBAwAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAGQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAABAAAAAQAAAAEAAAAAAQAAAAAAAAAAAAAAECcAAICy5g6Aw8kBgJaYAAAAAAAAAAAAAAAAAAUAAAAEyCBUaGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uOFBlbmRpbmdDb25maWdzAQAxDAQAHHwgUGVuZGluZyBjb25maWd1cmF0aW9uIGNoYW5nZXMuAFkBIFRoaXMgaXMgYSBsaXN0IG9mIGNvbmZpZ3VyYXRpb24gY2hhbmdlcywgZWFjaCB3aXRoIGEgc2Vzc2lvbiBpbmRleCBhdCB3aGljaCBpdCBzaG91bGQwIGJlIGFwcGxpZWQuAGEBIFRoZSBsaXN0IGlzIHNvcnRlZCBhc2NlbmRpbmcgYnkgc2Vzc2lvbiBpbmRleC4gQWxzbywgdGhpcyBsaXN0IGNhbiBvbmx5IGNvbnRhaW4gYXQgbW9zdPwgMiBpdGVtczogZm9yIHRoZSBuZXh0IHNlc3Npb24gYW5kIGZvciB0aGUgYHNjaGVkdWxlZF9zZXNzaW9uYC5YQnlwYXNzQ29uc2lzdGVuY3lDaGVjawEAIAQACGEBIElmIHRoaXMgaXMgc2V0LCB0aGVuIHRoZSBjb25maWd1cmF0aW9uIHNldHRlcnMgd2lsbCBieXBhc3MgdGhlIGNvbnNpc3RlbmN5IGNoZWNrcy4gVGhpc7QgaXMgbWVhbnQgdG8gYmUgdXNlZCBvbmx5IGFzIHRoZSBsYXN0IHJlc29ydC4BuQQAAAE5DDMALFBhcmFzU2hhcmVkASxQYXJhc1NoYXJlZBBMQ3VycmVudFNlc3Npb25JbmRleAEAEBAAAAAABGwgVGhlIGN1cnJlbnQgc2Vzc2lvbiBpbmRleC5YQWN0aXZlVmFsaWRhdG9ySW5kaWNlcwEAPQwEAAgJASBBbGwgdGhlIHZhbGlkYXRvcnMgYWN0aXZlbHkgcGFydGljaXBhdGluZyBpbiBwYXJhY2hhaW4gY29uc2Vuc3VzLrAgSW5kaWNlcyBhcmUgaW50byB0aGUgYnJvYWRlciB2YWxpZGF0b3Igc2V0LkxBY3RpdmVWYWxpZGF0b3JLZXlzAQBBDAQACFUBIFRoZSBwYXJhY2hhaW4gYXR0ZXN0YXRpb24ga2V5cyBvZiB0aGUgdmFsaWRhdG9ycyBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIHBhcmFjaGFpbh0BIGNvbnNlbnN1cy4gVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgbGVuZ3RoIGFzIGBBY3RpdmVWYWxpZGF0b3JJbmRpY2VzYC5MQWxsb3dlZFJlbGF5UGFyZW50cwEARQwUAAAAAAAEbCBBbGwgYWxsb3dlZCByZWxheS1wYXJlbnRzLgHdBAAAADQANFBhcmFJbmNsdXNpb24BNFBhcmFJbmNsdXNpb24ECFYxAAEEBWkCUQwEABRhASBDYW5kaWRhdGVzIHBlbmRpbmcgYXZhaWxhYmlsaXR5IGJ5IGBQYXJhSWRgLiBUaGV5IGZvcm0gYSBjaGFpbiBzdGFydGluZyBmcm9tIHRoZSBsYXRlc3RsIGluY2x1ZGVkIGhlYWQgb2YgdGhlIHBhcmEuYQEgVXNlIGEgZGlmZmVyZW50IHByZWZpeCBwb3N0LW1pZ3JhdGlvbiB0byB2MSwgc2luY2UgdGhlIHYwIGBQZW5kaW5nQXZhaWxhYmlsaXR5YCBzdG9yYWdlcQEgd291bGQgb3RoZXJ3aXNlIGhhdmUgdGhlIGV4YWN0IHNhbWUgcHJlZml4IHdoaWNoIGNvdWxkIGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvdXIgd2hlbiBkb2luZzwgdGhlIG1pZ3JhdGlvbi4B4QQB7QcAAVkMNQAwUGFyYUluaGVyZW50ATBQYXJhSW5oZXJlbnQIIEluY2x1ZGVkAAChAQQAGOwgV2hldGhlciB0aGUgcGFyYXMgaW5oZXJlbnQgd2FzIGluY2x1ZGVkIHdpdGhpbiB0aGlzIGJsb2NrLgBpASBUaGUgYE9wdGlvbjwoKT5gIGlzIGVmZmVjdGl2ZWx5IGEgYGJvb2xgLCBidXQgaXQgbmV2ZXIgaGl0cyBzdG9yYWdlIGluIHRoZSBgTm9uZWAgdmFyaWFudLwgZHVlIHRvIHRoZSBndWFyYW50ZWVzIG9mIEZSQU1FJ3Mgc3RvcmFnZSBBUElzLgBJASBJZiB0aGlzIGlzIGBOb25lYCBhdCB0aGUgZW5kIG9mIHRoZSBibG9jaywgd2UgcGFuaWMgYW5kIHJlbmRlciB0aGUgYmxvY2sgaW52YWxpZC4wT25DaGFpblZvdGVzAABdDAQABEUBIFNjcmFwZWQgb24gY2hhaW4gZGF0YSBmb3IgZXh0cmFjdGluZyByZXNvbHZlZCBkaXNwdXRlcyBhcyB3ZWxsIGFzIGJhY2tpbmcgdm90ZXMuAeUEAAABcQw2ADRQYXJhU2NoZWR1bGVyATRQYXJhU2NoZWR1bGVyEDxWYWxpZGF0b3JHcm91cHMBAHUMBAAcbQEgQWxsIHRoZSB2YWxpZGF0b3IgZ3JvdXBzLiBPbmUgZm9yIGVhY2ggY29yZS4gSW5kaWNlcyBhcmUgaW50byBgQWN0aXZlVmFsaWRhdG9yc2AgLSBub3QgdGhlbQEgYnJvYWRlciBzZXQgb2YgUG9sa2Fkb3QgdmFsaWRhdG9ycywgYnV0IGluc3RlYWQganVzdCB0aGUgc3Vic2V0IHVzZWQgZm9yIHBhcmFjaGFpbnMgZHVyaW5nOCB0aGlzIHNlc3Npb24uAEkBIEJvdW5kOiBUaGUgbnVtYmVyIG9mIGNvcmVzIGlzIHRoZSBzdW0gb2YgdGhlIG51bWJlcnMgb2YgcGFyYWNoYWlucyBhbmQgcGFyYXRocmVhZGkBIG11bHRpcGxleGVycy4gUmVhc29uYWJseSwgMTAwLTEwMDAuIFRoZSBkb21pbmFudCBmYWN0b3IgaXMgdGhlIG51bWJlciBvZiB2YWxpZGF0b3JzOiBzYWZlUCB1cHBlciBib3VuZCBhdCAxMGsuREF2YWlsYWJpbGl0eUNvcmVzAQB5DAQAGHEBIE9uZSBlbnRyeSBmb3IgZWFjaCBhdmFpbGFiaWxpdHkgY29yZS4gVGhlIGkndGggcGFyYWNoYWluIGJlbG9uZ3MgdG8gdGhlIGkndGggY29yZSwgd2l0aCB0aGXwIHJlbWFpbmluZyBjb3JlcyBhbGwgYmVpbmcgb24gZGVtYW5kIHBhcmFjaGFpbiBtdWx0aXBsZXhlcnMuANggQm91bmRlZCBieSB0aGUgbWF4aW11bSBvZiBlaXRoZXIgb2YgdGhlc2UgdHdvIHZhbHVlczrkICAgKiBUaGUgbnVtYmVyIG9mIHBhcmFjaGFpbnMgYW5kIHBhcmF0aHJlYWQgbXVsdGlwbGV4ZXJzRQEgICAqIFRoZSBudW1iZXIgb2YgdmFsaWRhdG9ycyBkaXZpZGVkIGJ5IGBjb25maWd1cmF0aW9uLm1heF92YWxpZGF0b3JzX3Blcl9jb3JlYC5EU2Vzc2lvblN0YXJ0QmxvY2sBABAQAAAAABxpASBUaGUgYmxvY2sgbnVtYmVyIHdoZXJlIHRoZSBzZXNzaW9uIHN0YXJ0IG9jY3VycmVkLiBVc2VkIHRvIHRyYWNrIGhvdyBtYW55IGdyb3VwIHJvdGF0aW9uczwgaGF2ZSBvY2N1cnJlZC4AVQEgTm90ZSB0aGF0IGluIHRoZSBjb250ZXh0IG9mIHBhcmFjaGFpbnMgbW9kdWxlcyB0aGUgc2Vzc2lvbiBjaGFuZ2UgaXMgc2lnbmFsZWQgZHVyaW5nYQEgdGhlIGJsb2NrIGFuZCBlbmFjdGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrIChhdCB0aGUgZmluYWxpemF0aW9uIHN0YWdlLCB0byBiZSBleGFjdCkuWQEgVGh1cyBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzIHRoZSBlZmZlY3Qgb2YgdGhlIHNlc3Npb24gY2hhbmdlIGlzIG9ic2VydmVkIGF0IHRoZWUBIGJsb2NrIGZvbGxvd2luZyB0aGUgc2Vzc2lvbiBjaGFuZ2UsIGJsb2NrIG51bWJlciBvZiB3aGljaCB3ZSBzYXZlIGluIHRoaXMgc3RvcmFnZSB2YWx1ZS4oQ2xhaW1RdWV1ZQEAiQwEAAxZASBPbmUgZW50cnkgZm9yIGVhY2ggYXZhaWxhYmlsaXR5IGNvcmUuIFRoZSBgVmVjRGVxdWVgIHJlcHJlc2VudHMgdGhlIGFzc2lnbm1lbnRzIHRvIGJlUQEgc2NoZWR1bGVkIG9uIHRoYXQgY29yZS4gVGhlIHZhbHVlIGNvbnRhaW5lZCBoZXJlIHdpbGwgbm90IGJlIHZhbGlkIGFmdGVyIHRoZSBlbmQgb2ZpASBhIGJsb2NrLiBSdW50aW1lIEFQSXMgc2hvdWxkIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHNjaGVkdWxlZCBjb3JlcyBmb3IgdGhlIHVwY29taW5nIGJsb2NrLgAAAAA3ABRQYXJhcwEUUGFyYXNUQFB2ZkFjdGl2ZVZvdGVNYXAAAQQFIQWZDAQAELQgQWxsIGN1cnJlbnRseSBhY3RpdmUgUFZGIHByZS1jaGVja2luZyB2b3Rlcy4ALCBJbnZhcmlhbnQ6dQEgLSBUaGVyZSBhcmUgbm8gUFZGIHByZS1jaGVja2luZyB2b3RlcyB0aGF0IGV4aXN0cyBpbiBsaXN0IGJ1dCBub3QgaW4gdGhlIHNldCBhbmQgdmljZSB2ZXJzYS5EUHZmQWN0aXZlVm90ZUxpc3QBAKkMBAAENQEgVGhlIGxpc3Qgb2YgYWxsIGN1cnJlbnRseSBhY3RpdmUgUFZGIHZvdGVzLiBBdXhpbGlhcnkgdG8gYFB2ZkFjdGl2ZVZvdGVNYXBgLihQYXJhY2hhaW5zAQCtDAQAEGkBIEFsbCBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbnMuIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGBQYXJhSWRgLiBPbiBkZW1hbmQgcGFyYWNoYWlucyBhcmUgbm90KCBpbmNsdWRlZC4A6CBDb25zaWRlciB1c2luZyB0aGUgW2BQYXJhY2hhaW5zQ2FjaGVgXSB0eXBlIG9mIG1vZGlmeWluZy44UGFyYUxpZmVjeWNsZXMAAQQFaQKxDAQABLwgVGhlIGN1cnJlbnQgbGlmZWN5Y2xlIG9mIGEgYWxsIGtub3duIFBhcmEgSURzLhRIZWFkcwABBAVpAkEFBAAEoCBUaGUgaGVhZC1kYXRhIG9mIGV2ZXJ5IHJlZ2lzdGVyZWQgcGFyYS5ETW9zdFJlY2VudENvbnRleHQAAQQFaQIQBAAEKQEgVGhlIGNvbnRleHQgKHJlbGF5LWNoYWluIGJsb2NrIG51bWJlcikgb2YgdGhlIG1vc3QgcmVjZW50IHBhcmFjaGFpbiBoZWFkLjxDdXJyZW50Q29kZUhhc2gAAQQFaQIhBQQADLQgVGhlIHZhbGlkYXRpb24gY29kZSBoYXNoIG9mIGV2ZXJ5IGxpdmUgcGFyYS4A5CBDb3JyZXNwb25kaW5nIGNvZGUgY2FuIGJlIHJldHJpZXZlZCB3aXRoIFtgQ29kZUJ5SGFzaGBdLjBQYXN0Q29kZUhhc2gAAQQFtQwhBQQAEGEBIEFjdHVhbCBwYXN0IGNvZGUgaGFzaCwgaW5kaWNhdGVkIGJ5IHRoZSBwYXJhIGlkIGFzIHdlbGwgYXMgdGhlIGJsb2NrIG51bWJlciBhdCB3aGljaCBpdEQgYmVjYW1lIG91dGRhdGVkLgDkIENvcnJlc3BvbmRpbmcgY29kZSBjYW4gYmUgcmV0cmlldmVkIHdpdGggW2BDb2RlQnlIYXNoYF0uMFBhc3RDb2RlTWV0YQEBBAVpArkMCAAADEkBIFBhc3QgY29kZSBvZiBwYXJhY2hhaW5zLiBUaGUgcGFyYWNoYWlucyB0aGVtc2VsdmVzIG1heSBub3QgYmUgcmVnaXN0ZXJlZCBhbnltb3JlLEkBIGJ1dCB3ZSBhbHNvIGtlZXAgdGhlaXIgY29kZSBvbi1jaGFpbiBmb3IgdGhlIHNhbWUgYW1vdW50IG9mIHRpbWUgYXMgb3V0ZGF0ZWQgY29kZbAgdG8ga2VlcCBpdCBhdmFpbGFibGUgZm9yIGFwcHJvdmFsIGNoZWNrZXJzLjxQYXN0Q29kZVBydW5pbmcBAMUMBAAYaQEgV2hpY2ggcGFyYXMgaGF2ZSBwYXN0IGNvZGUgdGhhdCBuZWVkcyBwcnVuaW5nIGFuZCB0aGUgcmVsYXktY2hhaW4gYmxvY2sgYXQgd2hpY2ggdGhlIGNvZGVpASB3YXMgcmVwbGFjZWQuIE5vdGUgdGhhdCB0aGlzIGlzIHRoZSBhY3R1YWwgaGVpZ2h0IG9mIHRoZSBpbmNsdWRlZCBibG9jaywgbm90IHRoZSBleHBlY3RlZD0BIGhlaWdodCBhdCB3aGljaCB0aGUgY29kZSB1cGdyYWRlIHdvdWxkIGJlIGFwcGxpZWQsIGFsdGhvdWdoIHRoZXkgbWF5IGJlIGVxdWFsLm0BIFRoaXMgaXMgdG8gZW5zdXJlIHRoZSBlbnRpcmUgYWNjZXB0YW5jZSBwZXJpb2QgaXMgY292ZXJlZCwgbm90IGFuIG9mZnNldCBhY2NlcHRhbmNlIHBlcmlvZG0BIHN0YXJ0aW5nIGZyb20gdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHBhcmFjaGFpbiBwZXJjZWl2ZXMgYSBjb2RlIHVwZ3JhZGUgYXMgaGF2aW5nIG9jY3VycmVkLlUBIE11bHRpcGxlIGVudHJpZXMgZm9yIGEgc2luZ2xlIHBhcmEgYXJlIHBlcm1pdHRlZC4gT3JkZXJlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyLkhGdXR1cmVDb2RlVXBncmFkZXMAAQQFaQIQBAAQPQEgVGhlIGJsb2NrIG51bWJlciBhdCB3aGljaCB0aGUgcGxhbm5lZCBjb2RlIGNoYW5nZSBpcyBleHBlY3RlZCBmb3IgYSBwYXJhY2hhaW4uAGUBIFRoZSBjaGFuZ2Ugd2lsbCBiZSBhcHBsaWVkIGFmdGVyIHRoZSBmaXJzdCBwYXJhYmxvY2sgZm9yIHRoaXMgSUQgaW5jbHVkZWQgd2hpY2ggZXhlY3V0ZXMZASBpbiB0aGUgY29udGV4dCBvZiBhIHJlbGF5IGNoYWluIGJsb2NrIHdpdGggYSBudW1iZXIgPj0gYGV4cGVjdGVkX2F0YC5QRnV0dXJlQ29kZVVwZ3JhZGVzQXQBAMUMBAAgrCBUaGUgbGlzdCBvZiB1cGNvbWluZyBmdXR1cmUgY29kZSB1cGdyYWRlcy4AbQEgRWFjaCBpdGVtIGlzIGEgcGFpciBvZiB0aGUgcGFyYWNoYWluIGFuZCB0aGUgZXhwZWN0ZWQgYmxvY2sgYXQgd2hpY2ggdGhlIHVwZ3JhZGUgc2hvdWxkIGJlUQEgYXBwbGllZC4gVGhlIHVwZ3JhZGUgd2lsbCBiZSBhcHBsaWVkIGF0IHRoZSBnaXZlbiByZWxheSBjaGFpbiBibG9jay4gSW4gY29udHJhc3QgdG91ASBbYEZ1dHVyZUNvZGVVcGdyYWRlc2BdIHRoaXMgY29kZSB1cGdyYWRlIHdpbGwgYmUgYXBwbGllZCByZWdhcmRsZXNzIHRoZSBwYXJhY2hhaW4gbWFraW5nIGFueUQgcHJvZ3Jlc3Mgb3Igbm90LgCMIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGJsb2NrIG51bWJlci44RnV0dXJlQ29kZUhhc2gAAQQFaQIhBQQADJwgVGhlIGFjdHVhbCBmdXR1cmUgY29kZSBoYXNoIG9mIGEgcGFyYS4A5CBDb3JyZXNwb25kaW5nIGNvZGUgY2FuIGJlIHJldHJpZXZlZCB3aXRoIFtgQ29kZUJ5SGFzaGBdLlBVcGdyYWRlR29BaGVhZFNpZ25hbAABBAVpAskMBAAodQEgVGhpcyBpcyB1c2VkIGJ5IHRoZSByZWxheS1jaGFpbiB0byBjb21tdW5pY2F0ZSB0byBhIHBhcmFjaGFpbiBhIGdvLWFoZWFkIHdpdGggaW4gdGhlIHVwZ3JhZGUsIHByb2NlZHVyZS4AdQEgVGhpcyB2YWx1ZSBpcyBhYnNlbnQgd2hlbiB0aGVyZSBhcmUgbm8gdXBncmFkZXMgc2NoZWR1bGVkIG9yIGR1cmluZyB0aGUgdGltZSB0aGUgcmVsYXkgY2hhaW5VASBwZXJmb3JtcyB0aGUgY2hlY2tzLiBJdCBpcyBzZXQgYXQgdGhlIGZpcnN0IHJlbGF5LWNoYWluIGJsb2NrIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmd1ASBwYXJhY2hhaW4gY2FuIHN3aXRjaCBpdHMgdXBncmFkZSBmdW5jdGlvbi4gQXMgc29vbiBhcyB0aGUgcGFyYWNoYWluJ3MgYmxvY2sgaXMgaW5jbHVkZWQsIHRoZXAgdmFsdWUgZ2V0cyByZXNldCB0byBgTm9uZWAuAGUBIE5PVEUgdGhhdCB0aGlzIGZpZWxkIGlzIHVzZWQgYnkgcGFyYWNoYWlucyB2aWEgbWVya2xlIHN0b3JhZ2UgcHJvb2ZzLCB0aGVyZWZvcmUgY2hhbmdpbmfEIHRoZSBmb3JtYXQgd2lsbCByZXF1aXJlIG1pZ3JhdGlvbiBvZiBwYXJhY2hhaW5zLmBVcGdyYWRlUmVzdHJpY3Rpb25TaWduYWwAAQQFaQLNDAQAJGkBIFRoaXMgaXMgdXNlZCBieSB0aGUgcmVsYXktY2hhaW4gdG8gY29tbXVuaWNhdGUgdGhhdCB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zIGZvciBwZXJmb3JtaW5nfCBhbiB1cGdyYWRlIGZvciB0aGlzIHBhcmFjaGFpbi4AWQEgVGhpcyBtYXkgYmUgYSBiZWNhdXNlIHRoZSBwYXJhY2hhaW4gd2FpdHMgZm9yIHRoZSB1cGdyYWRlIGNvb2xkb3duIHRvIGV4cGlyZS4gQW5vdGhlcm0BIHBvdGVudGlhbCB1c2UgY2FzZSBpcyB3aGVuIHdlIHdhbnQgdG8gcGVyZm9ybSBzb21lIG1haW50ZW5hbmNlIChzdWNoIGFzIHN0b3JhZ2UgbWlncmF0aW9uKeAgd2UgY291bGQgcmVzdHJpY3QgdXBncmFkZXMgdG8gbWFrZSB0aGUgcHJvY2VzcyBzaW1wbGVyLgBlASBOT1RFIHRoYXQgdGhpcyBmaWVsZCBpcyB1c2VkIGJ5IHBhcmFjaGFpbnMgdmlhIG1lcmtsZSBzdG9yYWdlIHByb29mcywgdGhlcmVmb3JlIGNoYW5naW5nxCB0aGUgZm9ybWF0IHdpbGwgcmVxdWlyZSBtaWdyYXRpb24gb2YgcGFyYWNoYWlucy5AVXBncmFkZUNvb2xkb3ducwEAxQwEAAxRASBUaGUgbGlzdCBvZiBwYXJhY2hhaW5zIHRoYXQgYXJlIGF3YWl0aW5nIGZvciB0aGVpciB1cGdyYWRlIHJlc3RyaWN0aW9uIHRvIGNvb2xkb3duLgCMIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGJsb2NrIG51bWJlci5AVXBjb21pbmdVcGdyYWRlcwEAxQwEABiQIFRoZSBsaXN0IG9mIHVwY29taW5nIGNvZGUgdXBncmFkZXMuAHEBIEVhY2ggaXRlbSBpcyBhIHBhaXIgb2Ygd2hpY2ggcGFyYSBwZXJmb3JtcyBhIGNvZGUgdXBncmFkZSBhbmQgYXQgd2hpY2ggcmVsYXktY2hhaW4gYmxvY2sgaXRAIGlzIGV4cGVjdGVkIGF0LgCMIE9yZGVyZWQgYXNjZW5kaW5nIGJ5IGJsb2NrIG51bWJlci4wQWN0aW9uc1F1ZXVlAQEEBRCtDAQABBUBIFRoZSBhY3Rpb25zIHRvIHBlcmZvcm0gZHVyaW5nIHRoZSBzdGFydCBvZiBhIHNwZWNpZmljIHNlc3Npb24gaW5kZXguUFVwY29taW5nUGFyYXNHZW5lc2lzAAEEBWkC0QwEABCgIFVwY29taW5nIHBhcmFzIGluc3RhbnRpYXRpb24gYXJndW1lbnRzLgBlASBOT1RFIHRoYXQgYWZ0ZXIgUFZGIHByZS1jaGVja2luZyBpcyBlbmFibGVkIHRoZSBwYXJhIGdlbmVzaXMgYXJnIHdpbGwgaGF2ZSBpdCdzIGNvZGUgc2V0YQEgdG8gZW1wdHkuIEluc3RlYWQsIHRoZSBjb2RlIHdpbGwgYmUgc2F2ZWQgaW50byB0aGUgc3RvcmFnZSByaWdodCBhd2F5IHZpYSBgQ29kZUJ5SGFzaGAuOENvZGVCeUhhc2hSZWZzAQEEBiEFEBAAAAAABCkBIFRoZSBudW1iZXIgb2YgcmVmZXJlbmNlIG9uIHRoZSB2YWxpZGF0aW9uIGNvZGUgaW4gW2BDb2RlQnlIYXNoYF0gc3RvcmFnZS4oQ29kZUJ5SGFzaAABBAYhBT0FBAAQkCBWYWxpZGF0aW9uIGNvZGUgc3RvcmVkIGJ5IGl0cyBoYXNoLgAxASBUaGlzIHN0b3JhZ2UgaXMgY29uc2lzdGVudCB3aXRoIFtgRnV0dXJlQ29kZUhhc2hgXSwgW2BDdXJyZW50Q29kZUhhc2hgXSBhbmRIIFtgUGFzdENvZGVIYXNoYF0uAXEFAf0HBEBVbnNpZ25lZFByaW9yaXR5MCD//////////wAB1Qw4ACxJbml0aWFsaXplcgEsSW5pdGlhbGl6ZXIIOEhhc0luaXRpYWxpemVkAAChAQQAICEBIFdoZXRoZXIgdGhlIHBhcmFjaGFpbnMgbW9kdWxlcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aGluIHRoaXMgYmxvY2suACUBIFNlbWFudGljYWxseSBhIGBib29sYCwgYnV0IHRoaXMgZ3VhcmFudGVlcyBpdCBzaG91bGQgbmV2ZXIgaGl0IHRoZSB0cmllLGkBIGFzIHRoaXMgaXMgY2xlYXJlZCBpbiBgb25fZmluYWxpemVgIGFuZCBGcmFtZSBvcHRpbWl6ZXMgYE5vbmVgIHZhbHVlcyB0byBiZSBlbXB0eSB2YWx1ZXMuAHEBIEFzIGEgYGJvb2xgLCBgc2V0KGZhbHNlKWAgYW5kIGByZW1vdmUoKWAgYm90aCBsZWFkIHRvIHRoZSBuZXh0IGBnZXQoKWAgYmVpbmcgZmFsc2UsIGJ1dCBvbmV1ASBvZiB0aGVtIHdyaXRlcyB0byB0aGUgdHJpZSBhbmQgb25lIGRvZXMgbm90LiBUaGlzIGNvbmZ1c2lvbiBtYWtlcyBgT3B0aW9uPCgpPmAgbW9yZSBzdWl0YWJsZZAgZm9yIHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyB2YXJpYWJsZS5YQnVmZmVyZWRTZXNzaW9uQ2hhbmdlcwEA2QwEABxZASBCdWZmZXJlZCBzZXNzaW9uIGNoYW5nZXMgYWxvbmcgd2l0aCB0aGUgYmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZXkgc2hvdWxkIGJlIGFwcGxpZWQuAF0BIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgZW1wdHkgb3Igb25lIGVsZW1lbnQgbG9uZy4gQXBhcnQgZnJvbSB0aGF0IHRoaXMgaXRlbSBuZXZlciBoaXRzNCB0aGUgc3RvcmFnZS4AaQEgSG93ZXZlciB0aGlzIGlzIGEgYFZlY2AgcmVnYXJkbGVzcyB0byBoYW5kbGUgdmFyaW91cyBlZGdlIGNhc2VzIHRoYXQgbWF5IG9jY3VyIGF0IHJ1bnRpbWXAIHVwZ3JhZGUgYm91bmRhcmllcyBvciBpZiBnb3Zlcm5hbmNlIGludGVydmVuZXMuAXkFAAAAOQAMRG1wAQxEbXAMVERvd253YXJkTWVzc2FnZVF1ZXVlcwEBBAVpAuEMBAAE0CBUaGUgZG93bndhcmQgbWVzc2FnZXMgYWRkcmVzc2VkIGZvciBhIGNlcnRhaW4gcGFyYS5kRG93bndhcmRNZXNzYWdlUXVldWVIZWFkcwEBBAVpAjSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJQEgQSBtYXBwaW5nIHRoYXQgc3RvcmVzIHRoZSBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIE1RQyBoZWFkIGZvciBlYWNoIHBhcmEuAJAgRWFjaCBsaW5rIGluIHRoaXMgY2hhaW4gaGFzIGEgZm9ybTp4IGAocHJldl9oZWFkLCBCLCBIKE0pKWAsIHdoZXJl6CAtIGBwcmV2X2hlYWRgOiBpcyB0aGUgcHJldmlvdXMgaGVhZCBoYXNoIG9yIHplcm8gaWYgbm9uZS4hASAtIGBCYDogaXMgdGhlIHJlbGF5LWNoYWluIGJsb2NrIG51bWJlciBpbiB3aGljaCBhIG1lc3NhZ2Ugd2FzIGFwcGVuZGVkLtQgLSBgSChNKWA6IGlzIHRoZSBoYXNoIG9mIHRoZSBtZXNzYWdlIGJlaW5nIGFwcGVuZGVkLkREZWxpdmVyeUZlZUZhY3RvcgEBBAVpAiEHQAAAZKeztuANAAAAAAAAAAAExCBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieS4AAAAAOgAQSHJtcAEQSHJtcDBcSHJtcE9wZW5DaGFubmVsUmVxdWVzdHMAAQQFgQXpDAQAGLwgVGhlIHNldCBvZiBwZW5kaW5nIEhSTVAgb3BlbiBjaGFubmVsIHJlcXVlc3RzLgDAIFRoZSBzZXQgaXMgYWNjb21wYW5pZWQgYnkgYSBsaXN0IGZvciBpdGVyYXRpb24uACwgSW52YXJpYW50Oj0BIC0gVGhlcmUgYXJlIG5vIGNoYW5uZWxzIHRoYXQgZXhpc3RzIGluIGxpc3QgYnV0IG5vdCBpbiB0aGUgc2V0IGFuZCB2aWNlIHZlcnNhLmxIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0c0xpc3QBAO0MBAAAbEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RDb3VudAEBBAVpAhAQAAAAAAxlASBUaGlzIG1hcHBpbmcgdHJhY2tzIGhvdyBtYW55IG9wZW4gY2hhbm5lbCByZXF1ZXN0cyBhcmUgaW5pdGlhdGVkIGJ5IGEgZ2l2ZW4gc2VuZGVyIHBhcmEuWQEgSW52YXJpYW50OiBgSHJtcE9wZW5DaGFubmVsUmVxdWVzdHNgIHNob3VsZCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtcyB0aGF0IGhhcwUBIGAoWCwgXylgIGFzIHRoZSBudW1iZXIgb2YgYEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RDb3VudGAgZm9yIGBYYC58SHJtcEFjY2VwdGVkQ2hhbm5lbFJlcXVlc3RDb3VudAEBBAVpAhAQAAAAAAxxASBUaGlzIG1hcHBpbmcgdHJhY2tzIGhvdyBtYW55IG9wZW4gY2hhbm5lbCByZXF1ZXN0cyB3ZXJlIGFjY2VwdGVkIGJ5IGEgZ2l2ZW4gcmVjaXBpZW50IHBhcmEubQEgSW52YXJpYW50OiBgSHJtcE9wZW5DaGFubmVsUmVxdWVzdHNgIHNob3VsZCBjb250YWluIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtcyBgKF8sIFgpYCB3aXRoVQEgYGNvbmZpcm1lZGAgc2V0IHRvIHRydWUsIGFzIHRoZSBudW1iZXIgb2YgYEhybXBBY2NlcHRlZENoYW5uZWxSZXF1ZXN0Q291bnRgIGZvciBgWGAuYEhybXBDbG9zZUNoYW5uZWxSZXF1ZXN0cwABBAWBBaEBBAAccQEgQSBzZXQgb2YgcGVuZGluZyBIUk1QIGNsb3NlIGNoYW5uZWwgcmVxdWVzdHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgY2xvc2VkIGR1cmluZyB0aGUgc2Vzc2lvbiEBIGNoYW5nZS4gVXNlZCBmb3IgY2hlY2tpbmcgaWYgYSBnaXZlbiBjaGFubmVsIGlzIHJlZ2lzdGVyZWQgZm9yIGNsb3N1cmUuAMAgVGhlIHNldCBpcyBhY2NvbXBhbmllZCBieSBhIGxpc3QgZm9yIGl0ZXJhdGlvbi4ALCBJbnZhcmlhbnQ6PQEgLSBUaGVyZSBhcmUgbm8gY2hhbm5lbHMgdGhhdCBleGlzdHMgaW4gbGlzdCBidXQgbm90IGluIHRoZSBzZXQgYW5kIHZpY2UgdmVyc2EucEhybXBDbG9zZUNoYW5uZWxSZXF1ZXN0c0xpc3QBAO0MBAAAOEhybXBXYXRlcm1hcmtzAAEEBWkCEAQAELggVGhlIEhSTVAgd2F0ZXJtYXJrIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHBhcmEuLCBJbnZhcmlhbnQ6VQEgLSBlYWNoIHBhcmEgYFBgIHVzZWQgaGVyZSBhcyBhIGtleSBzaG91bGQgc2F0aXNmeSBgUGFyYXM6OmlzX3ZhbGlkX3BhcmEoUClgIHdpdGhpbiBhLCAgIHNlc3Npb24uMEhybXBDaGFubmVscwABBAWBBfEMBAAMtCBIUk1QIGNoYW5uZWwgZGF0YSBhc3NvY2lhdGVkIHdpdGggZWFjaCBwYXJhLiwgSW52YXJpYW50OnUBIC0gZWFjaCBwYXJ0aWNpcGFudCBpbiB0aGUgY2hhbm5lbCBzaG91bGQgc2F0aXNmeSBgUGFyYXM6OmlzX3ZhbGlkX3BhcmEoUClgIHdpdGhpbiBhIHNlc3Npb24uYEhybXBJbmdyZXNzQ2hhbm5lbHNJbmRleAEBBAVpAq0MBAA0cQEgSW5ncmVzcy9lZ3Jlc3MgaW5kZXhlcyBhbGxvdyB0byBmaW5kIGFsbCB0aGUgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIGdpdmVuIHRoZSBvcHBvc2l0ZSBzaWRlLhQgSS5lLgAhASAoYSkgaW5ncmVzcyBpbmRleCBhbGxvd3MgdG8gZmluZCBhbGwgdGhlIHNlbmRlcnMgZm9yIGEgZ2l2ZW4gcmVjaXBpZW50Lh0BIChiKSBlZ3Jlc3MgaW5kZXggYWxsb3dzIHRvIGZpbmQgYWxsIHRoZSByZWNpcGllbnRzIGZvciBhIGdpdmVuIHNlbmRlci4AMCBJbnZhcmlhbnRzOlEBIC0gZm9yIGVhY2ggaW5ncmVzcyBpbmRleCBlbnRyeSBmb3IgYFBgIGVhY2ggaXRlbSBgSWAgaW4gdGhlIGluZGV4IHNob3VsZCBwcmVzZW50IGlueCAgIGBIcm1wQ2hhbm5lbHNgIGFzIGAoSSwgUClgLk0BIC0gZm9yIGVhY2ggZWdyZXNzIGluZGV4IGVudHJ5IGZvciBgUGAgZWFjaCBpdGVtIGBFYCBpbiB0aGUgaW5kZXggc2hvdWxkIHByZXNlbnQgaW54ICAgYEhybXBDaGFubmVsc2AgYXMgYChQLCBFKWAuAQEgLSB0aGVyZSBzaG91bGQgYmUgbm8gb3RoZXIgZGFuZ2xpbmcgY2hhbm5lbHMgaW4gYEhybXBDaGFubmVsc2AuaCAtIHRoZSB2ZWN0b3JzIGFyZSBzb3J0ZWQuXEhybXBFZ3Jlc3NDaGFubmVsc0luZGV4AQEEBWkCrQwEAABMSHJtcENoYW5uZWxDb250ZW50cwEBBAWBBfUMBAAIrCBTdG9yYWdlIGZvciB0aGUgbWVzc2FnZXMgZm9yIGVhY2ggY2hhbm5lbC5lASBJbnZhcmlhbnQ6IGNhbm5vdCBiZSBub24tZW1wdHkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgY2hhbm5lbCBpbiBgSHJtcENoYW5uZWxzYCBpcyBgTm9uZWAuSEhybXBDaGFubmVsRGlnZXN0cwEBBAVpAv0MBAAYaQEgTWFpbnRhaW5zIGEgbWFwcGluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFuc3dlciB0aGUgcXVlc3Rpb246IFdoYXQgcGFyYXMgc2VudCBhIG1lc3NhZ2UgYXTkIHRoZSBnaXZlbiBibG9jayBudW1iZXIgZm9yIGEgZ2l2ZW4gcmVjZWl2ZXIuIEludmFyaWFudHM6qCAtIFRoZSBpbm5lciBgVmVjPFBhcmFJZD5gIGlzIG5ldmVyIGVtcHR5LuggLSBUaGUgaW5uZXIgYFZlYzxQYXJhSWQ+YCBjYW5ub3Qgc3RvcmUgdHdvIHNhbWUgYFBhcmFJZGAubQEgLSBUaGUgb3V0ZXIgdmVjdG9yIGlzIHNvcnRlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyIGFuZCBjYW5ub3Qgc3RvcmUgdHdvIGl0ZW1zIHdpdGggdGhlVCAgIHNhbWUgYmxvY2sgbnVtYmVyLgF9BQEBCAABBQ08ADxQYXJhU2Vzc2lvbkluZm8BPFBhcmFTZXNzaW9uSW5mbxRQQXNzaWdubWVudEtleXNVbnNhZmUBAAkNBAAMpCBBc3NpZ25tZW50IGtleXMgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24ubQEgTm90ZSB0aGF0IHRoaXMgQVBJIGlzIHByaXZhdGUgZHVlIHRvIGl0IGJlaW5nIHByb25lIHRvICdvZmYtYnktb25lJyBhdCBzZXNzaW9uIGJvdW5kYXJpZXMurCBXaGVuIGluIGRvdWJ0LCB1c2UgYFNlc3Npb25zYCBBUEkgaW5zdGVhZC5URWFybGllc3RTdG9yZWRTZXNzaW9uAQAQEAAAAAAEAQEgVGhlIGVhcmxpZXN0IHNlc3Npb24gZm9yIHdoaWNoIHByZXZpb3VzIHNlc3Npb24gaW5mbyBpcyBzdG9yZWQuIFNlc3Npb25zAAEEBhANDQQADKQgU2Vzc2lvbiBpbmZvcm1hdGlvbiBpbiBhIHJvbGxpbmcgd2luZG93LjUBIFNob3VsZCBoYXZlIGFuIGVudHJ5IGluIHJhbmdlIGBFYXJsaWVzdFN0b3JlZFNlc3Npb24uLj1DdXJyZW50U2Vzc2lvbkluZGV4YC51ASBEb2VzIG5vdCBoYXZlIGFueSBlbnRyaWVzIGJlZm9yZSB0aGUgc2Vzc2lvbiBpbmRleCBpbiB0aGUgZmlyc3Qgc2Vzc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uLixBY2NvdW50S2V5cwABBAYQrQEEAARxASBUaGUgdmFsaWRhdG9yIGFjY291bnQga2V5cyBvZiB0aGUgdmFsaWRhdG9ycyBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIHBhcmFjaGFpbiBjb25zZW5zdXMuVFNlc3Npb25FeGVjdXRvclBhcmFtcwABBAYQwQQEAATEIEV4ZWN1dG9yIHBhcmFtZXRlciBzZXQgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiBpbmRleAAAAAA9ADRQYXJhc0Rpc3B1dGVzATRQYXJhc0Rpc3B1dGVzFERMYXN0UHJ1bmVkU2Vzc2lvbgAAEAQACAEBIFRoZSBsYXN0IHBydW5lZCBzZXNzaW9uLCBpZiBhbnkuIEFsbCBkYXRhIHN0b3JlZCBieSB0aGlzIG1vZHVsZVQgcmVmZXJlbmNlcyBzZXNzaW9ucy4gRGlzcHV0ZXMAAQgFAhkNHQ0EAAQFASBBbGwgb25nb2luZyBvciBjb25jbHVkZWQgZGlzcHV0ZXMgZm9yIHRoZSBsYXN0IHNldmVyYWwgc2Vzc2lvbnMuREJhY2tlcnNPbkRpc3B1dGVzAAEIBQIZDSENBAAInCBCYWNraW5nIHZvdGVzIHN0b3JlZCBmb3IgZWFjaCBkaXNwdXRlLowgVGhpcyBzdG9yYWdlIGlzIHVzZWQgZm9yIHNsYXNoaW5nLiBJbmNsdWRlZAABCAUCGQ0QBAAIRQEgQWxsIGluY2x1ZGVkIGJsb2NrcyBvbiB0aGUgY2hhaW4sIGFzIHdlbGwgYXMgdGhlIGJsb2NrIG51bWJlciBpbiB0aGlzIGNoYWluIHRoYXRZASBzaG91bGQgYmUgcmV2ZXJ0ZWQgYmFjayB0byBpZiB0aGUgY2FuZGlkYXRlIGlzIGRpc3B1dGVkIGFuZCBkZXRlcm1pbmVkIHRvIGJlIGludmFsaWQuGEZyb3plbgEAPQIEABARASBXaGV0aGVyIHRoZSBjaGFpbiBpcyBmcm96ZW4uIFN0YXJ0cyBhcyBgTm9uZWAuIFdoZW4gdGhpcyBpcyBgU29tZWAsNQEgdGhlIGNoYWluIHdpbGwgbm90IGFjY2VwdCBhbnkgbmV3IHBhcmFjaGFpbiBibG9ja3MgZm9yIGJhY2tpbmcgb3IgaW5jbHVzaW9uLAkBIGFuZCBpdHMgdmFsdWUgaW5kaWNhdGVzIHRoZSBsYXN0IHZhbGlkIGJsb2NrIG51bWJlciBpbiB0aGUgY2hhaW4u+CBJdCBjYW4gb25seSBiZSBzZXQgYmFjayB0byBgTm9uZWAgYnkgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24uAYUFAQUIAAElDT4ANFBhcmFzU2xhc2hpbmcBNFBhcmFzU2xhc2hpbmcIQFVuYXBwbGllZFNsYXNoZXMAAQgFAhkNKQ0EAASQIFZhbGlkYXRvcnMgcGVuZGluZyBkaXNwdXRlIHNsYXNoZXMuSFZhbGlkYXRvclNldENvdW50cwABBAUQEAQABIQgYFZhbGlkYXRvclNldENvdW50YCBwZXIgc2Vzc2lvbi4BiQUAAAE5DT8AaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyAWhPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlchQ4UGFyYUlkQWZmaW5pdHkAAQQFaQI9DQQADHEBIE1hcHMgYSBgUGFyYUlkYCB0byBgQ29yZUluZGV4YCBhbmQga2VlcHMgdHJhY2sgb2YgaG93IG1hbnkgYXNzaWdubWVudHMgdGhlIHNjaGVkdWxlciBoYXMgaW5dASBpdCdzIGxvb2thaGVhZC4gS2VlcGluZyB0cmFjayBvZiB0aGlzIGFmZmluaXR5IHByZXZlbnRzIHBhcmFsbGVsIGV4ZWN1dGlvbiBvZiB0aGUgc2FtZZwgYFBhcmFJZGAgb24gdHdvIG9yIG1vcmUgYENvcmVJbmRleGBlcy4sUXVldWVTdGF0dXMBAEENZAAAZKeztuANAAAAAAAAAAAAAAAAAAAAAAAE3CBPdmVyYWxsIHN0YXR1cyBvZiBxdWV1ZSAoYm90aCBmcmVlICsgYWZmaW5pdHkgZW50cmllcyksRnJlZUVudHJpZXMBAFUNBAAEYQEgUHJpb3JpdHkgcXVldWUgZm9yIGFsbCBvcmRlcnMgd2hpY2ggZG9uJ3QgeWV0IChvciBub3QgYW55IG1vcmUpIGhhdmUgYW55IGNvcmUgYWZmaW5pdHkuPEFmZmluaXR5RW50cmllcwEBBAX1B1UNBAAESQEgUXVldWUgZW50cmllcyB0aGF0IGFyZSBjdXJyZW50bHkgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIGNvcmUgZHVlIHRvIGNvcmUgYWZmaW5pdHkuHFJldmVudWUBAGENBAAE/CBLZWVwcyB0cmFjayBvZiBhY2N1bXVsYXRlZCByZXZlbnVlIGZyb20gb24gZGVtYW5kIG9yZGVyIHNhbGVzLgGZBQERCAxMVHJhZmZpY0RlZmF1bHRWYWx1ZSEHQAAAZKeztuANAAAAAAAAAAAEzCBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHNwb3QgdHJhZmZpYyBtdWx0aXBsaWVyLlBNYXhIaXN0b3JpY2FsUmV2ZW51ZRAQoAAAAAjUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBibG9ja3Mgc29tZSBoaXN0b3JpY2FsIHJldmVudWVgIGluZm9ybWF0aW9uIHN0b3JlZCBmb3IuIFBhbGxldElkwQkgcHkvb25kbWQEtCBJZGVudGlmaWVyIGZvciB0aGUgaW50ZXJuYWwgcmV2ZW51ZSBiYWxhbmNlLgFpDUAAaENvcmV0aW1lQXNzaWdubWVudFByb3ZpZGVyAWhDb3JldGltZUFzc2lnbm1lbnRQcm92aWRlcgg0Q29yZVNjaGVkdWxlcwABBARtDXENBAAQbCBTY2hlZHVsZWQgYXNzaWdubWVudCBzZXRzLgBtASBBc3NpZ25tZW50cyBhcyBvZiB0aGUgZ2l2ZW4gYmxvY2sgbnVtYmVyLiBUaGV5IHdpbGwgZ28gaW50byBzdGF0ZSBvbmNlIHRoZSBibG9jayBudW1iZXIgaXPQIHJlYWNoZWQgKGFuZCByZXBsYWNlIHdoYXRldmVyIHdhcyBpbiB0aGVyZSBiZWZvcmUpLjxDb3JlRGVzY3JpcHRvcnMBAQQE9Qd1DQgAABCgIEFzc2lnbm1lbnRzIHdoaWNoIGFyZSBjdXJyZW50bHkgYWN0aXZlLgBpASBUaGV5IHdpbGwgYmUgcGlja2VkIGZyb20gYFBlbmRpbmdBc3NpZ25tZW50c2Agb25jZSB3ZSByZWFjaCB0aGUgc2NoZWR1bGVkIGJsb2NrIG51bWJlciBpblggYFBlbmRpbmdBc3NpZ25tZW50c2AuAAAAAZUNQQAkUmVnaXN0cmFyASRSZWdpc3RyYXIMLFBlbmRpbmdTd2FwAAEEBWkCaQIEAARkIFBlbmRpbmcgc3dhcCBvcGVyYXRpb25zLhRQYXJhcwABBAVpApkNBAAQBQEgQW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgZWFjaCBwYXJhIGFuZCB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yLgBxASBUaGUgZ2l2ZW4gYWNjb3VudCBJRCBpcyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGNvZGUgYW5kIGluaXRpYWwgaGVhZCBkYXRhLCBidXQgbWF5VQEgb25seSBkbyBzbyBpZiBpdCBpc24ndCB5ZXQgcmVnaXN0ZXJlZC4gKEFmdGVyIHRoYXQsIGl0J3MgdXAgdG8gZ292ZXJuYW5jZSB0byBkbyBzby4pOE5leHRGcmVlUGFyYUlkAQBpAhAAAAAABGAgVGhlIG5leHQgZnJlZSBgUGFyYUlkYC4BnQUBFQgILFBhcmFEZXBvc2l0GEAAgMo5YSQAAAAAAAAAAAAACNQgVGhlIGRlcG9zaXQgdG8gYmUgcGFpZCB0byBydW4gYSBvbi1kZW1hbmQgcGFyYWNoYWluLj0BIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGNvc3QgZm9yIHN0b3JpbmcgdGhlIGdlbmVzaXMgaGVhZCBhbmQgdmFsaWRhdGlvbiBjb2RlLkhEYXRhRGVwb3NpdFBlckJ5dGUYQFVD3hMAAAAAAAAAAAAAAAAExCBUaGUgZGVwb3NpdCB0byBiZSBwYWlkIHBlciBieXRlIHN0b3JlZCBvbiBjaGFpbi4BnQ1GABRTbG90cwEUU2xvdHMEGExlYXNlcwEBBAVpAqENBABAFQEgQW1vdW50cyBoZWxkIG9uIGRlcG9zaXQgZm9yIGVhY2ggKHBvc3NpYmx5IGZ1dHVyZSkgbGVhc2VkIHBhcmFjaGFpbi4AYQEgVGhlIGFjdHVhbCBhbW91bnQgbG9ja2VkIG9uIGl0cyBiZWhhbGYgYnkgYW55IGFjY291bnQgYXQgYW55IHRpbWUgaXMgdGhlIG1heGltdW0gb2YgdGhlKQEgc2Vjb25kIHZhbHVlcyBvZiB0aGUgaXRlbXMgaW4gdGhpcyBsaXN0IHdob3NlIGZpcnN0IHZhbHVlIGlzIHRoZSBhY2NvdW50LgBhASBUaGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBpcyB0aGUgYW1vdW50IGxvY2tlZCBmb3IgdGhlIGN1cnJlbnQgTGVhc2UgUGVyaW9kLiBGb2xsb3dpbmewIGl0ZW1zIGFyZSBmb3IgdGhlIHN1YnNlcXVlbnQgbGVhc2UgcGVyaW9kcy4AYQEgVGhlIGRlZmF1bHQgdmFsdWUgKGFuIGVtcHR5IGxpc3QpIGltcGxpZXMgdGhhdCB0aGUgcGFyYWNoYWluIG5vIGxvbmdlciBleGlzdHMgKG9yIG5ldmVytCBleGlzdGVkKSBhcyBmYXIgYXMgdGhpcyBwYWxsZXQgaXMgY29uY2VybmVkLgBRASBJZiBhIHBhcmFjaGFpbiBkb2Vzbid0IGV4aXN0ICp5ZXQqIGJ1dCBpcyBzY2hlZHVsZWQgdG8gZXhpc3QgaW4gdGhlIGZ1dHVyZSwgdGhlbiBpdGEBIHdpbGwgYmUgbGVmdC1wYWRkZWQgd2l0aCBvbmUgb3IgbW9yZSBgTm9uZWBzIHRvIGRlbm90ZSB0aGUgZmFjdCB0aGF0IG5vdGhpbmcgaXMgaGVsZCBvbl0BIGRlcG9zaXQgZm9yIHRoZSBub24tZXhpc3RlbnQgY2hhaW4gY3VycmVudGx5LCBidXQgaXMgaGVsZCBhdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUuANwgSXQgaXMgaWxsZWdhbCBmb3IgYSBgTm9uZWAgdmFsdWUgdG8gdHJhaWwgaW4gdGhlIGxpc3QuAaEFARkICCxMZWFzZVBlcmlvZBAQgDoJAATcIFRoZSBudW1iZXIgb2YgYmxvY2tzIG92ZXIgd2hpY2ggYSBzaW5nbGUgcGVyaW9kIGxhc3RzLixMZWFzZU9mZnNldBAQAAAAAATUIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRvIG9mZnNldCBlYWNoIGxlYXNlIHBlcmlvZCBieS4BpQ1HACBBdWN0aW9ucwEgQXVjdGlvbnMQOEF1Y3Rpb25Db3VudGVyAQAQEAAAAAAEjCBOdW1iZXIgb2YgYXVjdGlvbnMgc3RhcnRlZCBzbyBmYXIuLEF1Y3Rpb25JbmZvAAD1AgQAFPggSW5mb3JtYXRpb24gcmVsYXRpbmcgdG8gdGhlIGN1cnJlbnQgYXVjdGlvbiwgaWYgdGhlcmUgaXMgb25lLgBFASBUaGUgZmlyc3QgaXRlbSBpbiB0aGUgdHVwbGUgaXMgdGhlIGxlYXNlIHBlcmlvZCBpbmRleCB0aGF0IHRoZSBmaXJzdCBvZiB0aGUgZm91clEBIGNvbnRpZ3VvdXMgbGVhc2UgcGVyaW9kcyBvbiBhdWN0aW9uIGlzIGZvci4gVGhlIHNlY29uZCBpcyB0aGUgYmxvY2sgbnVtYmVyIHdoZW4gdGhlXQEgYXVjdGlvbiB3aWxsICJiZWdpbiB0byBlbmQiLCBpLmUuIHRoZSBmaXJzdCBibG9jayBvZiB0aGUgRW5kaW5nIFBlcmlvZCBvZiB0aGUgYXVjdGlvbi48UmVzZXJ2ZWRBbW91bnRzAAEEBakNGAQACDEBIEFtb3VudHMgY3VycmVudGx5IHJlc2VydmVkIGluIHRoZSBhY2NvdW50cyBvZiB0aGUgYmlkZGVycyBjdXJyZW50bHkgd2lubmluZzggKHN1Yi0pcmFuZ2VzLhxXaW5uaW5nAAEEBRCtDQQADGEBIFRoZSB3aW5uaW5nIGJpZHMgZm9yIGVhY2ggb2YgdGhlIDEwIHJhbmdlcyBhdCBlYWNoIHNhbXBsZSBpbiB0aGUgZmluYWwgRW5kaW5nIFBlcmlvZCBvZkkBIHRoZSBjdXJyZW50IGF1Y3Rpb24uIFRoZSBtYXAncyBrZXkgaXMgdGhlIDAtYmFzZWQgaW5kZXggaW50byB0aGUgU2FtcGxlIFNpemUuIFRoZR0BIGZpcnN0IHNhbXBsZSBvZiB0aGUgZW5kaW5nIHBlcmlvZCBpcyAwOyB0aGUgbGFzdCBpcyBgU2FtcGxlIFNpemUgLSAxYC4BpQUBHQgQMEVuZGluZ1BlcmlvZBAQQBkBAAQdASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBvdmVyIHdoaWNoIGFuIGF1Y3Rpb24gbWF5IGJlIHJldHJvYWN0aXZlbHkgZW5kZWQuMFNhbXBsZUxlbmd0aBAQFAAAAAzwIFRoZSBsZW5ndGggb2YgZWFjaCBzYW1wbGUgdG8gdGFrZSBkdXJpbmcgdGhlIGVuZGluZyBwZXJpb2QuANQgYEVuZGluZ1BlcmlvZGAgLyBgU2FtcGxlTGVuZ3RoYCA9IFRvdGFsICMgb2YgU2FtcGxlczhTbG90UmFuZ2VDb3VudBAQJAAAAABMTGVhc2VQZXJpb2RzUGVyU2xvdBAQCAAAAAABuQ1IACRDcm93ZGxvYW4BJENyb3dkbG9hbhAURnVuZHMAAQQFaQK9DQQABGggSW5mbyBvbiBhbGwgb2YgdGhlIGZ1bmRzLiBOZXdSYWlzZQEArQwEAAhVASBUaGUgZnVuZHMgdGhhdCBoYXZlIGhhZCBhZGRpdGlvbmFsIGNvbnRyaWJ1dGlvbnMgZHVyaW5nIHRoZSBsYXN0IGJsb2NrLiBUaGlzIGlzIHVzZWQVASBpbiBvcmRlciB0byBkZXRlcm1pbmUgd2hpY2ggZnVuZHMgc2hvdWxkIHN1Ym1pdCBuZXcgb3IgdXBkYXRlZCBiaWRzLjBFbmRpbmdzQ291bnQBABAQAAAAAAQpASBUaGUgbnVtYmVyIG9mIGF1Y3Rpb25zIHRoYXQgaGF2ZSBlbnRlcmVkIGludG8gdGhlaXIgZW5kaW5nIHBlcmlvZCBzbyBmYXIuNE5leHRGdW5kSW5kZXgBABAQAAAAAASoIFRyYWNrZXIgZm9yIHRoZSBuZXh0IGF2YWlsYWJsZSBmdW5kIGluZGV4Aa0FASEIDCBQYWxsZXRJZMEJIHB5L2NmdW5kCA0BIGBQYWxsZXRJZGAgZm9yIHRoZSBjcm93ZGxvYW4gcGFsbGV0LiBBbiBhcHByb3ByaWF0ZSB2YWx1ZSBjb3VsZCBiZWQgYFBhbGxldElkKCpiInB5L2NmdW5kIilgPE1pbkNvbnRyaWJ1dGlvbhhAGAyl1OgAAAAAAAAAAAAAAAhhASBUaGUgbWluaW11bSBhbW91bnQgdGhhdCBtYXkgYmUgY29udHJpYnV0ZWQgaW50byBhIGNyb3dkbG9hbi4gU2hvdWxkIGFsbW9zdCBjZXJ0YWlubHkgYmV8IGF0IGxlYXN0IGBFeGlzdGVudGlhbERlcG9zaXRgLjxSZW1vdmVLZXlzTGltaXQQEOgDAAAE5CBNYXggbnVtYmVyIG9mIHN0b3JhZ2Uga2V5cyB0byByZW1vdmUgcGVyIGV4dHJpbnNpYyBjYWxsLgHFDUkAIENvcmV0aW1lAAHBBQElCAggQnJva2VySWQQEO0DAAAEiCBUaGUgUGFyYUlkIG9mIHRoZSBjb3JldGltZSBjaGFpbi5EQnJva2VyUG90TG9jYXRpb274jAEBAG1vZGxweS9icm9rZQAAAAAAAAAAAAAAAAAAAAAAAAAABIQgVGhlIGNvcmV0aW1lIGNoYWluIHBvdCBsb2NhdGlvbi4ByQ1KACRYY21QYWxsZXQBJFhjbVBhbGxldDgwUXVlcnlDb3VudGVyAQAwIAAAAAAAAAAABIggVGhlIGxhdGVzdCBhdmFpbGFibGUgcXVlcnkgaW5kZXguHFF1ZXJpZXMAAQQCMM0NBAAEVCBUaGUgb25nb2luZyBxdWVyaWVzLihBc3NldFRyYXBzAQEEBjQQEAAAAAAQaCBUaGUgZXhpc3RpbmcgYXNzZXQgdHJhcHMuAGEBIEtleSBpcyB0aGUgYmxha2UyIDI1NiBoYXNoIG9mIChvcmlnaW4sIHZlcnNpb25lZCBgQXNzZXRzYCkgcGFpci4gVmFsdWUgaXMgdGhlIG51bWJlciBvZh0BIHRpbWVzIHRoaXMgcGFpciBoYXMgYmVlbiB0cmFwcGVkICh1c3VhbGx5IGp1c3QgMSBpZiBpdCBleGlzdHMgYXQgYWxsKS44U2FmZVhjbVZlcnNpb24AABAEAAhhASBEZWZhdWx0IHZlcnNpb24gdG8gZW5jb2RlIFhDTSB3aGVuIGxhdGVzdCB2ZXJzaW9uIG9mIGRlc3RpbmF0aW9uIGlzIHVua25vd24uIElmIGBOb25lYCw9ASB0aGVuIHRoZSBkZXN0aW5hdGlvbnMgd2hvc2UgWENNIHZlcnNpb24gaXMgdW5rbm93biBhcmUgY29uc2lkZXJlZCB1bnJlYWNoYWJsZS5AU3VwcG9ydGVkVmVyc2lvbgABCAUC4Q0QBAAE8CBUaGUgTGF0ZXN0IHZlcnNpb25zIHRoYXQgd2Uga25vdyB2YXJpb3VzIGxvY2F0aW9ucyBzdXBwb3J0LkBWZXJzaW9uTm90aWZpZXJzAAEIBQLhDTAEAAQFASBBbGwgbG9jYXRpb25zIHRoYXQgd2UgaGF2ZSByZXF1ZXN0ZWQgdmVyc2lvbiBub3RpZmljYXRpb25zIGZyb20uUFZlcnNpb25Ob3RpZnlUYXJnZXRzAAEIBQLhDeUNBAAIcQEgVGhlIHRhcmdldCBsb2NhdGlvbnMgdGhhdCBhcmUgc3Vic2NyaWJlZCB0byBvdXIgdmVyc2lvbiBjaGFuZ2VzLCBhcyB3ZWxsIGFzIHRoZSBtb3N0IHJlY2VudJQgb2Ygb3VyIHZlcnNpb25zIHdlIGluZm9ybWVkIHRoZW0gb2YuVFZlcnNpb25EaXNjb3ZlcnlRdWV1ZQEA6Q0EAAxlASBEZXN0aW5hdGlvbnMgd2hvc2UgbGF0ZXN0IFhDTSB2ZXJzaW9uIHdlIHdvdWxkIGxpa2UgdG8ga25vdy4gRHVwbGljYXRlcyBub3QgYWxsb3dlZCwgYW5kcQEgdGhlIGB1MzJgIGNvdW50ZXIgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IGEgc2VuZCB0byB0aGUgZGVzdGluYXRpb24gaGFzIGJlZW4gYXR0ZW1wdGVkLIwgd2hpY2ggaXMgdXNlZCBhcyBhIHByaW9yaXRpemF0aW9uLkBDdXJyZW50TWlncmF0aW9uAAD1DQQABJwgVGhlIGN1cnJlbnQgbWlncmF0aW9uJ3Mgc3RhZ2UsIGlmIGFueS5UUmVtb3RlTG9ja2VkRnVuZ2libGVzAAEMBQIC/Q0BDgQABPAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiBhIHJlbW90ZSBjaGFpbi48TG9ja2VkRnVuZ2libGVzAAEEAgARDgQABOAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiB0aGlzIGNoYWluLlRYY21FeGVjdXRpb25TdXNwZW5kZWQBACAEAAS0IEdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuPFNob3VsZFJlY29yZFhjbQEAIAQAHFkBIFdoZXRoZXIgb3Igbm90IGluY29taW5nIFhDTXMgKGJvdGggZXhlY3V0ZWQgbG9jYWxseSBhbmQgcmVjZWl2ZWQpIHNob3VsZCBiZSByZWNvcmRlZC7EIE9ubHkgb25lIFhDTSBwcm9ncmFtIHdpbGwgYmUgcmVjb3JkZWQgYXQgYSB0aW1lLikBIFRoaXMgaXMgbWVhbnQgdG8gYmUgdXNlZCBpbiBydW50aW1lIEFQSXMsIGFuZCBpdCdzIGFkdmlzZWQgaXQgc3RheXMgZmFsc2UNASBmb3IgYWxsIG90aGVyIHVzZSBjYXNlcywgc28gYXMgdG8gbm90IGRlZ3JhZGUgcmVndWxhciBwZXJmb3JtYW5jZS4AWQEgT25seSByZWxldmFudCBpZiB0aGlzIHBhbGxldCBpcyBiZWluZyB1c2VkIGFzIHRoZSBbYHhjbV9leGVjdXRvcjo6dHJhaXRzOjpSZWNvcmRYY21gXcggaW1wbGVtZW50YXRpb24gaW4gdGhlIFhDTSBleGVjdXRvciBjb25maWd1cmF0aW9uLixSZWNvcmRlZFhjbQAAkQYEABhJASBJZiBbYFNob3VsZFJlY29yZFhjbWBdIGlzIHNldCB0byB0cnVlLCB0aGVuIHRoZSBsYXN0IFhDTSBwcm9ncmFtIGV4ZWN1dGVkIGxvY2FsbHlUIHdpbGwgYmUgc3RvcmVkIGhlcmUuKQEgUnVudGltZSBBUElzIGNhbiBmZXRjaCB0aGUgWENNIHRoYXQgd2FzIGV4ZWN1dGVkIGJ5IGFjY2Vzc2luZyB0aGlzIHZhbHVlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uAdUFASkIAAEdDmMAME1lc3NhZ2VRdWV1ZQEwTWVzc2FnZVF1ZXVlDDBCb29rU3RhdGVGb3IBAQQFFQchDnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATMIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgKG5vbi1lbXB0eSkgcGFnZXMuLFNlcnZpY2VIZWFkAAAVBwQABLwgVGhlIG9yaWdpbiBhdCB3aGljaCB3ZSBzaG91bGQgYmVnaW4gc2VydmljaW5nLhRQYWdlcwABCAUFLQ4xDgQABIggVGhlIG1hcCBvZiBwYWdlIGluZGljZXMgdG8gcGFnZXMuAREHATEIECBIZWFwU2l6ZRAQAAABABQ9ASBUaGUgc2l6ZSBvZiB0aGUgcGFnZTsgdGhpcyBpbXBsaWVzIHRoZSBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSB3aGljaCBjYW4gYmUgc2VudC4AWQEgQSBnb29kIHZhbHVlIGRlcGVuZHMgb24gdGhlIGV4cGVjdGVkIG1lc3NhZ2Ugc2l6ZXMsIHRoZWlyIHdlaWdodHMsIHRoZSB3ZWlnaHQgdGhhdCBpc10BIGF2YWlsYWJsZSBmb3IgcHJvY2Vzc2luZyB0aGVtIGFuZCB0aGUgbWF4aW1hbCBuZWVkZWQgbWVzc2FnZSBzaXplLiBUaGUgbWF4aW1hbCBtZXNzYWdlEQEgc2l6ZSBpcyBzbGlnaHRseSBsb3dlciB0aGFuIHRoaXMgYXMgZGVmaW5lZCBieSBbYE1heE1lc3NhZ2VMZW5PZmBdLiBNYXhTdGFsZRAQEAAAAAxdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhbGUgcGFnZXMgKGkuZS4gb2Ygb3ZlcndlaWdodCBtZXNzYWdlcykgYWxsb3dlZCBiZWZvcmUgY3VsbGluZ1EBIGNhbiBoYXBwZW4uIE9uY2UgdGhlcmUgYXJlIG1vcmUgc3RhbGUgcGFnZXMgdGhhbiB0aGlzLCB0aGVuIGhpc3RvcmljYWwgcGFnZXMgbWF5IGJl/CBkcm9wcGVkLCBldmVuIGlmIHRoZXkgY29udGFpbiB1bnByb2Nlc3NlZCBvdmVyd2VpZ2h0IG1lc3NhZ2VzLjRTZXJ2aWNlV2VpZ2h0cQdAAQcAoNshXRMzMzMzMzMzMxhBASBUaGUgYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB3aGljaCBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yqCBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2luaXRpYWxpemVgLgD8IFRoaXMgbWF5IGJlIGxlZ2l0aW1hdGVseSBgTm9uZWAgaW4gdGhlIGNhc2UgdGhhdCB5b3Ugd2lsbCBjYWxsXQEgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBtYW51YWxseSBvciBzZXQgW2BTZWxmOjpJZGxlTWF4U2VydmljZVdlaWdodGBdIHRvIGhhdmVUIGl0IHJ1biBpbiBgb25faWRsZWAuUElkbGVNYXhTZXJ2aWNlV2VpZ2h0cQdAAQcAoNshXRMzMzMzMzMzMxRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgE5DmQAJEFzc2V0UmF0ZQEkQXNzZXRSYXRlBFhDb252ZXJzaW9uUmF0ZVRvTmF0aXZlAAEEAsQhBwQADB0BIE1hcHMgYW4gYXNzZXQgdG8gaXRzIGZpeGVkIHBvaW50IHJlcHJlc2VudGF0aW9uIGluIHRoZSBuYXRpdmUgYmFsYW5jZS4ATQEgRS5nLiBgbmF0aXZlX2Ftb3VudCA9IGFzc2V0X2Ftb3VudCAqIENvbnZlcnNpb25SYXRlVG9OYXRpdmU6OjxUPjo6Z2V0KGFzc2V0X2tpbmQpYAEdBwE5CAABPQ5lABRCZWVmeQEUQmVlZnkULEF1dGhvcml0aWVzAQBBDgQABHAgVGhlIGN1cnJlbnQgYXV0aG9yaXRpZXMgc2V0OFZhbGlkYXRvclNldElkAQAwIAAAAAAAAAAABHQgVGhlIGN1cnJlbnQgdmFsaWRhdG9yIHNldCBpZDxOZXh0QXV0aG9yaXRpZXMBAEEOBAAE7CBBdXRob3JpdGllcyBzZXQgc2NoZWR1bGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgbmV4dCBzZXNzaW9uMFNldElkU2Vzc2lvbgABBAUwEAQAKFEBIEEgbWFwcGluZyBmcm9tIEJFRUZZIHNldCBJRCB0byB0aGUgaW5kZXggb2YgdGhlICptb3N0IHJlY2VudCogc2Vzc2lvbiBmb3Igd2hpY2ggaXRzaCBtZW1iZXJzIHdlcmUgcmVzcG9uc2libGUuAEUBIFRoaXMgaXMgb25seSB1c2VkIGZvciB2YWxpZGF0aW5nIGVxdWl2b2NhdGlvbiBwcm9vZnMuIEFuIGVxdWl2b2NhdGlvbiBwcm9vZiBtdXN0TQEgY29udGFpbnMgYSBrZXktb3duZXJzaGlwIHByb29mIGZvciBhIGdpdmVuIHNlc3Npb24sIHRoZXJlZm9yZSB3ZSBuZWVkIGEgd2F5IHRvIHRpZT0BIHRvZ2V0aGVyIHNlc3Npb25zIGFuZCBCRUVGWSBzZXQgaWRzLCBpLmUuIHdlIG5lZWQgdG8gdmFsaWRhdGUgdGhhdCBhIHZhbGlkYXRvckEBIHdhcyB0aGUgb3duZXIgb2YgYSBnaXZlbiBrZXkgb24gYSBnaXZlbiBzZXNzaW9uLCBhbmQgd2hhdCB0aGUgYWN0aXZlIHNldCBJRCB3YXNUIGR1cmluZyB0aGF0IHNlc3Npb24uANwgVFdPWC1OT1RFOiBgVmFsaWRhdG9yU2V0SWRgIGlzIG5vdCB1bmRlciB1c2VyIGNvbnRyb2wuMEdlbmVzaXNCbG9jawEAPQIEAAzcIEJsb2NrIG51bWJlciB3aGVyZSBCRUVGWSBjb25zZW5zdXMgaXMgZW5hYmxlZC9zdGFydGVkLmkBIEJ5IGNoYW5naW5nIHRoaXMgKHRocm91Z2ggcHJpdmlsZWdlZCBgc2V0X25ld19nZW5lc2lzKClgKSwgQkVFRlkgY29uc2Vuc3VzIGlzIGVmZmVjdGl2ZWx5rCByZXN0YXJ0ZWQgZnJvbSB0aGUgbmV3bHkgc2V0IGJsb2NrIG51bWJlci4BJQcADDhNYXhBdXRob3JpdGllcxAQoIYBAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhdXRob3JpdGllcyB0aGF0IGNhbiBiZSBhZGRlZC40TWF4Tm9taW5hdG9ycxAQAAIAAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBub21pbmF0b3JzIGZvciBlYWNoIHZhbGlkYXRvci5YTWF4U2V0SWRTZXNzaW9uRW50cmllczAgqAAAAAAAAAAYOQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgdG8ga2VlcCBpbiB0aGUgc2V0IGlkIHRvIHNlc3Npb24gaW5kZXggbWFwcGluZy4AMQEgU2luY2UgdGhlIGBTZXRJZFNlc3Npb25gIG1hcCBpcyBvbmx5IHVzZWQgZm9yIHZhbGlkYXRpbmcgZXF1aXZvY2F0aW9ucyB0aGlzKQEgdmFsdWUgc2hvdWxkIHJlbGF0ZSB0byB0aGUgYm9uZGluZyBkdXJhdGlvbiBvZiB3aGF0ZXZlciBzdGFraW5nIHN5c3RlbSBpczUBIGJlaW5nIHVzZWQgKGlmIGFueSkuIElmIGVxdWl2b2NhdGlvbiBoYW5kbGluZyBpcyBub3QgZW5hYmxlZCB0aGVuIHRoaXMgdmFsdWU0IGNhbiBiZSB6ZXJvLgFJDsgADE1tcgEMTW1yDCBSb290SGFzaAEANIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARYIExhdGVzdCBNTVIgUm9vdCBoYXNoLjhOdW1iZXJPZkxlYXZlcwEAMCAAAAAAAAAAAASwIEN1cnJlbnQgc2l6ZSBvZiB0aGUgTU1SIChudW1iZXIgb2YgbGVhdmVzKS4UTm9kZXMAAQQGMDQEABCAIEhhc2hlcyBvZiB0aGUgbm9kZXMgaW4gdGhlIE1NUi4ALQEgTm90ZSB0aGlzIGNvbGxlY3Rpb24gb25seSBjb250YWlucyBNTVIgcGVha3MsIHRoZSBpbm5lciBub2RlcyAoYW5kIGxlYXZlcym8IGFyZSBwcnVuZWQgYW5kIG9ubHkgc3RvcmVkIGluIHRoZSBPZmZjaGFpbiBEQi4AAAAAyQAwQmVlZnlNbXJMZWFmATBCZWVmeU1tckxlYWYIQEJlZWZ5QXV0aG9yaXRpZXMBAE0OsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKAgRGV0YWlscyBvZiBjdXJyZW50IEJFRUZZIGF1dGhvcml0eSBzZXQuUEJlZWZ5TmV4dEF1dGhvcml0aWVzAQBNDrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyUIERldGFpbHMgb2YgbmV4dCBCRUVGWSBhdXRob3JpdHkgc2V0LgBRASBUaGlzIHN0b3JhZ2UgZW50cnkgaXMgdXNlZCBhcyBjYWNoZSBmb3IgY2FsbHMgdG8gYHVwZGF0ZV9iZWVmeV9uZXh0X2F1dGhvcml0eV9zZXRgLgAAAADKAASdAV0BvQVRDiRIQ2hlY2tOb25aZXJvU2VuZGVyVQ6hAUBDaGVja1NwZWNWZXJzaW9uWQ4QOENoZWNrVHhWZXJzaW9uXQ4QMENoZWNrR2VuZXNpc2EONDhDaGVja01vcnRhbGl0eWUONChDaGVja05vbmNlbQ6hASxDaGVja1dlaWdodHEOoQFgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW50dQ6hAURDaGVja01ldGFkYXRhSGFzaHkOsQeBDlwkSW5mbGF0aW9uBJhleHBlcmltZW50YWxfaW5mbGF0aW9uX3ByZWRpY3Rpb25faW5mbwCFDhDYIFJldHVybiB0aGUgY3VycmVudCBlc3RpbWF0ZXMgb2YgdGhlIGluZmxhdGlvbiBhbW91bnQuAFEBIFRoaXMgaXMgbWFya2VkIGFzIGV4cGVyaW1lbnRhbCBpbiBsaWdodCBvZiBSRkMjODkuIE5vbmV0aGVsZXNzLCBpdHMgdXNhZ2UgaXMgaGlnaGx5JQEgcmVjb21tZW5kZWQgb3ZlciB0cnlpbmcgdG8gcmVhZC1zdG9yYWdlLCBvciByZS1jcmVhdGUgdGhlIG9uY2hhaW4gbG9naWMuABBDb3JlDBx2ZXJzaW9uAGkIBJAgUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVudGltZS40ZXhlY3V0ZV9ibG9jawQUYmxvY2uNDqEBBGQgRXhlY3V0ZSB0aGUgZ2l2ZW4gYmxvY2suQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlcnkBmQ4EQQEgSW5pdGlhbGl6ZSBhIGJsb2NrIHdpdGggdGhlIGdpdmVuIGhlYWRlciBhbmQgcmV0dXJuIHRoZSBydW50aW1lIGV4ZWN1dGl2ZSBtb2RlLgQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LiBNZXRhZGF0YQwgbWV0YWRhdGEAnQ4EjCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBvZiBhIHJ1bnRpbWUuTG1ldGFkYXRhX2F0X3ZlcnNpb24EHHZlcnNpb24QoQ4QpCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBhdCBhIGdpdmVuIHZlcnNpb24uAAUBIElmIHRoZSBnaXZlbiBgdmVyc2lvbmAgaXNuJ3Qgc3VwcG9ydGVkLCB0aGlzIHdpbGwgcmV0dXJuIGBOb25lYC51ASBVc2UgW2BTZWxmOjptZXRhZGF0YV92ZXJzaW9uc2BdIHRvIGZpbmQgb3V0IGFib3V0IHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLkRtZXRhZGF0YV92ZXJzaW9ucwDBAQykIFJldHVybnMgdGhlIHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9ucy4AwCBUaGlzIGNhbiBiZSB1c2VkIHRvIGNhbGwgYG1ldGFkYXRhX2F0X3ZlcnNpb25gLgQBASBUaGUgYE1ldGFkYXRhYCBhcGkgdHJhaXQgdGhhdCByZXR1cm5zIG1ldGFkYXRhIGZvciB0aGUgcnVudGltZS4wQmxvY2tCdWlsZGVyEDxhcHBseV9leHRyaW5zaWMEJGV4dHJpbnNpY5EOpQ4QbCBBcHBseSB0aGUgZ2l2ZW4gZXh0cmluc2ljLgA5ASBSZXR1cm5zIGFuIGluY2x1c2lvbiBvdXRjb21lIHdoaWNoIHNwZWNpZmllcyBpZiB0aGlzIGV4dHJpbnNpYyBpcyBpbmNsdWRlZCBpbkwgdGhpcyBibG9jayBvciBub3QuOGZpbmFsaXplX2Jsb2NrAHkBBGggRmluaXNoIHRoZSBjdXJyZW50IGJsb2NrLkxpbmhlcmVudF9leHRyaW5zaWNzBCBpbmhlcmVudLUOlQ4EPQEgR2VuZXJhdGUgaW5oZXJlbnQgZXh0cmluc2ljcy4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uPGNoZWNrX2luaGVyZW50cwgUYmxvY2uNDhBkYXRhtQ7FDgRVASBDaGVjayB0aGF0IHRoZSBpbmhlcmVudHMgYXJlIHZhbGlkLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi4EcQEgVGhlIGBCbG9ja0J1aWxkZXJgIGFwaSB0cmFpdCB0aGF0IHByb3ZpZGVzIHRoZSByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBidWlsZGluZyBhIGJsb2NrLlhUYWdnZWRUcmFuc2FjdGlvblF1ZXVlBFB2YWxpZGF0ZV90cmFuc2FjdGlvbgwYc291cmNlyQ4IdHiRDihibG9ja19oYXNoNM0OJGggVmFsaWRhdGUgdGhlIHRyYW5zYWN0aW9uLgBlASBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGJ5IHRoZSB0cmFuc2FjdGlvbiBwb29sIHRvIGxlYXJuIGRldGFpbHMgYWJvdXQgZ2l2ZW4gdHJhbnNhY3Rpb24uRQEgVGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCBtYWtlIHN1cmUgdG8gdmVyaWZ5IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdHJhbnNhY3Rpb25NASBhZ2FpbnN0IGN1cnJlbnQgc3RhdGUuIFRoZSBnaXZlbiBgYmxvY2tfaGFzaGAgY29ycmVzcG9uZHMgdG8gdGhlIGhhc2ggb2YgdGhlIGJsb2NrfCB0aGF0IGlzIHVzZWQgYXMgY3VycmVudCBzdGF0ZS4ARQEgTm90ZSB0aGF0IHRoaXMgY2FsbCBtYXkgYmUgcGVyZm9ybWVkIGJ5IHRoZSBwb29sIG11bHRpcGxlIHRpbWVzIGFuZCB0cmFuc2FjdGlvbnOkIG1pZ2h0IGJlIHZlcmlmaWVkIGluIGFueSBwb3NzaWJsZSBvcmRlci4ETQEgVGhlIGBUYWdnZWRUcmFuc2FjdGlvblF1ZXVlYCBhcGkgdHJhaXQgZm9yIGludGVyZmVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIHF1ZXVlLkRPZmZjaGFpbldvcmtlckFwaQQ8b2ZmY2hhaW5fd29ya2VyBBhoZWFkZXJ5AaEBBMggU3RhcnRzIHRoZSBvZmYtY2hhaW4gdGFzayBmb3IgZ2l2ZW4gYmxvY2sgaGVhZGVyLgRkIFRoZSBvZmZjaGFpbiB3b3JrZXIgYXBpLjRQYXJhY2hhaW5Ib3N0fCh2YWxpZGF0b3JzAEEMBHAgR2V0IHRoZSBjdXJyZW50IHZhbGlkYXRvcnMuQHZhbGlkYXRvcl9ncm91cHMA1Q4MZQEgUmV0dXJucyB0aGUgdmFsaWRhdG9yIGdyb3VwcyBhbmQgcm90YXRpb24gaW5mbyBsb2NhbGl6ZWQgYmFzZWQgb24gdGhlIGh5cG90aGV0aWNhbCBjaGlsZGEBICBvZiBhIGJsb2NrIHdob3NlIHN0YXRlICB0aGlzIGlzIGludm9rZWQgb24uIE5vdGUgdGhhdCBgbm93YCBpbiB0aGUgYEdyb3VwUm90YXRpb25JbmZvYNAgc2hvdWxkIGJlIHRoZSBzdWNjZXNzb3Igb2YgdGhlIG51bWJlciBvZiB0aGUgYmxvY2suSGF2YWlsYWJpbGl0eV9jb3JlcwDdDgg1ASBZaWVsZHMgaW5mb3JtYXRpb24gb24gYWxsIGF2YWlsYWJpbGl0eSBjb3JlcyBhcyByZWxldmFudCB0byB0aGUgY2hpbGQgYmxvY2suPQEgQ29yZXMgYXJlIGVpdGhlciBmcmVlIG9yIG9jY3VwaWVkLiBGcmVlIGNvcmVzIGNhbiBoYXZlIHBhcmFzIGFzc2lnbmVkIHRvIHRoZW0uZHBlcnNpc3RlZF92YWxpZGF0aW9uX2RhdGEIHHBhcmFfaWRpAihhc3N1bXB0aW9u9Q75DhRpASBZaWVsZHMgdGhlIHBlcnNpc3RlZCB2YWxpZGF0aW9uIGRhdGEgZm9yIHRoZSBnaXZlbiBgUGFyYUlkYCBhbG9uZyB3aXRoIGFuIGFzc3VtcHRpb24gdGhhdNggc2hvdWxkIGJlIHVzZWQgaWYgdGhlIHBhcmEgY3VycmVudGx5IG9jY3VwaWVzIGEgY29yZS4ARQEgUmV0dXJucyBgTm9uZWAgaWYgZWl0aGVyIHRoZSBwYXJhIGlzIG5vdCByZWdpc3RlcmVkIG9yIHRoZSBhc3N1bXB0aW9uIGlzIGBGcmVlZGCYIGFuZCB0aGUgcGFyYSBhbHJlYWR5IG9jY3VwaWVzIGEgY29yZS5cYXNzdW1lZF92YWxpZGF0aW9uX2RhdGEIHHBhcmFfaWRpApxleHBlY3RlZF9wZXJzaXN0ZWRfdmFsaWRhdGlvbl9kYXRhX2hhc2g0AQ8MaQEgUmV0dXJucyB0aGUgcGVyc2lzdGVkIHZhbGlkYXRpb24gZGF0YSBmb3IgdGhlIGdpdmVuIGBQYXJhSWRgIGFsb25nIHdpdGggdGhlIGNvcnJlc3BvbmRpbmd1ASB2YWxpZGF0aW9uIGNvZGUgaGFzaC4gSW5zdGVhZCBvZiBhY2NlcHRpbmcgYXNzdW1wdGlvbiBhYm91dCB0aGUgcGFyYSwgbWF0Y2hlcyB0aGUgdmFsaWRhdGlvbikBIGRhdGEgaGFzaCBhZ2FpbnN0IGFuIGV4cGVjdGVkIG9uZSBhbmQgeWllbGRzIGBOb25lYCBpZiB0aGV5J3JlIG5vdCBlcXVhbC5gY2hlY2tfdmFsaWRhdGlvbl9vdXRwdXRzCBxwYXJhX2lkaQIcb3V0cHV0cyUFIAQVASBDaGVja3MgaWYgdGhlIGdpdmVuIHZhbGlkYXRpb24gb3V0cHV0cyBwYXNzIHRoZSBhY2NlcHRhbmNlIGNyaXRlcmlhLlxzZXNzaW9uX2luZGV4X2Zvcl9jaGlsZAAQDPAgUmV0dXJucyB0aGUgc2Vzc2lvbiBpbmRleCBleHBlY3RlZCBhdCBhIGNoaWxkIG9mIHRoZSBibG9jay4A0CBUaGlzIGNhbiBiZSB1c2VkIHRvIGluc3RhbnRpYXRlIGEgYFNpZ25pbmdDb250ZXh0YC48dmFsaWRhdGlvbl9jb2RlCBxwYXJhX2lkaQIoYXNzdW1wdGlvbvUOOQUQVQEgRmV0Y2ggdGhlIHZhbGlkYXRpb24gY29kZSB1c2VkIGJ5IGEgcGFyYSwgbWFraW5nIHRoZSBnaXZlbiBgT2NjdXBpZWRDb3JlQXNzdW1wdGlvbmAuAEUBIFJldHVybnMgYE5vbmVgIGlmIGVpdGhlciB0aGUgcGFyYSBpcyBub3QgcmVnaXN0ZXJlZCBvciB0aGUgYXNzdW1wdGlvbiBpcyBgRnJlZWRgmCBhbmQgdGhlIHBhcmEgYWxyZWFkeSBvY2N1cGllcyBhIGNvcmUueGNhbmRpZGF0ZV9wZW5kaW5nX2F2YWlsYWJpbGl0eQQccGFyYV9pZGkCCQ8IXQEgR2V0IHRoZSByZWNlaXB0IG9mIGEgY2FuZGlkYXRlIHBlbmRpbmcgYXZhaWxhYmlsaXR5LiBUaGlzIHJldHVybnMgYFNvbWVgIGZvciBhbnkgcGFyYXMlASBhc3NpZ25lZCB0byBvY2N1cGllZCBjb3JlcyBpbiBgYXZhaWxhYmlsaXR5X2NvcmVzYCBhbmQgYE5vbmVgIG90aGVyd2lzZS5AY2FuZGlkYXRlX2V2ZW50cwANDwQtASBHZXQgYSB2ZWN0b3Igb2YgZXZlbnRzIGNvbmNlcm5pbmcgY2FuZGlkYXRlcyB0aGF0IG9jY3VycmVkIHdpdGhpbiBhIGJsb2NrLjBkbXFfY29udGVudHMEJHJlY2lwaWVudGkC4QwEPQEgR2V0IGFsbCB0aGUgcGVuZGluZyBpbmJvdW5kIG1lc3NhZ2VzIGluIHRoZSBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIGZvciBhIHBhcmEueGluYm91bmRfaHJtcF9jaGFubmVsc19jb250ZW50cwQkcmVjaXBpZW50aQIVDwhlASBHZXQgdGhlIGNvbnRlbnRzIG9mIGFsbCBjaGFubmVscyBhZGRyZXNzZWQgdG8gdGhlIGdpdmVuIHJlY2lwaWVudC4gQ2hhbm5lbHMgdGhhdCBoYXZlIG5vkCBtZXNzYWdlcyBpbiB0aGVtIGFyZSBhbHNvIGluY2x1ZGVkLlx2YWxpZGF0aW9uX2NvZGVfYnlfaGFzaAQQaGFzaCEFOQUEnCBHZXQgdGhlIHZhbGlkYXRpb24gY29kZSBmcm9tIGl0cyBoYXNoLjhvbl9jaGFpbl92b3RlcwAhDwQxASBTY3JhcGUgZGlzcHV0ZSByZWxldmFudCBmcm9tIG9uLWNoYWluLCBiYWNraW5nIHZvdGVzIGFuZCByZXNvbHZlZCBkaXNwdXRlcy4wc2Vzc2lvbl9pbmZvBBRpbmRleBAlDwzcIEdldCB0aGUgc2Vzc2lvbiBpbmZvIGZvciB0aGUgZ2l2ZW4gc2Vzc2lvbiwgaWYgc3RvcmVkLgAZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gMi5oc3VibWl0X3B2Zl9jaGVja19zdGF0ZW1lbnQIEHN0bXR1BSRzaWduYXR1cmUFBaEBDAEBIFN1Ym1pdHMgYSBQVkYgcHJlLWNoZWNraW5nIHN0YXRlbWVudCBpbnRvIHRoZSB0cmFuc2FjdGlvbiBwb29sLgAZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gMi5UcHZmc19yZXF1aXJlX3ByZWNoZWNrAKkMDF0BIFJldHVybnMgY29kZSBoYXNoZXMgb2YgUFZGcyB0aGF0IHJlcXVpcmUgcHJlLWNoZWNraW5nIGJ5IHZhbGlkYXRvcnMgaW4gdGhlIGFjdGl2ZSBzZXQuABkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiAyLlB2YWxpZGF0aW9uX2NvZGVfaGFzaAgccGFyYV9pZGkCKGFzc3VtcHRpb271DikPDIUBIEZldGNoIHRoZSBoYXNoIG9mIHRoZSB2YWxpZGF0aW9uIGNvZGUgdXNlZCBieSBhIHBhcmEsIG1ha2luZyB0aGUgZ2l2ZW4gYE9jY3VwaWVkQ29yZUFzc3VtcHRpb25gLgAZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gMi4gZGlzcHV0ZXMALQ8EeCBSZXR1cm5zIGFsbCBvbmNoYWluIGRpc3B1dGVzLlxzZXNzaW9uX2V4ZWN1dG9yX3BhcmFtcwQ0c2Vzc2lvbl9pbmRleBA1DwS4IFJldHVybnMgZXhlY3V0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXNzaW9uLkR1bmFwcGxpZWRfc2xhc2hlcwA5DwhZASBSZXR1cm5zIGEgbGlzdCBvZiB2YWxpZGF0b3JzIHRoYXQgbG9zdCBhIHBhc3Qgc2Vzc2lvbiBkaXNwdXRlIGFuZCBuZWVkIHRvIGJlIHNsYXNoZWQuGQEgTk9URTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBzaW5jZSBwYXJhY2hhaW4gaG9zdCB2ZXJzaW9uIDUuTGtleV9vd25lcnNoaXBfcHJvb2YEMHZhbGlkYXRvcl9pZPkBQQ8IzCBSZXR1cm5zIGEgbWVya2xlIHByb29mIG9mIGEgdmFsaWRhdG9yIHNlc3Npb24ga2V5LhkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiA1LmhzdWJtaXRfcmVwb3J0X2Rpc3B1dGVfbG9zdAg0ZGlzcHV0ZV9wcm9vZo0FTGtleV9vd25lcnNoaXBfcHJvb2ZFD0kPDCkBIFN1Ym1pdCBhbiB1bnNpZ25lZCBleHRyaW5zaWMgdG8gc2xhc2ggdmFsaWRhdG9ycyB3aG8gbG9zdCBhIGRpc3B1dGUgYWJvdXR8IGEgY2FuZGlkYXRlIG9mIGEgcGFzdCBzZXNzaW9uLhkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiA1LlRtaW5pbXVtX2JhY2tpbmdfdm90ZXMAEAgNASBHZXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJhY2tpbmcgdm90ZXMgZm9yIGEgcGFyYWNoYWluIGNhbmRpZGF0ZS70IFRoaXMgaXMgYSBzdGFnaW5nIG1ldGhvZCEgRG8gbm90IHVzZSBvbiBwcm9kdWN0aW9uIHJ1bnRpbWVzIUhwYXJhX2JhY2tpbmdfc3RhdGUEBF9pAk0PBOQgUmV0dXJucyB0aGUgc3RhdGUgb2YgcGFyYWNoYWluIGJhY2tpbmcgZm9yIGEgZ2l2ZW4gcGFyYS5QYXN5bmNfYmFja2luZ19wYXJhbXMAvQQEYQEgUmV0dXJucyBjYW5kaWRhdGUncyBhY2NlcHRhbmNlIGxpbWl0YXRpb25zIGZvciBhc3luY2hyb25vdXMgYmFja2luZyBmb3IgYSByZWxheSBwYXJlbnQuTGRpc2FibGVkX3ZhbGlkYXRvcnMAPQwE+CBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgZGlzYWJsZWQgdmFsaWRhdG9ycyBhdCB0aGUgZ2l2ZW4gYmxvY2suNG5vZGVfZmVhdHVyZXMA+QQITCBHZXQgbm9kZSBmZWF0dXJlcy70IFRoaXMgaXMgYSBzdGFnaW5nIG1ldGhvZCEgRG8gbm90IHVzZSBvbiBwcm9kdWN0aW9uIHJ1bnRpbWVzIVhhcHByb3ZhbF92b3RpbmdfcGFyYW1zANUEBKQgQXBwcm92YWwgdm90aW5nIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyxjbGFpbV9xdWV1ZQB9DwQwIENsYWltIHF1ZXVlfGNhbmRpZGF0ZXNfcGVuZGluZ19hdmFpbGFiaWxpdHkEHHBhcmFfaWRpAokPBGAgRWxhc3RpYyBzY2FsaW5nIHN1cHBvcnQE3CBUaGUgQVBJIGZvciBxdWVyeWluZyB0aGUgc3RhdGUgb2YgcGFyYWNoYWlucyBvbi1jaGFpbi4gQmVlZnlBcGkQNGJlZWZ5X2dlbmVzaXMAPQIEBQEgUmV0dXJuIHRoZSBibG9jayBudW1iZXIgd2hlcmUgQkVFRlkgY29uc2Vuc3VzIGlzIGVuYWJsZWQvc3RhcnRlZDR2YWxpZGF0b3Jfc2V0AI0PBLggUmV0dXJuIHRoZSBjdXJyZW50IGFjdGl2ZSBCRUVGWSB2YWxpZGF0b3Igc2V0tHN1Ym1pdF9yZXBvcnRfZXF1aXZvY2F0aW9uX3Vuc2lnbmVkX2V4dHJpbnNpYwhIZXF1aXZvY2F0aW9uX3Byb29mKQc8a2V5X293bmVyX3Byb29mlQ9JDyARASBTdWJtaXRzIGFuIHVuc2lnbmVkIGV4dHJpbnNpYyB0byByZXBvcnQgYW4gZXF1aXZvY2F0aW9uLiBUaGUgY2FsbGVy+CBtdXN0IHByb3ZpZGUgdGhlIGVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgYSBrZXkgb3duZXJzaGlwIHByb29m/CAoc2hvdWxkIGJlIG9idGFpbmVkIHVzaW5nIGBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mYCkuIFRoZQUBIGV4dHJpbnNpYyB3aWxsIGJlIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBhY2NlcHRlZCBmb3IgbG9jYWwVASBhdXRob3JzaGlwIChub3QgdG8gYmUgYnJvYWRjYXN0IHRvIHRoZSBuZXR3b3JrKS4gVGhpcyBtZXRob2QgcmV0dXJucwkBIGBOb25lYCB3aGVuIGNyZWF0aW9uIG9mIHRoZSBleHRyaW5zaWMgZmFpbHMsIGUuZy4gaWYgZXF1aXZvY2F0aW9uBQEgcmVwb3J0aW5nIGlzIGRpc2FibGVkIGZvciB0aGUgZ2l2ZW4gcnVudGltZSAoaS5lLiB0aGlzIG1ldGhvZCBpcwUBIGhhcmRjb2RlZCB0byByZXR1cm4gYE5vbmVgKS4gT25seSB1c2VmdWwgaW4gYW4gb2ZmY2hhaW4gY29udGV4dC5wZ2VuZXJhdGVfa2V5X293bmVyc2hpcF9wcm9vZggYc2V0X2lkMDBhdXRob3JpdHlfaWQFApkPLAkBIEdlbmVyYXRlcyBhIHByb29mIG9mIGtleSBvd25lcnNoaXAgZm9yIHRoZSBnaXZlbiBhdXRob3JpdHkgaW4gdGhl/CBnaXZlbiBzZXQuIEFuIGV4YW1wbGUgdXNhZ2Ugb2YgdGhpcyBtb2R1bGUgaXMgY291cGxlZCB3aXRoIHRoZQUBIHNlc3Npb24gaGlzdG9yaWNhbCBtb2R1bGUgdG8gcHJvdmUgdGhhdCBhIGdpdmVuIGF1dGhvcml0eSBrZXkgaXMNASB0aWVkIHRvIGEgZ2l2ZW4gc3Rha2luZyBpZGVudGl0eSBkdXJpbmcgYSBzcGVjaWZpYyBzZXNzaW9uLiBQcm9vZnMRASBvZiBrZXkgb3duZXJzaGlwIGFyZSBuZWNlc3NhcnkgZm9yIHN1Ym1pdHRpbmcgZXF1aXZvY2F0aW9uIHJlcG9ydHMuEQEgTk9URTogZXZlbiB0aG91Z2ggdGhlIEFQSSB0YWtlcyBhIGBzZXRfaWRgIGFzIHBhcmFtZXRlciB0aGUgY3VycmVudAkBIGltcGxlbWVudGF0aW9ucyBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyIGFuZCBpbnN0ZWFkIHJlbGllcyBvbiB0aGlzDQEgbWV0aG9kIGJlaW5nIGNhbGxlZCBhdCB0aGUgY29ycmVjdCBibG9jayBoZWlnaHQsIGkuZS4gYW55IHBvaW50IGF0FQEgd2hpY2ggdGhlIGdpdmVuIHNldCBpZCBpcyBsaXZlIG9uLWNoYWluLiBGdXR1cmUgaW1wbGVtZW50YXRpb25zIHdpbGwNASBpbnN0ZWFkIHVzZSBpbmRleGVkIGRhdGEgdGhyb3VnaCBhbiBvZmZjaGFpbiB3b3JrZXIsIG5vdCByZXF1aXJpbmd4IG9sZGVyIHN0YXRlcyB0byBiZSBhdmFpbGFibGUuBIAgQVBJIG5lY2Vzc2FyeSBmb3IgQkVFRlkgdm90ZXJzLhhNbXJBcGkUIG1tcl9yb290AJ0PBIwgUmV0dXJuIHRoZSBvbi1jaGFpbiBNTVIgcm9vdCBoYXNoLjhtbXJfbGVhZl9jb3VudAClDwS4IFJldHVybiB0aGUgbnVtYmVyIG9mIE1NUiBibG9ja3MgaW4gdGhlIGNoYWluLjhnZW5lcmF0ZV9wcm9vZgg0YmxvY2tfbnVtYmVyc8EBXGJlc3Rfa25vd25fYmxvY2tfbnVtYmVyPQKpDwhpASBHZW5lcmF0ZSBNTVIgcHJvb2YgZm9yIGEgc2VyaWVzIG9mIGJsb2NrIG51bWJlcnMuIElmIGBiZXN0X2tub3duX2Jsb2NrX251bWJlciA9IFNvbWUobilgLEUBIHVzZSBoaXN0b3JpY2FsIE1NUiBzdGF0ZSBhdCBnaXZlbiBibG9jayBoZWlnaHQgYG5gLiBFbHNlLCB1c2UgY3VycmVudCBNTVIgc3RhdGUuMHZlcmlmeV9wcm9vZggYbGVhdmVzsQ8UcHJvb2a5D70PFPQgVmVyaWZ5IE1NUiBwcm9vZiBhZ2FpbnN0IG9uLWNoYWluIE1NUiBmb3IgYSBiYXRjaCBvZiBsZWF2ZXMuAHEBIE5vdGUgdGhpcyBmdW5jdGlvbiB3aWxsIHVzZSBvbi1jaGFpbiBNTVIgcm9vdCBoYXNoIGFuZCBjaGVjayBpZiB0aGUgcHJvb2YgbWF0Y2hlcyB0aGUgaGFzaC5tASBOb3RlLCB0aGUgbGVhdmVzIHNob3VsZCBiZSBzb3J0ZWQgc3VjaCB0aGF0IGNvcnJlc3BvbmRpbmcgbGVhdmVzIGFuZCBsZWFmIGluZGljZXMgaGF2ZSB0aGWVASBzYW1lIHBvc2l0aW9uIGluIGJvdGggdGhlIGBsZWF2ZXNgIHZlY3RvciBhbmQgdGhlIGBsZWFmX2luZGljZXNgIHZlY3RvciBjb250YWluZWQgaW4gdGhlIFtMZWFmUHJvb2ZdWHZlcmlmeV9wcm9vZl9zdGF0ZWxlc3MMEHJvb3Q0GGxlYXZlc7EPFHByb29muQ+9DxwBASBWZXJpZnkgTU1SIHByb29mIGFnYWluc3QgZ2l2ZW4gcm9vdCBoYXNoIGZvciBhIGJhdGNoIG9mIGxlYXZlcy4A/CBOb3RlIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVxdWlyZSBhbnkgb24tY2hhaW4gc3RvcmFnZSAtIHRoZbwgcHJvb2YgaXMgdmVyaWZpZWQgYWdhaW5zdCBnaXZlbiBNTVIgcm9vdCBoYXNoLgBtASBOb3RlLCB0aGUgbGVhdmVzIHNob3VsZCBiZSBzb3J0ZWQgc3VjaCB0aGF0IGNvcnJlc3BvbmRpbmcgbGVhdmVzIGFuZCBsZWFmIGluZGljZXMgaGF2ZSB0aGWVASBzYW1lIHBvc2l0aW9uIGluIGJvdGggdGhlIGBsZWF2ZXNgIHZlY3RvciBhbmQgdGhlIGBsZWFmX2luZGljZXNgIHZlY3RvciBjb250YWluZWQgaW4gdGhlIFtMZWFmUHJvb2ZdBIQgQVBJIHRvIGludGVyYWN0IHdpdGggTU1SIHBhbGxldC4sQmVlZnlNbXJBcGkITGF1dGhvcml0eV9zZXRfcHJvb2YATQ4E3CBSZXR1cm4gdGhlIGN1cnJlbnRseSBhY3RpdmUgQkVFRlkgYXV0aG9yaXR5IHNldCBwcm9vZi5gbmV4dF9hdXRob3JpdHlfc2V0X3Byb29mAE0OBMggUmV0dXJuIHRoZSBuZXh0L3F1ZXVlZCBCRUVGWSBhdXRob3JpdHkgc2V0IHByb29mLgSQIEFQSSB1c2VmdWwgZm9yIEJFRUZZIGxpZ2h0IGNsaWVudHMuKEdyYW5kcGFBcGkQTGdyYW5kcGFfYXV0aG9yaXRpZXMAtBg9ASBHZXQgdGhlIGN1cnJlbnQgR1JBTkRQQSBhdXRob3JpdGllcyBhbmQgd2VpZ2h0cy4gVGhpcyBzaG91bGQgbm90IGNoYW5nZSBleGNlcHQdASBmb3Igd2hlbiBjaGFuZ2VzIGFyZSBzY2hlZHVsZWQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGRlbGF5IGhhcyBwYXNzZWQuADUBIFdoZW4gY2FsbGVkIGF0IGJsb2NrIEIsIGl0IHdpbGwgcmV0dXJuIHRoZSBzZXQgb2YgYXV0aG9yaXRpZXMgdGhhdCBzaG91bGQgYmU9ASB1c2VkIHRvIGZpbmFsaXplIGRlc2NlbmRhbnRzIG9mIHRoaXMgYmxvY2sgKEIrMSwgQisyLCAuLi4pLiBUaGUgYmxvY2sgQiBpdHNlbGbAIGlzIGZpbmFsaXplZCBieSB0aGUgYXV0aG9yaXRpZXMgZnJvbSBibG9jayBCLTEutHN1Ym1pdF9yZXBvcnRfZXF1aXZvY2F0aW9uX3Vuc2lnbmVkX2V4dHJpbnNpYwhIZXF1aXZvY2F0aW9uX3Byb29mEQI8a2V5X293bmVyX3Byb29mlQ9JDyARASBTdWJtaXRzIGFuIHVuc2lnbmVkIGV4dHJpbnNpYyB0byByZXBvcnQgYW4gZXF1aXZvY2F0aW9uLiBUaGUgY2FsbGVy+CBtdXN0IHByb3ZpZGUgdGhlIGVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgYSBrZXkgb3duZXJzaGlwIHByb29m/CAoc2hvdWxkIGJlIG9idGFpbmVkIHVzaW5nIGBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mYCkuIFRoZQUBIGV4dHJpbnNpYyB3aWxsIGJlIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBhY2NlcHRlZCBmb3IgbG9jYWwVASBhdXRob3JzaGlwIChub3QgdG8gYmUgYnJvYWRjYXN0IHRvIHRoZSBuZXR3b3JrKS4gVGhpcyBtZXRob2QgcmV0dXJucwkBIGBOb25lYCB3aGVuIGNyZWF0aW9uIG9mIHRoZSBleHRyaW5zaWMgZmFpbHMsIGUuZy4gaWYgZXF1aXZvY2F0aW9uBQEgcmVwb3J0aW5nIGlzIGRpc2FibGVkIGZvciB0aGUgZ2l2ZW4gcnVudGltZSAoaS5lLiB0aGlzIG1ldGhvZCBpcwUBIGhhcmRjb2RlZCB0byByZXR1cm4gYE5vbmVgKS4gT25seSB1c2VmdWwgaW4gYW4gb2ZmY2hhaW4gY29udGV4dC5wZ2VuZXJhdGVfa2V5X293bmVyc2hpcF9wcm9vZggYc2V0X2lkMDBhdXRob3JpdHlfaWS8mQ8sCQEgR2VuZXJhdGVzIGEgcHJvb2Ygb2Yga2V5IG93bmVyc2hpcCBmb3IgdGhlIGdpdmVuIGF1dGhvcml0eSBpbiB0aGX8IGdpdmVuIHNldC4gQW4gZXhhbXBsZSB1c2FnZSBvZiB0aGlzIG1vZHVsZSBpcyBjb3VwbGVkIHdpdGggdGhlBQEgc2Vzc2lvbiBoaXN0b3JpY2FsIG1vZHVsZSB0byBwcm92ZSB0aGF0IGEgZ2l2ZW4gYXV0aG9yaXR5IGtleSBpcw0BIHRpZWQgdG8gYSBnaXZlbiBzdGFraW5nIGlkZW50aXR5IGR1cmluZyBhIHNwZWNpZmljIHNlc3Npb24uIFByb29mcxEBIG9mIGtleSBvd25lcnNoaXAgYXJlIG5lY2Vzc2FyeSBmb3Igc3VibWl0dGluZyBlcXVpdm9jYXRpb24gcmVwb3J0cy4RASBOT1RFOiBldmVuIHRob3VnaCB0aGUgQVBJIHRha2VzIGEgYHNldF9pZGAgYXMgcGFyYW1ldGVyIHRoZSBjdXJyZW50/CBpbXBsZW1lbnRhdGlvbnMgaWdub3JlIHRoaXMgcGFyYW1ldGVyIGFuZCBpbnN0ZWFkIHJlbHkgb24gdGhpcw0BIG1ldGhvZCBiZWluZyBjYWxsZWQgYXQgdGhlIGNvcnJlY3QgYmxvY2sgaGVpZ2h0LCBpLmUuIGFueSBwb2ludCBhdBUBIHdoaWNoIHRoZSBnaXZlbiBzZXQgaWQgaXMgbGl2ZSBvbi1jaGFpbi4gRnV0dXJlIGltcGxlbWVudGF0aW9ucyB3aWxsDQEgaW5zdGVhZCB1c2UgaW5kZXhlZCBkYXRhIHRocm91Z2ggYW4gb2ZmY2hhaW4gd29ya2VyLCBub3QgcmVxdWlyaW5neCBvbGRlciBzdGF0ZXMgdG8gYmUgYXZhaWxhYmxlLjhjdXJyZW50X3NldF9pZAAwBJggR2V0IGN1cnJlbnQgR1JBTkRQQSBhdXRob3JpdHkgc2V0IGlkLiQBASBBUElzIGZvciBpbnRlZ3JhdGluZyB0aGUgR1JBTkRQQSBmaW5hbGl0eSBnYWRnZXQgaW50byBydW50aW1lcy7AIFRoaXMgc2hvdWxkIGJlIGltcGxlbWVudGVkIG9uIHRoZSBydW50aW1lIHNpZGUuABUBIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgZm9yIG5lZ290aWF0aW5nIGF1dGhvcml0eS1zZXQgY2hhbmdlcyBmb3IgdGhlDQEgZ2FkZ2V0LiBHUkFORFBBIHVzZXMgYSBzaWduYWxpbmcgbW9kZWwgb2YgY2hhbmdpbmcgYXV0aG9yaXR5IHNldHM6MQEgY2hhbmdlcyBzaG91bGQgYmUgc2lnbmFsZWQgd2l0aCBhIGRlbGF5IG9mIE4gYmxvY2tzLCBhbmQgdGhlbiBhdXRvbWF0aWNhbGx55CBhcHBsaWVkIGluIHRoZSBydW50aW1lIGFmdGVyIHRob3NlIE4gYmxvY2tzIGhhdmUgcGFzc2VkLgD8IFRoZSBjb25zZW5zdXMgcHJvdG9jb2wgd2lsbCBjb29yZGluYXRlIHRoZSBoYW5kb2ZmIGV4dGVybmFsbHkuHEJhYmVBcGkYNGNvbmZpZ3VyYXRpb24AwQ8EjCBSZXR1cm4gdGhlIGNvbmZpZ3VyYXRpb24gZm9yIEJBQkUuTGN1cnJlbnRfZXBvY2hfc3RhcnQAgQEExCBSZXR1cm5zIHRoZSBzbG90IHRoYXQgc3RhcnRlZCB0aGUgY3VycmVudCBlcG9jaC40Y3VycmVudF9lcG9jaADFDwTEIFJldHVybnMgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBjdXJyZW50IGVwb2NoLihuZXh0X2Vwb2NoAMUPCAEBIFJldHVybnMgaW5mb3JtYXRpb24gcmVnYXJkaW5nIHRoZSBuZXh0IGVwb2NoICh3aGljaCB3YXMgYWxyZWFkeVwgcHJldmlvdXNseSBhbm5vdW5jZWQpLnBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mCBBzbG90gQEwYXV0aG9yaXR5X2lkfQHJDywJASBHZW5lcmF0ZXMgYSBwcm9vZiBvZiBrZXkgb3duZXJzaGlwIGZvciB0aGUgZ2l2ZW4gYXV0aG9yaXR5IGluIHRoZQ0BIGN1cnJlbnQgZXBvY2guIEFuIGV4YW1wbGUgdXNhZ2Ugb2YgdGhpcyBtb2R1bGUgaXMgY291cGxlZCB3aXRoIHRoZQUBIHNlc3Npb24gaGlzdG9yaWNhbCBtb2R1bGUgdG8gcHJvdmUgdGhhdCBhIGdpdmVuIGF1dGhvcml0eSBrZXkgaXMNASB0aWVkIHRvIGEgZ2l2ZW4gc3Rha2luZyBpZGVudGl0eSBkdXJpbmcgYSBzcGVjaWZpYyBzZXNzaW9uLiBQcm9vZnMRASBvZiBrZXkgb3duZXJzaGlwIGFyZSBuZWNlc3NhcnkgZm9yIHN1Ym1pdHRpbmcgZXF1aXZvY2F0aW9uIHJlcG9ydHMuCQEgTk9URTogZXZlbiB0aG91Z2ggdGhlIEFQSSB0YWtlcyBhIGBzbG90YCBhcyBwYXJhbWV0ZXIgdGhlIGN1cnJlbnQJASBpbXBsZW1lbnRhdGlvbnMgaWdub3JlcyB0aGlzIHBhcmFtZXRlciBhbmQgaW5zdGVhZCByZWxpZXMgb24gdGhpcw0BIG1ldGhvZCBiZWluZyBjYWxsZWQgYXQgdGhlIGNvcnJlY3QgYmxvY2sgaGVpZ2h0LCBpLmUuIGFueSBwb2ludCBhdPAgd2hpY2ggdGhlIGVwb2NoIGZvciB0aGUgZ2l2ZW4gc2xvdCBpcyBsaXZlIG9uLWNoYWluLiBGdXR1cmUJASBpbXBsZW1lbnRhdGlvbnMgd2lsbCBpbnN0ZWFkIHVzZSBpbmRleGVkIGRhdGEgdGhyb3VnaCBhbiBvZmZjaGFpbtAgd29ya2VyLCBub3QgcmVxdWlyaW5nIG9sZGVyIHN0YXRlcyB0byBiZSBhdmFpbGFibGUutHN1Ym1pdF9yZXBvcnRfZXF1aXZvY2F0aW9uX3Vuc2lnbmVkX2V4dHJpbnNpYwhIZXF1aXZvY2F0aW9uX3Byb29mdQE8a2V5X293bmVyX3Byb29mzQ9JDyARASBTdWJtaXRzIGFuIHVuc2lnbmVkIGV4dHJpbnNpYyB0byByZXBvcnQgYW4gZXF1aXZvY2F0aW9uLiBUaGUgY2FsbGVy+CBtdXN0IHByb3ZpZGUgdGhlIGVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgYSBrZXkgb3duZXJzaGlwIHByb29m/CAoc2hvdWxkIGJlIG9idGFpbmVkIHVzaW5nIGBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mYCkuIFRoZQUBIGV4dHJpbnNpYyB3aWxsIGJlIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBhY2NlcHRlZCBmb3IgbG9jYWwVASBhdXRob3JzaGlwIChub3QgdG8gYmUgYnJvYWRjYXN0IHRvIHRoZSBuZXR3b3JrKS4gVGhpcyBtZXRob2QgcmV0dXJucwkBIGBOb25lYCB3aGVuIGNyZWF0aW9uIG9mIHRoZSBleHRyaW5zaWMgZmFpbHMsIGUuZy4gaWYgZXF1aXZvY2F0aW9uBQEgcmVwb3J0aW5nIGlzIGRpc2FibGVkIGZvciB0aGUgZ2l2ZW4gcnVudGltZSAoaS5lLiB0aGlzIG1ldGhvZCBpcwUBIGhhcmRjb2RlZCB0byByZXR1cm4gYE5vbmVgKS4gT25seSB1c2VmdWwgaW4gYW4gb2ZmY2hhaW4gY29udGV4dC4EuCBBUEkgbmVjZXNzYXJ5IGZvciBibG9jayBhdXRob3JzaGlwIHdpdGggQkFCRS5UQXV0aG9yaXR5RGlzY292ZXJ5QXBpBCxhdXRob3JpdGllcwCpCQQZASBSZXRyaWV2ZSBhdXRob3JpdHkgaWRlbnRpZmllcnMgb2YgdGhlIGN1cnJlbnQgYW5kIG5leHQgYXV0aG9yaXR5IHNldC4QdCBUaGUgYXV0aG9yaXR5IGRpc2NvdmVyeSBhcGkuAFEBIFRoaXMgYXBpIGlzIHVzZWQgYnkgdGhlIGBjbGllbnQvYXV0aG9yaXR5LWRpc2NvdmVyeWAgbW9kdWxlIHRvIHJldHJpZXZlIGlkZW50aWZpZXJznCBvZiB0aGUgY3VycmVudCBhbmQgbmV4dCBhdXRob3JpdHkgc2V0LixTZXNzaW9uS2V5cwhUZ2VuZXJhdGVfc2Vzc2lvbl9rZXlzBBBzZWVk+Q04HBUBIEdlbmVyYXRlIGEgc2V0IG9mIHNlc3Npb24ga2V5cyB3aXRoIG9wdGlvbmFsbHkgdXNpbmcgdGhlIGdpdmVuIHNlZWQuCQEgVGhlIGtleXMgc2hvdWxkIGJlIHN0b3JlZCB3aXRoaW4gdGhlIGtleXN0b3JlIGV4cG9zZWQgdmlhIHJ1bnRpbWU8IGV4dGVybmFsaXRpZXMuALAgVGhlIHNlZWQgbmVlZHMgdG8gYmUgYSB2YWxpZCBgdXRmOGAgc3RyaW5nLgDQIFJldHVybnMgdGhlIGNvbmNhdGVuYXRlZCBTQ0FMRSBlbmNvZGVkIHB1YmxpYyBrZXlzLkxkZWNvZGVfc2Vzc2lvbl9rZXlzBBxlbmNvZGVkONEPDJggRGVjb2RlIHRoZSBnaXZlbiBwdWJsaWMgc2Vzc2lvbiBrZXlzLgDcIFJldHVybnMgdGhlIGxpc3Qgb2YgcHVibGljIHJhdyBwdWJsaWMga2V5cyArIGtleSB0eXBlLgRoIFNlc3Npb24ga2V5cyBydW50aW1lIGFwaS48QWNjb3VudE5vbmNlQXBpBDRhY2NvdW50X25vbmNlBBxhY2NvdW50ABAEwCBHZXQgY3VycmVudCBhY2NvdW50IG5vbmNlIG9mIGdpdmVuIGBBY2NvdW50SWRgLgSAIFRoZSBBUEkgdG8gcXVlcnkgYWNjb3VudCBub25jZS5UVHJhbnNhY3Rpb25QYXltZW50QXBpEChxdWVyeV9pbmZvCAx1eHSRDgxsZW4Q3Q8ARHF1ZXJ5X2ZlZV9kZXRhaWxzCAx1eHSRDgxsZW4Q4Q8ATHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodCgYAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGgQGAAAZFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGkQPHF1ZXJ5X2NhbGxfaW5mbwgQY2FsbF0BDGxlbhDdDwRJASBRdWVyeSBpbmZvcm1hdGlvbiBvZiBhIGRpc3BhdGNoIGNsYXNzLCB3ZWlnaHQsIGFuZCBmZWUgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC5YcXVlcnlfY2FsbF9mZWVfZGV0YWlscwgQY2FsbF0BDGxlbhDhDwS0IFF1ZXJ5IGZlZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gZW5jb2RlZCBgQ2FsbGAuTHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodCgYBAEBIFF1ZXJ5IHRoZSBvdXRwdXQgb2YgdGhlIGN1cnJlbnQgYFdlaWdodFRvRmVlYCBnaXZlbiBzb21lIGlucHV0LkxxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGgQGAQBASBRdWVyeSB0aGUgb3V0cHV0IG9mIHRoZSBjdXJyZW50IGBMZW5ndGhUb0ZlZWAgZ2l2ZW4gc29tZSBpbnB1dC4ANFhjbVBheW1lbnRBcGkQfHF1ZXJ5X2FjY2VwdGFibGVfcGF5bWVudF9hc3NldHMELHhjbV92ZXJzaW9uEO0PFLQgUmV0dXJucyBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwYXltZW50IGFzc2V0cy4AMCAjIEFyZ3VtZW50cwBoICogYHhjbV92ZXJzaW9uYDogVmVyc2lvbi5AcXVlcnlfeGNtX3dlaWdodAQcbWVzc2FnZdkF+Q8UqCBSZXR1cm5zIGEgd2VpZ2h0IG5lZWRlZCB0byBleGVjdXRlIGEgWENNLgAwICMgQXJndW1lbnRzAHQgKiBgbWVzc2FnZWA6IGBWZXJzaW9uZWRYY21gLmRxdWVyeV93ZWlnaHRfdG9fYXNzZXRfZmVlCBh3ZWlnaHQoFGFzc2V0DQf9DxjoIENvbnZlcnRzIGEgd2VpZ2h0IGludG8gYSBmZWUgZm9yIHRoZSBzcGVjaWZpZWQgYEFzc2V0SWRgLgAwICMgQXJndW1lbnRzAIggKiBgd2VpZ2h0YDogY29udmVydGlibGUgYFdlaWdodGAufCAqIGBhc3NldGA6IGBWZXJzaW9uZWRBc3NldElkYC5McXVlcnlfZGVsaXZlcnlfZmVlcwgsZGVzdGluYXRpb24tARxtZXNzYWdl2QUBECAdASBHZXQgZGVsaXZlcnkgZmVlcyBmb3Igc2VuZGluZyBhIHNwZWNpZmljIGBtZXNzYWdlYCB0byBhIGBkZXN0aW5hdGlvbmAu9CBUaGVzZSBhbHdheXMgY29tZSBpbiBhIHNwZWNpZmljIGFzc2V0LCBkZWZpbmVkIGJ5IHRoZSBjaGFpbi4AMCAjIEFyZ3VtZW50c4EBICogYG1lc3NhZ2VgOiBUaGUgbWVzc2FnZSB0aGF0J2xsIGJlIHNlbnQsIG5lY2Vzc2FyeSBiZWNhdXNlIG1vc3QgZGVsaXZlcnkgZmVlcyBhcmUgYmFzZWQgb24gdGhlXCAgIHNpemUgb2YgdGhlIG1lc3NhZ2UuYQEgKiBgZGVzdGluYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdG8gc2VuZCB0aGUgbWVzc2FnZSB0by4gRGlmZmVyZW50IGRlc3RpbmF0aW9ucyBtYXkgdXNlwCAgIGRpZmZlcmVudCBzZW5kZXJzIHRoYXQgY2hhcmdlIGRpZmZlcmVudCBmZWVzLixwIEEgdHJhaXQgb2YgWENNIHBheW1lbnQgQVBJLgCoIEFQSSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciBvYnRhaW5pbmc6AMQgKiB0aGUgd2VpZ2h0IHJlcXVpcmVkIHRvIGV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UsBQEgKiBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBgQXNzZXRJZGBzIGZvciBtZXNzYWdlIGV4ZWN1dGlvbiBwYXltZW50LAEBICogdGhlIGNvc3Qgb2YgdGhlIHdlaWdodCBpbiB0aGUgc3BlY2lmaWVkIGFjY2VwdGFibGUgYEFzc2V0SWRgLqAgKiB0aGUgZmVlcyBmb3IgYW4gWENNIG1lc3NhZ2UgZGVsaXZlcnkuAPAgVG8gZGV0ZXJtaW5lIHRoZSBleGVjdXRpb24gd2VpZ2h0IG9mIHRoZSBjYWxscyByZXF1aXJlZCBmb3J1ASBbYHhjbTo6bGF0ZXN0OjpJbnN0cnVjdGlvbjo6VHJhbnNhY3RgXSBpbnN0cnVjdGlvbiwgYFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGlgIGNhbiBiZSB1c2VkLiREcnlSdW5BcGkIMGRyeV9ydW5fY2FsbAgYb3JpZ2luWQIQY2FsbF0BBRAEOCBEcnkgcnVuIGNhbGwuLGRyeV9ydW5feGNtCDxvcmlnaW5fbG9jYXRpb24tAQx4Y23dBiUQBFAgRHJ5IHJ1biBYQ00gcHJvZ3JhbSSxASBBUEkgZm9yIGRyeS1ydW5uaW5nIGV4dHJpbnNpY3MgYW5kIFhDTSBwcm9ncmFtcyB0byBnZXQgdGhlIHByb2dyYW1zIHRoYXQgbmVlZCB0byBiZSBwYXNzZWQgdG8gdGhlIGZlZXMgQVBJLgCBASBBbGwgY2FsbHMgcmV0dXJuIGEgdmVjdG9yIG9mIHR1cGxlcyAobG9jYXRpb24sIHhjbSkgd2hlcmUgZWFjaCAieGNtIiBpcyBleGVjdXRlZCBpbiAibG9jYXRpb24iLuQgSWYgdGhlcmUncyBsb2NhbCBleGVjdXRpb24sIHRoZSBsb2NhdGlvbiB3aWxsIGJlICJIZXJlIi4dASBUaGlzIHZlY3RvciBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgYm90aCBleGVjdXRpb24gYW5kIGRlbGl2ZXJ5IGZlZXMuAJkBIENhbGxzIG9yIFhDTXMgbWlnaHQgZmFpbCB3aGVuIGV4ZWN1dGVkLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgcmVzdWx0IG9mIHRoZXNlIGNhbGxzIHdpbGwgYmUgYW4gYEVycmAuZQEgSW4gdGhvc2UgY2FzZXMsIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIGEgdmFsaWQgcmVzdWx0LCB3aXRoIHRoZSBleGVjdXRpb24gZXJyb3IgaW5zaWRlIGl0LmUBIFRoZSBvbmx5IHJlYXNvbnMgd2h5IHRoZXNlIGNhbGxzIG1pZ2h0IHJldHVybiBhbiBlcnJvciBhcmUgbGlzdGVkIGluIHRoZSBbYEVycm9yYF0gZW51bS5QTG9jYXRpb25Ub0FjY291bnRBcGkEQGNvbnZlcnRfbG9jYXRpb24EIGxvY2F0aW9uLQEtEASQIENvbnZlcnRzIGBMb2NhdGlvbmAgdG8gYEFjY291bnRJZGAuBA0BIEFQSSBmb3IgdXNlZnVsIGNvbnZlcnNpb25zIGJldHdlZW4gWENNIGBMb2NhdGlvbmAgYW5kIGBBY2NvdW50SWRgLkhOb21pbmF0aW9uUG9vbHNBcGkcPHBlbmRpbmdfcmV3YXJkcwQMd2hvABgENQEgUmV0dXJucyB0aGUgcGVuZGluZyByZXdhcmRzIGZvciB0aGUgbWVtYmVyIHRoYXQgdGhlIEFjY291bnRJZCB3YXMgZ2l2ZW4gZm9yLkRwb2ludHNfdG9fYmFsYW5jZQgccG9vbF9pZBAYcG9pbnRzGBgE9CBSZXR1cm5zIHRoZSBlcXVpdmFsZW50IGJhbGFuY2Ugb2YgYHBvaW50c2AgZm9yIGEgZ2l2ZW4gcG9vbC5EYmFsYW5jZV90b19wb2ludHMIHHBvb2xfaWQQJG5ld19mdW5kcxgYBPwgUmV0dXJucyB0aGUgZXF1aXZhbGVudCBwb2ludHMgb2YgYG5ld19mdW5kc2AgZm9yIGEgZ2l2ZW4gcG9vbC5IcG9vbF9wZW5kaW5nX3NsYXNoBBxwb29sX2lkEBgEsCBSZXR1cm5zIHRoZSBwZW5kaW5nIHNsYXNoIGZvciBhIGdpdmVuIHBvb2wuUG1lbWJlcl9wZW5kaW5nX3NsYXNoBBhtZW1iZXIAGATMIFJldHVybnMgdGhlIHBlbmRpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcG9vbCBtZW1iZXIudHBvb2xfbmVlZHNfZGVsZWdhdGVfbWlncmF0aW9uBBxwb29sX2lkECAg5CBSZXR1cm5zIHRydWUgaWYgdGhlIHBvb2wgd2l0aCBgcG9vbF9pZGAgbmVlZHMgbWlncmF0aW9uLgBJASBUaGlzIGNhbiBoYXBwZW4gd2hlbiB0aGUgYHBhbGxldC1ub21pbmF0aW9uLXBvb2xzYCBoYXMgc3dpdGNoZWQgdG8gdXNpbmcgc3RyYXRlZ3lBASBbYERlbGVnYXRlU3Rha2VgXShwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6YWRhcHRlcjo6RGVsZWdhdGVTdGFrZSkgYnV0IHRoZSBwb29s6CBzdGlsbCBoYXMgZnVuZHMgdGhhdCB3ZXJlIHN0YWtlZCB1c2luZyB0aGUgb2xkZXIgc3RyYXRlZ3kZASBbVHJhbnNmZXJTdGFrZV0ocGFsbGV0X25vbWluYXRpb25fcG9vbHM6OmFkYXB0ZXI6OlRyYW5zZmVyU3Rha2UpLiBVc2WJASBbYG1pZ3JhdGVfcG9vbF90b19kZWxlZ2F0ZV9zdGFrZWBdKHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpDYWxsOjptaWdyYXRlX3Bvb2xfdG9fZGVsZWdhdGVfc3Rha2UpVCB0byBtaWdyYXRlIHRoZSBwb29sLnxtZW1iZXJfbmVlZHNfZGVsZWdhdGVfbWlncmF0aW9uBBhtZW1iZXIAIBwpASBSZXR1cm5zIHRydWUgaWYgdGhlIGRlbGVnYXRlZCBmdW5kcyBvZiB0aGUgcG9vbCBgbWVtYmVyYCBuZWVkcyBtaWdyYXRpb24uANggT25jZSBhIHBvb2wgaGFzIHN1Y2Nlc3NmdWxseSBtaWdyYXRlZCB0byB0aGUgc3RyYXRlZ3lVASBbYERlbGVnYXRlU3Rha2VgXShwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6YWRhcHRlcjo6RGVsZWdhdGVTdGFrZSksIHRoZSBmdW5kcyBvZiB0aGUZASBtZW1iZXIgY2FuIGJlIG1pZ3JhdGVkIGZyb20gcG9vbCBhY2NvdW50IHRvIHRoZSBtZW1iZXIncyBhY2NvdW50LiBVc2UpASBbYG1pZ3JhdGVfZGVsZWdhdGlvbmBdKHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpDYWxsOjptaWdyYXRlX2RlbGVnYXRpb24ppCB0byBtaWdyYXRlIHRoZSBmdW5kcyBvZiB0aGUgcG9vbCBtZW1iZXIuBPggUnVudGltZSBhcGkgZm9yIGFjY2Vzc2luZyBpbmZvcm1hdGlvbiBhYm91dCBub21pbmF0aW9uIHBvb2xzLihTdGFraW5nQXBpDERub21pbmF0aW9uc19xdW90YQQcYmFsYW5jZRgQBBEBIFJldHVybnMgdGhlIG5vbWluYXRpb25zIHF1b3RhIGZvciBhIG5vbWluYXRvciB3aXRoIGEgZ2l2ZW4gYmFsYW5jZS5cZXJhc19zdGFrZXJzX3BhZ2VfY291bnQIDGVyYRAcYWNjb3VudAAQBDkBIFJldHVybnMgdGhlIHBhZ2UgY291bnQgb2YgZXhwb3N1cmVzIGZvciBhIHZhbGlkYXRvciBgYWNjb3VudGAgaW4gYSBnaXZlbiBlcmEuPHBlbmRpbmdfcmV3YXJkcwgMZXJhEBxhY2NvdW50ACAEPQEgUmV0dXJucyB0cnVlIGlmIHZhbGlkYXRvciBgYWNjb3VudGAgaGFzIHBhZ2VzIHRvIGJlIGNsYWltZWQgZm9yIHRoZSBnaXZlbiBlcmEuADhHZW5lc2lzQnVpbGRlcgwsYnVpbGRfc3RhdGUEEGpzb244NRAkZQEgQnVpbGQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIGEgSlNPTiBibG9iIG5vdCB1c2luZyBhbnkgZGVmYXVsdHMgYW5kIHN0b3JlIGl0IGluIHRoZSQgc3RvcmFnZS4A+QEgSW4gdGhlIGNhc2Ugb2YgYSBGUkFNRS1iYXNlZCBydW50aW1lLCB0aGlzIGZ1bmN0aW9uIGRlc2VyaWFsaXplcyB0aGUgZnVsbCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gdGhlIGdpdmVuIEpTT04gYmxvYiBhbmRZASBwdXRzIGl0IGludG8gdGhlIHN0b3JhZ2UuIElmIHRoZSBwcm92aWRlZCBKU09OIGJsb2IgaXMgaW5jb3JyZWN0IG9yIGluY29tcGxldGUgb3IgdGhltCBkZXNlcmlhbGl6YXRpb24gZmFpbHMsIGFuIGVycm9yIGlzIHJldHVybmVkLgBdASBQbGVhc2Ugbm90ZSB0aGF0IHByb3ZpZGVkIEpTT04gYmxvYiBtdXN0IGNvbnRhaW4gYWxsIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZmllbGRzLCBub1wgZGVmYXVsdHMgd2lsbCBiZSB1c2VkLihnZXRfcHJlc2V0BAhpZDkQ+Q04YQEgUmV0dXJucyBhIEpTT04gYmxvYiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVpbHQtaW4gYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBpZGVudGlmaWVkIGJ5GCBgaWRgLgA9ASBJZiBgaWRgIGlzIGBOb25lYCB0aGUgZnVuY3Rpb24gcmV0dXJucyBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlZmF1bHRJASBgUnVudGltZUdlbmVzaXNDb25maWdgIHN0cnVjdCBvZiB0aGUgcnVudGltZS4gSW1wbGVtZW50YXRpb24gbXVzdCBwcm92aWRlIGRlZmF1bHRgIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AuACEBIE90aGVyd2lzZSBmdW5jdGlvbiByZXR1cm5zIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgYnVpbHQtaW4sIG5hbWVkUQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBwcmVzZXQgaWRlbnRpZmllZCBieSBgaWRgLCBvciBgTm9uZWAgaWYgc3VjaCBwcmVzZXQgZG9lcyBub3RlASBleGlzdHMuIFJldHVybmVkIGBWZWM8dTg+YCBjb250YWlucyBieXRlcyBvZiBKU09OIGJsb2IgKHBhdGNoKSB3aGljaCBjb21wcmlzZXMgYSBsaXN0IG9mTQEgKHBvdGVudGlhbGx5IG5lc3RlZCkga2V5LXZhbHVlIHBhaXJzIHRoYXQgYXJlIGludGVuZGVkIGZvciBjdXN0b21pemluZyB0aGUgZGVmYXVsdGUBIHJ1bnRpbWUgZ2VuZXNpcyBjb25maWcuIFRoZSBwYXRjaCBzaGFsbCBiZSBtZXJnZWQgKHJmYzczODYpIHdpdGggdGhlIEpTT04gcmVwcmVzZW50YXRpb25hASBvZiB0aGUgZGVmYXVsdCBgUnVudGltZUdlbmVzaXNDb25maWdgIHRvIGNyZWF0ZSBhIGNvbXByZWhlbnNpdmUgZ2VuZXNpcyBjb25maWcgdGhhdCBjYW6EIGJlIHVzZWQgaW4gYGJ1aWxkX3N0YXRlYCBtZXRob2QuMHByZXNldF9uYW1lcwA9EBBRASBSZXR1cm5zIGEgbGlzdCBvZiBpZGVudGlmaWVycyBmb3IgYXZhaWxhYmxlIGJ1aWx0aW4gYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBwcmVzZXRzLgBhASBUaGUgcHJlc2V0cyBmcm9tIHRoZSBsaXN0IGNhbiBiZSBxdWVyaWVkIHdpdGggW2BHZW5lc2lzQnVpbGRlcjo6Z2V0X3ByZXNldGBdIG1ldGhvZC4gSWYBASBubyBuYW1lZCBwcmVzZXRzIGFyZSBwcm92aWRlZCBieSB0aGUgcnVudGltZSB0aGUgbGlzdCBpcyBlbXB0eS4E6CBBUEkgdG8gaW50ZXJhY3Qgd2l0aCBSdW50aW1lR2VuZXNpc0NvbmZpZyBmb3IgdGhlIHJ1bnRpbWVdAVRBEAA=",G=A;export{G as default};
|