PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4NCjxodG1sPg0KPGhlYWQ+DQogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4NCiAgIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTW96aWxsYS80LjcgW2VuXSAoV2luTlQ7IEkpIFtOZXRzY2FwZV0iPg0KICAgPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJJQk0iPg0KICAgPHRpdGxlPkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXMgLSBTV1Q8L3RpdGxlPg0KPC9oZWFkPg0KPGJvZHk+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMSAwMDYgLSBUdWVzZGF5IEF1Z3VzdCAyNywgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo1Njc4OiBUVlQ6IFVuYWJsZSB0byBvcGVuIEZpbHRlciBkaWFsb2cgb24gV2luOTggaWYgYW5vdGhlciB2aWV3IGlzIHVuZG9ja2VkIChmcmVlIGZsb2F0aW5nKQ0KPGJyPjEyODc4OiBDb21ibyBzZXRJdGVtcyByZW1vdmVzIHNldFRleHQgIA0KPGJyPjEzMDI0OiBUd28gdG9vbHRpcHMgZGlzcGxheWVkIG9uIHRyZWUgIA0KPGJyPjE0OTIzOiBTaG93IFRleHQgSG92ZXIgdG9vbGJhciBpdGVtIGluIHdyb25nIHBsYWNlICANCjxicj4xNjMzMzogQWNjZXNzaWJpbGl0eSAtIHRhYiBrZXkgaW4gZGlhbG9nIGJveGVzICANCjxicj4yMDMyMTogTXVsdGlwbGUgb3BlbmVkIEFwcGxpY2F0aW9uV2luZG93cyB3aXRoIHN0YXR1c2xpbmVzIHNob3cgaW5jb3JyZWN0IGRpc3BsYXkvZXZlbnQgaGFuZGxpbmcNCjxicj4yMjIzMTogUHJlc3NpbmcgRU5URVIgaW4gYSB0ZXh0IGZpZWxkIG5vIGxvbmdlciBwZXJmb3JtcyBPSyBpbiBkaWFsb2dzDQo8YnI+MjI2NTk6IEZ1bmN0aW9uIGtleSBldmVudHMgYXJlIG9mdGVuIGxvc3QNCjxicj4yMjY2MTogU3R5bGVkVGV4dCAtIFNoaWZ0K0FsdCs8Y2hhcmFjdGVyPiBpbnNlcnRzIGNoYXJhY3RlciAgDQo8YnI+MjI3MjE6IENhbm5vdCB1c2Uga2V5Ym9hcmQgdG8gdG9nZ2xlIGNoZWNrYm94ZXMgIA0KPGJyPjIyNzM3OiBNb3VzZSBDYXB0dXJlIG9uIE1vdGlmIGNhdXNlcyBDb250ZXh0IE1lbnUgbm90IHRvIHdvcmsgIA0KPGJyPjIyODI1OiBDb25zZWN1dGl2ZSB2ZXJ0aWNhbCBjdXJzb3IgbW92ZW1lbnQgY29tbWFuZHMgZG9uJ3QgcmV0YWluIGNvbHVtbiBvZmZzZXQNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4xIDAwNSAtIFR1ZXNkYXkgQXVndXN0IDIwLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ1NTQ6IENvbWJvIHNlbGVjdGlvbiBzY3JvbGxzIGZvciBjZXJ0YWluIGZvbnRzICgxRzFBRDlZKSAgDQo8YnI+NDU3NzogQ3RybCtCYWNrc3BhY2UgJiBDdHJsK2RlbCBoYXZlIHRoZSBzYW1lIGtleSBjb2RlIGFuZCBrZXkgZXZlbnQgKDFHNTRSQUopDQo8YnI+NDY4NTogVmFyaWFibGVzIFZpZXcgcmUtcG9zaXRpb25zIG9uIGVhY2ggc3RlcCAoMUdFVEU4RikgIA0KPGJyPjEwMDkxOiBNZXNzYWdlQm94IGxvc2VzIGFjdGl2YXRpb24gIA0KPGJyPjEwOTc2OiBXb3JrYmVuY2ggd2luZG93cyBkb24ndCByZW9wZW4gY29ycmVjdGx5IGluIER1YWwgTW9uaXRvciBlbnZpcm9ubWVudHMNCjxicj4xNDk0MjogVW5leHBlY3RlZCBLZXlEb3duIGV2ZW50IGFmdGVyIHByZXNzaW5nIG5vbiBleGlzdGluZyBtZW51IG1uZW1vbmljDQo8YnI+MTg3MDU6IFRvbyBtdWNoIGZsYXNoaW4gaW4gQ29udHJvbCBFeGFtcGxlICANCjxicj4yMTgyOTogQVBJIG5lZWRlZCB0byBhbGxvdyBDQ29tYm8gdG8gZGlzcGxheSBpdHMgbGlzdCBhdCB0aGUgcHJlZmVyZWQgd2lkdGgNCjxicj4yMjQ0MzogT0xFIC0gb3JnLmVjbGlwc2Uuc3d0LmludGVybmFsLm9sZS53aW4zMi5DT05UUk9MSU5GTyBoYXMgYSB1c2VsZXNzIGZpZWxkICdmaWxsZXInDQo8YnI+MjI0NTc6IFdpbjMyIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkNvbWJvIGNvbXB1dGVTaXplKCkgaXMgd3JvbmcgIA0KPGJyPjIyNTA3OiBNb2RhbCBkaWFsb2cgZG9lcyBub3QgcHJldmVudCBhZGp1c3Rpbmcgb2YgdGFibGUgaGVhZGVycyBpbiBwYXJlbnQuDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMSAwMDQgLSBUdWVzZGF5IEF1Z3VzdCAxMywgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NzM3OiBSZWRyYXcgcHJvYmxlbSBpbiB0YWJsZSAoMUdGVzJQRSkgIA0KPGJyPjkwNzU6IFRvb2x0aXBzIG9ubHkgcGFydGlhbGx5IGRpc3BsYXllZCBpbiBIb3ZlcmhlbHAuamF2YSBleGFtcGxlICANCjxicj4xNTYxMDogU3R5bGVkVGV4dCAtIERvdWJsZS1DbGljay1EcmFnIGRvZXNuJ3Qgd29yaywgd29ya3Mgb24gVGV4dCAgDQo8YnI+MTY5OTA6IFRvb2xCYXIgZG9lcyBub3Qgc2VuZCBNb3VzZUhvdmVyIGV2ZW50cyAgDQo8YnI+MjA2MzI6IFBvbGlzaCBuYXRpb25hbCBmb250cyAgDQo8YnI+MjA3OTI6IHNvbWV0aW1lcyByZXNpemUgY2FsbGJhY2sgaXMgbm90IHNlbnQgdG8gdGhlIHNoZWxsIHdoZW4gdGhlIHNoZWxsIGlzIG5vdCB2aXNpYmxlDQo8YnI+MjA4MTU6IE1lbnVzIG5vdCBkaXNwbGF5ZWQgb24gU21hcnRQaG9uZSAyMDAyICANCjxicj4yMTI2ODogU3R5bGVkVGV4dCAtIEN0cmwrU2hpZnQrSiBpbnNlcnRzIGxpbmUgIA0KPGJyPjIxMjcyOiBTdHlsZWRUZXh0IGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyBzZWxlY3Rpb24gd2l0aCBjYXJldCBvbiB0aGUgbGVmdA0KPGJyPjIxOTIxOiBFbXVsYXRlZCBUYWJsZSBzZXRUb3BJbmRleCBmYWlscyBhbmQgY2F1c2VzIE5QRSB3aGVuIGFkZGluZyBhbiBpdGVtIGFmdGVyd2FyZHMNCjxicj4yMTkzMzogVGFibGVDb2x1bW4gZG9lcyBub3QgbGlzdGVuIHRvIENvbnRyb2xFdmVudHMgIA0KPGJyPjIyMDA0OiBubyBrZXlib2FyZCBzaG9ydGN1dHMgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHBhZ2VzIG9mIE11bHRpUGFnZUVkaXRvclBhcnQNCjxicj4yMjE4ODogU3R5bGVkVGV4dCAtIG9ubHkgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBkaXNwbGF5ZWQgIA0KPGJyPjIyMjA0OiBQaG90b246IFRleHQuc2VsZWN0QWxsKCkgZG9lcyBub3Qgc2VsZWN0IGFsbCB0aGUgdGV4dChCQkFXVCkgIA0KPGJyPjIyMjU0OiBDb21tYW5kIEggaXMgbm90IG1hcHBlZCBwcm9wZXJseSAgDQo8YnI+MjIzNjU6IFNXVF9BV1QgZG9lcyBub3QgY29tcGlsZSB1bmRlciBKREsgMS40ICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4xIDAwMyAtIFR1ZXNkYXkgQXVndXN0IDYsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDUyMTogRGlzcGxheS5zeW5jRXhlYyBvciBEaXNwbGF5LmFzeW5jRXhlYyBjYW4gYmxvY2sgcHJvY2Vzc2luZyBvZiBuYXRpdmUgZXZlbnRzICgxRzAzREYwKQ0KPGJyPjIwMTQ0OiBFbnRlciBrZXkgbm90IHdvcmtpbmcgaW4gcGFja2FnZXMgdmlldyAgDQo8YnI+MjExNzk6IFN0ZXAgZmlsdGVyIGluLXBsYWNlIHRleHQgZWRpdG9yIGludmlzaWJsZSAgDQo8YnI+MjEyNDM6IFNjcm9sbCBsb2NrIGluc2VydHMgYSBjaGFyYWN0ZXIgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCBvbiBHVEsNCjxicj4yMTMzODogQWNjZW50cyBhbmQg8SBkb24ndCB3b3JrIGluIGVkaXRvciB1c2luZyBndGsgIA0KPGJyPjIxNDcyOiBrZXlQcmVzc2VkIGV2ZW50IGlnbm9yZWQgYnkgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVGV4dCBmb3IgRU5URVIga2V5DQo8YnI+MjE2OTY6IFN0eWxlZFRleHQgLSBSVEYgdHJhbnNmZXIgY29kZXBhZ2UgZW5jb2RpbmcgIA0KPGJyPjIxNjk4OiBTdHlsZWRUZXh0IC0gUlRGIHdyaXRlciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCAgDQo8YnI+MjE4MzQ6IENvb2xiYXIgLSBkZWxldGluZyBpdGVtcyBjb3JydXB0aW5nIGxheW91dCAgDQo8YnI+MjIwMDQ6IE5vIGtleWJvYXJkIHNob3J0Y3V0cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gcGFnZXMgb2YgTXVsdGlQYWdlRWRpdG9yUGFydA0KPGJyPjIyMDI1OiBNb3RpZjogVW5leHBsYWluZWQgdGVybWluYXRpb24gcnVubmluZyBCQkFXVCBKVW5pdCB0ZXN0cyAgDQo8YnI+MjIwMzY6IE1PVElGOiBBcHBlYXJhbmNlIGlzc3VlIHdpdGggQ29tYm8gIA0KPGJyPjIyMDYwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMSAwMDIgLSBUdWVzZGF5IEp1bHkgMzAsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDU3ODogQ3RybCtKICYgQ3RybCtFbnRlciBoYXZlIHRoZSBzYW1lIGtleSBjb2RlICgxRzU0UkpKKSAgDQo8YnI+NDgxNjogVGFiSXRlbSBkaXNwbGF5cyAmICgxR0pMNzA0KSAgDQo8YnI+Njg4ODogQ29tYm8gc2VuZHMgTW9kaWZ5RXZlbnQgb24gc2V0SXRlbXMgIA0KPGJyPjkwMjU6IE9MRSwgU3R5bGVkVGV4dCB3aWRnZXQgYW5kIFdpbkNFICANCjxicj4xOTYzMjogVHJhY2tlciBzaG91bGQgYWRqdXN0IGN1cnNvciBvbiBtb3VzZSBub3QgZG93biwgbm90IG9uIE1FTlUgIA0KPGJyPjE5OTg1OiBTdHlsZWRUZXh0IC0gQnVsbGV0aW5nIHByb29maW5nIFJURiBjb3B5IGZ1bmN0aW9uICANCjxicj4yMDY5MTogU3R5bGVkVGV4dCAtIGJpZGkgLSBXaW4ySy9YUCBzdXBwb3J0ICANCjxicj4yMDc0NjogSW5jb25zaXN0ZW50IEBwYXJhbSBpbiBKYXZhZG9jIGZvciAgVGFibGVJdGVtLnNldEdyYXllZChib29sZWFuKQ0KPGJyPjIxMzEzOiBDb21iby5nZXRJdGVtIHdyb25nIGVycm9yIHRocm93biAgDQo8YnI+MjE0MjM6IEdUSzogR1BGIGluIFNoZWxsLnNldFZpc2libGUoKSAgDQo8YnI+MjE1MDA6IEdUSzogU1dULkFjdGl2YXRlIGFuZCBTV1QuRGVhY3RpdmF0ZSBldmVudHMgbm90IGZpcmVkIHdoZW4gU2hlbGwgd2l0aCBOT19UUklNIHVzZWQgYXMgaXRzIHN0eWxlIGJpdA0KPGJyPjIxNTI2OiBTaGVsbC5jb21wdXRlVHJpbSBkb2VzIG5vdCBpbmNsdWRlIG1lbnUgYmFyICANCjxicj4yMTU2MzogTW5lbW9uaWNzIGdpdmUgZm9jdXMgdG8gdGhlIGxhYmVsIG9uIEdUSyAgDQo8YnI+MjE1NjQ6IEdUSzogVGV4dCBvZiBCdXR0b24od2l0aCBzdHlsZSBiaXQgU1dULkNIRUNLKSBkb2VzIG5vdCBzaG93IHVwIGNvcnJlY3RseQ0KPGJyPjIxNTczOiBUYWJsZVRyZWVJdGVtIHNob3VsZCBoYXZlIGdldC9zZXRHcmF5ZWQoKSBtZXRob2RzIGxpa2UgVGFibGVJdGVtDQo8YnI+MjE2MDE6IGdldExpbmVDb3VudCgpIG1ldGhvZCBmb3IgVGV4dCB3aWRnZXQgZG9lcyBub3Qgd29yayBvbiBNb3RpZiAgDQo8YnI+MjE2MjM6IExpc3Quc2V0U2VsZWN0aW9uIChpbnQgc3RhcnQsIGludCBlbmQpIGZhaWxzIG9uIE1vdGlmICANCjxicj4yMTY1MzogV2luQ0UvU0g0OiBBcnJvdyBrZXlzIGRvbid0IGdlbmVyYXRlIGtleSBldmVudHMgIA0KPGJyPjIxNzAyOiBEZWJ1ZyBEaXNwbGF5IHZpZXcgZXJyb3IgbXNnIHRvIGNvbnNvbGUgb24gR1RLICANCjxicj4yMTcwNjogQmlkaVV0aWwgaW4gd2luMzIgaGFzIENsYXNzLmZvck5hbWUoKSB1c2FnZSAgDQo8YnI+MjE4MDU6IGV2ZW50LmNoYXJhY3RlciA9IDAgZm9yIGFsbCBDdHJsLTxhbHBoYT4gb24gUU5YIDYuMiAgDQo8YnI+MjE5Mzc6IENPTU9iamVjdCBsZWFrYWdlIG9uIE9sZUNvbnRyb2xTaXRlICANCjxicj4yMTk1ODogQ29udHJvbEV4YW1wbGUgRmlsZURpYWxvZyBkb2VzIG5vdCBmaWx0ZXIgY29ycmVjdGx5ICANCjxicj4yMTk2NDogR1RLOiBBZGRpbmcgYW4gaXRlbSB0byBDb21ibyBjaGFuZ2VzIHRoZSBzZWxlY3Rpb24gaW5kZXggIA0KPGJyPjIxOTY3OiBHVEs6IFNldHRpbmcgc2VsZWN0aW9uIGluZGV4IHRvIC0xIGZvciBhIENvbWJvIHRocm93cyBhbiBleGNlcHRpb24NCjxicj4yMTk2OTogTGlzdC5nZXRTZWxlY3Rpb25JbmRleCBidWcgIA0KPGJyPjIxOTc2OiBHVEs6IENvbWJvLmdldFNlbGVjdGlvbkluZGV4KCkgY2hhbmdlcyB3aGVuIGFuIGl0ZW0gaXMgcmVtb3ZlZA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjEgMDAxIC0gVHVlc2RheSBKdWx5IDIzLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ0Mjg6IFRhYmxlIC0gR3JpZCBsaW5lcyBub3QgZHJhd24gY29ycmVjdGx5ICgxRkU0SzVVKSAgDQo8YnI+NDQ1MTogU2hlbGw6IHNldERlZmF1bHRCdXR0b24sIGRlZmF1bHQgYnV0dG9uIGNhbm5vdCBiZSByZXNldCB0byBudWxsICgxRkdMUzZNKQ0KPGJyPjQ0ODk6IE1vdXNlVXAgZmlyZWQgZm9yIGJ1dHRvbiAxIHdoZW4gYnV0dG9uIDEgaXMgc3RpbGwgcHJlc3NlZCAoMUZPRERQNCkNCjxicj40NTExOiBQYW5lIHRpdGxlIHVwZGF0ZSBmbGFzaGVzIHRvb2wgYmFyIGJ1dHRvbnMgKDFGVVVSN0EpICANCjxicj40NTI0OiBDVFJMIHNlcXVlbmNlcyBub3QgaGFuZGxlZCBncmFjZWZ1bGx5IGJ5IFRleHRFZGl0b3IgKDFGVlNCVFMpICANCjxicj40NTQ0OiBDVFJMIGNvbWJpbmF0aW9uIG5vdCBoYW5kbGVkIGFzIGFjY2VsZXJhdG9ycyB3aGVuIENhcHMgYXJlIGxvY2tlZCAoMUZaUURHUikNCjxicj40NTkwOiBWZXJpZnlFdmVudCB2YWx1ZXMgaWdub3JlZCAoMUc3RzVZMykgIA0KPGJyPjQ2MjY6IFRhYmxlVHJlZTogVHdvIHNlbGVjdGlvbiBldmVudHMgZ2VuZXJhdGVkIGZvciBlYWNoIGNoZWNrYm94IHNlbGVjdGlvbiAoMUdCUlNMTSkNCjxicj40NjQyOiBEaXJlY3RvcnlEaWFsb2cgZG9lcyBub3Qgc3VwcG9ydCAvIG9uIHdpbmRvd3MgKDFHRDQxRFopICANCjxicj40NjQ4OiBNZW51SXRlbS5zZXRFbmFibGVkKCkgYWx3YXlzIGNhdXNlcyBhIHJlZHJhdyAoMUdERENOMikgIA0KPGJyPjQ3ODY6IEZvbnREaWFsb2cgc2hvdWxkIGdpdmUgYWNjZXNzIHRvIGNvbG9yIHNldHRpbmcgKDFHSUVGQkQpICANCjxicj40ODYxOiBLZXkgc3RhdGUgZm9yIHRvb2xiYXIgaXRlbXMgKDFHTDU0QTApICANCjxicj41OTM1OiBTdHlsZWRUZXh0IC0gdXAvZG93biBhcnJvdyBiZWhhdmlvciB3cnQgdmFyeWluZyBsaW5lIGxlbmd0aHMgIA0KPGJyPjY3NzU6IFJhZGlvIGJ1dHRvbiBzZXRTZWxlY3Rpb24gY2hhbmdlcyBmb2N1cyAgDQo8YnI+OTg1OTogQ29tYm8gd2lkZ2V0IGRvZXNuJ3QgZmlyZSBrZXlQcmVzc2VkIG9yIGtleVJlbGVhc2VkIGZvciBFbnRlciBrZXkNCjxicj4xMTg2ODogU3R5bGVkVGV4dDogdGV4dCBzZWxlY3Rpb24gd2l0aCBrZXkgJ2Fycm93IGRvd24nIGRvZXMgbm90IGluY2x1ZGUgbGFzdCBsaW5lDQo8YnI+MTE5OTQ6IFN0eWxlZFRleHQgLSByZXBsYWNlIGdldFhBdE9mZnNldChjYXJldE9mZnNldCkgd2l0aCBjYXJldC5nZXRMb2NhdGlvbigpLngNCjxicj4xMjE3ODogU3R5bGVkVGV4dCAtIG1vdmUgU3R5bGVkVGV4dFJlbmRlcmVyI2JpZGlUZXh0V2lkdGggdG8gRGlzcGxheVJlbmRlcmVyDQo8YnI+MTIxODE6IFN0eWxlZFRleHQgLSBtaXhpbmcgdGV4dCB3aWR0aC9jYXJldCBwb3NpdGlvbiBpcyBjb25mdXNpbmcgIA0KPGJyPjEzOTQ0OiBEQ1IgLSBOZWVkIGN1dC9jb3B5L3Bhc3RlIHJvdXRpbmVzIG9uIENvbWJvICANCjxicj4xNDY3MjogQ29tYm8gYW5kIFNjYWxlIHNldEJhY2tncm91bmQgZG9lcyBub3QgcmVmcmVzaCAgDQo8YnI+MTQ3OTk6IFdpbmRvdyBtYW5pcHVsYXRpb25zIGJsb2NrIG90aGVyIHRocmVhZHMgZnJvbSBleGVjdXRpbmcgIA0KPGJyPjE1MDg4OiBTdHlsZWRUZXh0IC0gZ2V0VG9wSW5kZXggc2VtYW50aWNzIHVuZGVmaW5lZCB3aGVuIG5vIGxpbmUgZnVsbHkgdmlzaWJsZQ0KPGJyPjE1NTU0OiBEQ1IgLSBhbGlnbm1lbnQgaW4gYSB0ZXh0IHdpZGdldCAgDQo8YnI+MTU1NTk6IEpBV1MgcmVhZHMgdGhlIHBhcmVudCB3aW5kb3cgZm9yIGRpYWxvZyBzaGVsbHMgIA0KPGJyPjE1NzI4OiBQYWNrYWdlcyB2aWV3IHNlbGVjdGlvbiBhbHdheXMgb25lIHRvbyBoaWdoICANCjxicj4xNjExMDogU3R5bGVkVGV4dCBzY3JvbGwgbm90IHdvcmtpbmcgd2l0aCBQYWdlVXAvRG93biBrZXlzLiAgDQo8YnI+MTYyMDU6IFN0eWxlZFRleHQgLSBUYWIgZG9lcyBub3QgdGFiIG91dCBvZiByZWFkLW9ubHkgIA0KPGJyPjE2NDAyOiBXb3JraW5nIHNldCBkaWFsb2c6IHRhYmxlIGNvbHVtbnMgaGF2ZSBpbmNvcnJlY3Qgc2l6ZSAgDQo8YnI+MTY3Nzc6IEJ1c3kgY3Vyc29yIGxvc3Qgb3ZlciBwcm9ncmVzcyBpbmRpY2F0b3IgZWRnZXMgIA0KPGJyPjE2OTg2OiBKYXZhVmlld2VyIGV4YW1wbGUgc2hvdWxkIHJlbWVtYmVyIHBhdGggIA0KPGJyPjE3MTkxOiBTV1QgRXJyb3IgaW4gSlVuaXQgdmlldyAgDQo8YnI+MTcyNTI6IEFjY2VsZXJhdG9yIGxhYmVsczogQ3RybC1TaGlmdC1BLCBTaGlmdC1DdHJsLUEgb3IgU2hpZnQtQ3RsLUE/DQo8YnI+MTcyNzk6IEV4dHJhIENvb2xCYXIgcm93IGNyZWF0ZWQgd2hlbiBzd2l0Y2hpbmcgcGVyc3BlY3RpdmVzLiAgDQo8YnI+MTczNzA6IENvbWJvIGJveCBmbGFzaGVzIHRvIG11Y2ggd2hlbiByZXNpemluZyBkaWFsb2cuICANCjxicj4xNzk5MzogRmluZC9SZXBsYWNlIHNob3VsZG4ndCByZXBsYWNlIHR5cGVkIGVudHJ5IHdpdGggdmFsdWUgZnJvbSBoaXN0b3J5DQo8YnI+MTgyNTM6IENvb2xiYXIgLSBkaXNwb3NpbmcgaXRlbXMgbm90IGhvbm9yaW5nIHNldFJlZHJhdyA9IGZhbHNlICANCjxicj4xODMwODogQ3RybCtTSElGVCtAIGRvZXMgbm90IGNhbGwgdGhlIGxpc3RlbmVyLiAgDQo8YnI+MTg0Mjk6IFNjcm9sbGVkQ29tcG9zaXRlIHdpdGggTGF5b3V0TWFuYWdlciBpcyBWRVJZIHNsb3cgaW4gaVBBUSAgDQo8YnI+MTg1NzA6IENvbWJvIGZsYXNoZXMgYnkgcmVzaXppbmcgIA0KPGJyPjE5MzgwOiBMaXN0Ym94ZXMgZmxhc2ggYXMgcHJlZmVyZW5jZXMgZGlhbG9nIGlzIHJlc2l6ZWQgIA0KPGJyPjE5NDM0OiBUb29sSXRlbSBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrIGZvciBUT0dHTEUgIA0KPGJyPjE5NTY4OiB7fSBvbiBhIGdlcm1hbiBrZXlib2FyZCBbc3d0LWNhcmJvbl0gIA0KPGJyPjE5NjE1OiBTdHlsZWRUZXh0IC0gZXhhbXBsZSBUZXh0IEVkaXRvciBidWcgaW4gY29weS9wYXN0ZSAgDQo8YnI+MTk2MzA6IENvb2xiYXIgLSBvZGQgZGlzcG9zZSBiZWhhdmlvciAgDQo8YnI+MTk4MTU6IEpSRSBjcmFzaGVzIHVzaW5nIGVycm9yIGxvZyBhbmQgcHJvZ3Jlc3MgYmFyLiAgDQo8YnI+MTk5NjQ6IENvb2xiYXIgLSBjYW4gImxvc2UiIGl0ZW1zIHdoZW4gcGxhdGZvcm0gd2lkZ2V0IHdyYXBzICANCjxicj4yMDE1OTogUmlnaHQtY2xpY2tpbmcgb24gY29vbGJhciBncmFiYmVyIGNhdXNlcyBzdHJhbmdlIGJlaGF2aW9yICANCjxicj4yMDE4MzogTW90aWYgOiBDb29sYmFyIHByZWZlcnJlZCBzaXplIGlzIHRvbyBzbWFsbCB3aWR0aCB3aXNlICANCjxicj4yMDE5MDogQ29vbEJhciBwcm9ibGVtcyBvbiBXaW5kb3dzIFhQIHdpdGggTWFuaWZlc3QgIA0KPGJyPjIwMzM5OiBIaXR0aW5nIHNwYWNlYmFyIGRvZXMgbm90IHByZXNzIGN1cnJlbnRseSBmb2N1c2VkIGJ1dHRvbiAgDQo8YnI+MjA1ODM6IFNlZ2ZhdWx0IHdoZW4gY29udHJvbCB0cmllcyB0byBkaXNwb3NlIG9mIGl0c2VsZiB1bmRlciBNb3RpZiAgDQo8YnI+MjA2ODM6IFtFeHRlcm5hbFRvb2xzXSAgRjMgKGFuZCBGMikgY3Jhc2hlcyB0aGUgSlZNIHdoZW4gdHJ5aW5nIHRvIGNhbmNlbCBhbiBleHRlcm5hbCB0b29sIG9uIGxpbnV4LWd0aw0KPGJyPjIwNjkwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIHNob3VsZCBmb3JjZSBmb250IHNjcmlwdCB3aGVuIGtleWJvYXJkIGxhbmd1YWdlIGNoYW5nZWQNCjxicj4yMDcwNTogQ3Vyc29yIEtleXMgZG9uJ3Qgd29yayBpbiBEaWFsb2dzICANCjxicj4yMDcyMjogR1RLIFRhYmxlQ29sdW1uI3BhY2sgZG9lcyBub3Qgd29yayBpZiBubyBoZWFkZXIgIA0KPGJyPjIwNzg4OiBBIGNvbXBvc2l0ZSBpcyBiZWluZyBteXN0ZXJpb3VzbHkgZGlzcG9zZWQgZm9yIG5vIHJlYXNvbiAgDQo8YnI+MjA4NDY6IFdJTjMyOiAnQ29tYm8uaW5kZXhPZicgYWx3YXlzIHJldHVybnMgLTEgZm9yIGVtcHR5IHN0cmluZyAgDQo8YnI+MjA4OTM6IEJhZCBzaXplIGZvciBUZXh0IHdpZGdldCB3aGVuIGZsYWcgUkVBRF9PTkxZIGlzIHNldCAoUGhvdG9uKSAgDQo8YnI+MjA5MDQ6IFNXVCBleGNlcHRpb24gb24gTGF5b3V0RXhhbXBsZSAoUGhvdG9uKSAgDQo8YnI+MjA5NTA6IEdUSzogRjEgaGVscCBkb2VzIG5vdCB3b3JrIGZvciBtZW51IGl0ZW1zLiAgDQo8YnI+MjA5NTY6IEVtdWxhdGVkIENvb2xJdGVtIGRvIG5vdCByZXNwZWN0IFNXVC5EUk9QX0RPV04gZmxhZyAgDQo8YnI+MjEwMzA6IFN0eWxlZFRleHQgLSBkdXJpbmcgY3V0IGlmIGNsaXBib2FyZCBjb3B5IGZhaWxzIGRvIG5vdCBkZWxldGUgdGV4dA0KPGJyPjIxMDk2OiBQcm9wZXJ0aWVzIGFjY2VsZXJhdG9yIG1pc3NpbmcgRU5URVIgIA0KPGJyPjIxMTIyOiBFbWFjczogQWNjZWxlcmF0b3JzIG5vdCBzaG93biBpbiBtZW51cyB1bmRlciBHVEsgIA0KPGJyPjIxMTU0OiBTdHlsZWRUZXh0IC0gQklESSAtIEJhZCBlZmZlY3Qgb2YgUkxPIHVuaWNvZGUgY2hhcmFjdGVyICANCjxicj4yMTE5MjogVW5zYXRpc2ZpZWRMaW5rRXJyb3IgdGhyb3duIHdoZW4gcHJlc3NpbmcgYSBoYXJkd2FyZSBrZXkgIA0KPGJyPjIxMjE1OiBbSGVscF0gRjEgSGVscCBkb2VzIG5vdCBjbG9zZSBtZW51IG9uIEdUSyAgDQo8YnI+MjEyMjM6IFN0eWxlZFRleHQgLSBDdXJzb3Igc2hvdWxkIHN0b3AgYmxpbmtpbmcgd2hlbiBtb3ZpbmcgIA0KPGJyPjIxMjY4OiBTdHlsZWRUZXh0IC0gQ3RybCtTaGlmdCtKIGluc2VydHMgbGluZSAgDQo8YnI+MjEzNjg6IEdUSzogR0MuZHJhd0ltYWdlKCkgZmFpbHMgd2hlbiBzY2FsaW5nIGFuIGltYWdlICANCjxicj4yMTM3MTogU1dURXJyb3Igd2hpbGUgdXNpbmcgTmF2aWdhdG9yLT5Hb3RvLT5SZXNvdXJjZSAgDQo8YnI+MjEzNzg6IEdUSzogU2hlbGwgZXZlbnQncyBkb2l0IGZsYWcgaWdub3JlZCB3aGVuIHNoZWxsQ2xvc2VkKCkgaXMgY2FsbGVkDQo8YnI+MjE0MTI6IFBhc3RlIHdpdGggYWNjZWxhdG9yIGtleSBkb2Vzbid0IHdvcmsgIA0KPGJyPjIxNDEzOiBDb29sQmFyIGNvbXB1dGVTaXplIGZhaWxzIG9uIFhQICANCjxicj4yMTQxNTogSmF2YWRvYyBmb3IgQ0xhYmVsLnNldEJhY2tncm91bmQgaGFzIHR5cG9zICANCjxicj4yMTQ0MDogVW5hYmxlIHRvIGRpc3BsYXkgVG9kYXkgc2NyZWVuIHdoZW4gU1dUIGFwcCBydW5uaW5nIG9uIFdpbkNFICANCjxicj4yMTQ0OTogR1RLOiBDYWxsaW5nIFRleHQuc2V0U2VsZWN0aW9uKCkgY2F1c2VzIEdQRiAgDQo8YnI+MjE0NTY6IEdUSzogQ2Fubm90IHR5cGUgaW4gVGV4dCB3aWRnZXQgY29udGFpbmVkIGluIFNoZWxsIHdoaWNoIGhhcyBzdHlsZSBiaXQgYXMgTk9fVFJJTQ0KPGJyPjIxNDg0OiBTaGlmdC1UYWIgZG9lcyBub3RoaW5nIG9uIEdUSyAgDQo8YnI+MjE1MjM6IFN0eWxlZFRleHQgLSBjYXJldCBkb2VzIG5vdCBtb3ZlIHdoZW4gd2lkZ2V0IHNoZWxsIGlzIG5vdCBvcGVuDQo8YnI+MjE1MjQ6IFN0eWxlZFRleHQgLSBOUEUgd2hlbiB0eXBpbmcgdGV4dCBhbmQgY2FyZXQgaXMgbnVsbCAgDQo8YnI+MjE1OTY6IFN0eWxlZFRleHQgLSBpbml0aWFsIGJpZGkgY2FyZXQgcG9zaXRpb24gd3Jvbmcgd2hlbiB3aWRnZXQgZW1wdHkNCjxicj4yMTU5ODogU3R5bGVkVGV4dCAtIHNldEZvbnQgZW5hYmxlcyBjYXJldCB3aGVuIGl0IHdhcyBkaXNhYmxlZCAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDlkIC0gTW9uZGF5IEF1Z3VzdCAyNiwgMjAwMiAoMi4wLjEgc3RyZWFtKQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoyMjcyOTogUGVybWlzc2lvbnMucHJvcGVydGllcyBtaXNzaW5nIGZyb20gdGhlIGJ1aWxkIHNjcmlwdA0KPGJyPjIyNzc5OiBFY2xpcHNlIGxpbnV4LW1vdGlmIEdQRnMgb24gZXhpdCBvbiBKOQ0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQ5YiAtIFdlZG5lc2RheSBBdWd1c3QgMjEsIDIwMDIgKDIuMC4xIHN0cmVhbSkNCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMjI0NDg6IENvb2xCYXIgLSBkZWxldGluZyBmaXJzdCBpdGVtIGluIHJvdyBkb2VzIHVubmVjZXNzYXJ5IGNvbGxhcHNlL2V4cGFuZCBvZiByb3cNCjxicj4yMjU2MTogSG92ZXIgSGVscCBicm9rZW4gaW4gMi4wLjEgSTIwMDIwODE1DQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDkgLSBXZWRuZXNkYXkgQXVndXN0IDE0LCAyMDAyICgyLjAuMSBzdHJlYW0pDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjIyMDU1OiBDb29sQmFyIC0gc2V0V3JhcEluZGljZXMgY2F1c2VzIHJvd3MgdG8gY29sbGFwc2UvZXhwYW5kIHVubmVjZXNzYXJpbHkNCjxicj4yMjE0NDogQ29vbGJhciAtIHNldFNpemUgbm90IGJlaW5nIGhvbm9yZWQgYWZ0ZXIgc2V0V3JhcEluZGljZXMgQVBJIHVzZWQNCjxicj4yMjMyMDogQ29vbGJhciAtIGRlbGV0ZSBpdGVtIGJlaGF2aW9yIHByb2JsZW0NCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0OCAtIFR1ZXNkYXkgQXVndXN0IDYsIDIwMDIgKDIuMC4xIHN0cmVhbSkNCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMTU1NTk6IEpBV1MgcmVhZHMgdGhlIHBhcmVudCB3aW5kb3cgZm9yIGRpYWxvZyBzaGVsbHMNCjxicj4xODI1MzogQ29vbGJhciAtIGRpc3Bvc2luZyBpdGVtcyBub3QgaG9ub3Jpbmcgc2V0UmVkcmF3ID0gZmFsc2UNCjxicj4xOTk2NDogQ29vbGJhciAtIGNhbiAibG9zZSIgaXRlbXMgd2hlbiBwbGF0Zm9ybSB3aWRnZXQgd3JhcHMgIA0KPGJyPjIxMjY4OiBTdHlsZWRUZXh0IC0gQ3RybCtTaGlmdCtKIGluc2VydHMgbGluZQ0KPGJyPjIxODM0OiBDb29sYmFyIC0gZGVsZXRpbmcgaXRlbXMgY29ycnVwdGluZyBsYXlvdXQNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0NyAtIE1vbmRheSBKdW5lIDE3LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ3NzI6IEphdmFkb2M6IEdyYXBoaWNzIGNvbnN0cnVjdG9ycyBuZWVkIHRvIGRvYyBpZiBkZXZpY2UgbnVsbCAoMUdIU1BVVykNCjxicj4xNDE0NDogU2Nyb2xsQmFycyBjYW4ndCBiZSBtYWRlIGludmlzaWJsZSBvbiBQb2NrZXRQQyAgDQo8YnI+MjAyNjU6IEYzLiB0ZXN0IEMzLiBObyBuZXcgdXBkYXRlcyBmb3IgRWNsaXBzZSBvbiBIUC4gIA0KPGJyPjIwMzYyOiBDb29sYmFyIGNhbm5vdCBiZSB0cmF2ZXJzZWQgdG8gIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQ2IC0gRnJpZGF5IEp1bmUgMTQsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMTY4MDk6IENsaWNraW5nIHRvIGNsb3NlIG5vbi1hY3RpdmUgZWRpdG9yIGRvZXNuJ3QgaGF2ZSBhbiBhZmZlY3QgIA0KPGJyPjE2OTM5OiBEbkQ6IE1vdmluZyB0aGUgbW91c2Ugd2hpbGUgZHJvcHBpbmcgYmVoYXZlcyBzdHJhbmdlbHkgd2hpbGUgZHJhZ2dpbmcgdmlld3MNCjxicj4xNzE5MDogTm8gY2VsbCBlZGl0b3Igc3VwcG9ydCAgDQo8YnI+MTc1NjM6IEZsYXQgdG9vbCBiYXIgYnV0dG9ucyAgDQo8YnI+MTc2MjE6IFJlc291cmNlIFBhdGNoZXIgd2l6YXJkIC0gd2lkZ2V0cyBub3QgcHJvcGVybHkgYWxpZ25lZCAgDQo8YnI+MTkwODk6IE5vIHBvcHVwIG1lbnUgamF2YSBlZGl0b3IgcnVsZXIgKFBob3RvbikgIA0KPGJyPjE5MjQzOiBFY2xpcHNlIGxhdW5jaGVycyBoYXZlIGhhcmRjb2RlZCBqOSBhcmdzICANCjxicj4xOTI0NDogU3BhY2luZyBiZXR3ZWVuIFRhYmxlIHJvd3MgZ3Jvd3Mgd2l0aCBudW1iZXIgb2Ygcm93cyAgDQo8YnI+MjAwMDY6IFggUG9pbnRlciBncmFiIG5vdCByZWxlYXNlZCAgDQo8YnI+MjAwNDQ6IFVuYWJsZSB0byBzY3JvbGwgbGljZW5zZSB0ZXh0IHVzaW5nIGtleWJvYXJkICANCjxicj4yMDA3MjogV29ya2JlbmNoIGJvdW5jZXMgd2hlbiBzd3RpY2hpbmcgcGVyc3BlY3RpdmVzICANCjxicj4yMDEzNDogRWNsaXBzZSBDTE9TRVMgYXV0b21hdGljYWxseSwgd2hlbiBpJ20gd29ya2luZyBpbiBpdCAgDQo8YnI+MjAxODQ6IENvbG9yIGphdmFkb2MgY291bGQgdXNlIHJlZmVyZW5jZSB0byBEZXZpY2UuZ2V0U3lzdGVtQ29sb3IoKSAgDQo8YnI+MjAyMDk6IEhhbmcgZHVlIHRvIE9TIGxvY2tpbmcgIA0KPGJyPjIwMzU0OiBHUCB3aGVuIGF0dGVtcHQgdG8gY2hlY2sgb3V0IFNXVCBmcm9tIHJlcG9zaXRvcnkgIA0KPGJyPjIwMzcyOiBUcmFja2VyIG5lZWRzIG1vcmUgamF2YWRvYyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDYgLSBUdWVzZGF5IEp1bmUgMTEsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMTY4MDk6IENsaWNraW5nIHRvIGNsb3NlIG5vbi1hY3RpdmUgZWRpdG9yIGRvZXNuJ3QgaGF2ZSBhbiBhZmZlY3QgIA0KPGJyPjE2OTM5OiBEbkQ6IE1vdmluZyB0aGUgbW91c2Ugd2hpbGUgZHJvcHBpbmcgYmVoYXZlcyBzdHJhbmdlbHkgd2hpbGUgZHJhZ2dpbmcgdmlld3MNCjxicj4xNzE5MDogTm8gY2VsbCBlZGl0b3Igc3VwcG9ydCAgDQo8YnI+MTc1NjM6IEZsYXQgdG9vbCBiYXIgYnV0dG9ucyAgDQo8YnI+MTc2MjE6IFJlc291cmNlIFBhdGNoZXIgd2l6YXJkIC0gd2lkZ2V0cyBub3QgcHJvcGVybHkgYWxpZ25lZCAgDQo8YnI+MTkwODk6IE5vIHBvcHVwIG1lbnUgamF2YSBlZGl0b3IgcnVsZXIgKFBob3RvbikgIA0KPGJyPjE5MjQzOiBFY2xpcHNlIGxhdW5jaGVycyBoYXZlIGhhcmRjb2RlZCBqOSBhcmdzICANCjxicj4xOTI0NDogU3BhY2luZyBiZXR3ZWVuIFRhYmxlIHJvd3MgZ3Jvd3Mgd2l0aCBudW1iZXIgb2Ygcm93cyAgDQo8YnI+MjAwMDY6IFggUG9pbnRlciBncmFiIG5vdCByZWxlYXNlZCAgDQo8YnI+MjAwNDQ6IFVuYWJsZSB0byBzY3JvbGwgbGljZW5zZSB0ZXh0IHVzaW5nIGtleWJvYXJkICANCjxicj4yMDA3MjogV29ya2JlbmNoIGJvdW5jZXMgd2hlbiBzd3RpY2hpbmcgcGVyc3BlY3RpdmVzICANCjxicj4yMDEzNDogRWNsaXBzZSBDTE9TRVMgYXV0b21hdGljYWxseSwgd2hlbiBpJ20gd29ya2luZyBpbiBpdCAgDQo8YnI+MjAxODQ6IENvbG9yIGphdmFkb2MgY291bGQgdXNlIHJlZmVyZW5jZSB0byBEZXZpY2UuZ2V0U3lzdGVtQ29sb3IoKSAgDQo8YnI+MjAyMDk6IEhhbmcgZHVlIHRvIE9TIGxvY2tpbmcgIA0KPGJyPjIwMzU0OiBHUCB3aGVuIGF0dGVtcHQgdG8gY2hlY2sgb3V0IFNXVCBmcm9tIHJlcG9zaXRvcnkgIA0KPGJyPjIwMzcyOiBUcmFja2VyIG5lZWRzIG1vcmUgamF2YWRvYyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDUgLSBUdWVzZGF5IEp1bmUgMTEsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMTUyNDI6IENvb2xCYXIgLSBsYXlvdXQgaXNzdWVzICANCjxicj4xODUxNzogQ29vbGJhciAtIGRlbGV0ZSBhbmQgcm93IGxheW91dCBidWcgIA0KPGJyPjE5MDkwOiBDb21ibyBkb2Vzbid0IHNpemUgaXRzZWxmIHByb3Blcmx5IGluIEdUSzIgIA0KPGJyPjE5NjcwOiBSZWdyZXNzaW9uIGluIE9MRSBzdXBwb3J0ICANCjxicj4xOTY3MTogVW5hYmxlIHRvIGV4cGFuZC9jb2xsYXBzZSB0cmVlcyBpbiBwcm9wZXJ0aWVzIHZpZXcgIA0KPGJyPjE5NzIwOiBDb29sYmFyIC0gZ2V0UHJlZmVycmVkU2l6ZSBwcm9ibGVtICh3YXMgZ2V0Q2xpZW50QXJlYSBwcm9ibGVtKQ0KPGJyPjE5Nzg3OiBIb3ZlciBoZWxwIGlzIG5vdCByZW1vdmVkICANCjxicj4xOTk0NzogR1RLMiBzZW5kcyBrZXkgZXZlbnRzIHdpdGggYm90aCBrZXlDb2RlIGFuZCBjaGFyYWN0ZXIgZXF1YWxzIHRvIDAgZm9yIHNvbWUga2V5cw0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQ0IC0gTW9uZGF5IEp1bmUgMTAsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDgwNzogVGV4dC5zZXRFY2hvQ2hhciBzcGVjIHNob3VsZCBzYXkgMCA8PSBjaGFyIDwgMTI4ICgxR0o2Q0RNKSAgDQo8YnI+NDgzNzogSmF2YWRvYzogQ3Vyc29yIGNvbnN0cnVjdG9yIEVSUk9SX05PX0hBTkRMRVMgaXMgbm90IHNwZWMnZWQgKDFHS0E3UTkpDQo8YnI+NTU3NzogVGV4dCBqYXZhZG9jICANCjxicj43NTI2OiBObyBzcGVjIGZvciBEaXNwbGF5LnVwZGF0ZSgpICANCjxicj44NTEzOiBKYXZhRG9jIGZvciBNZW51LmFkZE1lbnVMaXN0ZW5lciBpbmNvcnJlY3QgIA0KPGJyPjEyODIwOiBGaW5pc2hpbmcgcHJldmlldyBvZiB0aGUgcmVmYWN0b3JpbmcgY29kZSBjcmFzaGVzIEVjbGlwc2UgIA0KPGJyPjE0NDYzOiBHUCBvcGVuaW5nIHR3byBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lICANCjxicj4xNTQ2MDogQ29vbEJhciBkb2MgdW5jbGVhci9pbnN1ZmZpY2llbnQgIA0KPGJyPjE1OTM5OiBLZXlFdmVudCBjaGFyYWN0ZXIgaXMgbm90IGNvbnNpc3RlbnQgYmV0d2VlbiBMaW51eCBhbmQgV2luZG93cw0KPGJyPjE2ODEwOiBNb3VzZSBwb2ludGVyIG5vdCB1cGRhdGUgIA0KPGJyPjE2ODM3OiBLZXlzIGNvbXBsZXRlbHkgbG9zdCAgDQo8YnI+MTY4ODM6IFZhcmlhYmxlIHNvcnRpbmcgY2hhbmdlcyB1bmV4cGVjdGVkbHkgIA0KPGJyPjE2ODk1OiBJbi1wbGFjZSB0ZXh0IGZpZWxkcyBhcmUgdW51c2FibGUgIA0KPGJyPjE3MDM2OiBEaXNwb3NpbmcgYSBDb29sSXRlbSBpcyB0cmlnZ2VyaW5nIGFuIGFjdGl2YXRpb24gY2FsbGJhY2suICANCjxicj4xNzE0NjogRWRpdG9yIFByZWZlcmVuY2UgcGFnZSBidXR0b20gbGlzdCBjbGlwcGVkICANCjxicj4xNzE1NDogVmlldyBwYXJ0IGxvc2VzIGZvY3VzIHdoZW4gb3BlbmluZyBjb250ZXh0IG1lbnUgIA0KPGJyPjE3Mjg5OiBDb21ibyBkb2Vzbid0IHRha2UgZm9jdXMgYnkgY2xpY2tpbmcgb24gaXQgKFBob3RvbikgIA0KPGJyPjE3MjkwOiBNb2RpZnkgTWV0aG9kIFBhcmFtZXRlcnM6IHdyb25nIGVuYWJsZW1lbnQgb2YgYnV0dG9ucyAgDQo8YnI+MTc1MDc6IEFJWCBGaWxlRGlhbG9nIGlzIG5vdCByZXNwb25zaXZlIGluIHN0YW5kLWFsb25lIGV4YW1wbGUgIA0KPGJyPjE3NjEzOiBBZGQgZnJvbSBsb2NhbCBoaXN0b3J5IHNob3dzIG5vdGhpbmcgaW4gcmlnaHQgYW5kIGxvd2VyIHBhbmUNCjxicj4xNzY3MDogQ2Fubm90IG1vdmUgdGhyb3VnaCBQbHVnLWluIENvZGUgR2VuZXJhdGlvbiBwYWdlIGxpc3Qgd2l0aCBhcnJvdyBrZXlzDQo8YnI+MTc2OTI6IElBRSB3aGVuIGRlbGV0aW5nIGxpbmUgaW4gSmF2YSBFZGl0b3IgIA0KPGJyPjE3NzUyOiBDYW5ub3Qgc2VsZWN0IGEgbm9uLWJvbGQgZm9udCAgDQo8YnI+MTc3ODg6IFNjYWxlIHdpdGggcHJlZmVycmVkIHNpemUgaXMgdW51c2FibGUgKG5vIHJhbmdlIG9mIG1vdGlvbikgIA0KPGJyPjE3ODQ4OiBGMSBidWlsZCwgSlZNIHRlcm1pbmF0ZWQgRXhpdCBjb2RlIDEzOSAgDQo8YnI+MTc5MzY6IEVjbGlwc2UgbGF1bmNoZXIgbXVzdCBsYXVuY2ggaGVhZGxlc3MgaW4gaGVhZGxlc3MgZW52aXJvbm1lbnRzDQo8YnI+MTg0Mzk6IEN0cmwrRjYgZWRpdG9yIHN3aXRjaGluZyBpcyB1bnVzYWJsZSAgDQo8YnI+MTg1MDg6IEphdmFjb3JlZHVtcCB3aGVuIG9wZW5pbmcgdmVydGljYWwgcnVsZXIgY29udGV4dCBtZW51ICANCjxicj4xODUyMTogQ29vbGJhciBsYXlvdXQgYW5kIGNoZXZyb24gYnVnICANCjxicj4xODU0MzogQW4gaW52aXNpYmxlIGNoYXJhY3RlciBpcyBhZGRlZCB3aGVuIHRoZSAnV2luZG93cycga2V5IGlzIHByZXNzZWQNCjxicj4xODYyNTogVGFiYmluZyBpbiBKYXZhIGVkaXRvciB0YWtlcyBjdXJzb3IgIA0KPGJyPjE4NjI5OiBHVEs6IFVuYWJsZSB0byBzZWxlY3QgZGlhbG9nIGJ1dHRvbnMgd2l0aCBtb3VzZSAgDQo8YnI+MTg2NDU6IFJlbGVhc2UgU1dUIHNvdXJjZXMgJiBqYXZhZG9jIGluIGZ1dHVyZSBidWlsZHMgIA0KPGJyPjE4NzMzOiBDb250cm9sRXhhbXBsZTogTGlzdCB3aWRnZXQgbm90IGJlaW5nIHJlc2l6ZWQgcHJvcGVybHkgIA0KPGJyPjE4ODA0OiBHUEYgc2V0dGluZyBpbWFnZSB0byBtZW51IGl0ZW0gKFBob3RvbikgIA0KPGJyPjE4ODM4OiBMYXVuY2ggQ29uZmlndXJhdGlvbnMgZGlhbG9nIGNyZWVwcyB1cCAgDQo8YnI+MTg4NDE6IFF1ZXN0aW9uOiBXaGF0IGRvZXMgLURNQkNTIGRvPyAgDQo8YnI+MTg5MzA6IFdyb25nIGNvbnRlbnQgZGlzcGxheWVkIGluIHRhYnMgaW4gdGhlIExhdW5jaCBDb25maWd1cmF0aW9uIERpYWxvZw0KPGJyPjE4OTM0OiBTY3JvbGxiYXJzIHNob3VsZCBiZSBkaXNhYmxlZCBpbiBJbWFnZUFuYWx5emVyIGV4YW1wbGUgIA0KPGJyPjE5MDU3OiBQcm9ibGVtIHNhdmluZyBqYXZhIGZpbGUgdGhyb3VnaCBwb3B1cCBtZW51ICANCjxicj4xOTExNjogTWlzc2luZyBhYm91dC5odG1sIGluIHNvdXJjZSBkaXJlY3RvcnkgZm9yIGV4YW1wbGVzICANCjxicj4xOTE2OTogTlBFIG9uIEVtdWxhdGVkIENvb2xJdGVtIGNvbnN0cnVjdG9yICANCjxicj4xOTM0NTogVGFzayBWaWV3OiBOb3QgY2xlYXJpbmcgcHJpb3JpdHkgaWNvbnMgIA0KPGJyPjE5Mzk0OiBGYWxzZSAidW5zYXZlZCBjaGFuZ2VzIiBub3RpZmljYXRpb24gZnJvbSBsYXVuY2ggY29uZmlncyAgDQo8YnI+MTk1MDM6IFdpZGdldCBpbiBvdXRsaW5lciBnZXRzIHdyYXBwZWQvY3JvcHBlZCAgDQo8YnI+MTk1OTU6IFN0eWxlZFRleHQgLSByZWRyYXdSYW5nZSBub3QgY2xlYXJpbmcgcHJvcGVybHkgd2hlbiBjbGVhciBmbGFnIHNldA0KPGJyPjE5NjYwOiBQcmVmZXJlbmNlIHBhZ2UgZG9lcyBub3QgZXhwYW5kIHRvIGZpdCBhbGwgd2lkZ2V0cyAgDQo8YnI+MTk3Njk6IEludGVybmV0IEV4cGxvcmVyIGFuZCBIZWxwLCBFWENFUFRJT05fQUNDRVNTX1ZJT0xBVElPTiAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDMgLSBGcmlkYXkgTWF5IDMxLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ2OTI6IEVtcHR5IHBvcHVwIG1lbnUgYXBwZWFycyBpbiBPdXRsaW5lIHZpZXcgKDFHRVQxQjEpICANCjxicj44ODIxOiBPcGVuaW5nIGVkaXRvcnMgaGFzIGJlY29tZSB2ZXJ5IHNsb3cgIA0KPGJyPjE1NTY1OiBDb29sYmFyIC0gbWluaW11bVdpZHRoIG5vdCBob25vcmVkIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucyAgDQo8YnI+MTY2ODg6IFNlbGVjdGlvbiBiYWNrZ3JvdW5kIG9uIGVtdWxhdGVkIHdpZGdldHMgaXMgd3JvbmcgIA0KPGJyPjE3MTUwOiBTdHJhbmdlIHNlbGVjdGlvbiBiZWhhdmlvdXIgaW4gSmF2YSBCcm93c2luZyBQZXJzcGVjdGl2ZSAgDQo8YnI+MTcxNTY6IERlbGV0ZSBrZXkgbm90IHdvcmtpbmcgaW4gcGFja2FnZSB2aWV3ICANCjxicj4xNzIyODogV2VpcmQgVHJlZSBzZWxlY3Rpb24gYmVoYXZpb3VyICANCjxicj4xNzM1NDogRG91YmxlIGNsaWNraW5nIGV4cGFuZHMgYW5kIGNvbGxhcHNlcyBpdGVtICANCjxicj4xNzM2MzogVGVzdCBBNC40IGNhbm5vdCBlZGl0IGFjdGlvbiBzZXQgaWQgaW4gcHJvcGVydGllcyB2aWV3ICANCjxicj4xNzY4MDogT3V0bGluZSBkb2Vzbid0IGV4cGFuZCB3aGVuIGFkZGluZyBuZXcgbWV0aG9kICANCjxicj4xNzgyNTogQ29udHJvbEV4YW1wbGUtPlRleHQgYmVlcHMgd2hlbiBJIGNob29zZSBTV1QuTVVMVEkgIA0KPGJyPjE3ODMxOiBDb29sYmFyIC0gY2hldnJvbiBub3QgYWx3YXlzIGRpc3BsYXllZCB3aGVuIGl0IHNob3VsZCBiZSAgDQo8YnI+MTgxNjA6ICJTaG93IGluIHBhY2thZ2VzIHZpZXciIGRvZXNuJ3Qgc2Nyb2xsIHRvIHNlbGVjdGlvbiAgDQo8YnI+MTgyMjk6IFdhbGtiYWNrIHdoZW4gY2xvc2luZyBJbWFnZUFuYWx5emVyICANCjxicj4xODM2ODogR2V0IHJpZCBvZiBhbGwgZnJhZ21lbnQucHJvcGVydGllcyAgDQo8YnI+MTgzNzY6IE5vIGV4ZWN1dGUgcGVybWlzc2lvbnMgb2YgbGlicmFyaWVzICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0MiAtIFRodXJzZGF5IE1heSAzMCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NTMzOiBDaGVlc2Ugd2hlbiByZXNpemluZyB0b29sYmFyICgxRldMOTQzKSAgDQo8YnI+NDg0MTogU1dUIHNhbXBsZSBpbWFnZXZpZXdlciBub3RoaW5nIGRpc3BsYXkgYXQgcGl4ZWwgZGF0YSBhcmVhICgxR0tFT1VFKQ0KPGJyPjY3MzU6IEFXVC9TV1QgLSBTd2luZyAvIFN3dCBpbnRlZ3JhdGlvbiA6IEpDb21ib0JveCBkb2Vzbid0IHNob3cgY29ycmVjdGx5DQo8YnI+MTA5NzI6IENvcmUgZHVtcCBkcmFnIGFuZCBkcm9wcHBpbmcgZnJvbSBpbmxpbmUgdGV4dCAgDQo8YnI+MTI0OTg6IFVuYWJsZSB0byBhZGQgRXh0ZXJuYWwgSmFyIHVzaW5nIHRoZSBKYXZhIFByb2plY3QgV2l6YXJkICANCjxicj4xNjE3NDogV3JvbmcgcG9wdXAgbWVudSAgDQo8YnI+MTY1NTM6IFNXVF9BV1QubmV3X1BhbmVsIGRvZXMgbm90IHdvcmsgIA0KPGJyPjE2NzkxOiBDYW4ndCBzZWxlY3QgY2hlY2sgYm94ZXMgIA0KPGJyPjE3MTk5OiBUYWJsZSB3aWRnZXQgLSBvbmx5IGxhc3QgY29sdW1uIGhlYWRlciBpcyBjbGlja2FibGUgIA0KPGJyPjE3Mzc1OiBDaGVlc2Ugb24gSmF2YSBTY3JhcGJvb2sgcGFnZSBydWxlciAgDQo8YnI+MTczOTA6IEpVbml0IHRlc3RjYXNlcyByZXN1bHQgZm9yIEdyYXBoaWNzICgxIGVycm9yLCAyIGZhaWx1cmVzKSAgDQo8YnI+MTc1NjU6IEFkZCBKUkUgdmFsaWRhdGlvbiBub3Qgd29ya2luZyAgDQo8YnI+MTc1Njg6IEVycm9yIGRvZXNuJ3QgZGlzYXBlYXIgd2hlbiBzd2l0Y2hpbmcgdG8gc291cmNlIGZvbGRlciBsYXlvdXQNCjxicj4xNzU3NDogU3RhdHVzIGxpbmUgY29udHJpYnV0aW9ucyBhcHBlYXIgdHdpY2UgIA0KPGJyPjE3NjM3OiBSZXNpemUgcHJvYmxlbSB3aGVuIGRpYWJsZWluZyBvdmVydmlldyBydWxlciBpbiBFZGl0b3IgIA0KPGJyPjE3NjYyOiBJbmNvcnJlY3Qgc3RhdHVzIGRpc3BsYXkgaW4gbmV3IEZlYXR1cmUgV2l6YXJkICANCjxicj4xNzkxNzogU2hpZnQtVGFiIGRvZXMgbm90IHdvcmsgIA0KPGJyPjE4MjIzOiBUZXh0IHdpZGdldCB3aXRoIFNXVC5NVUxUSSBoYXMgc3RyYW5nZSBiZWhhdmlvciBvbiBHVEsgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQxIC0gVHVlc2RheSBNYXkgMjgsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDM5ODogVmlzdWFsIENvb3JkaW5hdGlvbjogQm9yZGVycyAoMUZTR09ORykgIA0KPGJyPjQ0MTE6IERDUiAtIFN1cHBvcnQgcHJpbnRpbmcgKDFQUThRQ0spICANCjxicj40NDI2OiBTY3JvbGxCYXIgLSBDYW4ndCBxdWVyeSBzaXplICgxRkRWUDIzKSAgDQo8YnI+NDQzMTogRm9sZGVyIHRhYiBkb2VzIG5vdCBnZXQgZm9jdXMgKDFGSUdJOTUpICANCjxicj40NDM3OiBUcmVlIEtleWJvYXJkIFN1cHBvcnQgKDFGT0xaUFQpICANCjxicj40NDUyOiBNZW51SXRlbTogc2V0SW1hZ2UgZG9lcyBub3Qgc2hvdyBpbWFnZSBvbiBtZW51ICgxRkdOUDhVKSAgDQo8YnI+NDQ2OTogSW5jb25zaXN0ZW5jaWVzIGJldHdlZW4gc2luZ2xlIGxpbmUgVGV4dCBhbmQgUmljaFRleHQgd2lkZ2V0cyAoMUZLMVJSTSkNCjxicj40NDc0OiBOb3Qgc3VwcG9ydHRpbmcgV2luZG93cyBBY2Nlc3NpYmlsaXR5IFN0YW5kYXJkPyAoMUZNMElGUykgIA0KPGJyPjQ0OTA6IEZvbnRzIGluIGV4YW1wbGVzIGFwcGVhciB0b28gYmlnICgxRk9NQ1dRKSAgDQo8YnI+NDQ5NjogRENSIC0gQ29udG91ciBtb3VzZSBtaWRkbGUgYnV0dG9uIGRvZXNuJ3Qgd29yayAoMUZSRUFTNCkgIA0KPGJyPjQ1MDM6IEZvbnREaWFsb2cgaXMgbWlzc2luZyBmb250cyAoMUZTTVJWMCkgIA0KPGJyPjQ1MjY6IFNldmVyZSAtIERlbGV0ZSBrZXkgaXMgbm90IHJlZGlyZWN0ZWQgdG8gZWRpdG9yICgxRlZYRFNUKSAgDQo8YnI+NDUyOTogQ2xvc2luZyBleHRlcm5hbCBNUyBXb3JkIG1ha2VzIGluLXBsYWNlIE1TIFdvcmQgZGlzYXBwZWFyICgxRldHOUFSKQ0KPGJyPjQ1MzQ6IEZsYXNoaW5nIHdoZW4gY29tcHV0ZVNpemUgY2FsbGVkIG9uIFRvb2xiYXIgKDFGV0xEMUUpICANCjxicj40NTQ1OiBObyBPUy5HZXRLZXlTdGF0ZSBmdW5jdGlvbiBvbiBtb3RpZiAoMUZaUU9aTSkgIA0KPGJyPjQ1NTA6IEpVbml0IHRlc3RzIGFzc3VtZXMgYm91bmRhcnkgY29uZGl0aW9uIHdoaWNoIGlzIHNldHRpbmcgZGVwZW5kYW50ICgxRzBMUUtEKQ0KPGJyPjQ1NTI6IEFkb2JlIGRvZXNuJ3QgbGlrZSBJbWFnZURhdGEuLi4gKDFHMFpCRTApICANCjxicj40NTYzOiBOZWVkIHN1cHBvcnQgZm9yICoueHBtIGFuZCAqLnBuZyBpbWFnZSBmaWxlIGZvcm1hdHMgKDFHM0hXU0EpDQo8YnI+NDYzNjogVG9vbHRpcHMgbm90IHdvcmtpbmcgb24gTGludXggKDFHQ040RkspICANCjxicj40NjcyOiBEQ1IgLSBJbmNsdWRlICJiZWdpbmluZyAvIGVuZCAiIGFycm93cyB0byBzZWxlY3QgZmlsZXMgKDFHRUZZQ0cpDQo8YnI+NDY3OTogQ29sb3VyIGdyYWRpZW50IG9mIHZpZXdzIGlzIG5vdCBncmFkdWFsICgxNmJpdCBjb2xvciBkZXB0aCkgKDFHRUxXU08pDQo8YnI+NDY5OTogRENSIC0gb3V0c3RhbmRpbmcgaXNzdWUgZm9yIGN1c3RvbWVyLSBDaGFuZ2luZyBjdXJzb3IgZHVyaW5nIGRyYWcgb3BlcmF0aW9uICgxR0VUQzhVKQ0KPGJyPjQ3MDM6IFdpbk1FIC0gRGlzYWJsZWQgaWNvbnMgaW4gdGFiYmVkIGZvbGRlciBkbyBub3QgZGlzcGxheSBwcm9wZXJseS4gKDFHRVdYTEkpDQo8YnI+NDcwNjogU3RhY2tPdmVyZmxvdyByZXNpemluZyBXb3JrYmVuY2ggd2luZG93ICgxR0VXTFNVKSAgDQo8YnI+NDcwODogRkFUQUwgWCBlcnJvciAoMUdGMDdITikgIA0KPGJyPjQ3MDk6IEdQIHJ1bm5pbmcgKCBFY2xpcHNlIF4gMiApICgxR0VaOVVSKSAgDQo8YnI+NDcxMTogTmF2aWdhdG9yIG1lc3NlZCB1cCB3aGVuIG1pZGkody9EQkNTKSBpbiBpdCAtQ2FuJ3QgY3JlYXRlIHZpZXcgKDFHRVpOVkMpDQo8YnI+NDcyODogV2luZG93cyB3aXRoIHRhYiBwYWdlcyBzaG91bGQgYWxsb3cgQ3RybC1UYWIgc3dpdGNoaW5nICgxR0ZJVUc1KQ0KPGJyPjQ3ODU6IERDUiAtIEN1c3RvbSBub3RlYm9vayBzY3JvbGxpbmcgbm90IG9wdGltYWwgKDFHSTk3VlopICANCjxicj40ODM5OiBUYWJGb2xkZXIgbW5lbW9uaWMgcHJvYmxlbSAoMUdLQVBLSykgIA0KPGJyPjQ4NDA6IEhlYnJldzogY2Fubm90IHBhc3RlIGZyb20gZXh0ZXJuYWwgZmlsZSBpbnRvIGphdmEgZWRpdG9yICgxR0tDV1ZYKQ0KPGJyPjQ4NTE6IFByaW50IGlnbm9yZXMgcHJpbnQgdG8gZmlsZSBvcHRpb24gKDFHS1hDMzApICANCjxicj40ODY3OiBQZ01lbUZsdXNoKCkgY29uc2lkZXJlZCBleHBlbnNpdmUgKDFHTEVFSkMpICANCjxicj41Njk3OiAqUGxlYXNlKiBtYWtlIFNXVCB1c2UgR1RLKyBpbnN0ZWFkIG9mIE1vdGlmICANCjxicj44MzQ2OiBXb3JrYmVuY2ggd2lsbCBub3Qgc3RhcnQgIA0KPGJyPjkyMTc6IEludGVybmFsIGVycm9yIGF0IG9wZW4gdGhlIHBhY2thZ2UgdmlldyAgDQo8YnI+OTQ5MTogMUdSVFJYUTogV1NXQjpXb3JrYmVuY2ggMi4wIFByb2JsZW0tIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB3aXRoIE11bHRpUGFnZUVkaXRvclBhcnQNCjxicj4xMTIwNDogU29tZSBBY3RpdmVYIGNvbnRyb2wgY2FuIG5vdCBhY2NlcHQga2V5IGlucHV0LiAgDQo8YnI+MTE0MzY6IFJlcXVlc3QgZm9yIHB1YmxpYyBpbnRlcmZhY2UgdG8gY2FsbCAiVUlEZWFjdGl2YXRlKCkiIG9mICBJT2xlSW5QbGFjZU9iamVjdA0KPGJyPjExNDk4OiBTdHlsZWRUZXh0IGRvZXMgbm90IGFsd2F5cyByZWRyYXcgd2hlbiB0aGUgbGluZSBzdHlsZSBjaGFuZ2VzDQo8YnI+MTQ4NDY6IEFjY2Vzc2liaWxpdHk6IGdldExvY2F0aW9uIGRvZXMgbm90IHBvc2l0aW9uIFhQIE1hZ25pZmllciAgDQo8YnI+MTUyMTg6IFBsYXRmb3JtIGRvZXMgbm90IHJlY29nbml6ZSB0aGUgR1VJIC0gMjAwMjA1MDIgIA0KPGJyPjE1NDY2OiBJbWFnZURhdGEuYmxpdCB0aHJvd3MgQXJyYXlJbmRleE91dE9mQm91bmRzIEV4Y2VwdGlvbiAgDQo8YnI+MTU1NDg6ICdYJyBjbG9zZSBib3ggb24gdGFiIGhpZGRlbiBieSBhcnJvd3MgIA0KPGJyPjE1NTY0OiBqYXZhdy5leGUgaGFzIGdlbmVyYXRlZCBlcnJvcnMgYW5kIHdpbGwgYmUgY2xvc2VkIGJ5IHdpbmRvd3MgIA0KPGJyPjE1NjUzOiBUYWIgaGFsdHMgb24gQ0NvbWJvIG9iamVjdHMgIA0KPGJyPjE2MDk0OiBDaGVlc2Ugb24gQ1RhYkZvbGRlciB3aGVuIHJlc2l6aW5nICANCjxicj4xNjIwMDogVHJhY2tlciBsZWF2ZXMgY2hlZXNlICANCjxicj4xNjM0NTogSlZNIHRlcm1pbmF0aW9uIHdoZW4gYXR0ZXBtdGluZyB0byBydW4gVXBkYXRlIE1hbmFnZXIgIA0KPGJyPjE2NDU4OiBUcnlpbmcgdG8gZnJlZSBhIEdka0V2ZW50OiBwb2ludGVyPU5VTEwgIA0KPGJyPjE2NTQ5OiBDYW5ub3QgbmF2aWdhdGUgdGFiYmVkIG5vdGVib29rIHdpdGgga2V5Ym9hcmQgIA0KPGJyPjE2NTU3OiBUYWIgZG9lcyBub3QgbW92ZSBjdXJzb3IgYmV0d2VlbiB0ZXh0IGZpZWxkcyAgDQo8YnI+MTY1NjU6IFR5cGVkIHRleHQgaXMgbG9zdCAgDQo8YnI+MTY1NzY6IEFDQzogQ2hlY2tib3hlcyBpbiBsaXN0cyBhcmUgbm90IHJlYWwgY2hlY2tib3hlcyAgDQo8YnI+MTY4Mjg6IENUYWJGb2xkZXIgZmxhc2hpbmcgdG9vbHRpcCAgDQo8YnI+MTY5Mjc6IEV4dGVybmFsIHByb2dyYW1zIHN1cHBvcnQgb24gUGhvdG9uICANCjxicj4xNjk1NzogVHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZENvbG9yKCkgZG9lc24ndCB3b3JrICANCjxicj4xNjk2NzogU3RyYW5nZSBzY3JvbGwgYmVoYXZpb3IgaW4gcGFja2FnZSBkaWFsb2cgIA0KPGJyPjE2OTk1OiBIb3ZlckhlbHAgZXhhbXBsZSBkb2VzIG5vdCBjcmVhdGUgT05fVE9QIFNoZWxsIGZvciB0b29sdGlwcyAgDQo8YnI+MTcwMjI6IFNXVCBMYXlvdXRzIGV4YW1wbGUgLSBtaXNzaW5nIHdpbmRvdyB0aXRsZSAgDQo8YnI+MTcwOTA6IFN0eWxlZFRleHQgc2VsZWN0cyB0ZXh0IHdoZW4gbWVudSBpcyBzaG93aW5nICANCjxicj4xNzE4MzogSWNvbiBpbiB3aXphcmQgYmFubmVyIGNsaXBwZWQgIA0KPGJyPjE3MjA4OiBMb25nIG9wZXJhdGlvbnMgYXJlIGJlaW5nIG1vZGFsLiAgDQo8YnI+MTczMDU6IFNlYXJjaCBEaWFsb2c6IEphdmEgUGFnZSBjbGlwcGVkICANCjxicj4xNzMyMDogU2VhcmNoIGRpYWxvZyBmcmVlemVzIEVjbGlwc2UgIA0KPGJyPjE3MzY4OiA0IFRvb2xiYXIgaWNvbnMgcHVzaGVkIG9mZiB0aGUgdG9vbGJhciB3YXkgdG8gdGhlIHJpZ2h0ICANCjxicj4xNzQ4ODogSW1hZ2UgU3VwcG9ydCBpbiBTV1QgLSBGQVEgKDFHNVoxS1MpICANCjxicj4xNzQ5NzogRmlsZURpYWxvZyBvcGVuKCkgcmV0dXJucyB3cm9uZyByZXN1bHQgIA0KPGJyPjE3NjMyOiAiQ29sb3IgQnV0dG9uIiBkb2Vzbid0IHVwZGF0ZSAgDQo8YnI+MTc4MDI6IE1vdmluZyBhIHNhc2ggcmVxdWlyZXMgYW4gZXh0cmEgY2xpY2sgdG8gdGFrZSBlZmZlY3QgIA0KPGJyPjE3ODExOiBUd28gbWVudSBiYXIgaXRlbXMgaGlnaGxpZ2h0ZWQgYXQgdGhlIHNhbWUgdGltZSAgDQo8YnI+MTc4MTY6IE1lbnUgYXBwZWFycyB0aGVuIGRpc3NhcHByZWFycyB3aXRoIGNsaWNrIGFmdGVyIEFsdC4gIA0KPGJyPjE3ODMyOiBWZXJ0aWNhbCBTY3JvbGxiYXIgY2xpcHBlZCAgDQo8YnI+MTc4MzQ6IEphdmFEb2MgQVBJIGJhZCBmb3IgSW1hZ2UgIA0KPGJyPjE3ODM1OiBTbWFsbHRhbGsgY29kZSBhcm91bmQgOikgIA0KPGJyPjE3OTI4OiBOUEUgb24gYWRkcmVzc2Jvb2sgZXhhbXBsZSAgDQo8YnI+MTc5MzI6IEVtdWxhdGVkIENvb2xiYXIgZG8gbm90IHJlc2l6ZSB3aGVuIHRoZSBsYXN0IGl0ZW0gb24gdGhlIHJvdyBpcyByZW1vdmVkDQo8YnI+MTc5MzM6IEVtdWxhdGVkIENvb2xiYXIgY2hldnJvbiB0b28gbmFycm93IG9uIFBob3RvbiAgDQo8YnI+MTgwMDU6IEJ1c3lJbmRpY2F0b3Igc2hvdWxkIGNoZWNrIGFyZ3MgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQwIC0gVHVlc2RheSBNYXkgMjEsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMzU1NDogVFAxMjU6IHdlaXJkIHRhYiBvcmRlciBpbiBjcmVhdGUgcHJvamVjdCB3aXphcmQgKDFHODNWUDgpICANCjxicj40NDI0OiBUYWJsZSBkcmF3cyBhIHN0cmF5IHBpeGVsIGluIHRvcCBsZWZ0IGNvcm5lciAoMUZTOVFCUSkgIA0KPGJyPjQ0NzY6IE5vIHN5bmNFeGVjIHJ1bm5hYmxlcyBydW4gZHVyaW5nIHNjcm9sbGluZyAoMUZNR0cyWCkgIA0KPGJyPjQ1Mjg6IE5lZWQgRm9jdXNJbiBldmVudCBmb3IgT2xlQ2xpZW50U2l0ZSAoMUZXMlMwMCkgIA0KPGJyPjQ1ODY6IFVzZSBjaGVja1dpZGdldCgpIG1vcmUgb2Z0ZW4gKDFHODBVUlEpICANCjxicj40NjA5OiBGaWxsTGF5b3V0IHNob3VsZCBoYXZlIEZpbGxMYXlvdXQodHlwZSkgY29uc3RydWN0b3IgKDFHOVhCUEkpDQo8YnI+NDY5NDogRWRpdG9yIE5hbWUgaXMgbWlzc2luZyBmcm9tIHRhYiAoMUdFVDkzSikgIA0KPGJyPjQ3MjY6IENPREUgQ0hBTkdFUyBBRlRFUiBUSEUgRlJFRVpFICgxR0Y5WUYwKSAgDQo8YnI+NDc4ODogRmVhdHVyZSByZXF1ZXN0OiBzdHlsZWQgdHJlZSBpdGVtcyAoMUdJR0pLNCkgIA0KPGJyPjQ3ODk6IFhQIC0gTG9vayBhbmQgZmVlbCBwcm9ibGVtcyAoMUdJR0dLTSkgIA0KPGJyPjQ4MzE6IERORCBub3Qgd29ya2luZyBwcm9wZXJseSAoMUdKWU9aQykgIA0KPGJyPjQ4Mzg6IENhbiBjcmVhdGUgRm9udERhdGEgd2l0aCBudWxsIG5hbWUgc3RyaW5nICgxR0tBOTNQKSAgDQo8YnI+NDk0MTogRm9jdXMgY2FsbGJhY2sgZHVyaW5nIE9sZUNsaWVudFNpdGUgZGVhY3RpdmF0ZSBjYWxsICANCjxicj40OTQyOiBDb21ibyBzZWxlY3Rpb24gaW5kZXggc2hvdWxkIG1vdmUgd2hlbiB1cHBlciBpdGVtIHJlbW92ZWQgKDFHTEdBNDEpDQo8YnI+NTkxMDogVG9vbGJhciB3aXRoIGFsbCBpdGVtcyBkaXNhYmxlZCBzdGlsbCBzaG93cyB1cCBpbiB0YWIgb3JkZXIgIA0KPGJyPjU5MzY6IENvbXBvc2l0ZS5zZXRUYWJMaXN0IHNob3VsZCBhY2NlcHQgbnVsbCAgDQo8YnI+NjE5ODogRm9jdXMgbG9zdCBpbiB0YWIgZm9sZGVyIHdoZW4gc3dpdGNoaW5nIHBhZ2VzICANCjxicj42NDA2OiBKIElNRSBwb3NpdGlvbmluZyBpbmNvcnJlY3QNCjxicj42NTE0OiBDb2RlIGFzc2lzdCBiZWhhdmVzIGRpZmZlcmVudGx5IG9uIExpbnV4ICANCjxicj42ODU2OiBEZWZhdWx0IGJ1dHRvbnMgZGlmZmVyZW50IG9uIFZhcmlhYmxlIGRpYWxvZyAgDQo8YnI+ODE2MjogQWNjZXNzaWJpbGl0eTogZm9jdXMgZ29lcyBtaXNzaW5nIGluIENWUyBsb2NhdGlvbiB3aXphcmQgIA0KPGJyPjg3OTE6IE92ZXJhZ2dyZXNzaXZlIGZvY3VzIGdyYWJiaW5nICANCjxicj45MTQxOiBXb3JrQmVuY2gtPlByZWZlcmVuY2UgZGlhbG9nJ3MgYnV0dG9ucyBmb250IGlzIHRvbyBzbWFsbC4gIA0KPGJyPjkyODc6IENvbWJvLnNldFRleHQgZG9lcyBub3Qgd29yaw0KPGJyPjEwNDkxOiBCb2xkIGJ1dHRvbiB3aWxsIG5vdCBib2xkIHRleHQgaW4gU1dUIFRleHRFZGl0b3IgRXhhbXBsZSAgDQo8YnI+MTEwNzQ6IEV2ZW50VGFibGUuc2VuZEV2ZW50IHNob3VsZCBwcm9iYWJseSB1c2UgdHJ5L2ZpbmFsbHkgIA0KPGJyPjExMzQ5OiBFZGl0b3IgVGFicyBzaG91bGQgZmlsbCB0byB0aGUgcmlnaHQuICANCjxicj4xMTM2OTogQ29vbGJhciBmZWF0dXJlIHJlcXVlc3RzICANCjxicj4xMTUxNjogVmlld0Zvcm0gc2hvdWxkIG92ZXJyaWRlIGNvbXB1dGVUcmltDQo8YnI+MTE3Mzg6IGdyb3dpbmcgc3RhdHVzIGJhcg0KPGJyPjExODQ3OiBPTEUgRWRpdG9yIHByZXZlbnRzIG5hdmlnYXRpb24gd2l0aG91dCBrZXlzICANCjxicj4xMjM5ODogQWNjZXNzaWJpbGl0eSBwcm9ibGVtcyAgDQo8YnI+MTI2NDE6IEVycm9yIGluIC5jbGFzc3BhdGggZm9yIFBob3RvbiAgDQo8YnI+MTI5MDQ6IEFjY2Vzc2libGUgcmVzaXppbmcgb2YgVmlld3Mgc2hvdWxkIG1vdmUvY2hhbmdlIHRoZSBEaXNwbGF5J3MgQ3Vyc29yDQo8YnI+MTI5NzI6IE5vdGljZWQgaW5jcmVhc2VkIG51bWJlciBvZiBFY2xpcHNlIGNyYXNoZXMgIA0KPGJyPjEzNjIyOiBEQ1IgLSBuZWVkIGFiaWxpdHkgdG8gY2FuY2VsIHdpbmRvdyBzeXN0ZW0gc2h1dGRvd24NCjxicj4xNDQ0OTogW001XSBlcnJvciBicmluZ2luZyB1cCBDb2RlIEZvcm1hdHRlciBwYWdlICANCjxicj4xNDU0NjogVGFibGVDb2x1bW4gYWxpZ25tZW50IHByb2JsZW0gd2l0aCBNb3RpZiAgDQo8YnI+MTQ2NTY6IFJlcGFpbnQgb2Ygd2luZG93IGRvZXMgbm90IHdvdGsgd2l0aCBJTUUgdXANCjxicj4xNDgwMTogTW5lbW9uaWMgY2hhcmFjdGVyIGRvZXNuJ3Qgd29yayBvbiBUYWJGb2xkZXIgb24gUU5YICANCjxicj4xNTEyNDogTlBFOiBMYWJlbCBEZWNvcmF0aW9ucyBwcmVmZXJlbmNlIHBhZ2UgIA0KPGJyPjE1MTM0OiBPcGVuIFR5cGUgZGlhbG9nIGhhcyB3cm9uZyBpbml0aWFsIGZvY3VzICANCjxicj4xNTE3MjogZm9jdXMgbm90IG9uIHRleHQgZmllbGQgZm9yIE9wZW5UeXBlRGlhbG9nICANCjxicj4xNTIyNDogRmlsZURpYWxvZyBkb2VzIG5vdCByZXR1cm4gdGhlIGZpbGUgc2VsZWN0ZWQgb24gUG9ja2V0UEMgIA0KPGJyPjE1MjM3OiBDb29sYmFyIC0gY29ycnVwdHMgd3JhcCBsYXlvdXQgd2hlbiBpdGVtcyBkZWxldGVkICANCjxicj4xNTUxMzogQ0NvbWJvLnNldFRvb2x0aXBUZXh0KCkgZG9lc24ndCB3b3JrICANCjxicj4xNTUxNjogR1AgLSBFY2xpcHNlIGNyYXNoZWQgIA0KPGJyPjE1NTc1OiBUcmVlIHdpdGggY2hlY2tib3ggaXRlbXMgYXJlIG5vdCBhY2Nlc3NpYmxlICANCjxicj4xNTYxMzogQ29weS9wYXN0ZSBpbnNlcnRzIE5VTEwgIA0KPGJyPjE1NzA1OiBFZGl0b3Igd2l0aCBmb2N1cywgdGFiIHRleHQgZGlzYXBwZWFycyBzb21ldGltZXMNCjxicj4xNTg3MjogRWRpdG9yIGFyZWEgZnJhbWUgc2hvdWxkIGFsaWduIHdpdGggb3BlbiBlZGl0b3IncywgZXhjbHVkaW5nIGRyb3Agc2hhZG93DQo8YnI+MTU5ODk6IENvb2xiYXIgd2Fsa2JhY2sgd2hlbiBhZGRpbmcgaXRlbQ0KPGJyPjE2MDY5OiBDYW4ndCBzZWUgc291cmNlIGluIGltcG9ydGVkIGJpbmFyeSBTV1QgIA0KPGJyPjE2MjEwOiBDb3JlIER1bXAgT2NjdXJyZWQgd2hpbGUgaW4gT3BlbiBUeXBlIGRpYWxvZyAgDQo8YnI+MTYyNDU6IENUYWJGb2xkZXIgLSB0b29sdGlwcyBhbmQgYXJyb3dpbmcgYXJvdW5kDQo8YnI+MTYyODE6IEVjbGlwc2UgZG9lcyBub3QgY29tZSB1cA0KPGJyPjE2Mjk3OiBXcm9uZyB0YWIgb3JkZXIgaW4gbmV3ZXIgYnVpbGRzDQo8YnI+MTYzMTg6IENhbid0IGFjdGl2YXRlIHZpZXdzOyBsb3NpbmcgZXZlbnRzDQo8YnI+MTY0NjU6IFN0YWNrIE92ZXJmbG93IHdoZW4gaW1wb3J0aW5nIGEgcHJvamVjdA0KPGJyPjE2NTIzOiBVbmFibGUgdG8gZG91YmxlLWNsaWNrDQo8YnI+MTY1MjU6IEVjbGlwc2UgZG9lcyBub3QgbGF5b3V0IHByb3Blcmx5DQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzkgLSBUdWVzZGF5IE1heSAxNCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo2MTAzOiBNZW51IG1uZW1vbmljcyBkb24ndCB3b3JrIHdoZW4gdG9vbGJhciBoYXMgZm9jdXMgIA0KPGJyPjg4MDU6IENvbnRleHQgbWVudXMgYW5kIGZpbmRpbmcgcmVmZXJlbmNlcyB0byBtZXRob2RzICANCjxicj4xNDgyMzogRHJhZyZEcm9wOiBuZWVkIHdheSB0byBzZXQgdGhlIGRlZmF1bHQgYmVodmFpb3VyIG9mIGEgZHJvcCBvICANCjxicj4xNTA1NTogQ29sdW1uIEhlYWRlciBIZWlnaHQgaW4gYSBUYWJsZSBvciBUYWJsZSBUcmVlIFNXVCB3aWRnZXQgIA0KPGJyPjE1MjUzOiBMaW51eCBHVEsgMiBsaWJyYXJ5IG5vdCBmb3VuZCAgDQo8YnI+MTUyNzQ6IENhbid0IGFkZCBleHRlcm5hbCBqYXIgaW4gTGludXgtR1RLIHZlcnNpb24gIA0KPGJyPjE1NjAzOiBQcmVmZXJlbmNlIHBhZ2Ugbm8gbG9uZ2VyIHJlc2l6ZXMgdG8gZml0IGNvbnRlbnRzICANCjxicj4xNTYzNDogVGFibGUgbm90IGFjdGluZyBsaWtlIGxpc3Qgd2hlbiBsYXN0IGNvbHVtbiBkZWxldGVkICANCjxicj4xNTYzNzogQ2hlZXNlIGluIFRhYmxlIHdoZW4gc2V0dGluZyBjb2x1bW4gaW1hZ2UgIA0KPGJyPjE1NjQzOiBDaGVlc2UgaW4gVGFibGUgd2hlbiBjaGFuZ2luZyBmb250ICANCjxicj4xNTcwNTogRWRpdG9yIHdpdGggZm9jdXMsIHRhYiB0ZXh0IGRpc2FwcGVhcnMgc29tZXRpbWVzICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAzOCAtIFR1ZXNkYXkgTWF5IDcsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNjM5MTogRGlzcGxheS5nZXRBY3RpdmVTaGVsbCgpIGNhbiBhbnN3ZXIgd3JvbmcgdmFsdWUgIA0KPGJyPjcxNzA6IFRhYiBzcGFjZSBzaXplIHByb2JsZW0gIA0KPGJyPjg1NDI6IENsb3NlIHBlcnNwZWN0aXZlIHdpdGggbW91c2UgaXNuJ3QgcG9zc2libGUgIA0KPGJyPjg1OTE6IEVkaXRvciB0YWJzIHNob3VsZCBzY3JvbGwgYXV0b21hdGljYWxseSB0byBmaWxsIGF2YWlsYWJsZSB0YWIgc3BhY2UNCjxicj44NjQ4OiBTdHlsZWRUZXh0IC0gQ2FyZXQgY2FuIGJlIGhpZGRlbiB1bmRlciBzY3JvbGxiYXIgIA0KPGJyPjEwMjYzOiBFZGl0b3Iga2VlcHMgc2Nyb2xsaW5nIGFmdGVyIG1vdXNlIHVwICANCjxicj4xMjIyNjogU29sYXJpcyAtIGNhbid0IGNvcHkgZmlsZSBpbnRvIHNhbWUgZGlyZWN0b3J5ICANCjxicj4xMjM2MDogVHJhdmVyc2VFdmVudCBlLmRvaXQgZG9lc24ndCB0dXJuIG9mZiBvbiBUYWJGb2xkZXIgIA0KPGJyPjEyOTUyOiBBbHQre2NoYXJ9IGdldHMgaW5zZXJ0ZWQgYXMgdGV4dCAgDQo8YnI+MTM2MTQ6IEpGYWNlIFRhYmxlcyBoYXZlIGFuIGV4dHJhIGNvbHVtbiAgDQo8YnI+MTM2NTE6IFByaW50ZWQgb3V0cHV0IGlzc3VlcyAgDQo8YnI+MTM3MjU6IFJldmVydCBpcyBtdWNoIHNsb3dlciB0aGFuIGNsb3NlIGFuZCByZS1vcGVuIGluIGphdmEgZWRpdG9yLiAgDQo8YnI+MTQ0MzE6IFRhYmxlVmlld2VyIGluY29uc2lzdGVudCB3aGVuIGNsaWNraW5nIG9mZiBvZiBpdGVtIGxpc3QgIA0KPGJyPjE0ODY2OiBTaGlmdC1zZWxlY3Rpb24gZG9lc24ndCB3b3JrIGltbWVkaWF0ZWx5IGFmdGVyIHJlc3RhcnQgIA0KPGJyPjE0ODgwOiBDb2x1bW4gcmVzaXplIHByb2JsZW1zL2NoZWVzZSAgDQo8YnI+MTQ5MDI6IEV4ZWN1dGFibGUgbGF1bmNoZXIgZG9lcyBub3QgcmVzdGFydCAgDQo8YnI+MTQ5MzU6IEVtdWxhdGVkV2lkZ2V0VGVzdHMgZmFpbCBvbiBMaW51eCAgDQo8YnI+MTQ5Mzc6IExhdW5jaCBmcm9tIE5ldyBPZmZpY2UgRG9jdW1lbnQgaGFuZ3MgdW50aWwgRWNsaXBzZSBleGl0cy4gIA0KPGJyPjE0OTY0OiBTdHlsZWRUZXh0IC0gYWRkIG5ldyBBUEkgZm9yIHJlcGxhY2luZyBzdHlsZSByYW5nZXMgIA0KPGJyPjE0OTgxOiBGb2N1cyBub3Qgc2V0IGFueW1vcmUgIA0KPGJyPjE1MDU3OiBnZXRTeXN0ZW1Db2xvcihTV1QuQ09MT1JfV0lER0VUX0ZPUkVHUk9VTkQpIGFsd2F5cyByZXR1cm5zIGJsYWNrDQo8YnI+MTUxMTU6IHJlbW92ZUNvbHVtbiBhcmUgYnJva2VuIGluIEVtdWxhdGVkIFRhYmxlICANCjxicj4xNTE0MTogVGFiIGlzIGNhdWdodCBieSByZWFkIG9ubHkgdGV4dCAgDQo8YnI+MTUxNTA6IFByb2dyZXNzIGJhciBiZWhhdmVzIGVycmF0aWNhbHkNCjxicj4xNTIwODogU3R5bGVkVGV4dCAtIHRleHQgY2hhbmdlIGV2ZW4gbWVjaGFuaXNtIHBvb3JseSBkb2N1bWVudGVkICANCjxicj4xNTM0ODogR1BGIGluIE9TLk1vdmVNZW1vcnlXICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAzNyAtIFR1ZXNkYXkgQXByaWwgMzAsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iTElCUkFSWSBMT0NBVElPTiBDSEFOR0UiPjwvYT5MSUJSQVJZIExPQ0FUSU9OIENIQU5HRTwvaDI+DQoNCkFzIG9mIHRoaXMgYnVpbGQsIGxpYnJhcmllcyBhcmUgbm8gbG9uZ2VyIGluIHRoZSBvcmcuZWNsaXBzZS5zd3QgcGx1Z2luLg0KDQo8cD5MaWJyYXJpZXMgY2FuIG5vdyBiZSBmb3VuZCBpbiB0aGUgYXNzb2NpYXRlZCB3aW5kb3dpbmcgc3lzdGVtIGZyYWdtZW50IHdoaWNoIHRvIGRhdGUgYXJlOg0KPHVsPg0KPGxpPm9yZy5lY2xpcHNlLnN3dC53aW4zMiANCjxsaT5vcmcuZWNsaXBzZS5zd3QubW90aWYNCjxsaT5vcmcuZWNsaXBzZS5zd3QucGhvdG9uDQo8bGk+b3JnLmVjbGlwc2Uuc3d0Lmd0aw0KPGxpPm9yZy5lY2xpcHNlLnN3dC5ndGsxeA0KPC91bD4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDY0MTogSWNvbiBsb29rdXAgZmFpbHMgZm9yIHNvbWUgd2luZG93cyBpY29uIHBhdGhzICgxR0QyREVZKSAgDQo8YnI+NDgwMjogU3R5bGVkVGV4dCAtIEJpZGkgU3VwcG9ydCBPcGVuIElzc3VlcyAoMUdJWjVHMykgIA0KPGJyPjQ4NDI6IENhbid0IGxhdW5jaCBleHRlcm5hbCBlZGl0b3JzLiAoMUdLRVlPRSkgIA0KPGJyPjYwOTg6IEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OIHJ1bm5pbmcgRWNsaXBzZSAgDQo8YnI+Njg1ODogR1AgLSBDcmFzaCBWTSAgDQo8YnI+ODgyNjogR1BGIC0gY2xvc2luZyBhIEphdmEgZWRpdG9yICANCjxicj44ODM3OiBXaW5kb3cgcG9zaXRpb24gY2hhbmdlZCBpbmNvcnJlY3RseSBpbiBTaGVsbC5vcGVuKCkgIA0KPGJyPjkyOTc6IEVjbGlwc2UgY3Jhc2hlZCAgDQo8YnI+MTEzNzQ6IGdwOiBDcmFzaCBpbiBzd3Qtd2luMzItMjAyNi5kbGwgIA0KPGJyPjExNTg3OiBCSURJOkphdmEgZWRpdG9yIGFuZCBUZXh0IGVkaXRvcjogVXNlciBJbnRlcmZhY2UgaXNzdWVzLiAgDQo8YnI+MTI4MTE6IFRhYmxlQ29sdW1ucyBkb24ndCBwYWNrIHByb3Blcmx5ICANCjxicj4xMzIwMDogZ3AgLSBNb3ZlTWVtb3J5IGVycm9yIG9uIFdpbmRvd3MgWFAgIA0KPGJyPjE0MDQ5OiBncCAtIENyYXNoIGluIE9TLk1vdmVNZW1vcnlXICANCjxicj4xNDIyMDogZ3AgLSBDcmFzaCBjbG9zaW5nIGVkaXRvciAgDQo8YnI+MTQyNDU6IGdwIC0gY3Jhc2ggd2hpbGUgZGVidWdnaW5nIChOUkNSQVNIKSAgDQo8YnI+MTQyNDk6IEV4Y2VwdGlvbiB3aGlsZSBzdGVwcGluZyAgDQo8YnI+MTQyODA6IFVuc2F0aXNmaWVkIExpbmsgRXJyb3JzIHJ1bm5pbmcgbGlic3d0LXBpLWd0ay0yMDM0LnNvIG9uIExpbnV4L0d0ayAyLjANCjxicj4xNDQyNTogRm9udCBkaWFsb2cgZXhjZXB0aW9uICANCjxicj4xNDUyODogUHJvYmxlbSB3aXRoIExhYmVsLmNvbXB1dGVTaXplLiAgDQo8YnI+MTQ1Mzg6IFN0eWxlZFRleHQgLSBiaWRpIC0gY2hhbmdlIGJhY2tzcGFjZSBhbmQgZGVsZXRlIGJlaGF2aW9yICANCjxicj4xNDgxMzogQ2xhc3NDYXN0RXhjZXB0aW9uIGNyZWF0aW5nIGEgbmV3IFJ1biBjb25maWd1cmF0aW9uICANCjxicj4xNDg3MjogQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIFRhYmxlSXRlbS5pbnNlcnRDb2x1bW4gIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDM2IC0gVHVlc2RheSBBcHJpbCAyMywgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0ODM0OiBEQ1IgLSBtbmVtb25pY3MgZG8gbm90IHdvcmsgb24gdGFiYmVkIHBhZ2VzICgxR0s3TzBOKSAgDQo8YnI+NzE4OTogTWV0aG9kIGhpZ2hsaWdodCBpbiBib3JkZXIgZG9lcyBub3QgbWF0Y2ggdGhlIG1ldGhvZCAgDQo8YnI+ODI1MzogUmlnaHQgY2xpY2tpbmcgZG9lcyBub3QgYnJpbmcgdXAgY29udGV4dCBtZW51ICANCjxicj44MzA2OiBJbmNvbnNpc3RlbmNpZXMgaW4gU1dUIGV4YW1wbGUgZGVzY3JpcHRpb25zICANCjxicj44NTM4OiBNaXNtYXRjaCBiZXR3ZWVuIHNlbGVjdGVkIHRhYiBhbmQgZGlzcGxheWVkIHRhYiAgDQo8YnI+ODU0NDogU29tZSBwcm9ibGVtcyB3aXRoIHRoZSBlZGl0b3ItcGFuZSAocmVwYWludCwgZm9jdXMpICANCjxicj45MzYwOiBUZXh0IGVudHJ5IGluIGN2cyBjb21tZW50IGRpYWxvZyBjYW4ndCBkZWFsIHdpdGggcXVpY2sgdHlwaW5nDQo8YnI+OTc5NDogTGludXgtR1RLIEtleUV2ZW50cyBiYWQvZGlmZmVyZW50IGZyb20gdGhlIG90aGVyIHBsYXRmb3Jtcw0KPGJyPjEyOTQ3OiBDb2xvciBQcmVmZXJlbmNlcyBpbiBQcmVmZXJlbmNlcy0+SmF2YS0+RWRpdG9yICANCjxicj4xMzgyNjogUGVyZm9ybWFuY2UgaXNzdWUgaW4gVGFibGUuUmVtb3ZlQWxsKCkgIA0KPGJyPjEzOTIyOiBFY2xpcHNlIGNyYXNoZXMgd2hlbiBydW5uaW5nIExheW91dEV4YW1wbGUgIA0KPGJyPjEzOTk5OiBTdHlsZWRUZXh0IC0gYXBwZW5kaW5nIHNpbmdsZSBsaW5lIGRhdGEgZG9lc24ndCB1cGRhdGUgcHJvcGVybHkNCjxicj4xNDA0NzogU3R5bGVkVGV4dCAtIGluZWZmaWNpZW50IHJlZHJhdyBkdXJpbmcgdGV4dCBjaGFuZ2Ugd2l0aCB3b3JkIHdyYXANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAzNSAtIFRodXJzZGF5IEFwcmlsIDE4LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gyPg0KPHVsPg0KPGxpPkRpc3BsYXkuc2V0Q3Vyc29yTG9jYXRpb248L2xpPg0KPGxpPkdyaWRMYXlvdXQoaW50LGJvb2xlYW4pPC9saT4NCjwvdWw+DQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ2MDI6IEdyaWRMYXlvdXQgc2hvdWxkIGhhdmUgR3JpZExheW91dChudW1Db2x1bW5zKSBjb25zdHJ1Y3RvciAoMUc5WjczRCkNCjxicj44NTQ5OiBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcyA0IFVuaGFuZGxlZCBleGNlcHRpb24gY2F1Z2h0IGluIGV2ZW50IGxvb3ANCjxicj45MDI5OiBHQy5zZXRDbGlwcGluZyhSZWN0YW5nbGUpIHNob3VsZCBoYW5kbGUgbnVsbCBhcmd1bWVudCBvbiBHVEsgIA0KPGJyPjEwNTkwOiBHVEsgVmVyc2lvbiAvIFRyZWUgVmlldyBibGFua3MuLi4gIA0KPGJyPjEwNzE1OiBDb2RlIEFzc2lzdCBkaWFsb2cgaGlkZSBhZnRlciBwcmVzcyBhbmQgcmVsZWFzZSBDVFJMICsgU1BBQ0UgIA0KPGJyPjExMTgyOiBQcm9wZXJ0eSBTaGVldCBkb2VzIG5vdCBhbGxvdyBlZGl0aW5nIHdoZW4gdGhlcmUgaXMgb25seSBvbmUgcHJvcGVydHkNCjxicj4xMTUxNTogY29tcHV0ZVRyaW0gYW5kIGdldENsaWVudEFyZWEgYXJlIGluY29uc2lzdGVudCBpbiBDVGFiRm9sZGVyICANCjxicj4xMTcxMzogRGVzY3JpcHRpb25zIGluIHByZWZlcmVuY2UgcGFnZXMgYXJlbid0IGFsaWduZWQgIA0KPGJyPjExNzE1OiBUYWIgZG9lc24ndCBzd2l0Y2ggZmllbGRzIG9uIGd0ayAgDQo8YnI+MTE4MzU6IFN0cmFuZ2UgYmVoYXZpb3VyIG9mIGJhY2tzcGFjZSBpbiBuZXcgSmF2YSBDbGFzcyBkaWFsb2cgIA0KPGJyPjExOTM1OiBDYW4ndCBDdHJsK1RhYiBvdXQgb2YgUERFIEVkaXRvcidzIGRlcGVuZGVuY2llcyBwYWdlICANCjxicj4xMjA3MzogTW92aW5nIHNoZWxsIGFib3ZlIG90aGVyIHNoZWxscyBkb2VzIG5vdCB3b3JrLiAgDQo8YnI+MTI4ODI6IERDUjogU2V0IEN1cnNvciBsb2NhdGlvbiBwcm9ncmFtbWF0aWNhbGx5IGZvciBhY2Nlc3NpYmlsaXR5ICANCjxicj4xMzE5NDogVXNhYmlsaXR5OiBlZGl0b3IgdGFicyAgDQo8YnI+MTMzODQ6IE5QRSBvbiBsYXVuY2hpbmcgIA0KPGJyPjEzNDMyOiBPbGVDb250cm9sU0l0ZSBkb2Vzbid0IHByb3BhZ2F0ZSBXTV9TRVRGT0NVUyBtZXNzYWdlIHRvIGFuIEFjdGl2ZVggY29udHJvbA0KPGJyPjEzNjM5OiBDb250cm9scyBkbyBub3QgYXBwZWFyIGluIHRvb2wgaXRlbXMgIA0KPGJyPjEzODAwOiBDYW4gbm90IGdldCBGb2N1c0V2ZW50IGZyb20gQ29tYm8gIA0KPGJyPjEzOTgyOiBFY2xpcHNlIHdvbid0IHN0YXJ0IG9uIEdUSzIgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDM0IC0gVHVlc2RheSBBcHJpbCA5LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjY3NzQ6IFdpbkNFIC0gaXRlbXMgcmVnYXJkaW5nIFBvY2tldCBQQyAoaW5jbHVkaW5nIDIwMDIpIGludGVncmF0aW9uDQo8YnI+ODgwNjogTW92aW5nIHZpZXdzIGlzIGRpZmZpY3VsdCAgDQo8YnI+OTI0NTogVG9vbEl0ZW1zIGluIGEgVG9vbEJhciBub3QgZGlzcGxheWluZyBpbWFnZXMgb24gV2luQ0UgIA0KPGJyPjk2MTY6IFJlc2l6ZSBjb2x1bW4gbGVhdmVzIHNvbWUgY2hlZXNlIGluIHRoZSB0YWJsZSAgDQo8YnI+MTA2MDM6IEFkZCBCcmVha3BvaW50IGtlZXBzIHByb21wdGluZyBtZSAgDQo8YnI+MTA5Mzc6IENvbnZlcnRlciBwcm9ibGVtIG9uIFNvbGFyaXMgIA0KPGJyPjExNTIwOiBTaGVsbEFkYXB0ZXIuc2hlbGxEZWFjdGl2YXRlZCgpIG5ldmVyIGNhbGxlZCBvbiBMaW51eC1Nb3RpZiAgDQo8YnI+MTE3MzQ6IEZvY3VzIG5vdCBvbiAiRmluaXNoZWQiIGJ1dHRvbiAgDQo8YnI+MTE5NDA6IERvd24gYXJyb3cgZG9lcyBub3QgYWNjZXNzIGRyb3AtZG93biBwb3J0aW9uIG9mIHRvb2xiYXIgYnV0dG9ucw0KPGJyPjEyMjQxOiBDb2RlYXNzaXN0IGRpc2FwcGVhciBhZnRlciBhIGZldyBzZWNvbmRzICANCjxicj4xMjU3MzogVGFibGUgc2VuZHMgc2VsZWN0aW9uIGV2ZW50IHR3aWNlIHdoZW4gaW4gVGFiRm9sZGVyDQo8YnI+MTI3ODc6IENoYW5naW5nIGEgbWVudSBpdGVtJ3MgdGV4dCBtYWtlcyBpdHMgaWNvbiBkaXNhcHBlYXIgIA0KPGJyPjEyODg1OiBMYWJlbCBhcyBhIHNlcGVyYXRvciBkb2Vzbid0IHJlc2l6ZSBwcm9wZXJseSAgDQo8YnI+MTMwMDY6IEFsdCsxIHdpdGggYmxhbmsgVGFiRm9sZGVyIHJlc3VsdHMgaW4gTlBFICANCjxicj4xMzAxNDogU2V0VG9vbFRpcFRleHQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGRvZXMgbm90IHJlc2l6ZS4NCjxicj4xMzA0OTogQ1RhYkZvbGRlciBmb2N1cyB0cmF2ZXJzaW5nIGlzIGJ1c3RlZCAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzMgLSBUdWVzZGF5IEFwcmlsIDIsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMTI0NDY6IFNXVCBUYWJsZSBDb2x1bW4gSW1hZ2UgQ29ycnVwdGlvbiAgDQo8YnI+MTI0NDc6IFRyZWUuZ2V0U2VsZWN0aW9uKCkgaXMgc2xvdyBmb3IgbGFyZ2UgdHJlZXMgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDMyIC0gVGh1cnNkYXkgTWFyY2ggMjgsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iU3R5bGVkVGV4dCBCaWRpIFByaW50aW5nIj48L2E+U3R5bGVkVGV4dCBCaWRpIFByaW50aW5nPC9oMj4NCjxibG9ja3F1b3RlPg0KPHA+U3VwcG9ydCBoYXMgYmVlbiBhZGRlZCBmb3IgcHJpbnRpbmcgdGhlIGNvbnRlbnRzIG9mIGEgU3R5bGVkVGV4dCB3aWRnZXQgb24NCmJpZGlyZWN0aW9uYWwgbGFuZ3VhZ2UgV2luZG93cyBwbGF0Zm9ybXMuPC9wPg0KPHA+IE5vdGUgaG93ZXZlciB0aGF0IHByaW50aW5nIEVuZ2xpc2ggb3IgbG9jYWwgbGFuZ3VhZ2UgdGV4dCBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IHdpdGggc29tZQ0KcHJpbnRlciBkcml2ZXJzIHdoZW4gdXNpbmcgYSBub24tVHJ1ZVR5cGUgZm9udC4gVGhpcyBoYXMgYmVlbiBub3RpY2VkIG9uIFdpbmRvd3MNCk5UIHN5c3RlbXMgd2l0aCB0aGUgSFAgTGFzZXJqZXQgNCBzZXJpZXMgcHJpbnRlciBkcml2ZXIuIFBsZWFzZSB1c2UgYSBUcnVlVHlwZQ0KZm9udCBpZiB0ZXh0IGlzIHByaW50ZWQgZ2FyYmxlZCAuICANCjxicj48L3A+DQo8L2Jsb2NrcXVvdGU+DQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ0Njc6IERDUiAtIFRyZWUgbWlzc2luZyBrZXlib2FyZCBzdXBwb3J0ICgxRkpINUdZKSAgDQo8YnI+NDUyNTogUHJvcGVydHkgdmlld2VyIGRvZXNuJ3QgYWRhcHQgdG8gYmcgY29sb3IgY2hhbmdlcyAoMUZYOFhMMSkgIA0KPGJyPjEwMzE3OiBTdHlsZWRUZXh0IC0gYmlkaSBwcmludGluZyBzdXBwb3J0ICANCjxicj4xMDQ4MzogU1dUIENvbnRyb2xFeGFtcGxlIERpcmVjdG9yeURpYWxvZyBkb2VzIG5vdCBjaG9vc2UgZGlyZWN0b3JpZXMNCjxicj4xMTA4MTogSmF2YSBTb3VyY2UgRWRpdGluZyB3aXRoIEdyZWVrIExvY2FsZSBubyBsb25nZXIgd29ya3MgIA0KPGJyPjExNTQ5OiBDcmVhdGUgcHJvamVjdCBkb2VzIG5vdCBhbGxvdyBjcmVhdGlvbiBvZiBmb2xkZXIgaW4gaXRzIHByb2plY3Qgc2VsZWN0aW9uDQo8YnI+MTIwOTk6IEFjY2Vzc2liaWxpdHkgOiBKQVdTIGNhbiBub3QgcmVhZCBUYWJJdGVtJ3MgdGV4dCAgDQo8YnI+MTIyMzE6IERORCA6IERyYWcgYW5kIERyb3AgYnVzdGVkIChtb3VzZSBjYXB0dXJlIG5vdCByZWxlYXNlZCkgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDMxIC0gTW9uZGF5IE1hcmNoIDE4LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gyPg0KPHVsPg0KPGxpPlNjcm9sbGVkQ29tcG9zaXRlLmdldE9yaWdpbjwvbGk+DQo8bGk+U2Nyb2xsZWRDb21wb3NpdGUuc2V0T3JpZ2luPC9saT4NCjxsaT5WYXJpYW50LmdldFR5cGU8L2xpPg0KPC91bD4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNzUwMDogRGlzcGxheS5nZXRCb3VuZHMoKSBjYWxscyBmcm9tIGFub3RoZXIgdGhyZWFkIGdpdmUgaW5jb3JyZWN0IHJlc3VsdHMNCjxicj4xMDI3MzogTlBFcyBjYXVzZWQgYnkgdW5pdGlhbGl6ZWQgJ2l0ZW0nIGZpZWxkIGluIGV2ZW50DQo8YnI+MTA0ODE6IFZpZXcgd2lsbCBub3QgU2l6ZSB2aWEgUHVsbCBEb3duDQo8YnI+MTA1MTE6IEFkZCBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nIHRvIFNjcm9sbGVkQ29tcG9zaXRlDQo8YnI+MTA5NDI6IExhdW5jaGVyIHNob3VsZCBhdXRvZGV0ZWN0IGd0ayBvbmx5IGluc3RhbGxhdGlvbi4NCjxicj4xMTA1MTogSW52YWxpZCB0b2tlbiBwYXN0aW5nIGluIGNhbGxiYWNrLmMNCjxicj4xMTA5MDogQ0xhYmVsIEphdmFkb2Mgc2F5cyBTbWFydExhYmVsDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzAgLSBUdWVzZGF5IE1hcmNoIDEyLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gyPg0KPHVsPg0KPGxpPk9sZUNvbnRyb2xTaXRlLmFkZEV2ZW50TGlzdGVuZXIoT2xlQXV0b21hdGlvbixpbnQsT2xlTGlzdGVuZXIpPC9saT4NCjxsaT5UYWJsZUl0ZW0uZ2V0Rm9yZWdyb3VuZCgpPC9saT4NCjxsaT5UYWJsZUl0ZW0uZ2V0QmFja2dyb3VuZCgpPC9saT4NCjxsaT5UYWJsZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPg0KPGxpPlRhYmxlSXRlbS5zZXRCYWNrZ3JvdW5kKENvbG9yKTwvbGk+DQo8bGk+VHJlZUl0ZW0uZ2V0Rm9yZWdyb3VuZCgpPC9saT4NCjxsaT5UcmVlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPg0KPGxpPlRyZWVJdGVtLnNldEZvcmVncm91bmQoQ29sb3IpPC9saT4NCjxsaT5UcmVlSXRlbS5zZXRCYWNrZ3JvdW5kKENvbG9yKTwvbGk+DQo8bGk+VGFibGVUcmVlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPg0KPGxpPlRhYmxlVHJlZUl0ZW0uZ2V0QmFja2dyb3VuZCgpPC9saT4NCjxsaT5UYWJsZVRyZWVJdGVtLnNldEZvcmVncm91bmQoQ29sb3IpPC9saT4NCjxsaT5UYWJsZVRyZWVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4NCjwvdWw+DQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjg3Mzc6ICBObyBTZWxlY3Rpb24gZXZlbnQgd2hlbiBETkQgc3RhcnRzDQo8YnI+OTk1MDogIENvbG9yRGlhbG9nIHdlaXJkIGJlaGF2aW9yDQo8YnI+OTk1OTogIFBlcnNpc3RlbnQgRWNsaXBzZSBOUEUgb24gc3RhcnR1cA0KPGJyPjk5OTM6ICBPbGVDb250cm9sU2l0ZSBpcyBub3QgcG93ZXJmdWwgZW5vdWdoDQo8YnI+MTA0MjA6IE1vdXNlIGFuZCBETkQgRXZlbnQgbm90aWZpY2F0aW9uIG91dCBvZiBvcmRlcg0KPGJyPjEwNDgwOiBVbmFibGUgdG8gb3BlbiBmaWxlcyB3aXRoICJTeXN0ZW0gRWRpdG9yIg0KPGJyPjEwNDgyOiBWaWV3IHdpbGwgbm90IE1vdmUgdmlhIFB1bGwgRG93bg0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDI5IC0gVHVlc2RheSBNYXJjaCA1LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gyPg0KDQo8Yj5Ob3RlOjwvYj4gVGhlIG5ldyBBY2Nlc3NpYmlsaXR5IEFQSSBpcyBleHBlcmltZW50YWwsIGFuZCB3aWxsIGxpa2VseSBjaGFuZ2UuDQo8dWw+DQo8bGk+Q29udHJvbC5nZXRBY2Nlc3NpYmxlKCkgYWRkZWQ8L2xpPg0KPGxpPnBhY2thZ2UgPGI+b3JnLmVjbGlwc2Uuc3d0LmFjY2Vzc2liaWxpdHk8L2I+IGFkZGVkLCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgY2xhc3Nlczo8dWw+DQo8bGk+QWNjZXNzaWJsZTwvbGk+DQo8bGk+QUNDPC9saT4NCjxsaT5BY2Nlc3NpYmxlTGlzdGVuZXI8L2xpPg0KPGxpPkFjY2Vzc2libGVBZGFwdGVyPC9saT4NCjxsaT5BY2Nlc3NpYmxlRXZlbnQ8L2xpPg0KPGxpPkFjY2Vzc2libGVDb250cm9sTGlzdGVuZXI8L2xpPg0KPGxpPkFjY2Vzc2libGVDb250cm9sQWRhcHRlcjwvbGk+DQo8bGk+QWNjZXNzaWJsZUNvbnRyb2xFdmVudDwvbGk+DQo8L3VsPjwvbGk+PC91bD4NCg0KSGVyZSBhcmUgdHdvIGV4YW1wbGVzIHRoYXQgdXNlIHRoZSBhY2Nlc3NpYmlsaXR5IEFQSTo8dWw+DQo8bGk+Rm9yIGEgY29udHJvbCB3aXRoIG5vIGNoaWxkIGl0ZW1zOg0KPGNvZGU+PHByZT4NCgkJYnV0dG9uLmdldEFjY2Vzc2libGUoKS5hZGRBY2Nlc3NpYmxlTGlzdGVuZXIobmV3IEFjY2Vzc2libGVBZGFwdGVyKCkgew0KCQkJcHVibGljIHZvaWQgZ2V0TmFtZShBY2Nlc3NpYmxlRXZlbnQgZSkgew0KCQkJCWUucmVzdWx0ID0gIk15IEJ1dHRvbiBMYWJlbCI7DQoJCQl9DQoJCX0pOw0KPC9wcmU+PC9jb2RlPjwvbGk+DQoNCjxsaT5Gb3IgYSBjb250cm9sIHRoYXQgaGFzIGNoaWxkIGl0ZW1zOg0KPGNvZGU+PHByZT4NCgkJbGlzdC5nZXRBY2Nlc3NpYmxlKCkuYWRkQWNjZXNzaWJsZUxpc3RlbmVyKG5ldyBBY2Nlc3NpYmxlQWRhcHRlcigpIHsNCgkJCXB1YmxpYyB2b2lkIGdldE5hbWUoQWNjZXNzaWJsZUV2ZW50IGUpIHsNCgkJCQlpZiAoZS5jaGlsZElEID09IEFDQy5DSElMRElEX1NFTEYpIHsNCgkJCQkJZS5yZXN1bHQgPSAiTXkgTGlzdCBMYWJlbCI7DQoJCQkJfSBlbHNlIHsNCgkJCQkJZS5yZXN1bHQgPSAiTXkgTGlzdCBJdGVtIExhYmVsOiAiICsgbGlzdC5nZXRJdGVtKGUuY2hpbGRJRCk7DQoJCQkJfQ0KCQkJfQ0KCQl9KTsNCjwvcHJlPjwvY29kZT48L2xpPjwvdWw+DQo8Yj5Ob3RlOjwvYj4gVGhlIEFQSSBpbnZvbHZpbmcgdGhlIEFjY2Vzc2libGVDb250cm9sWHh4IGNsYXNzZXMgaXMgbW9yZSBjb21wbGV4LCBhbmQgbW9yZSBsaWtlbHkgdG8gY2hhbmdlLiANCkl0IGlzIHVubGlrZWx5IHRoYXQgYXBwbGljYXRpb24gY29kZSB3aWxsIG5lZWQgdG8gdXNlIGl0LiANCkl0IGlzIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiBjdXN0b20gY29udHJvbCBpbXBsZW1lbnRvcnMuDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ0MzY6IEdyaWQgTGF5b3V0IFByb2JsZW0gKDFGT0xaWkUpICANCjxicj40NjY2OiBEQ1IgLSBOZWVkIGEgd2F5IGZvciBjaGlsZCBzaGVsbHMgdG8gZGlzYWJsZSBFU0MgY2xvc2luZyAoMUdFOFJYVykNCjxicj40NzkwOiBYSW5pdFRocmVhZHMgY2F1c2VzIGphcGFuZXNlIGlucHV0IG1ldGhvZCB0byBoYW5nICgxR0lSWVI2KQ0KPGJyPjQ3NzU6IFhJbml0VGhyZWFkcyBjYXVzZXMgWCBwcmludGluZyB0byBoYW5nICgxR0lUQlFMKQ0KPGJyPjQ0NTQ6IERDUjogVGFibGVzIG5lZWQgdG8gc3VwcG9ydCBjZWxsIGVkaXRpbmcgKDFGR1BMUFApDQo8YnI+MTAwMDI6IERldGVjdGlvbiBvZiBDREUgYXMgYWN0aXZlIFdNIGlzIHBsYXRmb3JtLXNwZWNpZmljICANCjxicj4xMDQyNjogRXNjIHRyYXZlcnNlIGRvZXMgbm90IGdvIHVwIGhpZXJhcmNoeSAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjggLSBUaHVyc2RheSBGZWJydWFyeSAyOCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0Njg4OiBKIC0gRm9udCBEaWFsb2cgZG9lcyBub3Qgc2VsZWN0IGEgZm9udCB3aGVuIHNlbGVjdGluZyBhIGZvbnQgZmFtaWx5ICgxR0VUNUJXKQ0KPGJyPjcxMzk6IEZvbnREaWFsb2c6IFNlbGVjdGVkIGZvbnQgbm90IHVzZWQgIA0KPGJyPjg4NjU6IEV4Y2VwdGlvbiB3aGVuIGNyZWF0aW5nIGEgVG9vbEl0ZW0gd2l0aCBhIG51bGwgaW1hZ2UgaW4gTGludXgNCjxicj4xMDI1MDogU2xpZGVyIHdpdGggVkVSVElDQUwgb3JpZW50YXRpb24gLSBkb3duIGFycm93IGluY3JlbWVudHMgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDI3IC0gVHVlc2RheSBGZWJydWFyeSAyNiwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo2NDA5OiBOb2RlIHNlbGVjdGlvbiBpbiBwYWNrYWdlIHZpZXcgIA0KPGJyPjgzODk6IE1vdXNlVXAgbm90IHJlcG9ydGVkIGNvcnJlY3RseSBpZiBEcmFnRGV0ZWN0IGhvb2tlZCAgDQo8YnI+OTM2NDogRXhjZXB0aW9uIGluIFN0eWxlZFRleHQgIA0KPGJyPjk3NzM6IEZvbnQgYW5kIENvbG9yIGRpYWxvZ3MgZG8gbm90IGFwcGVhciBjZW50cmVkIG9uIHBhcmVudCAgDQo8YnI+OTk1MDogQ29sb3JEaWFsb2cgd2VpcmQgYmVoYXZpb3IgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDI2IC0gVHVlc2RheSBGZWJydWFyeSAxMiwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo2Njc5OiBJbWFnZS5nZXRJbWFnZURhdGEoKSBub3QgaW1wbGVtZW50ZWQgIA0KPGJyPjc5NjI6IFNXVC5nZXRQbGF0Zm9ybSgpIGphdmFkb2MgaW5jb3JyZWN0IGZvciByZXR1cm4gZGVzY3JpcHRpb24gIA0KPGJyPjg5ODQ6IENUYWJGb2xkZXIuTUlOX1RBQl9XSURUSCBzaG91bGQgbm90IGJlIHN0YXRpYyAgDQo8YnI+OTAyMjogTGludXg6IFRyZWUgVmlld2VyIGRvZXMgbm90IGdldCBkZWZ1YWx0IFNlbGVjdGlvbiAgDQo8YnI+OTA3MjogVGFibGUgVHJlZSBkb2VzIG5vdCBwaWNrIHVwIHdpbmRvd3Mgc2V0dGluZ3MgY2hhbmdlcyAgDQo8YnI+OTA5MTogU3R5bGVkVGV4dCBpbiBTSU5HTEUgbW9kZSBzaG91bGQgbG9vayBtb3JlIGxpa2UgYSBUZXh0IHdpZGdldCAgDQo8YnI+OTE3MjogU1dUIEFkZHJlc3NCb29rIEV4YW1wbGUgY2FsbHMgdW5kZWZpbmVkIG1ldGhvZA0KPGJyPjk0MzI6IFRoZSBkb2MgZm9yIFRyYWNrZXIgd2lkZ2V0IHNob3VsZCBzcGVjaWZ5IHRoYXQgcmVjdGFuZ2xlcyBhcmUgaW4gc2NyZWVuIGNvb3JkaW5hdGVzDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjUgLSBUdWVzZGF5IEZlYnJ1YXJ5IDUsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMjQzMDogU29ydGluZyB0aGUgVGFza3MgTGlzdCBzaG91bGQgZGlzcGxheSBpY29uIGZvciBzb3J0IGtleS9vcmRlciAoMUdGNVRRTykNCjxicj40NDg1OiBEQ1IgLSBUYWJsZSBjb2x1bW4gaGVhZGVyIGRlY29yYXRpb24gY2FwYWJpbGl0eSBuZWVkZWQgKDFGT1FRTTgpDQo8YnI+NjAzNTogRGlmZmVyZW5jZSBpbiB0cmVlICJleHBhbmRlZCBzdGF0ZSIgYmV0d2VlbiBXaW5kb3dzIGFuZCBNb3RpZg0KPGJyPjY5ODM6IEJyb3dzZSBidXR0b24gaW4gSW1wb3J0LT5QbHVnaW5zIG5vdCB3b3JraW5nLiAgDQo8YnI+NzQwMDogU2luZ2xlIGxpbmUgdGV4dCBmaWVsZHMgbm90IGZpcmluZyAiS2V5IFByZXNzZWQiIGV2ZW50cyBmb3IgdGhlIEVudGVyLCBVcChhcnJvdyksIGFuZCBEb3duKGFycm93KSBrZXlzDQo8YnI+ODE3MzogQWNjZXNzaWJpbGl0eToga2V5Ym9hcmQtaW52b2tlZCBwb3B1cCBtZW51IG5vdCB1c2FibGUgIA0KPGJyPjgxOTY6IEFjY2Vzc2liaWxpdHk6IHNoaWZ0K0YxMCBkb2VzIG5vdCBkaXNwbGF5IHZpZXcgbWVudSAgDQo8YnI+ODI3MzogSG9yaXpvbnRhbCBzY29ybGxiYXIgZG9lcyBub3QgYWxsb3cgc2Nyb2xsaW5nIHdoZW4gcmVxdWlyZWQgIA0KPGJyPjgzOTY6IFdJTkNFOiBNZW51IGJhciBvYnNjdXJlcyBjb250cm9sIHdoZW4gY29udHJvbCBsb2NhdGlvbiBpcyAwLDANCjxicj44Mzk3OiBXSU5DRTogTWVudSBpdGVtIGNvbG9ycyBkb24ndCBtYXRjaCBtZW51IGJhciAgDQo8YnI+ODQxMjogV0lOQ0U6IEJhY2tncm91bmQgY29sb3Igb2YgYnV0dG9ucyBsb29rcyB3cm9uZyAgDQo8YnI+ODY0MDogR1A6IG9wZW5pbmcgU3luY2hyb25pemF0aW9uIHBlcnNwZWN0aXZlICANCjxicj44OTQyOiBXcm9uZyB0ZXh0IGluZGVudCBpbiBhIHRhYmxlIHdoZW4gdXNlIGltYWdlICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAyNCAtIFR1ZXNkYXkgSmFudWFyeSAyOSwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NjU0OiBWQUogaGFuZ3Mgd2hlbiBkcmFnZ2luZyBmcm9tIGZpbGUgbWFuYWdlciB0byB0aGUgZGVza3RvcC4gKDFHRFFGWjYpDQo8YnI+NDcyMDogRWNsaXBzZSBmcmVlemVzIGR1cmluZyBkcmFnICYgZHJvcCBvcGVyYXRpb24gKDFHRjdSUkgpICANCjxicj40NzI0OiBHUCAtIEZhdGFsIGFwcCBlcnJvciAtIHJlbmFtaW5nIHJlc291cmNlIG9uIGxpbnV4ICgxR0Y3VFhPKSAgDQo8YnI+NDczNjogRml4IHByaW50aW5nICgxR0ZXMkNXKSAgDQo8YnI+NDgxNzogTmVlZCBKYXZhRG9jIGNvbW1lbnRzIGZvciBTV1QgUGhvdG9uICgxR0pMRVUwKSAgDQo8YnI+NjgzNTogQ2hhcmFjdGVycyD25OUgYW5kIKMgZG9lc24ndCB3b3JrIGluIEphdmEgZWRpdG9yIG9uIFN3ZWRpc2ggIA0KPGJyPjgyNTU6IENsb3NpbmcgcGFpbnQgdmlld2VyIGNhdXNlcyBpbnRlcm5hbCBlcnJvciAgDQo8YnI+ODQxMDogQmxhY2sgY29sb3IgYmVjb21lIHRyYW5zcGFyZW50IGluIFRvb2xCYXIgaW1hZ2VzICANCjxicj44NTAzOiBTdHlsZWRUZXh0IC0gY2hlZXNlIGlmIHJlc2l6ZSBpbiB3b3JkIHdyYXAgdHJpZXMgdG8ga2VlcCBwYXJ0aWFsIHRvcCBsaW5lDQo8YnI+ODU0NzogSW50ZWxsaW1vdXNlIHNjcm9sbGluZyBkb2VzIG5vdCB3b3JrIGluIGVjbGlwc2UgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDIzYSAtIFRodXJzZGF5IEphbnVhcnkgMjQsIDIwMDIgKEVjbGlwc2UgTWlsZXN0b25lIDIpDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ3MDA6IE51bUxvY2sgYW5kIENhcHNMb2NrIGRpc2FibGUgYWNjZWxlcmF0b3JzICgxR0VURFQ5KSAgDQo8YnI+NjE4MDogV2FrZSBtZWNoYW5pc20gYnJva2VuIG9uIE1vdGlmICANCjxicj42ODczOiBEZWNvcmF0aW9ucy5zZXRJbWFnZSgpIHRocm93cyBOUEUgb24gV0lOQ0UgIA0KPGJyPjc4MDU6IEEgbmV3IEltYWdlRGF0YShmcm9tIGFuIElucHV0U3RyZWFtKSB0aHJvd2luZyBOUEUgIA0KPGJyPjgxMzM6IFdoZW4gdG9vbGJhciBoYXMgZm9jdXMsIGNhbid0IHVzZSBtbmVtb25pY3MgZm9yIEZpbGUgbWVudXMgIA0KPGJyPjgyMTM6IGV4Y2VwdGlvbjogd2lkZ2V0IGlzIGRpc3Bvc2VkICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAyMyAtIFR1ZXNkYXkgSmFudWFyeSAyMiwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NjEwOiBTdHlsZWRUZXh0IC0gRENSIC0gV29yZCB3cmFwICgxR0FCUzZDKSAgDQo8YnI+NDY0NDogTW91c2UgY2xpY2sgb24gYSBsaW5rIGRpc3BsYXllZCBpbiBlbWJlZGRlZCBJRTUgQWN0aXZlWCBpcyBub3QgcmVsaWFibGUgKDFHRDdUVDIpDQo8YnI+NTY2MDogU1dUIGRlZmF1bHQgZm9udCdzIG5lZWQgdG8gaG9ub3IgYWNjZXNhYmlsaXR5IHNldHRpbmdzICANCjxicj42MzI0OiBTV1QuQ0xPU0UgaW1wbGllcyByZW5kZXJpbmcgb2YgTWluaW1pemUgYW5kIE1heGltaXplIGJ1dHRvbnMgIA0KPGJyPjY5OTc6IFN0eWxlZFRleHQgLSBtYXJrIG5ldyBBUEkgIA0KPGJyPjcxMjM6IFNoZWxsIHNob3dzIHRoZSBtYXhpbWl6ZSBidXR0b24gZW5hYmxlZCB3aGVuIFNXVC5USVRMRSB8IFNXVC5CT1JERVIgfCBTV1QuQ0xPU0Ugc3R5bGUgcGFzc2VkDQo8YnI+NzM2MTogQWRkIGdldE9mZnNldEF0TGluZSBBUEkgIA0KPGJyPjc2MzI6IFRyZWUgd2lkZ2V0IGRvZXNuJ3Qgc2VsZWN0IGl0ZW0gd2l0aCBmb2N1cyBvbiByaWdodC1jbGljayAgDQo8YnI+Nzg0OTogTGFiZWxzIG9uIFdJTkNFIGRvbid0IHVzZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHBhcmVudCB3aGVuIGNvbG9yIGlzbid0IHNldA0KPGJyPjc4Njc6IERDUjogRGVsZXRlIGNoZWNrU3ViY2xhc3MgbWV0aG9kIGZyb20gRGlhbG9nICANCjxicj43OTU5OiBQb3RlbnRpYWwgcHJvYmxlbXMgd2hlbiBydW5uaW5nIG9uIGJpZyBlbmRpYW4gbWFjaGluZXMgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDIyIC0gVHVlc2RheSBKYW51YXJ5IDE1LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ2NjM6IEZhaWwgdG8gdGFiIHRoZSB2aWV3cy4gKDFHR1lWOFQpICANCjxicj40NzE4OiBUb29sIHRpcCBpcyBvcGVubmluZyB3aGVuIG9uIGRyYWdnaW5nLiAoMUdGNVo3WikgIA0KPGJyPjU4NjY6IENhbid0IG11bHRpc2VsZWN0IGluIFRyZWUgdXNpbmcga2V5Ym9hcmQgIA0KPGJyPjY1OTI6IEJveCBmb3IgY2hlY2tib3ggdGFibGUgaXRlbXMgaXMgdG9vIGxhcmdlIHdoZW4gdXNpbmcgbGFyZ2UgZm9udHMNCjxicj42NzcwOiBPbmx5IHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbiBzaG91bGQgc2VsZWN0IGluIGEgVGFibGUuICANCjxicj42ODUyOiBTdHlsZWRUZXh0IC0gdmVyaWZ5IGV2ZW50IGNoYXJhY3RlciBpbnZhbGlkIHZhbHVlICANCjxicj42OTQwOiBNZW51U2hvcnRjdXRzIG9ubHkgcmVzcG9uZCB0byBDdHJsLU4gIA0KPGJyPjcxOTA6IEN0cmwtUyBkb2VzIG5vdCB3b3JrICANCjxicj43NDU4OiBXaW5DRSAtIHRvcCBsZXZlbCBTaGVsbHMgY3JlYXRlZCB0aHJvdWdoIERpc3BsYXkuYXN5bmNleGVjIGNhbiBoYXZlIGluY29ycmVjdCBaLW9yZGVyDQo8YnI+NzQ1OTogQ2FyZXQgbGVhdmluZyBnYXJiYWdlICANCjxicj43NDg2OiBDYW5ub3QgdXNlIGtleWJvYXJkIFNoaWZ0IFNlbGVjdCBpbiBhIFRyZWUgIA0KPGJyPjc1NTk6IFNjcm9sbEJhciB0aHVtYiBpcyByZXNldCB3aGVuIFNjcm9sbEJhciBpcyBoaWRkZW4sIHRoZW4gc2hvd24NCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAyMSAtIFR1ZXNkYXkgSmFudWFyeSA4LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ0NDM6IExheW91dDogRXhjZXB0aW9ucyB3aGVuIGhvcml6b250YWxTcGFuID4gcmVtYWluaW5nIGNvbHVtbnMgKDFGRkM2WFopDQo8YnI+NDQ2MjogU2Nyb2xsQmFyIC0gdmJhci5zZXRNYXhpbXVtIGRvZXMgbm90IHdvcmsgYWZ0ZXIgaGJhciBpcyBoaWRkZW4gKGFuZCB2aWNlIHZlcnNhKSAoMUZJRzVDRykNCjxicj40NzIyOiBGaXJzdCBlZGl0b3IgdGFiIG1pc3NpbmcgY2xvc2UgYnV0dG9uICgxR0Y3UUlRKSAgDQo8YnI+NDc1NTogUmVidWlsZGluZyBsYXVuY2hlciBmcm9tIGFub3RoZXIgZGlyZWN0b3J5ICgxR0dOUkcwKSAgDQo8YnI+NjMxNTogU29tZSBwZXJzcGVjdGl2ZSBzYXZlIGNvbmZpcm1hdGlvbiBtZXNzYWdlcyBjdXQgb2ZmICANCjxicj42MzUyOiBFZGl0b3IgZG9lc24ndCBnZXQgYWN0aXZhdGVkIHdoZW4gcmV2ZWFsaW5nIGZpcnN0IG1hdGNoICANCjxicj42OTA4OiBNZW51IGhhbmRsZSBsZWFrIGluIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLk1lbnUuZGVzdHJveUl0ZW0oTWVudUl0ZW0pDQo8YnI+Njk0NTogQ2hpbGQgc2hlbGxzIG5vdCBkaXNwbGF5aW5nIG9uIFdpbkNFICANCjxicj42OTgyOiBDaGVja2VkVGFibGVzIGhhdmUgbm8gY2hlY2sgYm94ZXMgIA0KPGJyPjcwMDU6IE1pc3NpbmcgbWV0aG9kcyBpbiBTV1QvR1RLIGltcGxlbWVudGF0aW9uICANCjxicj43MDE4OiBUcmVlIGRvZXMgbm90IGhvbm9yIFNXVC5DSEVDSyBzdHlsZSAgDQo8YnI+NzA2ODogU2Nyb2xsQmFyLnNldFZpc2libGUodHJ1ZSkgZG9lcyBub3Qgd29yayBhZnRlciBjaGFuZ2luZyB2YWx1ZXMNCjxicj43MTUwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIHBhcnRpYWwgc3R5bGluZyBvZiBsaWdhdHVyZXMgYnVnICANCjxicj43MTkxOiBEaWFsb2dzIG5vdCBiaWcgZW5vdWdoIGZvciBjb250ZW50ICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAyMCAtIFR1ZXNkYXkgRGVjZW1iZXIgMTgsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDcxNTogRmlyc3QgaGVscCBjbGljayBvbiBhIGNoYXB0ZXIgaXMgaWdub3JlZCAoMUdGNVRWOSkgIA0KPGJyPjQ3ODQ6IE1JRiBGaWxlcyBzb21ldGltZSBmYWlsICgxR0k3SDdWKSAgDQo8YnI+NDc5NzogVGFibGUgZG9lcyBub3QgdXNlIFN5c3RlbSBmb250cyAoMUdJVjRQWikgIA0KPGJyPjY2MzU6IFdpbkNFOiBkZWNvcmF0aW9ucy5zZXRNZW51QmFyIGNhbiBiZSBzZXQgb25seSBvbmNlICANCjxicj42Njg1OiBTdHlsZWRUZXh0IC0gb24gc2V0Rm9udCBjYXJldCBub3QgYmVpbmcgcG9zaXRpb25lZCBjb3JyZWN0bHkgIA0KPGJyPjY3NzM6IFN0eWxlZFRleHQuY29tcHV0ZVNpemUgdXNlcyBkaXNwbGF5IHdpZHRoIHRvIGNhbGN1bGF0ZSBudW1iZXIgb2YgdmlzaWJsZSBsaW5lcw0KPGJyPjY3OTA6IFRvdWNoaW5nIGNvZGUgYXNzaXN0IHNjcm9sbGJhciBkdW1wcyBqYXZhY29yZSAgDQo8YnI+Njg2MzogUmVtYWluaW5nIGlzc3VlcyBpbiBlbXVsYXRlZCBDb29sQmFyIGFuZCBDb29sSXRlbSAgDQo8YnI+NjkzMzogU3dpdGNoaW5nIHRvIGhlbHAgcGVyc3BlY3RpdmUgY3Jhc2hlcyB0aGUgd29ya2JlbmNoICANCjxicj43MDE0OiBUcmVlIG5vdCBhY2NlcHRpbmcgY2hpbGRyZW4gIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDE5IC0gVHVlc2RheSBEZWNlbWJlciAxMSwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NDYxOiBTV1RFeGNlcHRpb24gc2hvdWxkIG92ZXJ3cml0ZSBwcmludFN0YWNrVHJhY2UoLi4pICgxR0xEVzZQKSAgDQo8YnI+NDQ5MzogQ2hlY2sgbXVsdGlsaW5ndWFsIHN1cHBvcnQgb24gV2luZG93cyAyMDAwICgxRlFGQ0JRKSAgDQo8YnI+NDYxMTogU3R5bGVkVGV4dCAtIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHMgZXhjZXB0aW9uIGluc2VydGluZyB0ZXh0IGluIGxpbmUgYnJlYWsgKDFHRUlEOEIpDQo8YnI+NDYyMDogV29ya2JlbmNoIGRvZXMgbm90IGNsb3NlIEFjdGl2ZVggY29udHJvbCdzIGZpbGUgaGFuZGxlICgxR0I3NkFaKQ0KPGJyPjQ2NjA6IE1vdmluZyAgDQo8YnI+NDcxOTogQmFja2dyb3VuZCBjb2xvdXIgb2Ygdmlld3MvZWRpdG9ycyAoMUdGNkM4WSkgIA0KPGJyPjQ3Mzk6IERDUjogUHJvdmlkZSBhdXRvLXNjcm9sbGluZyBhbmQgZXhwYW5zaW9uIGJ5IGRlZmF1bHQgaW4gdGhlIHRyZWUgZHVyaW5nIERORCAoMUdGVzdOUSkNCjxicj40NzY3OiBUYWIgRm9sZGVycyBjYW4gbm90IGJlIHRvZ2dsZWQgdXNpbmcga2V5cy4gKDFHSEZDWlUpICANCjxicj40NzgwOiBZQU06IENhbm5vdCByZWFkIHNvbWUgSlBFRyBmaWxlcyAoMUdJNlpFTikgIA0KPGJyPjQ3ODM6IENhbid0IHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBuYXZpZ2F0b3IgKDFHSTdHVEcpICANCjxicj41MDcxOiBTaGlmdC1UQUIgZG9lc24ndCBnZW5lcmF0ZSBwcm9wZXIgZXZlbnQgIA0KPGJyPjU2Nzc6IEhpZXJhcmNoeSBvdXRsaW5lIGhhcyBlbXB0eSBzcGFjZSAgDQo8YnI+NTg1NzogSW1hZ2UuZ2V0SW1hZ2VEYXRhIG5lZWRzIHRvIHN1cHBvcnQgMTUgYml0IGNvbG9yIGRlcHRoICANCjxicj42NDcyOiBUYWJsZSB3aWRnZXQgaGFzIGVtcHR5IGVudHJpZXMgIA0KPGJyPjY1NzI6IERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvZiBMaXN0cyBhbmQgQ29tYm9zIG5vdCBjb25zaXN0ZW50IHdpdGggV2luMksNCjxicj42NjUxOiBUZXh0LnNldFNlbGVjdGlvbigpIGRvZXNuJ3QgYWN0dWFsbHkgZGlzcGxheSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IGZvciBTV1QuU0lOR0xFDQo8YnI+NjY1NDogVGV4dC5nZXRTZWxlY3Rpb24oKSBub3QgcmV0dXJuaW5nIGNvcnJlY3QgaW5mbyBvbiBXSU5DRSAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMTggLSBUdWVzZGF5IERlY2VtYmVyIDQsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDQxOTogV2lkZ2V0cyAtIE1pc3NpbmcgZmVhdHVyZXMgYW5kIEFQSSBvbiBNT1RJRiAoMUZCUEtDVCkgIA0KPGJyPjQ0OTQ6IENvbG9yRGlhbG9nIGRvZXNuJ3Qgb3BlbiBpbiBWQS9KYXZhIHdpdGggSkRLIDEuMiAoMUZRR002SCkgIA0KPGJyPjQ4MzM6IFJlbW92ZSBmb2N1cyBidXR0b24gZnJvbSBUYWJsZSAoMUdLN01LNCkgIA0KPGJyPjQ4NjA6IFN0eWxlZFRleHQgLSBTdHlsZWRUZXh0QmlkaSwgQmlkaVV0aWwgbmVlZCBkb2MgKDFHTDMyQzgpICANCjxicj42MjA0OiBLZXlMaXN0ZW5lciBvbiB0YWJsZSBkb2VzIG5vdCB3b3JrLiAgDQo8YnI+NjQzODogU3R5bGVkVGV4dCAtIGJpZGkgLSBpc0JpZGkgdGVzdCBub3Qgd29ya2luZyBvbiBYUCAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMTcgLSBUdWVzZGF5IE5vdmVtYmVyIDI3LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ3MTQ6IExhYmVsIGRyYXdzIHdyb25nIGJhY2tncm91bmQgd2hlbiBpbWFnZSBpcyBzZXQgKDFHRjBJQzYpICANCjxicj41NTAzOiBUYWJiaW5nIGJyb2tlbiAgDQo8YnI+NTk4NjogQmlkaVV0aWwgaGFuZGxpbmcgb2YgV01fSU5QVVRMQU5HQ0hBTkdFIG5lZWRzIHRvIGJlIGZpeGVkDQo8YnI+NTk5MjogQ2hhbmdpbmcgSmF2YSBFZGl0b3IgZm9udCBpbiBQcmVmZXJlbmNlIFBhZ2UgbWFrZXMgRWNsaXBzZSBoYW5nIG9yIGNyYXNoDQo8YnI+NjE3MTogTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gSW1hZ2VMb2FkZXIgc2F2ZSBtZXRob2Qgd2l0aCBTV1QuSU1BR0VfSlBFRw0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDE1IC0gVHVlc2RheSBOb3ZlbWJlciAyMCwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NzkxOiBTdHlsZWRUZXh0IGRvZXMgbm90IHN3aXRjaCBjb2xvdXIgKDFHSUxISVcpICANCjxicj40OTU2OiBTdHlsZWRUZXh0IC0gY2hhbmdlIFN0eWxlZFRleHRCaWRpLnRvU3RyaW5nIHRvIGNvbmZvcm0gd2l0aCBzdGFuZGFyZCBTV1QgZm9ybWF0DQo8YnI+NTU5OTogU3R5bGVkVGV4dCAtIHJlZHJhd1JhbmdlIGRvZXMgbm90IGNoZWNrIHJhbmdlICANCjxicj41NzIyOiBTZWxlY3RpbmcgZm9udCBjcmFzaGVzIGVjbGlwc2Ugd2l0aCBhIGphdmFjb3JlICANCjxicj41ODE1OiBTdHlsZWRUZXh0IC0gc2V0Rm9udCByZWZyZXNoIHByb2JsZW0gIA0KPGJyPjU4NDY6IENvbWJvLnNlbGVjdCBkb2VzIG5vdCBpZ25vcmUgYW4gb3V0IG9mIHJhbmdlIGluZGV4DQo8YnI+NTk5MDogUHJpbnRpbmcgc2luZ2xlIHBhZ2UgcHJpbnRzIGVudGlyZSBkb2N1bWVudCAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMTQgLSBUaHVyc2RheSBOb3ZlbWJlciAxNSwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NTQyOiBNZW51IGFjY2VsZXJhdG9ycyBDVFJMKyAvIGFuZCBDVFJMICsgU0hJRlQgKyAvIGRvbid0IHdvcmsgKDFGWUFGOFYpDQo8YnI+NDc1NDogQXJyb3cga2V5cyBub3QgYWNjZXB0ZWQgYXMga2V5Ym9hcmQgYWNjZWxlcmF0b3JzICgxR0dNNFUzKSAgDQo8YnI+NTgxNTogU3R5bGVkVGV4dCAtIHNldEZvbnQgcmVmcmVzaCBwcm9ibGVtICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAxMyAtIFR1ZXNkYXkgTm92ZW1iZXIgMTMsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDg0NjogU3R5bGVkVGV4dCAtIGJpZGkgLSBwYXJ0aWFsIHN0eWxpbmcgb2YgbGlnYXR1cmVzICgxR0wzQVdUKSAgDQo8YnI+NDg1OTogU3R5bGVkVGV4dCAtIGJpZGkgLSBwcm92aWRlIHNvbHV0aW9uIGZvciBiaWRpIGNvbG9yaW5nIGhhY2sgKDFHTDJVTkMpDQo8YnI+NTQ5MTogU3R5bGVkVGV4dCAtIGdldFN0eWxlUmFuZ2VBdE9mZnNldCBhbGxvd3Mgb2Zmc2V0ID09IGdldENoYXJDb3VudA0KPGJyPjU0OTc6IFN0eWxlZFRleHQgLSBFeHRlbmRlZE1vZGlmeSBldmVudCBub3Qgc2VudCBvbiBzZXRUZXh0DQo8YnI+NTYwMjogU3R5bGVkVGV4dCAtIHBhZ2UgZG93biBjYXVzZXMgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGluIGludmlzaWJsZS9zbWFsbCB3aWRnZXQNCjxicj41NjE1OiBTdHlsZWRUZXh0IC0gd2luZG93IHN0YXJ0IGRvZXMgbm90IGFsd2F5cyB3b3JrICANCjxicj41NjIyOiBTdHlsZWRUZXh0IC0gcHJpbnQgY2F1c2VzIE5QRSB3aGVuIGludm9rZWQgb24gZW1wdHkgd2lkZ2V0ICANCjxicj41NjI2OiBTdHlsZWRUZXh0IC0gcHJpbnQgZG9lcyBub3QgY2hlY2sgZm9yIG51bGwgUHJpbnRlciBhcmd1bWVudCAgDQo8YnI+NTYzMzogU3R5bGVkVGV4dCAtIHJlcGxhY2VUZXh0UmFuZ2UgYW5kIHNldFRleHQgZG8gbm90IGNoZWNrIGZvciBudWxsIGFyZ3VtZW50DQo8YnI+NTY2NDogU3R5bGVkVGV4dCAtIFNpbmdsZSBsaW5lIHNob3VsZCBub3QgYWNjZXB0IHRhYiAgDQo8YnI+NTY3MzogU3R5bGVkVGV4dCAtIFNJTkdMRSBsaW5lIG1vZGUgc3RpbGwgYWxsb3dzIHNvbWUgbXVsdGkgbGluZSBjdXJzb3IgbmF2aWdhdGlvbg0KPGJyPjU3MjI6IFNlbGVjdGluZyBmb250IGNyYXNoZXMgZWNsaXBzZSB3aXRoIGEgamF2YWNvcmUNCjxicj41NzI1OiBQbGVhc2UgcmVuYW1lICJFY2xpcHNlIExhdW5jaGVyIiAgDQo8YnI+NTgwMjogRUM6IENvbnRyb2xFeGFtcGxlIGRvZXMgbm90IHJ1biBvbiBTb2xhcmlzICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAxMiAtIE1vbmRheSBOb3ZlbWJlciA1LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjU0NzA6IFVzZXIgaXMgbG9zdCB3aGVuIHRyeWluZyB0byBtb3ZlIHZpZXdzIGFyb3VuZCAgDQo8YnI+NTQ4NDogVGFiIG5vIGxvbmdlciB0cmF2ZXJzZXMgYmV0d2VlbiB3aWRnZXRzISEhICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAxMSAtIFRodXJzZGF5IE5vdmVtYmVyIDEsIDIwMDENCjxoMj4NCjxhIE5BTUU9IkFQSSBDaGFuZ2VzIj48L2E+QVBJIENoYW5nZXM8L2gyPg0KPGNvZGU+Rm9udERhdGEuc2V0TG9jYWxlKExvY2FsZSk8L2NvZGU+IGhhcyBiZWVuIGNoYW5nZWQgdG8gPGNvZGU+Rm9udERhdGEuc2V0TG9jYWxlKFN0cmluZyk8L2NvZGU+Lg0KPHVsPg0KPGxpPg0KSjJTRSBjb2RlIGNhbiBzaW1wbHkgY3JlYXRlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBhbmQgaW52b2tlIDxjb2RlPnRvU3RyaW5nKCk8L2NvZGU+IHRvIHBhc3MgaXQgb250byB0aGUgbmV3IDxjb2RlPnNldExvY2FsZTwvY29kZT4uDQo8bGk+DQpDTERDIGNvZGUgd2lsbCBoYXZlIHRvIGZvcm0gYSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGZvcm1hdCBzcGVjaWZpZWQgaW4gdGhlIEoyU0UgamF2YWRvYyBvZiA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlLnRvU3RyaW5nKCk8L2NvZGU+Lg0KPC91bD4NCkV4YW1wbGU6DQo8YmxvY2txdW90ZT48Y29kZT48cHJlPg0KTG9jYWxlW10gbG9jYWxlcyA9IHsNCglMb2NhbGUuVVMsIG5ldyBMb2NhbGUoIml3IiwgIklMIiksIG5ldyBMb2NhbGUoImFyIiwgIlNBIiksIG5ldyBMb2NhbGUoInJ1IiwgIlJVIiksDQoJTG9jYWxlLkdFUk1BTiwgbmV3IExvY2FsZSgiamEiLCAiSlAiKSwNCgludWxsLA0KfTsNCi8vIG9sZCBjb2RlOiBmZC5zZXRMb2NhbGUobG9jYWxlc1tpXSk7DQpTdHJpbmcgbG9jYWxlID0gKGxvY2FsZXNbaV0gIT0gbnVsbCA/IGxvY2FsZXNbaV0udG9TdHJpbmcoKSA6IG51bGwpOw0KZmQuc2V0TG9jYWxlKGxvY2FsZSk7DQo8L3ByZT48L2NvZGU+PC9ibG9ja3F1b3RlPjwvcD4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQo0NjY0OiBTdHlsZWRUZXh0IGRvZXMgbm90IGNvbXB1dGUgY29ycmVjdCB0ZXh0IHdpZHRoICgxR0VMSlhEKSAgDQo8YnI+NDgzMjogR2VybWFuOiBGb250cyBjYW5ub3QgaGFuZGxlIEdlcm1hbiBjaGFyYWN0ZXJzICgxR0tNSEhZKSAgDQo8YnI+NDk2MTogUHJlZmVyZW5jZXMgZGlhbG9nIGRpc2FwcGVhcnMgd2hlbiB5b3UgY2xpY2sgb24gY2VydGFpbiBwYWdlcw0KPGJyPjUxODA6IE9wZW4gTW90aWYgZm9yIExpbnV4IHNoYXJlZCBsaWJyYXJpZXMgYXJlIGR1cGxpY2F0ZWQgaW4gRWNsaXBzZSAgDQo8YnI+NTMwNDogU3R5bGVkVGV4dCAtIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0QmlkaS5zZWdtZW50ZWRSYW5nZXNGb3INCjwvYmxvY2txdW90ZT4NCg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDEwIC0gVGh1cnNkYXkgT2N0b2JlciAyNSwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJCZWhhdmlvdXIgY2hhbmdlIj48L2E+QmVoYXZpb3VyIGNoYW5nZTwvaDI+DQo8cD4NCjEpIFRoZSBEcmFnIFVuZGVyIGVmZmVjdCBvZiBzY3JvbGxpbmcgYW5kIGV4cGFuZGluZyBpdGVtcyBhcyB5b3UgZHJhZyBvdmVyIHRoZSA8Y29kZT5UcmVlPC9jb2RlPiBvciA8Y29kZT5UYWJsZTwvY29kZT4gaGFzIGJlZW4gYWRkZWQuICBUbyBlbmFibGUgdGhpcyBkcmFnIHVuZGVyIGVmZmVjdCwgaW4gdGhlIDxjb2RlPkRyYWdPdmVyPC9jb2RlPiBldmVudCBzZXQgdGhlIDxjb2RlPmV2ZW50LmZlZWRiYWNrPC9jb2RlPiB0byBoYXZlIGEgYml0d2lzZSBjb21iaW5hdGlvbiBvZiA8Y29kZT5ETkQuRkVFREJBQ0tfU0NST0xMLCBETkQuRkVFREJBQ0tfRVhQQU5EPC9jb2RlPiBhbmQgKDxjb2RlPkRORC5GRUVEQkFDS19TRUxFQ1QsIERORC5GRUVEQkFDS19JTlNFUlRfQkVGT1JFLCBETkQuRkVFREJBQ0tfSU5TRVJUX0FGVEVSPC9jb2RlPikgLSB3aGVyZSB0aGUgbGFzdCB0aHJlZSBpdGVtcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLg0KPGJsb2NrcXVvdGU+PGNvZGU+PHByZT4NCnRhcmdldC5hZGREcm9wTGlzdGVuZXIgKG5ldyBEcm9wVGFyZ2V0QWRhcHRlcigpIHsNCglwdWJsaWMgdm9pZCBkcmFnT3ZlcihEcm9wVGFyZ2V0RXZlbnQgZXZlbnQpew0KCQlldmVudC5mZWVkYmFjayA9IERORC5GRUVEQkFDS19TRUxFQ1QgfCBETkQuRkVFREJBQ0tfRVhQQU5EIHwgRE5ELkZFRURCQUNLX1NDUk9MTDsNCgl9DQp9DQo8L3ByZT48L2NvZGU+PC9ibG9ja3F1b3RlPjwvcD4NCjxwPg0KMikgT24gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBpdCBpcyBwcmVmZXJyZWQgdG8gbW92ZSBmaWxlcyBpbiBhIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uIHJhdGhlciB0aGFuIGZvciB0aGUgZHJvcCB0YXJnZXQgdG8gbWFrZSBhIGNvcHkgb2YgdGhlIGZpbGUgYW5kIHRoZSBkcmFnIHNvdXJjZSB0byBkZWxldGUgdGhlIG9yaWdpbmFsIGZpbGUuICBUaGUgb3BlcmF0aW9uIG9mIG1vdmluZyB0aGUgZmlsZSBpcyBwcmVmb3JtZWQgYnkgdGhlIGRyb3AgdGFyZ2V0LiAgRm9yIHRoZXNlIGNhc2VzLCB0aGUgbmV3IGRyb3AgdHlwZSA8Y29kZT5ETkQuRFJPUF9UQVJHRVRfTU9WRTwvY29kZT4gaGFzIGJlZW4gYWRkZWQuICBUaGUgRWNsaXBzZSA8Y29kZT5Ecm9wVGFyZ2V0PC9jb2RlPiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYmVoYXZpb3VyIGJ1dCB0aGUgRWNsaXBzZSA8Y29kZT5EcmFnU291cmNlPC9jb2RlPiBjYW4gcmVjb2duaXplIHRoaXMgc2NlbmFyaW8uICBJZiBhbm90aGVyIGFwcGxpY2F0aW9uIGhhcyBjaG9zZW4gdG8gbW92ZSB0aGUgZmlsZSByYXRoZXIgdGhhbiBjb3B5L2RlbGV0ZSwgdGhlIDxjb2RlPkRyYWdGaW5pc2hlZDwvY29kZT4gZXZlbnQgb24gdGhlIDxjb2RlPkRyYWdTb3VyY2U8L2NvZGU+IHdpbGwgaGF2ZSBhbiA8Y29kZT5ldmVudC5kZXRhaWw8L2NvZGU+IHZhbHVlIG9mIDxjb2RlPkRORC5EUk9QX1RBUkdFVF9NT1ZFPC9jb2RlPi4NCjxibG9ja3F1b3RlPjxjb2RlPjxwcmU+DQpzb3VyY2UuYWRkRHJhZ0xpc3RlbmVyIChuZXcgRHJhZ1NvdXJjZUFkYXB0ZXIgKCkgew0KCXB1YmxpYyB2b2lkIGRyYWdGaW5pc2hlZChEcmFnU291cmNlRXZlbnQgZXZlbnQpIHsNCgkJaWYgKGV2ZW50LmRldGFpbCA9PSBETkQuRFJPUF9UQVJHRVRfTU9WRSkgew0KCQkJLy8gY2xlYW4gdXAgcHJlc2VudGF0aW9uIGJ1dCBkbyBub3QgZGVsZXRlIHVuZGVybHlpbmcgZmlsZQ0KCQl9DQoJfQ0KfQ0KPC9wcmU+PC9jb2RlPjwvYmxvY2txdW90ZT48L3A+DQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KMTc2NzogRGlzcGxheSBBU0NJSSBmb3IgdmFsdWVzIGdyZWF0ZXIgdGhhbiAxMjcgZmFpbHMgKDFHTEU4STUpICANCjxicj40NzI1OiBGb250RGF0YSBzcGVjIHNob3VsZCBkaXNhbGxvdyBudWxsIG5hbWUgKDFHTDM0SDMpICANCjxicj40ODQ0OiBUYWIgYXBwZWFycyBuYXJyb3dlciB0aGFuIHNwYWNlICgxR0wyV1RZKSAgDQo8YnI+NDg1MjogR2VybWFuOiBDYW5ub3Qgc3RhcnQgRWNsaXBzZSBpbiBMaW51eCA3LjIgKDFHS1lZOTkpICANCjxicj40ODY1OiBUYWJsZVRyZWVFZGl0b3IuZ2V0SXRlbSByZXR1cm5zIGFuIGl0ZW0gYWZ0ZXIgc2V0dGluZyBpdCB0byBudWxsICgxR0xFMElRKQ0KPGJyPjQ5MzI6IFN0eWxlZFRleHRCaWRpIGhhcyBlcXVhbHMgYnV0IG5vIGhhc2hDb2RlIG1ldGhvZCAgDQo8YnI+NDk1NzogU3R5bGVkVGV4dCAtIGltcGxlbWVudCBTdHlsZWRUZXh0QmlkaS5pc0xpZ2F0ZWQgIA0KPGJyPjUxMzI6IFN0eWxlZFRleHQgLSByZW1vdmUgaGFyZGNvZGVkIG1hcmdpbiAgDQo8YnI+NTE3ODogQ2hhbmdlIEJpZGlVdGlsIGNhbGxzIHRvIGhhbmRsZSB0cnVlIFVuaWNvZGUvV2luZG93cyBDRSBjaGFuZ2VzDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMDkgLSBUaHVyc2RheSBPY3RvYmVyIDE4LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KNDQ0NDogRVdUIC0gaW5jb3JyZWN0IHNlbGVjdGlvbiBmZWVkYmFjayB3aGVuIHRoZSBpdGVtJ3MgdGV4dCBpcyBjaGFuZ2VkICgxRkZQM1UyKQ0KPGJyPjQ0NDY6IERDUiAtIEdyaWRCYWdMYXlvdXQgY29tcGF0aWJsZSBMYXlvdXRNYW5hZ2VyICgxRkdDUE8yKSAgDQo8YnI+NDc2MjogU3R5bGVkVGV4dCAtIGRlZmF1bHQgbGluZVN0eWxlciByZW1vdmUgbGluZSBiYWNrZ3JvdW5kIGNvbG9yIGhhY2sgKDFHSEJNVVYpDQo8YnI+NDgxOTogU3R5bGVkVGV4dCAtIGJpZGkgLSBjdXJzb3IgbmF2aWdhdGlvbiAoMUdKTEtTTikgIA0KPGJyPjQ4MjA6IFN0eWxlZFRleHQgd2l0aCBzdHlsZSBTSU5HTEUgZG9lcyBub3QgaGFuZGxlIENSL0xGIHdlbGwgKDFHSk0yWjUpDQo8YnI+NDg1NTogU2V2ZXJlOiBDaGVjayBib3hlcyBhcmUgYmxhY2sgKDFHTDBYU0kpICANCjxicj40OTA5OiBFQzogQ29tYm8uc2V0VGV4dCBkb2Vzbid0IHdvcmsgb24gTGludXggIA0KPGJyPjQ5MTA6IEVDOiBDb21iby5zZWxlY3QoKSBmaXJlcyBhIHNlbGVjdGVkIGV2ZW50IG9uIExpbnV4IG9ubHkgIA0KPGJyPjUwNDU6IENvbnRyb2wubW92ZUFib3ZlKCkgdGhyb3dzIE5QRSBpZiBhcmd1bWVudCBpcyBudWxsICANCjwvYmxvY2txdW90ZT4NCg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDA4IC0gVGh1cnNkYXkgT2N0b2JlciAxMSwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KDQo8YmxvY2txdW90ZT4NCjFHTERRWUI6IFNXVDpXSU4gLSBUZXh0IHdpZGdldCB3aXRoIERORCBlbmFibGVkLCBNb3VzZURvd24gYnV0IG5vIE1vdXNlVXANCjxicj4xR0xBREJLOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGdldE9mZnNldEF0TG9jYXRpb24gc2hvdWxkIHRocm93IGV4Y2VwdGlvbg0KPGJyPjFHTDRaVkU6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gZ2V0T2Zmc2V0QXRMb2NhdGlvbihnZXRMb2NhdGlvbkF0T2Zmc2V0KE4pKSAhPSBODQo8YnI+MUdLTzZOWTogU1dUOkFMTCAtIEJhY2tzcGFjaW5nIGluIFN0eWxlZFRleHQgZG9lcyBub3QgZmlyZSBzZWxlY3Rpb24gY2hhbmdlZA0KPGJyPjFHS0IxT0M6IElUUEpVSTpBTEwgLSBFcnJvciBpbiBKYXZhRG9jIGhvdmVyIGhlbHANCjxicj4xR0s5QVBJOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBudW1iZXJzLG1peGVkIEx0b1IvUnRvTCB0ZXh0IGFuZCBjYXJldCBwb3NpdGlvbmluZw0KPGJyPjFHSkxRMTY6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIGJhY2tzcGFjZSBhbmQgZGVsZXRlIGJlaGF2aW9yDQo8YnI+MUdJSzdENDogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBTZWxlY3Rpb24gY2xlYXJlZCB3aGVuIGRlbGV0aW9uIGRpc2FsbG93ZWQgYnkgdmVyaWZ5IGxpc3RlbmVycw0KPGJyPjFHRE9NQkk6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSByZWRyYXdSYW5nZSgpIGRvZXNuJ3QgY2hlY2tXaWRnZXQNCjxicj4xR0RLSzNSOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gc2V0Q2FyZXRPZmZzZXQgYW5kIGxpbmUgZGVsaW1pdGVycyBidWcNCjxicj4xRk1SUU9UOiBTV1Q6QUxMIC0gTm8gbnVsbCBhcmd1bWVudCBjaGVja3MgaW4gRGlhbG9nIGNvbnN0cnVjdG9ycw0KPC9ibG9ja3F1b3RlPg0KDQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMDcgLSBUaHVyc2RheSBPY3RvYmVyIDQsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0taSDc0OiBJVFBKVUk6V0lOMjAwMCAtIERpc2FwcGVhcmluZyBTdG9wIGljb24NCjxicj4xR0taOENWOiBTV1Q6V0lOTlQgLSBzZXRTZWxlY3Rpb24gdHJpZ2dlcnMgU2VsZWN0aW9uQ2hhbmdlZCBldmVudA0KPGJyPjFHS1U0QzU6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIHNjcm9sbGluZyB0byBzaG93IGN1cnNvciBzaG91bGQgdGFrZSBjdXJzb3IgZGlyZWN0aW9uIGludG8gYWNjb3VudA0KPGJyPjFHS1BZTUs6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBiaWRpIC0gY2FyZXQgbW92ZXMgd2hlbiBzd2l0Y2hpbmcga2V5Ym9hcmQgZnJvbSBIZWJyZXcgdG8gQXJhYmljDQo8YnI+MUdLT0dRTzogU1dUOkFMTCAtIEphdmFkb2M6IHNldFNlbGVjdGlvbiBpbiBCdXR0b24gYW5kIFRvb2xJdGVtDQo8YnI+MUdLTTJPNTogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHMgZXhjZXB0aW9uIGluIFN0eWxlZFRleHRCaWRpLmlzUmlnaHRUb0xlZnQNCjxicj4xR0tNMTkzOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gYmlkaSBhdXRvc2Nyb2xsIGxlZnQgZG9lcyBub3QgYWx3YXlzIHNjcm9sbCBhbGwgdGhlIHdheSB0byB0aGUgbGVmdA0KPGJyPjFHS0tDMFU6IFNXVDpBTEwgLSBUcmFja2VyIGNhbGxzIE9TLkRpc3BhdGNoTWVzc2FnZShtc2cpIG9uIHdpbmRvd3MgYnV0IGRvZXMgbm90IG9uIExpbnV4Lg0KPGJyPjFHSVZBWFg6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gRWRpdG9ycyBzaG91bGQgc3VwcG9ydCBzaGlmdC1iYWNrc3BhY2UNCjxicj4xR0VMUTE0OiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gRGVmYXVsdENvbnRlbnQgLSBoYW5kbGUgd2VpcmQgbGluZSBkZWxpbWl0ZXIgY2FzZXMNCjxicj4xR0U4TEcwOiBTV1Q6TGludXggLSBUb29sYmFyIGlzIG5vdCBzaG93aW5nIHRoZSBzZXBhcmF0b3JzLg0KPC9ibG9ja3F1b3RlPg0KDQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMDYgLSBUaHVyc2RheSBTZXB0IDI3LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KMUdIV0ExOTogU1dUOldJTk5UIC0gUHJvYmxlbSB3aXRoIGNhbGxiYWNrcyBmcm9tIENDb21ibw0KPGJyPjFHSEZEUFY6IFNXVDpXSU4yMDAwIC0gU2V0dGluZyBzZWxlY3Rpb24gaW4gVGFibGUgZG9lcyBub3QgdXBkYXRlIGZvY3VzIGl0ZW0NCjxicj4xR0Y2NDRWOiBJVFBVSTpMaW51eCAtIFVuem9vbSBpcyBjaGFuZ2luZyB0aGUgYWN0aXZlIGVkaXRvci4NCjxicj4xR0tNM1hTOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gYmlkaSBhdXRvc2Nyb2xsIGxlZnQ6IHNlbGVjdGlvbiByZXNldCBvbiBtb3VzZSBtb3ZlDQo8L2Jsb2NrcXVvdGU+DQoNCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwNSAtIEZyaWRheSBTZXB0IDIxLCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KMUdLMDlaMDogU1dUOkxpbnV4IC0gc2V0RW5hYmxlZChmYWxzZSkgaGFzIG5vIGVmZmVjdCBvbiBhVG9vbGJhcg0KPGJyPjFHSlpaUzY6IFNXVDpMaW51eCAtIEZpbGUgRGlhbG9nIHJldHVybnMgYSBkaXJlY3RvcnkNCjxicj4xR0Y3U01DOiBJVFBVSTpMaW51eCAtIFdyb25nIGJnIGZvciBjbG9zZSBidXR0b24gb24gZWRpdG9yIHRhYg0KPC9ibG9ja3F1b3RlPg0KDQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMDQgLSBUaHVyc2RheSBTZXB0IDEzLCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IkFQSSBCZWhhdmlvdXIgY2hhbmdlIj48L2E+QVBJIEJlaGF2aW91ciBjaGFuZ2U8L2gyPg0KVGhlIGJlaGF2aW91ciBvZiBkaXNwb3NlIGZvciBHQ3MgaGFzIGJlZW4gbW9kaWZpZWQgc3VjaCB0aGF0IGF0dGVtcHRpbmcgdG8gZGlzcG9zZSBvZg0KYSBHQyBvbiBhIGNvbnRyb2wgPGVtPmFmdGVyPC9lbT4gdGhlIGNvbnRyb2wgaGFzIGJlZW4gZGlzcG9zZWQgd2lsbCBnZW5lcmF0ZSBhbg0KU1dURXhjZXB0aW9uLiAgVGhpcyBmaXhlcyBhbiBPUyByZXNvdXJjZSBsZWFrIGFuZCBwb3RlbnRpYWwgR1BGIHNpdHVhdGlvbi4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0pVQUtMOiBTV1Q6TmV1dHJpbm8gLSBDb250cm9sLmludGVybmFsX25ld19HQygpIG5lZWRzICFpc1ZhbGlkV2lkZ2V0KCkgY2hlY2sNCjxicj4xR0pONTJOOiBTV1Q6TGludXggLSBUZXh0IHByaW50cyBzeXN0ZW0gZXJyb3IgbWVzc2FnZSBmb3IgaG9yaXpvbnRhbCBzY3JvbGxiYXINCjxicj4xR0pCT0FWOiBTV1Q6QUxMIC0gU2Nyb2xsZWRDb21wb3NpdGUgYnVncw0KPGJyPjFHSVhFTEk6IFNXVDpBTEwgLSBOZWVkIENhcmV0IHRvIGFsbG93IGJpdG1hcHMgc28gYmlkaSBjYXJldCBjYW4gYmUgY3JlYXRlZA0KPGJyPjFHSTVPMVQ6IFNXVDpXSU5OVCAtIENvbXBvc2l0ZS5zZXRGb2N1cyB0YWtlcyBmb2N1cyB3aGVuIGl0IHNob3VsZCBub3QNCjxicj4xR0hPTkQ3OiBTV1Q6V0lOMjAwMCAtIFNlbGVjdGlvbiBwcm9ibGVtIHdpdGggc2luZ2xlLXNlbGVjdGlvbiB0cmVlcw0KPGJyPjFHSEc5OTA6IFNXVDpBTEwgLSBQcm9iYWJsZSBidWcgaW4gU2xpZGVyIHBhZ2UgaW5jcmVtZW50IHNldHRpbmcNCjxicj4xR0VOSjYwOiBTV1Q6QUxMIC0gU2Nyb2xsZWRDb21wb3NpdGUgc2hvdWxkIGluY2x1ZGUgZXhhbXBsZSBpbiBpdHMgY2xhc3MgY29tbWVudA0KPGJyPjFHRUE3Szc6IElUUFVJOkxpbnV4IC0gRGVmYXVsdCBidXR0b24gbm90IHdvcmtpbmcNCjwvYmxvY2txdW90ZT4NCg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDAzIC0gRnJpZGF5IFNlcHQgMDcsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDI+DQoNCjxibG9ja3F1b3RlPg0KRm9udERhdGEuc2V0TG9jYWxlKGphdmEudXRpbC5Mb2NhbGUpIGFkZGVkDQo8YnI+Q2FyZXQuZ2V0SW1hZ2UoKSBhZGRlZA0KPGJyPkNhcmV0LnNldEltYWdlKEltYWdlKSBhZGRlZA0KPGJyPkdDLmZpbGxHcmFkaWVudFJlY3RhbmdsZShpbnQsIGludCwgaW50LCBpbnQsIGJvb2xlYW4pIGFkZGVkDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KMUdKTTdLTTogU1dUOkxpbnV4IC0gVGFibGUgYW5kIFRyZWUgcmV0dXJuIGEgZGlmZmVyZW50IHNpemUgZm9yIGV2ZXJ5IHNlY29uZCBjYWxsIHRvIGNvbXB1dGVTaXplDQo8YnI+MUdKTEtIRTogU1dUOlNQQVJDIC0gR1Agb24gIkluc3RhbGxlZCBKUkVzIiBwcmVmZXJlbmNlIHBhZ2UNCjxicj4xR0pMSzYzOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBrZXlib2FyZCBzd2l0Y2hpbmcNCjxicj4xR0pMRTM2OiBTV1Q6V0lOTlQgLSBBbHBoYSBkYXRhIHJlZHJhd2luZyBpbXByb3Blcmx5IGFmdGVyIG9jY2x1c2lvbg0KPGJyPjFHSkEyTDc6IFNXVDpXSU4gLSBEaWZmZXJlbnQgYmVoYXZpb3IgZm9yIEdDLmRyYXdTdHJpbmcoKSBhcmdzIG9uIFdpbiB2cy4gUGhvdG9uDQo8YnI+MUdJWjBQNjogU1dUOldJTk5UIC0gR0MuZHJhd0ltYWdlKCkgcHJvYmxlbSB3aXRoIHRyYW5zcGFyZW50IHBpeGVscw0KPGJyPjFHSVhFTEk6IFNXVDpBTEwgLSBOZWVkIENhcmV0IHRvIGFsbG93IGJpdG1hcHMgc28gYmlkaSBjYXJldCBjYW4gYmUgY3JlYXRlZA0KPGJyPjFHSTdGUUY6IFNXVDpBTEwgLSBDYW4ndCBzZXQgZm9jdXMgdG8gVGFza3MgVmlldyBieSBLZXlib2FyZA0KPGJyPjFHSTdFQkw6IFNXVDpMaW51eCAtIGFwaSB0eXBvOiBUb29sSXRlbT4+Z2V0RGlzYWJsZWRtYWdlKCkNCjxicj4xR0kzUDg2OiBTV1Q6QUxMIC0gU2VtYW50aWMgZGlmZmVyZW5jZXMgYmV0d2VlbiBlbXVsYXRlZCBUYWJsZSBhbmQgVHJlZSBjb2RlYmFzZSBvbiBNb3RpZiBhbmQgUGhvdG9uDQo8YnI+MUdJMVdFQTogU1dUOk5ldXRyaW5vIC0gVGV4dCBzZWxlY3Rpb24gY29kZSBub3Qgd29ya2luZyBjb3JyZWN0bHkNCjxicj4xR0hXRUQyOiBTV1Q6V0lOTlQgLSBHQy5zdHJpbmdFeHRlbnQoKSBub3QgY29ycmVjdCBmb3IgV2luZG93cyBBcmlhbCBmb250DQo8YnI+MUdIV0I3RzogU1dUOkxpbnV4IC0gTGludXggZm9udCBkaWFsb2cgZG9lc24ndCBvcGVuIHdpdGggZ2l2ZW4gdmFsdWVzLg0KPGJyPjFHSFZSRlk6IFNXVDpOZXV0cmlubyAtIFRleHQjQ2xlYXJTZWxlY3Rpb24gY2hhbmdlcyB0aGUgQ2FyZXRQb3NpdGlvbiBpbiBhIFNJTkdMRS1saW5lIHdpZGdldA0KPGJyPjFHSFZMVjY6IFNXVDpOZXV0cmlubyAtIFRleHQjU2V0VG9wSW5kZXggYW5kIGdldFRvcEluZGV4IGluY29uc2lzdGVudA0KPGJyPjFHSE9KNlQ6IFNXVDpOZXV0cmlubyAtIFRleHQjc2V0U2VsZWN0aW9uIGluY29uc2lzdGVudCBiZXR3ZWVuIFNJTkdMRSBhbmQgTVVMVEkNCjxicj4xR0hCTFJBOiBTV1Q6TmV1dHJpbm8gLSBEaXNwbGF5LmdldEJvdW5kcygpIHJldHVybnMgaW5jb3JyZWN0IGluZm8NCjxicj4xR0g0OFVROiBTV1Q6TmV1dHJpbm8gLSBFbnRlciBrZXkgZG9lcyBub3QgaW5zZXJ0IG5ldyBsaW5lIHdpdGggVGV4dC5NVUxUSSB3aWRnZXQNCjxicj4xR0dUMFRNOiBTV1Q6TmV1dHJpbm8gLSBHQyNkcmF3QXJjIGluY29uc2lzdGVudCBiZXR3ZWVuIE5UIGFuZCBOVE8NCjxicj4xR0cxREJUOiBTV1Q6U1BBUkMgLSBTb2xhcmlzIGxvc2VzIGlucHV0IGNoYXJhY3RlcnMNCjxicj4xR0cwN0hXOiBTV1Q6TGludXggLSBUcmVlLmdldEl0ZW0oKSBtb2RpZmllcyBpdHMgYXJndW1lbnQgb24gTW90aWYNCjxicj4xR0cwMDY5OiBTV1Q6TGludXggLSBXZWlyZCBsYXlvdXQgaXNzdWVzIHNlZW4gaW4gQ29udHJvbCBFeGFtcGxlDQo8YnI+MUdGWlpMSzogU1dUOkxpbnV4IC0gVG9vbEl0ZW1zIG5vdCBkaXNhYmxlZCB3aGVuIGNvbnRhaW5pbmcgVG9vbEJhciBpcyBkaXNhYmxlZA0KPGJyPjFHRlpVM1g6IFNXVDpBTEwgLSBJbWFnZUxvYWRlci5sb2FkKFN0cmluZykgbm90IGNsb3NpbmcgZmlsZSBpbnB1dCBzdHJlYW0NCjxicj4xR0ZaUERQOiBTV1Q6TGludXggLSBDb21ibyBib3ggd2l0aCBTV1QuU0lNUExFIHN0eWxlIGRvZXMgbm90IHJlc3BlY3QgRGlzYWJsZWQgZmxhZyAodmlzdWFsbHkpDQo8YnI+MUdGVzg1SDogU1dUOkFMTCAtIFByaW50ZXIuZ2V0UHJpbnRlckRhdGEoKSBoYXMgc3RhbGUgY29tbWVudA0KPGJyPjFHRlc2TVE6IFNXVDpBTEwgLSBEQ1I6IFByb2dyYW0gY2xhc3MgbmVlZHMgLmVxdWFscygpIGFuZCAuaGFzaENvZGUoKQ0KPGJyPjFHRlc0WU46IFNXVDpBTEwgLSBIZWxwIEtldmluSCBhZGQgcHJpbnRpbmcgdG8gRWNsaXBzZQ0KPGJyPjFHRlFLRFQ6IFNXVDpBTEwgLSBJbWFnZS5zZXRCYWNrZ3JvdW5kKCkgLyBnZXRCYWNrZ3JvdW5kKCkgYXN5bW1ldHJ5DQo8YnI+MUdGT05WVzogU1dUOkxpbnV4IC0gRW1wdHkgQ29tYm8gc2hvdWxkIG5vdCBmaXJlIFNlbGVjdGlvbiBldmVudA0KPGJyPjFHRkwwSFA6IFNXVDpMaW51eCAtIFJlbWFpbmluZyBpdGVtcyBpbiBTV1QgY29tbWVudHMgdG8gZml4DQo8YnI+MUdFVDkwRDogU1dUOkxpbnV4IC0gU1dURXhjZXB0aW9ucyBicmluZyBkb3duIEVjbGlwc2UNCjxicj4xR0VTUUJLOiBJVFBKVUk6V0lOTlQgLSBIb3cgdG8gZ2V0IGFjY2VzcyB0byBwb3AtdXAgbWVudXMgb2YgdGhlIEphdmEgZWRpdG9yID8NCjxicj4xR0VMWDRBOiBJVFBVSTpBTEwgLSBIb3ZlciBoZWxwIGlzIG5vdCB2aXNpYmxlIGlmIHBhbmUgaXMgZHJhZ2dlZCBvdXQgb2Ygd29ya2JlbmNoDQo8YnI+MUdFSFdBRjogSVRQVUk6V0lOMjAwMCAtIENhbid0IGVudGVyIHRleHQgaW4gYSBTd2luZyBUZXh0RmllbGQgb3IgVGV4dEFyZWENCjxicj4xR0U1RUNKOiBJVFBVSTpXSU4yMDAwIC0gSG92ZXIgaGVscCBmb3IgdGl0bGUgYmFyIGJ1dHRvbnMgYXBwZWFycyBiZWhpbmQgZGV0YWNoZWQgdmlldw0KPGJyPjFHRFg3Ujg6IElUUFVJOkFMTCAtIFNXVCBzZXRUZXh0KCkgZG9lcyBOT1QgaGF2ZSBhbnkgd2F5IHRvIGF2b2lkIG1ha2luZyBtbmVtb25pY3MuDQo8YnI+MUdENVVIQTogU1dUOldJTjIwMDAgLSBEb3VibGUtY2xpY2tpbmcgb24gdG9vbGJhciBpdGVtIGdpdmVzIGRvdWJsZS1jbGljayBldmVudCBvbiB0b29sYmFyDQo8YnI+MUdCWElFTzogU1dUOkFMTCAtIERDUjogSW5jbHVkZSBjdXJzb3IgcG9zIGluIFRyYWNrZXIgbW92ZSBldmVudA0KPGJyPjFHNElNUTM6IFNXVDpXSU5OVCAtIFRhYmxlIGltYWdlcyBpbmNvcnJlY3QgYWZ0ZXIgcmFwaWQgcmVtb3ZhbCBhbmQgY3JlYXRpb24NCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwMiAtIFdlZG5lc2RheSBKdWx5IDE4LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KMUdHWjEzVDogU1dUOk5ldXRyaW5vIC0gaW52YWxpZCBtb3VzZSBzdGF0ZSBvY2N1cmluZyBpbiBQaG90b24NCjxicj4xR0dSQ0NTOiBTV1Q6TmV1dHJpbm8gLSBMYWJlbCBkb2VzIG5vdCB3cmFwIGluIFNXVDAxMjUNCjxicj4xR0dBT04yOiBTV1Q6QUxMIC0gU2NhbGluZyBpbWFnZSB3aXRoIGFscGhhcyBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseQ0KPGJyPjFHRlpRVlE6IFNXVDpMaW51eCAtIFZlcnRpY2FsIFByb2dyZXNzQmFyIGdyb3dzIGluY29ycmVjdGx5DQo8YnI+MUdGUUExODogU1dUOkxpbnV4IC0gQ2hlZXNlIHdpdGggR0MgZHJhd1JvdW5kZWRSZWN0YW5nbGUoKSBvbiBNb3RpZg0KPGJyPjFHRlBLNkc6IFNXVDpMaW51eCAtIE1vdGlmIGZpbGxQb2x5Z29uKCkgc3BlY2lmaWVzIGltcHJvcGVyIGhpbnQNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwMSAtIFRodXJzZGF5IEp1bHkgMTIsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0dFVDc2OiBTV1Q6TmV1dHJpbm8gLSBDYW52YXMgZG9lcyBub3QgcmVzcG9uZCB0byBzZXRGb2N1cygpDQo8YnI+MUdHQVM1UDogU1dUOk5ldXRyaW5vIC0gUGhvdG9uIG9uIFFOWCA2LjEueCBuZWVkcyBTV1QgbmF0aXZlIGNoYW5nZXMNCjxicj4xR0c5NlJPOiBTV1Q6TmV1dHJpbm8gLSBkcmF3T3ZhbCBhbmQgZmlsbE92YWwgbm90IGNvbXBhdGlibGUNCjxicj4xR0c4WkxWOiBTV1Q6V0lOTlQgLSBkcmF3T3ZhbCBiZWhhdmVzIGRpZmZlcmVudGx5IG9uIFdpbmRvd3MgdnMuIG90aGVyIHBsYXRmb3Jtcw0KPGJyPjFHRktZRDk6IFNXVDpMaW51eCAtIC1IQU5HLSAoWHNlcnZlcikgV2hlbiBwZXJmb21pbmcgZGlzcGxheS53YWtlKCkgaW4gYSBETkQgZHJhZ1N0YXJ0KCkNCjxicj4xR0ZLSzM3OiBTV1Q6TGludXggLSBGaWxlVmlld2VyIGV4YW1wbGVzIGlzc3Vlcw0KPGJyPjFHRkJIWDY6IFNXVDpBTEwgLSBDVGFiSXRlbSB0b29sIHRpcCBmbGFzaGluZw0KPGJyPjFHRjlaTVQ6IFNXVDpTUEFSQyAtIDgtYml0IEljb25zIGFyZSBsb3NpbmcgY29sb3JzDQo8YnI+MUdGOVpKRzogU1dUOlNQQVJDIC0gSWNvbnMgYXJlIGJlaW5nIG1hc2tlZCBpbmNvcnJlY3RseSBvbiBTb2xhcmlzDQo8YnI+MUdGOVlIRDogSVRQVUk6V0lOMjAwMCAtIFNXVEV4Y2VwdGlvbjogaGVscCB2aWV3DQo8YnI+MUdGOVkzMjogU1dUOlNQQVJDIC0gMjQtYml0IE1TQiBJY29ucyBhcmUgd3JvbmcgY29sb3IgKGdyZWVuaXNoKQ0KPGJyPjFHRjBEMDU6IFNXVDpMaW51eCAtIEdQRnMgd2hlbiBydW5uaW5nIEpVbml0IFRlc3RSdW5uZXIgaW4gSjkgQVdUDQo8YnI+MUdFVVpaQzogU1dUOkFMTCAtICJOYW1lIiBvZiBwbHVnaW4gaW5jb25zaXN0YW50IHdpdGggb3RoZXIgcGx1Z2lucw0KPGJyPjFHRVREUDU6IElUUFVJOkxpbnV4IC0gTlBFIHdoaWxlIGNsb3NpbmcgZWRpdG9yIG9uIGxpbnV4DQo8YnI+MUdEVlJUNTogU1dUOk5ldXRyaW5vIC0gQWxwaGEgY2hhbm5lbCBtZW1vcnkgbGVhaw0KPGJyPjFHRFJYWlI6IElUUEpVSTpMaW51eCAtIFNXVDogQ29udGV4dC1NZW51cyBpc3N1ZSB1bmRlciBMaW51eCANCjxicj4xR0QwT1NLOiBTV1Q6QUxMIC0gQVBJIC0gcGFja2FnZSBqYXZhZG9jIGZvciBTV1QgcGFja2FnZXMgbWlzc2luZw0KPGJyPjFHQ0hTNzU6IFNXVDpXSU5OVCAtIHdvcmtiZW5jaCBleGl0cyBkdXJpbmcgZXhwYW5kIGNvbGxhcHNlDQo8YnI+MUdDRlVTMDogU1dUOkFMTCAtIENUYWJGb2xkZXIgImZsb2F0aW5nIiBYIHN0aWNrcyBzb21ldGltZXMNCjxicj4xR0FSOTVPOiBTV1Q6QUxMIC0gUmVtb3ZlIFNtYWxsdGFsayBjb21tZW50cyBmcm9tIFNXVCBjb2RlDQo8YnI+MUdBUVJORDogU1dUOkFMTCAtIERPQzogV3JpdGUgZ29vZCBKYXZhZG9jIGNvbW1lbnRzIGZvciBhbGwgb2YgU1dUDQo8YnI+MUc5N0kyODogU1dUOkxpbnV4IC0gVG9vbCBiYXIgYnV0dG9ucyBkbyBub3QgYWx3YXlzIHdvcmsNCjxicj4xRzg0QVpCOiBJVFBEVUk6QUxMIC0gUmVuYW1lIHRydW5jYXRlcyBuYW1lDQo8YnI+MUc4NDVFWjogU1dUOldJTjIwMDAgLSBTcGVjIGZvciBMYXlvdXQuY29tcHV0ZVNpemUoKSBpcyB0cnVuY2F0ZWQNCjxicj4xRzdZWExCOiBTV1Q6V0lOIC0gU3R5bGVkVGV4dCAtIE5MUyBTdXBwb3J0DQo8YnI+MUc3TlNIUjogU1dUOkFMTCAtIFdpZGdldC5hZGRMaXN0ZW5lcihpbnQsIExpc3RlbmVyKSB2cy4gYWRkaW5nIHR5cGVkIGxpc3RlbmVycw0KPGJyPjFHNFhESk86IFNXVDpMaW51eCAtIFRyZWUgbmVlZHMgdG8gZGlzcGxheSBhbiBpbnNlcnQgbWFya2VyDQo8YnI+MUcwWThOWjogU1dUOkFMTCAtIENvbWJvIGJveCBkb2Vzbid0IHNlbmQga2V5IGFuZCBtb3VzZSBldmVudHMgDQo8YnI+MUZYQVZMRjogU1dUOldJTk5UIC0gRGlzYWJsZWQgdG9vbGJhciBpY29ucyBkb24ndCBhZGFwdCB0byBhcHBlYXJhbmNlIGNoYW5nZXMNCjxicj4xRlYxUzE4OiBTV1Q6QUxMIC0gTmVlZCBtb3JlIFdNXyogbWVzc2FnZXMgcGFzc2VkIHRvIEFjdGl2ZVggQ29udHJvbA0KPGJyPjFGVFdYNTU6IFNXVDpBTEwgLSBJbmNvbnNpc3RhbnQgY29tbWVudGluZyBvZiB3aGljaCBTV1Qgb2JqZWN0cyBuZWVkIHRvIGJlIGRpc3Bvc2VkLg0KPC9ibG9ja3F1b3RlPg0KPGEgaHJlZj0iaGdsZWdhbC5odG0iPjxpbWcgU1JDPSJuZ2libWNweS5naWYiIEJPUkRFUj0wIGhlaWdodD0xMiB3aWR0aD0xOTU+PC9hPg0KPC9ib2R5Pg0KPC9odG1sPg0K