ghost-keychain/packages/extension-chains/src/kusama-cc1.ts
2019-09-19 11:04:44 +02:00

20 lines
32 KiB
TypeScript

// Copyright 2019 @polkadot/extension-chains authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
// Generated via (in api) `yarn chain:info --ws wss://kusama-rpc.polkadot.io`
export default {
chain: 'Kusama CC1',
genesisHash: '0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf',
icon: 'polkadot',
specVersion: 1001,
ss58Format: 2,
tokenDecimals: 12,
tokenSymbol: 'KSM',
types: {
Keys: 'SessionKeysPolkadot'
},
metaCalls: 'bWV0YQdcGFN5c3RlbQABGChmaWxsX2Jsb2NrAAQhASBBIGJpZyBkaXNwYXRjaCB0aGF0IHdpbGwgZGlzYWxsb3cgYW55IG90aGVyIHRyYW5zYWN0aW9uIHRvIGJlIGluY2x1ZGVkLhhyZW1hcmsEHF9yZW1hcmsUQnl0ZXMEbCBNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLjhzZXRfaGVhcF9wYWdlcwQUcGFnZXMMdTY0BPwgU2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEDG5ldxRCeXRlcwRIIFNldCB0aGUgbmV3IGNvZGUuLHNldF9zdG9yYWdlBBRpdGVtczRWZWM8S2V5VmFsdWU+BGwgU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBBBrZXlzIFZlYzxLZXk+BHggS2lsbCBzb21lIGl0ZW1zIGZyb20gc3RvcmFnZS4AABBCYWJlAAEEiHNldF9wZW5kaW5nX3NlY29uZGFyeV9zbG90c19jaGFuZ2UEGGNoYW5nZTBPcHRpb248Ym9vbD4MFQEgU2V0cyBhIHBlbmRpbmcgY2hhbmdlIHRvIGVuYWJsZSAvIGRpc2FibGUgc2Vjb25kYXJ5IHNsb3QgYXNzaWdubWVudC4NASBUaGUgcGVuZGluZyBjaGFuZ2Ugd2lsbCBiZSBzZXQgYXQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlcG9jaCBhbmSgIHdpbGwgYmUgZW5hY3RlZCBhdCBgY3VycmVudF9lcG9jaCArIDJgLgAAJFRpbWVzdGFtcAABBAxzZXQEDG5vdzxDb21wYWN0PE1vbWVudD4kWCBTZXQgdGhlIGN1cnJlbnQgdGltZS4AWQEgVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtggcGhhc2UsIGlmIHRoaXMgY2FsbCBoYXNuJ3QgYmVlbiBpbnZva2VkIGJ5IHRoYXQgdGltZS4ARQEgVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnlEIGBNaW5pbXVtUGVyaW9kYC4A2CBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgSW5oZXJlbnRgLgAAHEluZGljZXMAAQAAACBCYWxhbmNlcwABDCB0cmFuc2ZlcggQZGVzdBxBZGRyZXNzFHZhbHVlQENvbXBhY3Q8QmFsYW5jZT5c2CBUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgAJASBgdHJhbnNmZXJgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLiEBIEl0IHdpbGwgZGVjcmVhc2UgdGhlIHRvdGFsIGlzc3VhbmNlIG9mIHRoZSBzeXN0ZW0gYnkgdGhlIGBUcmFuc2ZlckZlZWAuFQEgSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHS0IG9mIHRoZSB0cmFuc2ZlciwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuABkBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLgAsICMgPHdlaWdodD4xASAtIERlcGVuZGVudCBvbiBhcmd1bWVudHMgYnV0IG5vdCBjcml0aWNhbCwgZ2l2ZW4gcHJvcGVyIGltcGxlbWVudGF0aW9ucyBmb3LMICAgaW5wdXQgY29uZmlnIHR5cGVzLiBTZWUgcmVsYXRlZCBmdW5jdGlvbnMgYmVsb3cuaQEgLSBJdCBjb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzIGFuZCB3cml0ZXMgaW50ZXJuYWxseSBhbmQgbm8gY29tcGxleCBjb21wdXRhdGlvbi4ATCBSZWxhdGVkIGZ1bmN0aW9uczoAUQEgICAtIGBlbnN1cmVfY2FuX3dpdGhkcmF3YCBpcyBhbHdheXMgY2FsbGVkIGludGVybmFsbHkgYnV0IGhhcyBhIGJvdW5kZWQgY29tcGxleGl0eS4tASAgIC0gVHJhbnNmZXJyaW5nIGJhbGFuY2VzIHRvIGFjY291bnRzIHRoYXQgZGlkIG5vdCBleGlzdCBiZWZvcmUgd2lsbCBjYXVzZdQgICAgICBgVDo6T25OZXdBY2NvdW50Ojpvbl9uZXdfYWNjb3VudGAgdG8gYmUgY2FsbGVkLtwgICAtIFJlbW92aW5nIGVub3VnaCBmdW5kcyBmcm9tIGFuIGFjY291bnQgd2lsbCB0cmlnZ2VyWQEgICAgIGBUOjpEdXN0UmVtb3ZhbDo6b25fdW5iYWxhbmNlZGAgYW5kIGBUOjpPbkZyZWVCYWxhbmNlWmVybzo6b25fZnJlZV9iYWxhbmNlX3plcm9gLgAwICMgPC93ZWlnaHQ+LHNldF9iYWxhbmNlDAx3aG8cQWRkcmVzcyBuZXdfZnJlZUBDb21wYWN0PEJhbGFuY2U+MG5ld19yZXNlcnZlZEBDb21wYWN0PEJhbGFuY2U+NJQgU2V0IHRoZSBiYWxhbmNlcyBvZiBhIGdpdmVuIGFjY291bnQuACEBIFRoaXMgd2lsbCBhbHRlciBgRnJlZUJhbGFuY2VgIGFuZCBgUmVzZXJ2ZWRCYWxhbmNlYCBpbiBzdG9yYWdlLiBpdCB3aWxsCQEgYWxzbyBkZWNyZWFzZSB0aGUgdG90YWwgaXNzdWFuY2Ugb2YgdGhlIHN5c3RlbSAoYFRvdGFsSXNzdWFuY2VgKS4ZASBJZiB0aGUgbmV3IGZyZWUgb3IgcmVzZXJ2ZWQgYmFsYW5jZSBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCzoIGl0IHdpbGwgcmVzZXQgdGhlIGFjY291bnQgbm9uY2UgKGBzeXN0ZW06OkFjY291bnROb25jZWApLgC0IFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAuACwgIyA8d2VpZ2h0PoAgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLsQgLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzIGFuZCB3cml0ZXMuMCAjIDwvd2VpZ2h0Pjhmb3JjZV90cmFuc2ZlcgwYc291cmNlHEFkZHJlc3MQZGVzdBxBZGRyZXNzFHZhbHVlQENvbXBhY3Q8QmFsYW5jZT4IUQEgRXhhY3RseSBhcyBgdHJhbnNmZXJgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2UgYWNjb3VudCBtYXkgYmUsIHNwZWNpZmllZC4AAChBdXRob3JzaGlwAAEEKHNldF91bmNsZXMEKG5ld191bmNsZXMsVmVjPEhlYWRlcj4EZCBQcm92aWRlIGEgc2V0IG9mIHVuY2xlcy4AABxTdGFraW5nAAE0EGJvbmQMKGNvbnRyb2xsZXIcQWRkcmVzcxR2YWx1ZUhDb21wYWN0PEJhbGFuY2VPZj4UcGF5ZWVEUmV3YXJkRGVzdGluYXRpb248ZQEgVGFrZSB0aGUgb3JpZ2luIGFjY291bnQgYXMgYSBzdGFzaCBhbmQgbG9jayB1cCBgdmFsdWVgIG9mIGl0cyBiYWxhbmNlLiBgY29udHJvbGxlcmAgd2lsbIQgYmUgdGhlIGFjY291bnQgdGhhdCBjb250cm9scyBpdC4AUQEgYHZhbHVlYCBtdXN0IGJlIG1vcmUgdGhhbiB0aGUgYGV4aXN0ZW50aWFsX2RlcG9zaXRgIGRlZmluZWQgaW4gdGhlIEJhbGFuY2VzIG1vZHVsZS4AJQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoIGFjY291bnQuACwgIyA8d2VpZ2h0PtQgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBNb2RlcmF0ZSBjb21wbGV4aXR5LiAgLSBPKDEpLmggLSBUaHJlZSBleHRyYSBEQiBlbnRyaWVzLgBtASBOT1RFOiBUd28gb2YgdGhlIHN0b3JhZ2Ugd3JpdGVzIChgU2VsZjo6Ym9uZGVkYCwgYFNlbGY6OnBheWVlYCkgYXJlIF9uZXZlcl8gY2xlYW5lZCB1bmxlc3MlASB0aGUgYG9yaWdpbmAgZmFsbHMgYmVsb3cgX2V4aXN0ZW50aWFsIGRlcG9zaXRfIGFuZCBnZXRzIHJlbW92ZWQgYXMgZHVzdC4wICMgPC93ZWlnaHQ+KGJvbmRfZXh0cmEEOG1heF9hZGRpdGlvbmFsSENvbXBhY3Q8QmFsYW5jZU9mPjhlASBBZGQgc29tZSBleHRyYSBhbW91bnQgdGhhdCBoYXZlIGFwcGVhcmVkIGluIHRoZSBzdGFzaCBgZnJlZV9iYWxhbmNlYCBpbnRvIHRoZSBiYWxhbmNlIHVwNCBmb3Igc3Rha2luZy4AUQEgVXNlIHRoaXMgaWYgdGhlcmUgYXJlIGFkZGl0aW9uYWwgZnVuZHMgaW4geW91ciBzdGFzaCBhY2NvdW50IHRoYXQgeW91IHdpc2ggdG8gYm9uZC5lASBVbmxpa2UgW2Bib25kYF0gb3IgW2B1bmJvbmRgXSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGltcG9zZSBhbnkgbGltaXRhdGlvbiBvbiB0aGUgYW1vdW50TCB0aGF0IGNhbiBiZSBhZGRlZC4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoLCBub3QgdGhlIGNvbnRyb2xsZXIuACwgIyA8d2VpZ2h0PuggLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkuICAtIE8oMSkuQCAtIE9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+GHVuYm9uZAQUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+XFUBIFNjaGVkdWxlIGEgcG9ydGlvbiBvZiB0aGUgc3Rhc2ggdG8gYmUgdW5sb2NrZWQgcmVhZHkgZm9yIHRyYW5zZmVyIG91dCBhZnRlciB0aGUgYm9uZAEBIHBlcmlvZCBlbmRzLiBJZiB0aGlzIGxlYXZlcyBhbiBhbW91bnQgYWN0aXZlbHkgYm9uZGVkIGxlc3MgdGhhbjUBIFQ6OkN1cnJlbmN5OjpleGlzdGVudGlhbF9kZXBvc2l0KCksIHRoZW4gaXQgaXMgaW5jcmVhc2VkIHRvIHRoZSBmdWxsIGFtb3VudC4ASQEgT25jZSB0aGUgdW5sb2NrIHBlcmlvZCBpcyBkb25lLCB5b3UgY2FuIGNhbGwgYHdpdGhkcmF3X3VuYm9uZGVkYCB0byBhY3R1YWxseSBtb3ZlwCB0aGUgZnVuZHMgb3V0IG9mIG1hbmFnZW1lbnQgcmVhZHkgZm9yIHRyYW5zZmVyLgA9ASBObyBtb3JlIHRoYW4gYSBsaW1pdGVkIG51bWJlciBvZiB1bmxvY2tpbmcgY2h1bmtzIChzZWUgYE1BWF9VTkxPQ0tJTkdfQ0hVTktTYCk9ASBjYW4gY28tZXhpc3RzIGF0IHRoZSBzYW1lIHRpbWUuIEluIHRoYXQgY2FzZSwgW2BDYWxsOjp3aXRoZHJhd191bmJvbmRlZGBdIG5lZWT8IHRvIGJlIGNhbGxlZCBmaXJzdCB0byByZW1vdmUgc29tZSBvZiB0aGUgY2h1bmtzIChpZiBwb3NzaWJsZSkuAFUBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgCYIFNlZSBhbHNvIFtgQ2FsbDo6d2l0aGRyYXdfdW5ib25kZWRgXS4ALCAjIDx3ZWlnaHQ+QQEgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBMaW1pdGVkIGJ1dCBwb3RlbnRpYWxseSBleHBsb2l0YWJsZSBjb21wbGV4aXR5LpggLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLmUBIC0gRWFjaCBjYWxsIChyZXF1aXJlcyB0aGUgcmVtYWluZGVyIG9mIHRoZSBib25kZWQgYmFsYW5jZSB0byBiZSBhYm92ZSBgbWluaW11bV9iYWxhbmNlYClxASAgIHdpbGwgY2F1c2UgYSBuZXcgZW50cnkgdG8gYmUgaW5zZXJ0ZWQgaW50byBhIHZlY3RvciAoYExlZGdlci51bmxvY2tpbmdgKSBrZXB0IGluIHN0b3JhZ2UupQEgICBUaGUgb25seSB3YXkgdG8gY2xlYW4gdGhlIGFmb3JlbWVudGlvbmVkIHN0b3JhZ2UgaXRlbSBpcyBhbHNvIHVzZXItY29udHJvbGxlZCB2aWEgYHdpdGhkcmF3X3VuYm9uZGVkYC5AIC0gT25lIERCIGVudHJ5LiggPC93ZWlnaHQ+RHdpdGhkcmF3X3VuYm9uZGVkAEAtASBSZW1vdmUgYW55IHVubG9ja2VkIGNodW5rcyBmcm9tIHRoZSBgdW5sb2NraW5nYCBxdWV1ZSBmcm9tIG91ciBtYW5hZ2VtZW50LgA1ASBUaGlzIGVzc2VudGlhbGx5IGZyZWVzIHVwIHRoYXQgYmFsYW5jZSB0byBiZSB1c2VkIGJ5IHRoZSBzdGFzaCBhY2NvdW50IHRvIGRvTCB3aGF0ZXZlciBpdCB3YW50cy4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAGwgU2VlIGFsc28gW2BDYWxsOjp1bmJvbmRgXS4ALCAjIDx3ZWlnaHQ+VQEgLSBDb3VsZCBiZSBkZXBlbmRlbnQgb24gdGhlIGBvcmlnaW5gIGFyZ3VtZW50IGFuZCBob3cgbXVjaCBgdW5sb2NraW5nYCBjaHVua3MgZXhpc3QuRQEgIEl0IGltcGxpZXMgYGNvbnNvbGlkYXRlX3VubG9ja2VkYCB3aGljaCBsb29wcyBvdmVyIGBMZWRnZXIudW5sb2NraW5nYCwgd2hpY2ggaXP0ICBpbmRpcmVjdGx5IHVzZXItY29udHJvbGxlZC4gU2VlIFtgdW5ib25kYF0gZm9yIG1vcmUgZGV0YWlsLnkBIC0gQ29udGFpbnMgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkcywgeWV0IHRoZSBzaXplIG9mIHdoaWNoIGNvdWxkIGJlIGxhcmdlIGJhc2VkIG9uIGBsZWRnZXJgLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD4gdmFsaWRhdGUEFHByZWZzOFZhbGlkYXRvclByZWZzLOggRGVjbGFyZSB0aGUgZGVzaXJlIHRvIHZhbGlkYXRlIGZvciB0aGUgb3JpZ2luIGNvbnRyb2xsZXIuANwgRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFUBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgAsICMgPHdlaWdodD7oIC0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LpggLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD4gbm9taW5hdGUEHHRhcmdldHMwVmVjPEFkZHJlc3M+LBEBIERlY2xhcmUgdGhlIGRlc2lyZSB0byBub21pbmF0ZSBgdGFyZ2V0c2AgZm9yIHRoZSBvcmlnaW4gY29udHJvbGxlci4A3CBFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guACwgIyA8d2VpZ2h0PiUBIC0gVGhlIHRyYW5zYWN0aW9uJ3MgY29tcGxleGl0eSBpcyBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgYHRhcmdldHNgLJggd2hpY2ggaXMgY2FwcGVkIGF0IGBNQVhfTk9NSU5BVElPTlNgLtggLSBCb3RoIHRoZSByZWFkcyBhbmQgd3JpdGVzIGZvbGxvdyBhIHNpbWlsYXIgcGF0dGVybi4wICMgPC93ZWlnaHQ+FGNoaWxsACzIIERlY2xhcmUgbm8gZGVzaXJlIHRvIGVpdGhlciB2YWxpZGF0ZSBvciBub21pbmF0ZS4A3CBFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guACwgIyA8d2VpZ2h0PuggLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkuVCAtIENvbnRhaW5zIG9uZSByZWFkLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD4kc2V0X3BheWVlBBRwYXllZURSZXdhcmREZXN0aW5hdGlvbiy4IChSZS0pc2V0IHRoZSBwYXltZW50IHRhcmdldCBmb3IgYSBjb250cm9sbGVyLgDcIEVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+6CAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS6YIC0gQ29udGFpbnMgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkcy7IIC0gV3JpdGVzIGFyZSBsaW1pdGVkIHRvIHRoZSBgb3JpZ2luYCBhY2NvdW50IGtleS4wICMgPC93ZWlnaHQ+OHNldF9jb250cm9sbGVyBChjb250cm9sbGVyHEFkZHJlc3MskCAoUmUtKXNldCB0aGUgY29udHJvbGxlciBvZiBhIHN0YXNoLgDcIEVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgc3Rhc2gsIG5vdCB0aGUgY29udHJvbGxlci4ALCAjIDx3ZWlnaHQ+6CAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS6YIC0gQ29udGFpbnMgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkcy7IIC0gV3JpdGVzIGFyZSBsaW1pdGVkIHRvIHRoZSBgb3JpZ2luYCBhY2NvdW50IGtleS4wICMgPC93ZWlnaHQ+THNldF92YWxpZGF0b3JfY291bnQEDG5ldzBDb21wYWN0PHUzMj4EgCBUaGUgaWRlYWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMuNGZvcmNlX25vX2VyYXMAFLAgRm9yY2UgdGhlcmUgdG8gYmUgbm8gbmV3IGVyYXMgaW5kZWZpbml0ZWx5LgAsICMgPHdlaWdodD5AIC0gTm8gYXJndW1lbnRzLjAgIyA8L3dlaWdodD40Zm9yY2VfbmV3X2VyYQAYTQEgRm9yY2UgdGhlcmUgdG8gYmUgYSBuZXcgZXJhIGF0IHRoZSBlbmQgb2YgdGhlIG5leHQgc2Vzc2lvbi4gQWZ0ZXIgdGhpcywgaXQgd2lsbCBiZaAgcmVzZXQgdG8gbm9ybWFsIChub24tZm9yY2VkKSBiZWhhdmlvdXIuACwgIyA8d2VpZ2h0PkAgLSBObyBhcmd1bWVudHMuMCAjIDwvd2VpZ2h0PkRzZXRfaW52dWxuZXJhYmxlcwQodmFsaWRhdG9yczhWZWM8QWNjb3VudElkPgTMIFNldCB0aGUgdmFsaWRhdG9ycyB3aG8gY2Fubm90IGJlIHNsYXNoZWQgKGlmIGFueSkuAAAgT2ZmZW5jZXMAAQAAABxTZXNzaW9uAAEEIHNldF9rZXlzCBBrZXlzEEtleXMUcHJvb2YUQnl0ZXMo5CBTZXRzIHRoZSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyIHRvIGBrZXlgLiEBIEFsbG93cyBhbiBhY2NvdW50IHRvIHNldCBpdHMgc2Vzc2lvbiBrZXkgcHJpb3IgdG8gYmVjb21pbmcgYSB2YWxpZGF0b3IuxCBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4A1CBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuACwgIyA8d2VpZ2h0PoggLSBPKGxvZyBuKSBpbiBudW1iZXIgb2YgYWNjb3VudHMuWCAtIE9uZSBleHRyYSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+AAA8RmluYWxpdHlUcmFja2VyAAEEKGZpbmFsX2hpbnQEEGhpbnRQQ29tcGFjdDxCbG9ja051bWJlcj4I9CBIaW50IHRoYXQgdGhlIGF1dGhvciBvZiB0aGlzIGJsb2NrIHRoaW5rcyB0aGUgYmVzdCBmaW5hbGl6ZWRsIGJsb2NrIGlzIHRoZSBnaXZlbiBudW1iZXIuAAAcR3JhbmRwYQABBEhyZXBvcnRfbWlzYmVoYXZpb3IEHF9yZXBvcnQUQnl0ZXMEZCBSZXBvcnQgc29tZSBtaXNiZWhhdmlvci4AACBJbU9ubGluZQABBCRoZWFydGJlYXQIJGhlYXJ0YmVhdCRIZWFydGJlYXQkc2lnbmF0dXJlSEF1dGhvcml0eVNpZ25hdHVyZQAAACREZW1vY3JhY3kAAUQccHJvcG9zZQggcHJvcG9zYWwgUHJvcG9zYWwUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+GKAgUHJvcG9zZSBhIHNlbnNpdGl2ZSBhY3Rpb24gdG8gYmUgdGFrZW4uACwgIyA8d2VpZ2h0PiAgLSBPKDEpLoAgLSBUd28gREIgY2hhbmdlcywgb25lIERCIGVudHJ5LjAgIyA8L3dlaWdodD4Yc2Vjb25kBCBwcm9wb3NhbEhDb21wYWN0PFByb3BJbmRleD4YoCBQcm9wb3NlIGEgc2Vuc2l0aXZlIGFjdGlvbiB0byBiZSB0YWtlbi4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuQCAtIE9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+EHZvdGUIJHJlZl9pbmRleGBDb21wYWN0PFJlZmVyZW5kdW1JbmRleD4Qdm90ZRBWb3RlHDUBIFZvdGUgaW4gYSByZWZlcmVuZHVtLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0IHRoZSBwcm9wb3NhbDu8IG90aGVyd2lzZSBpdCBpcyBhIHZvdGUgdG8ga2VlcCB0aGUgc3RhdHVzIHF1by4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkufCAtIE9uZSBEQiBjaGFuZ2UsIG9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+KHByb3h5X3ZvdGUIJHJlZl9pbmRleGBDb21wYWN0PFJlZmVyZW5kdW1JbmRleD4Qdm90ZRBWb3RlHFEBIFZvdGUgaW4gYSByZWZlcmVuZHVtIG9uIGJlaGFsZiBvZiBhIHN0YXNoLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0+CB0aGUgcHJvcG9zYWw7ICBvdGhlcndpc2UgaXQgaXMgYSB2b3RlIHRvIGtlZXAgdGhlIHN0YXR1cyBxdW8uACwgIyA8d2VpZ2h0PiAgLSBPKDEpLnwgLSBPbmUgREIgY2hhbmdlLCBvbmUgREIgZW50cnkuMCAjIDwvd2VpZ2h0PkBlbWVyZ2VuY3lfY2FuY2VsBCRyZWZfaW5kZXg8UmVmZXJlbmR1bUluZGV4CFEBIFNjaGVkdWxlIGFuIGVtZXJnZW5jeSBjYW5jZWxsYXRpb24gb2YgYSByZWZlcmVuZHVtLiBDYW5ub3QgaGFwcGVuIHR3aWNlIHRvIHRoZSBzYW1lMCByZWZlcmVuZHVtLkBleHRlcm5hbF9wcm9wb3NlBCBwcm9wb3NhbCBQcm9wb3NhbAgxASBTY2hlZHVsZSBhIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGUgYW4gZXh0ZXJuYWwwIHJlZmVyZW5kdW0uZGV4dGVybmFsX3Byb3Bvc2VfbWFqb3JpdHkEIHByb3Bvc2FsIFByb3Bvc2FsFFkBIFNjaGVkdWxlIGEgbWFqb3JpdHktY2FycmllcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCBuZXh0IG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGVgIGFuIGV4dGVybmFsIHJlZmVyZW5kdW0uAE0BIFVubGlrZSBgZXh0ZXJuYWxfcHJvcG9zZWAsIGJsYWNrbGlzdGluZyBoYXMgbm8gZWZmZWN0IG9uIHRoaXMgYW5kIGl0IG1heSByZXBsYWNlIGGcIHByZS1zY2hlZHVsZWQgYGV4dGVybmFsX3Byb3Bvc2VgIGNhbGwuYGV4dGVybmFsX3Byb3Bvc2VfZGVmYXVsdAQgcHJvcG9zYWwgUHJvcG9zYWwUSQEgU2NoZWR1bGUgYSBuZWdhdGl2ZS10dXJub3V0LWJpYXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWQgbmV4dCBvbmNlIGl0IGlzIGxlZ2FsIHRvhCBzY2hlZHVsZSBhbiBleHRlcm5hbCByZWZlcmVuZHVtLgBNASBVbmxpa2UgYGV4dGVybmFsX3Byb3Bvc2VgLCBibGFja2xpc3RpbmcgaGFzIG5vIGVmZmVjdCBvbiB0aGlzIGFuZCBpdCBtYXkgcmVwbGFjZSBhnCBwcmUtc2NoZWR1bGVkIGBleHRlcm5hbF9wcm9wb3NlYCBjYWxsLihmYXN0X3RyYWNrDDRwcm9wb3NhbF9oYXNoEEhhc2g0dm90aW5nX3BlcmlvZCxCbG9ja051bWJlchRkZWxheSxCbG9ja051bWJlciBRASBTY2hlZHVsZSB0aGUgY3VycmVudGx5IGV4dGVybmFsbHktcHJvcG9zZWQgbWFqb3JpdHktY2FycmllcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZGUBIGltbWVkaWF0ZWx5LiBJZiB0aGVyZSBpcyBubyBleHRlcm5hbGx5LXByb3Bvc2VkIHJlZmVyZW5kdW0gY3VycmVudGx5LCBvciBpZiB0aGVyZSBpcyBvbmXsIGJ1dCBpdCBpcyBub3QgYSBtYWpvcml0eS1jYXJyaWVzIHJlZmVyZW5kdW0gdGhlbiBpdCBmYWlscy4A+CAtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgZXh0ZXJuYWwgcHJvcG9zYWwuLQEgLSBgdm90aW5nX3BlcmlvZGA6IFRoZSBwZXJpb2QgdGhhdCBpcyBhbGxvd2VkIGZvciB2b3Rpbmcgb24gdGhpcyBwcm9wb3NhbC5VASAtIGBkZWxheWA6IFRoZSBudW1iZXIgb2YgYmxvY2sgYWZ0ZXIgdm90aW5nIGhhcyBlbmRlZCBpbiBhcHByb3ZhbCBhbmQgdGhpcyBzaG91bGQgYmXwICAgZW5hY3RlZC4gSW5jcmVhc2VkIHRvIGBFbWVyZ2VuY3lWb3RpbmdQZXJpb2RgIGlmIHRvbyBsb3cuNHZldG9fZXh0ZXJuYWwENHByb3Bvc2FsX2hhc2gQSGFzaAS8IFZldG8gYW5kIGJsYWNrbGlzdCB0aGUgZXh0ZXJuYWwgcHJvcG9zYWwgaGFzaC5EY2FuY2VsX3JlZmVyZW5kdW0EJHJlZl9pbmRleGBDb21wYWN0PFJlZmVyZW5kdW1JbmRleD4EVCBSZW1vdmUgYSByZWZlcmVuZHVtLjRjYW5jZWxfcXVldWVkDBB3aGVuUENvbXBhY3Q8QmxvY2tOdW1iZXI+FHdoaWNoMENvbXBhY3Q8dTMyPhB3aGF0YENvbXBhY3Q8UmVmZXJlbmR1bUluZGV4PgSgIENhbmNlbCBhIHByb3Bvc2FsIHF1ZXVlZCBmb3IgZW5hY3RtZW50LiRzZXRfcHJveHkEFHByb3h5JEFjY291bnRJZBSYIFNwZWNpZnkgYSBwcm94eS4gQ2FsbGVkIGJ5IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+WCAtIE9uZSBleHRyYSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+MHJlc2lnbl9wcm94eQAUmCBDbGVhciB0aGUgcHJveHkuIENhbGxlZCBieSB0aGUgcHJveHkuACwgIyA8d2VpZ2h0PkAgLSBPbmUgREIgY2xlYXIuMCAjIDwvd2VpZ2h0PjByZW1vdmVfcHJveHkEFHByb3h5JEFjY291bnRJZBSYIENsZWFyIHRoZSBwcm94eS4gQ2FsbGVkIGJ5IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+QCAtIE9uZSBEQiBjbGVhci4wICMgPC93ZWlnaHQ+IGRlbGVnYXRlCAh0byRBY2NvdW50SWQoY29udmljdGlvbihDb252aWN0aW9uFDwgRGVsZWdhdGUgdm90ZS4ALCAjIDx3ZWlnaHQ+WCAtIE9uZSBleHRyYSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+KHVuZGVsZWdhdGUAFEQgVW5kZWxlZ2F0ZSB2b3RlLgAsICMgPHdlaWdodD4gIC0gTygxKS4wICMgPC93ZWlnaHQ+AAAcQ291bmNpbAABECxzZXRfbWVtYmVycwQsbmV3X21lbWJlcnM4VmVjPEFjY291bnRJZD4QUQEgU2V0IHRoZSBjb2xsZWN0aXZlJ3MgbWVtYmVyc2hpcCBtYW51YWxseSB0byBgbmV3X21lbWJlcnNgLiBCZSBuaWNlIHRvIHRoZSBjaGFpbiBhbmRcIHByb3ZpZGUgaXQgcHJlLXNvcnRlZC4AWCBSZXF1aXJlcyByb290IG9yaWdpbi4cZXhlY3V0ZQQgcHJvcG9zYWwgUHJvcG9zYWwM9CBEaXNwYXRjaCBhIHByb3Bvc2FsIGZyb20gYSBtZW1iZXIgdXNpbmcgdGhlIGBNZW1iZXJgIG9yaWdpbi4ArCBPcmlnaW4gbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgY29sbGVjdGl2ZS4ccHJvcG9zZQgkdGhyZXNob2xkUENvbXBhY3Q8TWVtYmVyQ291bnQ+IHByb3Bvc2FsIFByb3Bvc2FsECwgIyA8d2VpZ2h0PpAgLSBCb3VuZGVkIHN0b3JhZ2UgcmVhZHMgYW5kIHdyaXRlcy64IC0gQXJndW1lbnQgYHRocmVzaG9sZGAgaGFzIGJlYXJpbmcgb24gd2VpZ2h0LjAgIyA8L3dlaWdodD4Qdm90ZQwgcHJvcG9zYWwQSGFzaBRpbmRleFhDb21wYWN0PFByb3Bvc2FsSW5kZXg+HGFwcHJvdmUQYm9vbBAsICMgPHdlaWdodD6MIC0gQm91bmRlZCBzdG9yYWdlIHJlYWQgYW5kIHdyaXRlcy5VASAtIFdpbGwgYmUgc2xpZ2h0bHkgaGVhdmllciBpZiB0aGUgcHJvcG9zYWwgaXMgYXBwcm92ZWQgLyBkaXNhcHByb3ZlZCBhZnRlciB0aGUgdm90ZS4wICMgPC93ZWlnaHQ+AABIVGVjaG5pY2FsQ29tbWl0dGVlAAEQLHNldF9tZW1iZXJzBCxuZXdfbWVtYmVyczhWZWM8QWNjb3VudElkPhBRASBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwIG1hbnVhbGx5IHRvIGBuZXdfbWVtYmVyc2AuIEJlIG5pY2UgdG8gdGhlIGNoYWluIGFuZFwgcHJvdmlkZSBpdCBwcmUtc29ydGVkLgBYIFJlcXVpcmVzIHJvb3Qgb3JpZ2luLhxleGVjdXRlBCBwcm9wb3NhbCBQcm9wb3NhbAz0IERpc3BhdGNoIGEgcHJvcG9zYWwgZnJvbSBhIG1lbWJlciB1c2luZyB0aGUgYE1lbWJlcmAgb3JpZ2luLgCsIE9yaWdpbiBtdXN0IGJlIGEgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aXZlLhxwcm9wb3NlCCR0aHJlc2hvbGRQQ29tcGFjdDxNZW1iZXJDb3VudD4gcHJvcG9zYWwgUHJvcG9zYWwQLCAjIDx3ZWlnaHQ+kCAtIEJvdW5kZWQgc3RvcmFnZSByZWFkcyBhbmQgd3JpdGVzLrggLSBBcmd1bWVudCBgdGhyZXNob2xkYCBoYXMgYmVhcmluZyBvbiB3ZWlnaHQuMCAjIDwvd2VpZ2h0PhB2b3RlDCBwcm9wb3NhbBBIYXNoFGluZGV4WENvbXBhY3Q8UHJvcG9zYWxJbmRleD4cYXBwcm92ZRBib29sECwgIyA8d2VpZ2h0PowgLSBCb3VuZGVkIHN0b3JhZ2UgcmVhZCBhbmQgd3JpdGVzLlUBIC0gV2lsbCBiZSBzbGlnaHRseSBoZWF2aWVyIGlmIHRoZSBwcm9wb3NhbCBpcyBhcHByb3ZlZCAvIGRpc2FwcHJvdmVkIGFmdGVyIHRoZSB2b3RlLjAgIyA8L3dlaWdodD4AACRFbGVjdGlvbnMAASg0c2V0X2FwcHJvdmFscwwUdm90ZXMkVmVjPGJvb2w+FGluZGV4SENvbXBhY3Q8Vm90ZUluZGV4PhBoaW50IFNldEluZGV4YGEBIFNldCBjYW5kaWRhdGUgYXBwcm92YWxzLiBBcHByb3ZhbCBzbG90cyBzdGF5IHZhbGlkIGFzIGxvbmcgYXMgY2FuZGlkYXRlcyBpbiB0aG9zZSBzbG90c0AgYXJlIHJlZ2lzdGVyZWQuAMAgTG9ja3MgdGhlIHRvdGFsIGJhbGFuY2Ugb2YgY2FsbGVyIGluZGVmaW5pdGVseS4pASBPbmx5IFtgcmV0cmFjdF92b3RlcmBdIG9yIFtgcmVhcF9pbmFjdGl2ZV92b3RlcmBdIGNhbiB1bmxvY2sgdGhlIGJhbGFuY2UuANQgYGhpbnRgIGFyZ3VtZW50IGlzIGludGVycHJldGVkIGRpZmZlcmVudGx5IGJhc2VkIG9uOkUBIC0gaWYgYG9yaWdpbmAgaXMgc2V0dGluZyBhcHByb3ZhbHMgZm9yIHRoZSBmaXJzdCB0aW1lOiBUaGUgaW5kZXggd2lsbCBiZSBjaGVja2VksCBmb3IgYmVpbmcgYSB2YWxpZCBfaG9sZV8gaW4gdGhlIHZvdGVyIGxpc3QuTQEgICAtIGlmIHRoZSBoaW50IGlzIGNvcnJlY3RseSBwb2ludGluZyB0byBhIGhvbGUsIG5vIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIGBvcmlnaW5gLokBICAgLSBPdGhlcndpc2UsIHRoZSBjYWxsIHdpbGwgc3VjY2VlZCBidXQgdGhlIGluZGV4IGlzIGlnbm9yZWQgYW5kIHNpbXBseSBhIHB1c2ggdG8gdGhlIGxhc3QgY2h1bmuBASAgIHdpdGggZnJlZSBzcGFjZSBoYXBwZW5zLiBJZiB0aGUgbmV3IHB1c2ggY2F1c2VzIGEgbmV3IGNodW5rIHRvIGJlIGNyZWF0ZWQsIGEgZmVlIGluZGljYXRlZCBieXQgICBbYFZvdGluZ0ZlZWBdIGlzIGRlZHVjdGVkLl0BIC0gaWYgYG9yaWdpbmAgaXMgYWxyZWFkeSBhIHZvdGVyOiB0aGUgaW5kZXggX19tdXN0X18gYmUgdmFsaWQgYW5kIHBvaW50IHRvIHRoZSBjb3JyZWN01CBwb3NpdGlvbiBvZiB0aGUgYG9yaWdpbmAgaW4gdGhlIGN1cnJlbnQgdm90ZXJzIGxpc3QuAK0BIE5vdGUgdGhhdCBhbnkgdHJhaWxpbmcgYGZhbHNlYCB2b3RlcyBpbiBgdm90ZXNgIGlzIGlnbm9yZWQ7IEluIGFwcHJvdmFsIHZvdGluZywgbm90IHZvdGluZyBmb3IgYSBjYW5kaWRhdGV0IGFuZCB2b3RpbmcgZmFsc2UsIGFyZSBlcXVhbC4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkunCAtIFR3byBleHRyYSBEQiBlbnRyaWVzLCBvbmUgREIgY2hhbmdlLgUBIC0gQXJndW1lbnQgYHZvdGVzYCBpcyBsaW1pdGVkIGluIGxlbmd0aCB0byBudW1iZXIgb2YgY2FuZGlkYXRlcy4wICMgPC93ZWlnaHQ+THByb3h5X3NldF9hcHByb3ZhbHMMFHZvdGVzJFZlYzxib29sPhRpbmRleEhDb21wYWN0PFZvdGVJbmRleD4QaGludCBTZXRJbmRleBiVASBTZXQgY2FuZGlkYXRlIGFwcHJvdmFscyBmcm9tIGEgcHJveHkuIEFwcHJvdmFsIHNsb3RzIHN0YXkgdmFsaWQgYXMgbG9uZyBhcyBjYW5kaWRhdGVzIGluIHRob3NlIHNsb3RzQCBhcmUgcmVnaXN0ZXJlZC4ALCAjIDx3ZWlnaHQ+8CAtIFNhbWUgYXMgYHNldF9hcHByb3ZhbHNgIHdpdGggb25lIGFkZGl0aW9uYWwgc3RvcmFnZSByZWFkLjAgIyA8L3dlaWdodD5McmVhcF9pbmFjdGl2ZV92b3RlchA4cmVwb3J0ZXJfaW5kZXgwQ29tcGFjdDx1MzI+DHdobxxBZGRyZXNzJHdob19pbmRleDBDb21wYWN0PHUzMj5IYXNzdW1lZF92b3RlX2luZGV4SENvbXBhY3Q8Vm90ZUluZGV4PjBhASBSZW1vdmUgYSB2b3Rlci4gRm9yIGl0IG5vdCB0byBiZSBhIGJvbmQtY29uc3VtaW5nIG5vLW9wLCBhbGwgYXBwcm92ZWQgY2FuZGlkYXRlIGluZGljZXNxASBtdXN0IG5vdyBiZSBlaXRoZXIgdW5yZWdpc3RlcmVkIG9yIHJlZ2lzdGVyZWQgdG8gYSBjYW5kaWRhdGUgdGhhdCByZWdpc3RlcmVkIHRoZSBzbG90IGFmdGVyoCB0aGUgdm90ZXIgZ2F2ZSB0aGVpciBsYXN0IGFwcHJvdmFsIHNldC4AFQEgQm90aCBpbmRpY2VzIG11c3QgYmUgcHJvdmlkZWQgYXMgZXhwbGFpbmVkIGluIFtgdm90ZXJfYXRgXSBmdW5jdGlvbi4AAQEgTWF5IGJlIGNhbGxlZCBieSBhbnlvbmUuIFJldHVybnMgdGhlIHZvdGVyIGRlcG9zaXQgdG8gYHNpZ25lZGAuACwgIyA8d2VpZ2h0PiAgLSBPKDEpLpwgLSBUd28gZmV3ZXIgREIgZW50cmllcywgb25lIERCIGNoYW5nZS4wICMgPC93ZWlnaHQ+NHJldHJhY3Rfdm90ZXIEFGluZGV4MENvbXBhY3Q8dTMyPigtASBSZW1vdmUgYSB2b3Rlci4gQWxsIHZvdGVzIGFyZSBjYW5jZWxsZWQgYW5kIHRoZSB2b3RlciBkZXBvc2l0IGlzIHJldHVybmVkLgAJASBUaGUgaW5kZXggbXVzdCBiZSBwcm92aWRlZCBhcyBleHBsYWluZWQgaW4gW2B2b3Rlcl9hdGBdIGZ1bmN0aW9uLgA9ASBBbHNvIHJlbW92ZXMgdGhlIGxvY2sgb24gdGhlIGJhbGFuY2Ugb2YgdGhlIHZvdGVyLiBTZWUgW2Bkb19zZXRfYXBwcm92YWxzKClgXS4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkunCAtIFR3byBmZXdlciBEQiBlbnRyaWVzLCBvbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD5Ac3VibWl0X2NhbmRpZGFjeQQQc2xvdDBDb21wYWN0PHUzMj40eCBTdWJtaXQgb25lc2VsZiBmb3IgY2FuZGlkYWN5LgARASBBY2NvdW50IG11c3QgaGF2ZSBlbm91Z2ggdHJhbnNmZXJyYWJsZSBmdW5kcyBpbiBpdCB0byBwYXkgdGhlIGJvbmQuACEBIE5PVEU6IGlmIGBvcmlnaW5gIGhhcyBhbHJlYWR5IGFzc2lnbmVkIGFwcHJvdmFscyB2aWEgW2BzZXRfYXBwcm92YWxzYF0sRQEgaXQgd2lsbCBOT1QgaGF2ZSBhbnkgdXNhYmxlIGZ1bmRzIHRvIHBhc3MgY2FuZGlkYWN5IGJvbmQgYW5kIG11c3QgZmlyc3QgcmV0cmFjdC4xASBOb3RlIHRoYXQgc2V0dGluZyBhcHByb3ZhbHMgd2lsbCBsb2NrIHRoZSBlbnRpcmUgYmFsYW5jZSBvZiB0aGUgdm90ZXIgdW50aWx4IHJldHJhY3Rpb24gb3IgYmVpbmcgcmVwb3J0ZWQuACwgIyA8d2VpZ2h0PmAgLSBJbmRlcGVuZGVudCBvZiBpbnB1dC5QIC0gVGhyZWUgREIgY2hhbmdlcy4wICMgPC93ZWlnaHQ+OHByZXNlbnRfd2lubmVyDCRjYW5kaWRhdGUcQWRkcmVzcxR0b3RhbEhDb21wYWN0PEJhbGFuY2VPZj4UaW5kZXhIQ29tcGFjdDxWb3RlSW5kZXg+IGUBIENsYWltIHRoYXQgYHNpZ25lZGAgaXMgb25lIG9mIHRoZSB0b3AgU2VsZjo6Y2FycnlfY291bnQoKSArIGN1cnJlbnRfdm90ZSgpLjEgY2FuZGlkYXRlcy6hASBPbmx5IHdvcmtzIGlmIHRoZSBgYmxvY2tfbnVtYmVyID49IGN1cnJlbnRfdm90ZSgpLjBgIGFuZCBgPCBjdXJyZW50X3ZvdGUoKS4wICsgcHJlc2VudGF0aW9uX2R1cmF0aW9uKClgeCBgc2lnbmVkYCBzaG91bGQgaGF2ZSBhdCBsZWFzdAAsICMgPHdlaWdodD5UIC0gTyh2b3RlcnMpIGNvbXB1dGUuRCAtIE9uZSBEQiBjaGFuZ2UuMCAjIDwvd2VpZ2h0PkRzZXRfZGVzaXJlZF9zZWF0cwQUY291bnQwQ29tcGFjdDx1MzI+DGUBIFNldCB0aGUgZGVzaXJlZCBtZW1iZXIgY291bnQ7IGlmIGxvd2VyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQsIHRoZW4gc2VhdHMgd2lsbCBub3QgYmUgdXBJASBlbGVjdGlvbiB3aGVuIHRoZXkgZXhwaXJlLiBJZiBtb3JlLCB0aGVuIGEgbmV3IHZvdGUgd2lsbCBiZSBzdGFydGVkIGlmIG9uZSBpcyBub3RUIGFscmVhZHkgaW4gcHJvZ3Jlc3MuNHJlbW92ZV9tZW1iZXIEDHdobxxBZGRyZXNzECEBIFJlbW92ZSBhIHBhcnRpY3VsYXIgbWVtYmVyIGZyb20gdGhlIHNldC4gVGhpcyBpcyBlZmZlY3RpdmUgaW1tZWRpYXRlbHkuACEBIE5vdGU6IEEgdGFsbHkgc2hvdWxkIGhhcHBlbiBpbnN0YW50bHkgKGlmIG5vdCBhbHJlYWR5IGluIGEgcHJlc2VudGF0aW9uQQEgcGVyaW9kKSB0byBmaWxsIHRoZSBzZWF0IGlmIHJlbW92YWwgbWVhbnMgdGhhdCB0aGUgZGVzaXJlZCBtZW1iZXJzIGFyZSBub3QgbWV0LmRzZXRfcHJlc2VudGF0aW9uX2R1cmF0aW9uBBRjb3VudFBDb21wYWN0PEJsb2NrTnVtYmVyPghZASBTZXQgdGhlIHByZXNlbnRhdGlvbiBkdXJhdGlvbi4gSWYgdGhlcmUgaXMgY3VycmVudGx5IGEgdm90ZSBiZWluZyBwcmVzZW50ZWQgZm9yLCB3aWxsYCBpbnZva2UgYGZpbmFsaXplX3ZvdGVgLkRzZXRfdGVybV9kdXJhdGlvbgQUY291bnRQQ29tcGFjdDxCbG9ja051bWJlcj4IUQEgU2V0IHRoZSBwcmVzZW50YXRpb24gZHVyYXRpb24uIElmIHRoZXJlIGlzIGN1cnJlbnQgYSB2b3RlIGJlaW5nIHByZXNlbnRlZCBmb3IsIHdpbGxgIGludm9rZSBgZmluYWxpemVfdm90ZWAuAABMVGVjaG5pY2FsTWVtYmVyc2hpcAABEChhZGRfbWVtYmVyBAx3aG8kQWNjb3VudElkDHwgQWRkIGEgbWVtYmVyIGB3aG9gIHRvIHRoZSBzZXQuALQgTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYEFkZE9yaWdpbmAgb3Igcm9vdC40cmVtb3ZlX21lbWJlcgQMd2hvJEFjY291bnRJZAyQIFJlbW92ZSBhIG1lbWJlciBgd2hvYCBmcm9tIHRoZSBzZXQuAMAgTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFJlbW92ZU9yaWdpbmAgb3Igcm9vdC4sc3dhcF9tZW1iZXIIGHJlbW92ZSRBY2NvdW50SWQMYWRkJEFjY291bnRJZAzAIFN3YXAgb3V0IG9uZSBtZW1iZXIgYHJlbW92ZWAgZm9yIGFub3RoZXIgYGFkZGAuALggTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFN3YXBPcmlnaW5gIG9yIHJvb3QuNHJlc2V0X21lbWJlcnMEHG1lbWJlcnM4VmVjPEFjY291bnRJZD4QWQEgQ2hhbmdlIHRoZSBtZW1iZXJzaGlwIHRvIGEgbmV3IHNldCwgZGlzcmVnYXJkaW5nIHRoZSBleGlzdGluZyBtZW1iZXJzaGlwLiBCZSBuaWNlIGFuZGwgcGFzcyBgbWVtYmVyc2AgcHJlLXNvcnRlZC4AvCBNYXkgb25seSBiZSBjYWxsZWQgZnJvbSBgUmVzZXRPcmlnaW5gIG9yIHJvb3QuAAAgVHJlYXN1cnkAAQw0cHJvcG9zZV9zcGVuZAgUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+LGJlbmVmaWNpYXJ5HEFkZHJlc3MkLQEgUHV0IGZvcndhcmQgYSBzdWdnZXN0aW9uIGZvciBzcGVuZGluZy4gQSBkZXBvc2l0IHByb3BvcnRpb25hbCB0byB0aGUgdmFsdWU1ASBpcyByZXNlcnZlZCBhbmQgc2xhc2hlZCBpZiB0aGUgcHJvcG9zYWwgaXMgcmVqZWN0ZWQuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhlVCBwcm9wb3NhbCBpcyBhd2FyZGVkLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLpQgLSBPbmUgREIgY2hhbmdlLCBvbmUgZXh0cmEgREIgZW50cnkuMCAjIDwvd2VpZ2h0PjxyZWplY3RfcHJvcG9zYWwELHByb3Bvc2FsX2lkWENvbXBhY3Q8UHJvcG9zYWxJbmRleD4c/CBSZWplY3QgYSBwcm9wb3NlZCBzcGVuZC4gVGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBiZSBzbGFzaGVkLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkAgLSBPbmUgREIgY2xlYXIuMCAjIDwvd2VpZ2h0PkBhcHByb3ZlX3Byb3Bvc2FsBCxwcm9wb3NhbF9pZFhDb21wYWN0PFByb3Bvc2FsSW5kZXg+IF0BIEFwcHJvdmUgYSBwcm9wb3NhbC4gQXQgYSBsYXRlciB0aW1lLCB0aGUgcHJvcG9zYWwgd2lsbCBiZSBhbGxvY2F0ZWQgdG8gdGhlIGJlbmVmaWNpYXJ5rCBhbmQgdGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBiZSByZXR1cm5lZC4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuZCAtIExpbWl0ZWQgc3RvcmFnZSByZWFkcy5EIC0gT25lIERCIGNoYW5nZS4wICMgPC93ZWlnaHQ+AAAYQ2xhaW1zAAEEFGNsYWltCBBkZXN0JEFjY291bnRJZEhldGhlcmV1bV9zaWduYXR1cmU4RWNkc2FTaWduYXR1cmUEOCBNYWtlIGEgY2xhaW0uAAAoUGFyYWNoYWlucwABDCRzZXRfaGVhZHMEFGhlYWRzWFZlYzxBdHRlc3RlZENhbmRpZGF0ZT4EFQEgUHJvdmlkZSBjYW5kaWRhdGUgcmVjZWlwdHMgZm9yIHBhcmFjaGFpbnMsIGluIGFzY2VuZGluZyBvcmRlciBieSBpZC5IcmVnaXN0ZXJfcGFyYWNoYWluDAhpZBhQYXJhSWQQY29kZRRCeXRlc0Rpbml0aWFsX2hlYWRfZGF0YRRCeXRlcwiYIFJlZ2lzdGVyIGEgcGFyYWNoYWluIHdpdGggZ2l2ZW4gY29kZS6MIEZhaWxzIGlmIGdpdmVuIElEIGlzIGFscmVhZHkgdXNlZC5QZGVyZWdpc3Rlcl9wYXJhY2hhaW4ECGlkGFBhcmFJZASUIERlcmVnaXN0ZXIgYSBwYXJhY2hhaW4gd2l0aCBnaXZlbiBpZAAAMEF0dGVzdGF0aW9ucwABBERtb3JlX2F0dGVzdGF0aW9ucwQUX21vcmVATW9yZUF0dGVzdGF0aW9ucwQVASBQcm92aWRlIGNhbmRpZGF0ZSByZWNlaXB0cyBmb3IgcGFyYWNoYWlucywgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IGlkLgAAFFNsb3RzAAEYLG5ld19hdWN0aW9uCCBkdXJhdGlvblBDb21wYWN0PEJsb2NrTnVtYmVyPkhsZWFzZV9wZXJpb2RfaW5kZXhYQ29tcGFjdDxMZWFzZVBlcmlvZE9mPhRYIENyZWF0ZSBhIG5ldyBhdWN0aW9uLgBVASBUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aGVuIHRoZXJlIGlzbid0IGFscmVhZHkgYW4gYXVjdGlvbiBpbiBwcm9ncmVzcyBhbmQgbWF5IG9ubHkgYmUpASBjYWxsZWQgYnkgdGhlIHJvb3Qgb3JpZ2luLiBBY2NlcHRzIHRoZSBgZHVyYXRpb25gIG9mIHRoaXMgYXVjdGlvbiBhbmQgdGhlXQEgYGxlYXNlX3BlcmlvZF9pbmRleGAgb2YgdGhlIGluaXRpYWwgbGVhc2UgcGVyaW9kIG9mIHRoZSBmb3VyIHRoYXQgYXJlIHRvIGJlIGF1Y3Rpb25lZC4MYmlkFAxzdWI4Q29tcGFjdDxTdWJJZD40YXVjdGlvbl9pbmRleFRDb21wYWN0PEF1Y3Rpb25JbmRleD4oZmlyc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+JGxhc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+GGFtb3VudEhDb21wYWN0PEJhbGFuY2VPZj5ATQEgTWFrZSBhIG5ldyBiaWQgZnJvbSBhbiBhY2NvdW50IChpbmNsdWRpbmcgYSBwYXJhY2hhaW4gYWNjb3VudCkgZm9yIGRlcGxveWluZyBhIG5ldywgcGFyYWNoYWluLgBdASBNdWx0aXBsZSBzaW11bHRhbmVvdXMgYmlkcyBmcm9tIHRoZSBzYW1lIGJpZGRlciBhcmUgYWxsb3dlZCBvbmx5IGFzIGxvbmcgYXMgYWxsIGFjdGl2ZUEBIGJpZHMgb3ZlcmxhcCBlYWNoIG90aGVyIChpLmUuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUpLiBCaWRzIGNhbm5vdCBiZSByZWRhY3RlZC4AWQEgLSBgc3ViYCBpcyB0aGUgc3ViLWJpZGRlciBJRCwgYWxsb3dpbmcgZm9yIG11bHRpcGxlIGNvbXBldGluZyBiaWRzIHRvIGJlIG1hZGUgYnkgKGFuZHQgZnVuZGVkIGJ5KSB0aGUgc2FtZSBhY2NvdW50LlEBIC0gYGF1Y3Rpb25faW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgYXVjdGlvbiB0byBiaWQgb24uIFNob3VsZCBqdXN0IGJlIHRoZSBwcmVzZW50bCB2YWx1ZSBvZiBgQXVjdGlvbkNvdW50ZXJgLk0BIC0gYGZpcnN0X3Nsb3RgIGlzIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2QgaW5kZXggb2YgdGhlIHJhbmdlIHRvIGJpZCBvbi4gVGhpcyBpcyB0aGUNASBhYnNvbHV0ZSBsZWFzZSBwZXJpb2QgaW5kZXggdmFsdWUsIG5vdCBhbiBhdWN0aW9uLXNwZWNpZmljIG9mZnNldC5FASAtIGBsYXN0X3Nsb3RgIGlzIHRoZSBsYXN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQ0BIGFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0Lk0BIC0gYGFtb3VudGAgaXMgdGhlIGFtb3VudCB0byBiaWQgdG8gYmUgaGVsZCBhcyBkZXBvc2l0IGZvciB0aGUgcGFyYWNoYWluIHNob3VsZCB0aGXMIGJpZCB3aW4uIFRoaXMgYW1vdW50IGlzIGhlbGQgdGhyb3VnaG91dCB0aGUgcmFuZ2UuJGJpZF9yZW5ldxA0YXVjdGlvbl9pbmRleFRDb21wYWN0PEF1Y3Rpb25JbmRleD4oZmlyc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+JGxhc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+GGFtb3VudEhDb21wYWN0PEJhbGFuY2VPZj48UQEgTWFrZSBhIG5ldyBiaWQgZnJvbSBhIHBhcmFjaGFpbiBhY2NvdW50IGZvciByZW5ld2luZyB0aGF0IChwcmUtZXhpc3RpbmcpIHBhcmFjaGFpbi4AqCBUaGUgb3JpZ2luICptdXN0KiBiZSBhIHBhcmFjaGFpbiBhY2NvdW50LgBdASBNdWx0aXBsZSBzaW11bHRhbmVvdXMgYmlkcyBmcm9tIHRoZSBzYW1lIGJpZGRlciBhcmUgYWxsb3dlZCBvbmx5IGFzIGxvbmcgYXMgYWxsIGFjdGl2ZUEBIGJpZHMgb3ZlcmxhcCBlYWNoIG90aGVyIChpLmUuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUpLiBCaWRzIGNhbm5vdCBiZSByZWRhY3RlZC4AUQEgLSBgYXVjdGlvbl9pbmRleGAgaXMgdGhlIGluZGV4IG9mIHRoZSBhdWN0aW9uIHRvIGJpZCBvbi4gU2hvdWxkIGp1c3QgYmUgdGhlIHByZXNlbnRsIHZhbHVlIG9mIGBBdWN0aW9uQ291bnRlcmAuTQEgLSBgZmlyc3Rfc2xvdGAgaXMgdGhlIGZpcnN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQ0BIGFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0LkUBIC0gYGxhc3Rfc2xvdGAgaXMgdGhlIGxhc3QgbGVhc2UgcGVyaW9kIGluZGV4IG9mIHRoZSByYW5nZSB0byBiaWQgb24uIFRoaXMgaXMgdGhlDQEgYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuTQEgLSBgYW1vdW50YCBpcyB0aGUgYW1vdW50IHRvIGJpZCB0byBiZSBoZWxkIGFzIGRlcG9zaXQgZm9yIHRoZSBwYXJhY2hhaW4gc2hvdWxkIHRoZcwgYmlkIHdpbi4gVGhpcyBhbW91bnQgaXMgaGVsZCB0aHJvdWdob3V0IHRoZSByYW5nZS48c2V0X29mZmJvYXJkaW5nBBBkZXN0HEFkZHJlc3MUyCBTZXQgdGhlIG9mZi1ib2FyZGluZyBpbmZvcm1hdGlvbiBmb3IgYSBwYXJhY2hhaW4uAKggVGhlIG9yaWdpbiAqbXVzdCogYmUgYSBwYXJhY2hhaW4gYWNjb3VudC4AIQEgLSBgZGVzdGAgaXMgdGhlIGRlc3RpbmF0aW9uIGFjY291bnQgdG8gcmVjZWl2ZSB0aGUgcGFyYWNoYWluJ3MgZGVwb3NpdC48Zml4X2RlcGxveV9kYXRhEAxzdWI4Q29tcGFjdDxTdWJJZD4ccGFyYV9pZERDb21wYWN0PFBhcmFJZE9mPiRjb2RlX2hhc2gQSGFzaERpbml0aWFsX2hlYWRfZGF0YRRCeXRlcxwtASBTZXQgdGhlIGRlcGxveSBpbmZvcm1hdGlvbiBmb3IgYSBzdWNjZXNzZnVsIGJpZCB0byBkZXBsb3kgYSBuZXcgcGFyYWNoYWluLgDIIC0gYG9yaWdpbmAgbXVzdCBiZSB0aGUgc3VjY2Vzc2Z1bCBiaWRkZXIgYWNjb3VudC6wIC0gYHN1YmAgaXMgdGhlIHN1Yi1iaWRkZXIgSUQgb2YgdGhlIGJpZGRlci4BASAtIGBwYXJhX2lkYCBpcyB0aGUgcGFyYWNoYWluIElEIGFsbG90dGVkIHRvIHRoZSB3aW5uaW5nIGJpZGRlci4dASAtIGBjb2RlX2hhc2hgIGlzIHRoZSBoYXNoIG9mIHRoZSBwYXJhY2hhaW4ncyBXYXNtIHZhbGlkYXRpb24gZnVuY3Rpb24u8CAtIGBpbml0aWFsX2hlYWRfZGF0YWAgaXMgdGhlIHBhcmFjaGFpbidzIGluaXRpYWwgaGVhZCBkYXRhLlRlbGFib3JhdGVfZGVwbG95X2RhdGEIHHBhcmFfaWREQ29tcGFjdDxQYXJhSWRPZj4QY29kZRRCeXRlczB0IE5vdGUgYSBuZXcgcGFyYWNoYWluJ3MgY29kZS4ATQEgVGhpcyBtdXN0IGJlIGNhbGxlZCBhZnRlciBgZml4X2RlcGxveV9kYXRhYCBhbmQgYGNvZGVgIG11c3QgYmUgdGhlIHByZWltYWdlIG9mIHRoZcQgYGNvZGVfaGFzaGAgcGFzc2VkIHRoZXJlIGZvciB0aGUgc2FtZSBgcGFyYV9pZGAuAGEBIFRoaXMgbWF5IGJlIGNhbGxlZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFyYWNoYWluJ3MgZmlyc3QgbGVhc2UgcGVyaW9kLkUBIElmIGNhbGxlZCBiZWZvcmUgdGhlbiB0aGUgcGFyYWNoYWluIHdpbGwgYmVjb21lIGFjdGl2ZSBhdCB0aGUgZmlyc3QgYmxvY2sgb2YgaXRzZQEgc3RhcnRpbmcgbGVhc2UgcGVyaW9kLiBJZiBhZnRlciwgdGhlbiBpdCB3aWxsIGJlY29tZSBhY3RpdmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhpcyBjYWxsLgBsIC0gYF9vcmlnaW5gIGlzIGlycmVsZXZhbnQu/CAtIGBwYXJhX2lkYCBpcyB0aGUgcGFyYWNoYWluIElEIHdob3NlIGNvZGUgd2lsbCBiZSBlbGFib3JhdGVkLhUBIC0gYGNvZGVgIGlzIHRoZSBwcmVpbWFnZSBvZiB0aGUgcmVnaXN0ZXJlZCBgY29kZV9oYXNoYCBvZiBgcGFyYV9pZGAuAAAQU3VkbwABCBBzdWRvBCBwcm9wb3NhbCBQcm9wb3NhbCQ5ASBBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLgDQIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkAgLSBObyBEQiB3cml0ZXMuMCAjIDwvd2VpZ2h0PhxzZXRfa2V5BAxuZXccQWRkcmVzcyR1ASBBdXRoZW50aWNhdGVzIHRoZSBjdXJyZW50IHN1ZG8ga2V5IGFuZCBzZXRzIHRoZSBnaXZlbiBBY2NvdW50SWQgKGBuZXdgKSBhcyB0aGUgbmV3IHN1ZG8ga2V5LgDQIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkQgLSBPbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD4AAA=='
};