PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+CjxoZWFkPgogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICAgPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJJQk0iPgogICA8dGl0bGU+RWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3RlcyAtIFNXVDwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+Cgo8aDE+CkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+ClNXVDwvaDE+CjxoMj4gU1dUIEJ1aWxkIDMuMiAwMzJnIC0gVGh1cnNkYXkgTWF5IDExLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI4NTQ1IC0gQklESTogQ3Vyc29yIGlzIHN0YXlzIGluIHRoZSBiZWdpbm5pbmcgb2YgdGhlIEhlYnJldyB0ZXh0IHNlZ21lbnQKPGJyPjEzNDM1MyAtIFRhYmxlL1RyZWU6IENvbHVtbnMgcGFjayBvbiB0YWJsZS5jbGVhciBmb3Igbm8gcmVhc29uIHdpdGggYSBsb3Qgb2YgZmxhc2hpbmcKPGJyPjEzODkwNyAtIENoZWVzZSBpbiBUcmVlIHdpdGggdGV4dCB0aGF0IHNwYW5zIGNvbHVtbnMgIAo8YnI+MTQxMjkzIC0gYWJvdXQuaHRtbCBuZWVkcyB0byB1cGRhdGVkIGluIHN3dCBleGFtcGxlcywgdGVzdHMgYW5kIHRvb2xzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMzIgLSBGcmlkYXkgTWF5IDUsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2NzM4NCAtIFNXVF9BV1Qgbm90IGltcGxlbWVudGVkIGZvciBNYWMKPGJyPjk2Mzc4IC0gZ2Muc2V0VHJhbnNmb3JtKCkgbWFrZXMgZm9udHMgc2NhbGUgc3RyYW5nZWx5IHdoZW4gcHJpbnRpbmcgIAo8YnI+MTI4MzczIC0gVmlydHVhbCBUcmVlIG5lZWRzIGRvY3VtZW50YXRpb24gIAo8YnI+MTMwMTczIC0gVHJlZSBDb2x1bW4gZG9lcyBub3QgcmVzcG9uZCB0byBEZWZhdWx0U2VsZWN0aW9uIGV2ZW50IGFzIGl0IGRpZCBpbiAzLjEKPGJyPjEzMzk2MiAtIFNXVEV4Y2VwdGlvbiBjbG9zaW5nIEdMQ2FudmFzIGluIGFuIFJDUCBhcHBsaWNhdGlvbiBvbiBNYWMgT1MgWAo8YnI+MTM4MzE5IC0gU1dURXhjZXB0aW9uOiBGYWlsZWQgdG8gZXhlY3V0ZSBydW5uYWJsZSAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBJbmRleCBvdXQgb2YgYm91bmRzKQo8YnI+MTM5MjI2IC0gVXNpbmcgdGhlIG1vdXNlIHRvIHBhZ2UgZG93biBhdXRvIGNvbXBsZXRpb24gY2hvaWNlcyBjbG9zZXMgY29tcGxldGlvbiB3aW5kb3cKPGJyPjEzOTI2MiAtICdzZXQgZGF0YScgY2FsbGJhY2sgbm90IHNlbnQgYWZ0ZXIgYWxsIGl0ZW1zIGFyZSBjbGVhcmVkIGluIHZpcnR1YWwgdHJlZQo8YnI+MTM5NTA1IC0gVXBkYXRlIG1hbmlmZXN0IHRvIGNvbXBpbGUgYWdhaW5zdCBGb3VuZGF0aW9uIDEuMDogb3JnLmVjbGlwc2Uuc3d0Cjxicj4xMzk5NjQgLSBVc2Ugb2YgMS40IEFQSXMgaW4gU1dUX0FXVAo8YnI+MTQwMDUyIC0gW0NUYWJGb2xkZXJdIGxvc2luZyBmb2N1cyBwcm9ibGVtPwo8YnI+MTQwMjcyIC0gRWRpdGluZyBPUy5qYXZhIHJlYWxseSBzbG93CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMzEgLSBGcmlkYXkgQXByaWwgMjgsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2MDI3MyAtIFRvb2xiYXIgYmFja2dyb3VuZCBjb2xvdXIgZG9lc24ndCBtYXRjaCBiYWNrZ3JvdW5kIChYUC9TaWx2ZXIpCjxicj45NTYzNCAtIFtUcmVlXSBUcmVlQ29sdW1uIG1pc3NlcyB0b29sdGlwcyAgCjxicj45NjYxNSAtIFN0eWxlZFRleHQgYW5kIFRleHQga2V5YmluZGluZ3MgZGlmZmVyIG9uIE1hYyAgCjxicj45OTE0NSAtIExpbmsgd2lkZ2V0IG9ubHkgZGlzYWJsZXMgbGluaywgbm90IHRleHQgIAo8YnI+OTk5ODQgLSBTeW5jIHZpZXcgdG9vbGJhciBidXR0b25zIGFyZSBiaWdnZXIgd2l0aCBTV1QgbWFuaWZlc3QgIAo8YnI+MTE0ODUwIC0gRWNsaXBzZSAzLjJNMiBjcmFzaGVzIGp1c3QgYWZ0ZXIgc3RhcnR1cCAgCjxicj4xMjM5MjIgLSBbUGF0Y2hdIFNXVCBKYXZhZG9jOiBTb21lIHR5cG9zL21pbm9yIGVycm9ycyAgCjxicj4xMjcyMTYgLSBbUGF0Y2hdIFRhYmxlIGNoZWNrIGJveGVzIHNob3VsZCBoYXZlIHNoYWRlIHdoZW4gc2VsZWN0ZWQgIAo8YnI+MTI3NzE2IC0gR0MuZHJhd1BvaW50KCkgY2FsbHMgYXJlbid0IGFmZmVjdGVkIGJ5IGEgVHJhbnNmb3JtICAKPGJyPjEyNzgxMyAtIENDb21iby5jb21wdXRlU2l6ZSByZXR1cm5pbmcgaW5jb3JyZWN0IHZhbHVlcyB3aGVuIHVzaW5nIHdIaW50L2hIaW50Cjxicj4xMjk1NjQgLSBTdHlsZWRUZXh0IHNob3VsZCByZW5kZXIgdGFicyBleGFjdGx5IDQgc3BhY2VzIHdpZGUgIAo8YnI+MTI5NjA5IC0gW2Jyb3dzZXJdIHVuYWJsZSB0byBlbnRlciB0ZXh0IGluICZsdDt0ZXh0YXJlYSZndDsKPGJyPjEzMTAxNyAtIEhUTUwgZm9ybXMgZGlzcGxheWVkIGluIFNXVCBCcm93c2VyIGRvZXMgbm90IGFjY2VwdCBhY2NlbnRlZCBjaGFyYWN0ZXJzIGlucHV0Cjxicj4xMzEyNjUgLSBNYWtlIEV4cGFuZEJhciBiYWNrZ3JvdW5kIGNoYW5nZWFibGUgYnkgdXNlcnMgIAo8YnI+MTMzNjcyIC0gR0MgY29uc3RydWN0aW9uIGlzIHZlcnkgc2xvdyBvbiB0aGUgTWFjIHdoZW4gYSBEaXNwbGF5IGlzIHBhc3NlZCBpbgo8YnI+MTM0MDg4IC0gRG5EIHN1cHBvcnQgaW4gU3R5bGVkVGV4dCBkb2Vzbid0IGF1dG8tc2Nyb2xsICAKPGJyPjEzNDA5MSAtIERyb3AgaW4gU3R5bGVkVGV4dCBkb2VzIG5vdCB3b3JrIGF0IHRoZSBlbmQgb2YgYSBsaW5lICAKPGJyPjEzNDExMiAtIERuRCBpbiBTdHlsZWRUZXh0OiBkcm9wcGluZyBvbiBhbiBlbXB0eSBsaW5lIGlzIGhhcmQgIAo8YnI+MTM0NDE3IC0gQnJvd3NlciBDYW5ub3QgQmUgRGlzcG9zZWQgKEludGVsIENhcmJvbiBTV1QpICAKPGJyPjEzNDkyNSAtIFRhYmxlL1RyZWUgQ29sdW1ucyBkb24ndCBhbGlnbiBTV1QuUklHSFQgYW5kIFNXVC5DRU5URVIgdGV4dCBwcm9wZXJseSAocmVncmVzc2lvbikgKEdUSykKPGJyPjEzNjI3MiAtIENvbWJvIG9uIE1hYyBpbmNvcnJlY3RseSBzZW5kcyBLZXlEb3duIGV2ZW50IGJlZm9yZSBUcmF2ZXJzZSB3aGVuIGFycm93IHVwL2Rvd24ga2V5cyB1c2VkCjxicj4xMzY0NTEgLSBUb29sSXRlbSBpcyBub3QgdmlzaWJsZSBpZiBib3VuZHMgc2V0IGJlZm9yZSB0ZXh0ICAKPGJyPjEzNjQ3MyAtIEltYWdlIGNhcHR1cmUgaXMgcHVycGxlIG9uIE1hYyAgCjxicj4xMzY2MzMgLSBGYWlsZWQgdG8gZXhlY3V0ZSBydW5uYWJsZSAoamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uKSBpbiBkZWJ1ZyBtb2RlCjxicj4xMzY2NDEgLSBTY3JvbGxiYXJzIG5vdCBleGNsdWRlZCBmcm9tIGNsaWVudCBhcmVhICAKPGJyPjEzNjY3NSAtIE5vIHNjcm9sbGJhciBldmVudHMgZm9yIFRleHQgIAo8YnI+MTM2ODkwIC0gW1BhdGNoXSBTV1QgSmF2YWRvYzogU29tZSB0eXBvcy9taW5vciBlcnJvcnMgKFBhcnQgMikgIAo8YnI+MTM2OTMxIC0gUmVncmVzc2lvbiBpbiByaWdodC1tb3VzZSBidXR0b24gYmVoYXZpb3IgIAo8YnI+MTM3MjM2IC0gTWFjaW50ZWw6IHNldEVjaG9DaGFyIGNhdXNlIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gIAo8YnI+MTM3MzIwIC0gW1N0eWxlZFRleHRdIGNhcmV0IGRvZXMgbm90IG1vdmUgY29ycmVjdGx5IHdoZW4gaW5zZXJ0ZWQgdGV4dCB3cmFwcwo8YnI+MTM3NTI0IC0gTlBFIGluIEFzeW5jaHJvbm91c1ZpZXdlciAgCjxicj4xMzc3MTQgLSBXaW5DRTogc2V0Q2xpcHBpbmcoeCx5LHcsaCkgdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uICAKPGJyPjEzODA2MiAtIE5QRSBpbiBnZXREYXRhICAKPGJyPjEzODA3NiAtIEJyb3dzZXIgZG9lcyBub3Qgc3RhcnQgb24gRGViaWFuICAKPGJyPjEzODQ2MSAtIFtXb3JrYmVuY2hdIFBlcnNwZWN0aXZlIHBvcHVwIG1lbnUgZG9lc24ndCBzaG93IHVwIG9uIE1hYyAgCjxicj4xMzg0OTkgLSBMYWJlbCBEcm9wVGFyZ2V0IGlzICJ0b28gc21hbGwiIG9uIE1vdGlmICAKPGJyPjEzODYzMCAtIEljb25zIGJlaW5nIGRyYXduIG9uIHRvcCBvZiB0ZXh0IGluIHRhYmJlZCBmb2xkZXIKPGJyPjEzODcyNCAtIFVzZSBvZiAxLjQgQVBJcwo8YnI+MTM5MDYwIC0gUmVncmVzc2lvbjogVHJlZTogU2VsZWN0aW9uIGxvc3Qgd2hlbiBjb2xsYXBzaW5nIHVucmVsYXRlZCBpdGVtCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMzAgLSBUdWVzZGF5IEFwcmlsIDEyLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDU5MTggLSBlY2xpcHNlIHNob3VsZCBlbmFibGUgWFAgdmlzdWFsIHN0eWxlcyBpZiBhdmFpbGFibGUgKGZyb20gY29tY3RsMzIuZGxsKQo8YnI+NzY3NDAgLSBbcGFpbnRpbmddIEN0cmwrRW5kIGJyaW5ncyBTdHlsZWRUZXh0IGludG8gc3RyYW5nZSBzdGF0ZQo8YnI+ODI3NjkgLSBbQ29udHJpYnV0aW9uc10gRGlzYWJsZWQgbWVudSBpdGVtcyBoYXZlIGVuYWJsZWQgaW1hZ2VzIHdoZW4gYXJtZWQKPGJyPjgzMDE2IC0gW2Jyb3dzZXJdIFVzZSBNb3ppbGxhIDEuOCBuc0lXZWJCcm93c2VyU3RyZWFtIEFQSQo8YnI+MTEwNzk0IC0gWzY0XSBDcmFzaCB3aGVuIHByZXNzaW5nIEVOVEVSIGFmdGVyIGhhdmluZyBlbnRlcmVkIHZhbHVlIGluICJTZWFyY2giIGZvcm0KPGJyPjExMzU1OSAtIFtidWlsZF0gRGVwZW5kZW5jeSBvbiAgbGlic3RkYysrLnNvLjUKPGJyPjEyNTExMyAtIFByaW50aW5nIGRvY3VtZW50IHdpdGggbG9uZyBsaW5lcyBsb3NlcyB0ZXh0IGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UKPGJyPjEyNzEzMiAtIFRhYmxlQ29sdW1uI3BhY2sgZG9lcyBub3Qgd29yayBmb3IgdmlydHVhbCB0YWJsZQo8YnI+MTI3OTAyIC0gRm9jdXMgZ2V0cyBzdHVjayBpbiBFeHBhbmRiYXIKPGJyPjEyODI3MyAtIFRhYmxlQ3Vyc29yIG5vdCB3b3JraW5nIHByb3Blcmx5IG9uIExpbnV4IEdUSwo8YnI+MTI4Mjg2IC0gVGFibGUjU2V0VG9wSW5kZXggaGFzIG5vIGVmZmVjdCBmb3IgdmlydHVhbCB0YWJsZQo8YnI+MTMzMzA0IC0gW0Jyb3dzZXJdIEVjbGlwc2UgZmFpbHMgdG8gc3RhcnQKPGJyPjEzNDE3NSAtIE5vdCBjb25zaXN0ZW5seSBnZXR0aW5nIGNvbnRyb2wgcmVzaXplIGV2ZW50IGZyb20gdGFibGUgY29sdW1uCjxicj4xMzQzNTYgLSBXYWxrYmFjayB0dXJuaW5nIG9uIHdyYXAgaW4gU3R5bGVkVGV4dC4gCjxicj4xMzQ0ODIgLSBbNjRdIFNXVCBTbmlwcGV0MjQgKGRlZmF1bHQgc2VsZWN0aW9uKSBkb2VzIG5vdCB3b3JrIG9uIGFtZDY0Cjxicj4xMzQ4MzcgLSBUcmVlLSBSYW5kb20gZm9yZWdyb3VuZCBjb2xvciBhcHBlYXJzIGZvciBUcmVlIHdoZW4gc2VsZWN0aW5nIGl0ZW1zIGFuZCBzdWJpdGVtcwo8YnI+MTM1MzAzIC0gQ0Jhbm5lciBkcmF3cyB1bndhbnRlZCBncmFkaWVudCBsaW5lIGF0IGJvdHRvbSB3aGVuIGl0IGhhcyBtb3JlIGhlaWdodCB0aGFuIHRoZSBkZWZhdWx0Cjxicj4xMzU1MzMgLSByZW1vdmUgc29sYXJpcy1tb3RpZi1zcGFyYyBkb3dubG9hZHMgZnJvbSBidWlsZAo8YnI+MTM1NjQ5IC0gTW91c2Ugd2hlZWwgc2Nyb2xscyBpbnZpc2libGUgc2Nyb2xsYmFycwo8YnI+MTM2MDY0IC0gU25pcHBldCAyMjUgKGJhbGxvb24gdG9vbCB0aXApIHNob3VsZCBzYXkgQHNpbmNlIDMuMgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI5YSAtIE1vbmRheSBNYXJjaCAyNywgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk0NjkxIC0gQ29kZSBTdHlsZSBQYWdlIGNyb3BzICJDb25maWd1cmUgUHJvamVjdCBTcGVjaWZpYyIgbWVzc2FnZSAgCjxicj4xMTUyMzQgLSBbRG5EXSBbV29ya2JlbmNoUGFydHNdIFJlc2l6aW5nIHRpbGVkIGVkaXRvcnMgaW5jb3JyZWN0bHkgc2l6ZXMgZWRpdG9yIHBhcnRzIGF0IHN0YXJ0IG9mIGRyYWcKPGJyPjExNjc0OSAtIFNvbWUgd2lkZ2V0cyBkb24ndCBtYXRjaCBkZWZhdWx0IGJhY2tncm91bmQgaW5zaWRlIEdyb3VwICAKPGJyPjExODk1MyAtIHNldEZvcmVncm91bmQvQmFja2dyb3VuZCBjb2xvciBkb2VzIG5vdCB3b3JrIGZvciBTV1QuUkVBRF9PTkxZIFRleHQgd2lkZ2V0cyBvbiBhIE1hYwo8YnI+MTIwMDUxIC0gU29tZSBmb250IG5hbWVzIG9uIE9TIFggaGF2ZSBudWxsIChcMCkgY2hhcmFjdGVycyBiZXR3ZWVuIGV2ZXJ5IGNoYXJhY3Rlcgo8YnI+MTIwMjQxIC0gTW91c2VMaXN0ZW5lciBvbiBTYXNoIGRvZXMgbm90IHJlY2VpdmUgbW91c2VVcCBldmVudHMgIAo8YnI+MTIyMDQ5IC0gY3Jhc2ggd2hlbiBjbGlja2luZyBvbiB5ZWxsb3cgamF2YWRvYyBwb3B1cCB3aW5kb3cgIAo8YnI+MTI0NDE1IC0gQnJvd3NlciBjYXVzZXMgYmxhbmsgd2hpdGUgYm94IG9uIE9TWCAgCjxicj4xMjc4MjEgLSBDb250cm9sRXhhbXBsZSBjcmFzaCB3aGVuIHNldHRpbmcgYmFja2dyb3VuZCBpbWFnZSBvbiBTRVBBUkFUT1IgTGFiZWwKPGJyPjEzMDk3MSAtIFRyZWVJdGVtIG5vdCBzaG93aW5nIHRleHQgIAo8YnI+MTMyODc0IC0gTGlzdCBjb250cm9sIGRvZXMgbm90IGFsbG93IDB0aCBpdGVtIHRvIGJlIGRlc2VsZWN0ZWQuICAKPC9ibG9ja3F1b3RlPgoKPGgxPgpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPgpTV1Q8L2gxPgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI5IC0gVHVlc2RheSBNYXJjaCAyMSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjMyMzEwIC0gTGVmdCBjbGljayBmb2xsb3dlZCBieSByaWdodCBjbGljayByZXN1bHRzIGluIGRvdWJsZSBjbGljayAgCjxicj41MTAyMCAtIFNXVC5PTl9UT1AgZG9lcyBub3Qgd29yayBvbiBNYWMgT1MgWCAgCjxicj42NjYxNSAtIFNXVF9BV1QubmV3X0ZyYW1lIG9jY2FzaW9uYWxseSBoYW5ncyAgCjxicj43NzM3MSAtIFticm93c2VyXSBCcm93c2VyIHdpZGdldCBub3QgdXNpbmcgY29ycmVjdCBsYW5ndWFnZSBzZXR0aW5ncyAgCjxicj43NzQ1NiAtIERCQ1MzLjI6IFNXVCBCcm93c2VyIHNlbmRzIGltcHJvcGVyIEFjY2VwdC1MYW5ndWFnZSwgQWNjZXB0LUNoYXJzZXQKPGJyPjgzMTMzIC0gRXhwb3PpIGNhdXNlcyBkaWFsb2cgdG8gbW92ZSBiZWhpbmQgc2hlbGwuICAKPGJyPjgzNDMxIC0gU3VwcG9ydCBhbiAiZXhwYW5kYWJsZSBncm91cCIgIAo8YnI+MTA0MTUwIC0gW1BhdGNoXSBUYWJsZSBjdXJzb3Igc2VwYXJhdGVkIGZyb20gdGFibGUgc2VsZWN0aW9uIHdoZW4gY2xpY2tpbmcgb24gZ3JpZCBsaW5lcyBvciBlbXB0eSBzcGFjZQo8YnI+MTEzMDE5IC0gQnJvd3Nlci5zZXRUZXh0KCkgc29tZXRpbWVzIGFwcGVuZHMgZHVzdCBjaGFyYWN0ZXJzIGFmdGVyIGh0bWwKPGJyPjExNjk3NSAtIFNXVF9BV1QgYnJpZGdlIHdpdGggSkRpYWxvZyBjYW5ub3QgdXNlIFRhYiB3aXRoaW4gZGlhbG9nLiBmb2N1cyBpcyBsb3N0Cjxicj4xMjIzNzkgLSBTV1RFeGNlcHRpb24gd2hlbiBkZWxldGluZyB0ZXh0IGZyb20gU3R5bGVkVGV4dCwgaWYgc2VsZWN0aW9uIGxhcmdlciB0aGFuIHZpc2libGUgcGFydAo8YnI+MTI1MTMxIC0gS2V5cyBmYWlsIGluIEpEaWFsb2cgYWZ0ZXIgU1dUX0FXVC5uZXdfRnJhbWUgaW4gV29ya3NwYWNlUGFydAo8YnI+MTI3ODI3IC0gSW1wbGVtZW50IGJhY2tncm91bmQgaW1hZ2UgaW4gVGFibGUgYW5kIFRyZWUgIAo8YnI+MTI4NDAwIC0gQ2xhc3MgU1QgbWlzdXNlcyBqYXZhZG9jIGNvbW1lbnRzIGFzIGNhdGVnb3J5IGhlYWRlcnMgIAo8YnI+MTI4NjYyIC0gU1dUIEJyb3dzZXIgY3Jhc2hlcyBpZiBVUkwgY29udGFpbnMgc3BlY2lhbCBjaGFyYWN0ZXJzICAKPGJyPjEyODcxOSAtIFtTdHlsZWRUZXh0XSBBIGxvdCBvZiBjaGVlc2UgZGlzcGxheWluZyBKYXBhbmVlc2UgYW5kIENoaW5lc2UKPGJyPjEyODc1MCAtIEVycm9yIG9jY3VycyB3aGVuIGRlbGV0ZSB0ZXh0IGluIFN0eWxlZFRleHQgIAo8YnI+MTI5NTI2IC0gUHJvcG9zYWwgZm9yIG5ldyBzbmlwcGV0IDogTm9uLXJlY3Rhbmd1bGFyIFNoZWxsIHVzaW5nIHRyYW5zcGFyZW50IGltYWdlcwo8YnI+MTI5OTk5IC0gRXJhc2VJdGVtIGV2ZW50J3MgZ2MgZG9lcyBub3QgaGF2ZSB0aGUgaXRlbSdzIGNvbG91cnMgb3IgZm9udCBzZXQKPGJyPjEzMTM5MyAtIEFkZGluZyBUYWJsZUNvbHVtbiBhdCBpbmRleCAwIG1ha2VzIGNlbGwgZGlzYXBwZWFyICAKPGJyPjEzMTYyMyAtIFRyZWUgc2VsZWN0ZWQgY29sdW1uIGJnY29sb3VyIGRvZXMgbm90IGRyYXcgb24gZW1wdHkgcm93cyB3aGVuIHNldHRpbmcgYSB0cmVlIGJhY2tncm91bmQgY29sb3VyCjxicj4xMzE2MjUgLSBUcmVlIGFkZHMgdXNlbGVzcyB2ZXJ0aWNhbCBzY3JvbGxiYXIgIAo8YnI+MTMxNjI2IC0gVHJlZSBzZWxlY3RlZCBiYWNrZ3JvdW5kIGNvbG91ciBpbiBjb2x1bW4gMCBvdmVycmlkZXMgY2VsbCBjb2xvdXIsIGJ1dCBub3QgaW4gYW55IG90aGVyIGNvbHVtbgo8YnI+MTMxNjI3IC0gVHJlZTogRW1wdHkgdHJlZSBkb2VzIG5vdCBzaG93IHNlbGVjdGVkIGNvbHVtbiBiYWNrZ3JvdW5kIGNvbG91ciwgdW5saWtlIFRhYmxlCjxicj4xMzE2NTQgLSBEZWNvcmF0aW9ucy5jb21wdXRlVHJpbSBjYW4gY2F1c2UgcHJvZ3JhbSB0byBoYW5nICAKPGJyPjEzMTcyNCAtIEFkZGluZyBQYWludEl0ZW1MaXN0ZW5lciB0byBUYWJsZSBjYXVzZXMgTlBFICAKPGJyPjEzMTcyNyAtIFNXVF9BV1QgZnJhbWVzIGluIHRhc2sgYmFyICAKPGJyPjEzMTczOSAtIGFkZGluZyBFcmFzZUl0ZW0gbGlzdGVuZXIgdG8gVHJlZSBjYXVzZXMgbWFqb3IgZHJhd2luZyBwcm9ibGVtCjxicj4xMzE3NDMgLSBhZGRpbmcgYW4gRXJhc2VJdGVtIGxpc3RlbmVyIHRvIGEgVHJlZSBjYW4gbGVhZCB0byBzZWxlY3Rpb24gY2hlZXNlCjxicj4xMzE4MDUgLSBUcmVlOiBTb3J0ZWQgYmFja2dyb3VuZCBjb2x1bW4gY29sb3VyIGRvZXMgbm90IG1vdmUgd2l0aCBtb3ZhYmxlIGNvbHVtbnMKPGJyPjEzMTg2NyAtIEluY29ycmVjdCBHQy5maWxsUGF0aCgpIGJlaGF2aW9yICAKPGJyPjEzMTkwNiAtIFN0YWNrT3ZlcmZsb3dFcnJvciBpbiBTdHlsZWRUZXh0ICAKPGJyPjEzMjA4OSAtIFRyZWU6IFRleHQgY29ycnVwdGlvbiBpbiBjZWxscyBhZnRlciBtb3ZpbmcgY29sdW1uIDAgYW5kIHJlc2l6aW5nIGNvbHVtbgo8YnI+MTMyMzc2IC0gVGFibGUgYmFja2dyb3VuZCBjb2xvcnMgYXJlIHdyb25nIGluIEdUSwo8L2Jsb2NrcXVvdGU+Cgo8aDE+CkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+ClNXVDwvaDE+CjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjggLSBUdWVzZGF5IE1hcmNoIDE0LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc2NDIgLSBTdHlsZWRUZXh0OiBHcmFwaGljIGJ1ZyBkaXNwbGF5aW5nIGJlbmdhbGkgY2hhcnMKPGJyPjkxNDU0IC0gW2Jyb3dzZXJdIFJIIEVMNCAtIG5lZWQgd2F5IHRvIGxvY2F0ZSBmaXJlZm94IGJ1aWxkCjxicj45MjU0OCAtIEdCMTgwMzA6IFBhcnQgb2YgVWlndXIgY2hhcmFjdGVycyg0LWJ5dGVzKSBjYXVzZSB3aG9sZSBsaW5lIHNpbmthZ2UgdG8gMS8zLgo8YnI+OTc0MDQgLSBhZGQgc3VwcG9ydCBmb3IgVlRfSTggYW5kIFZUX1I4Cjxicj4xMDg5OTYgLSBTdXBwb3J0IGdyYWRpZW50IGJhY2tncm91bmRzIGZvciBTdHlsZWRUZXh0IHdpZGdldHMKPGJyPjEyMTM1MSAtIEFscGhhIGNoYW5uZWwgaWdub3JlZCB3aGVuIEltYWdlIGlzIGRpc2FibGVkIG9yIGdyZXllZCBvdXQKPGJyPjEyNTY1NiAtIEVjbGlwc2UgZnJlZXplcyBkaXNtaXNzaW5nIHBvcHVwIHdpbmRvd3MgKFF1aWNrIEZpeCwgU3BlbGwgQ2hlY2ssIGV0YykKPGJyPjEyOTkwOCAtIEJJREk6IE91dHB1dCB0ZXh0IGhhdmUgY29udGV4dHVhbCBvcmRlciBsYXlvdXQKPGJyPjEyOTk3MiAtIGFkZGluZyBNZWFzdXJlSXRlbUxpc3RlbmVyIHRvIFRhYmxlIGNhdXNlcyBOUEUKPGJyPjEzMDc1NiAtIFRyZWUgZG9lcyBub3QgdXNlIHRoZSBPU3Mgc2VsZWN0ZWQgY29sdW1uIGJhY2tncm91bmQgY29sb3IKPGJyPjEzMDExMyAtIGVjbGlwc2UgKDY0LWJpdCkgY3Jhc2hlcyBhcyBzb29uIGFzIGNvZGUgY29tcGxldGUgaXMgaW52b2tlIChjdHJsLXNwYWNlKSBpbiBqYXZhIGZpbGVzCjxicj4xMzAzNDYgLSBBZGRpbmcgTWVhc3VyZUl0ZW0gbGlzdGVuZXIgb24gVGFibGUgY2FuIGxlYWQgdG8gZGl2aWRlIGJ5IDAgaW4gZ2V0SXRlbSgpCjxicj4xMzA4NzYgLSBCYWNrZ3JvdW5kIEltYWdlIG5vdCBpbmhlcml0ZWQgcnVubmluZyB3L28gbWFuaWZlc3QKPGJyPjEzMTE1OSAtIEV4cGFuZEl0ZW0gbmVlZHMgZ2V0SGVhZGVySGVpZ2h0KCkKPGJyPjEzMTE2MCAtIGJhY2tncm91bmQgY29sb3IgcHJvYmxlbXMgaW4gdHJlZSB3aXRoIGNvbHVtbnMKPGJyPjEzMTU4NSAtIG5vdGlmZWQgaXMgbm90IGEgd29yZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI3IC0gVHVlc2RheSBNYXJjaCAwNywgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjU4MDA5IC0gTmVlZCBBUEkgdG8gYWRkIG5vdGlmaWNhdGlvbnMgb24gc3lzdGVtIHRyYXkKPGJyPjc5MzkxIC0gQ29udHJvbEV4YW1wbGUgLSB0YWIgaXRlbXMgYXJlIHRydW5jYXRlZAo8YnI+OTgyNjUgLSBtb3JlIGZpeGluZwo8YnI+MTA2MzcyIC0gUHJvdmlkZSBETkQgc3VwcG9ydCBmb3IgdGhlIFN0eWxlZFRleHQgd2lkZ2V0Cjxicj4xMTQ2NjIgLSBTcGlubmVyIHNldFNlbGVjdGlvbiBwcmludHMgWCB3YXJuaW5nCjxicj4xMjM4MjcgLSBPdXRsaW5lICJjcmF6eS1zY3JvbGxzIiB3aGVuIGl0IGdldHMgZm9jdXMKPGJyPjEyNzE2OCAtIFNwaW5uZXIgZ2VuZXJhdGVzIGJvZ3VzIE1vZGlmeVRleHQgZXZlbnRzCjxicj4xMjk1OTAgLSBFdmVudC5pbmRleCA9PSAwIGFsbCB0aGUgdGltZQo8YnI+MTI5OTY3IC0gU3lzdGVtIFNldHRpbmdzIGJlaW5nIGZpcmVkIHRvbyBvZnRlbgo8YnI+MTMwMDM3IC0gQ2hlZXNlIGFmdGVyIGRyb3BwaW5nIFRyZWVJdGVtIHRoYXQgaGFzIEltYWdlIHNldAo8YnI+MTMwMTIwIC0gY2VsbCBjdXN0b20gYmFja2dyb3VuZCBjb2xvdXIgYXBwZWFycyBpbiBhZGphY2VudCBjZWxscwo8YnI+MTMwMTU5IC0gSW1hZ2VMb2FkZXIuc2F2ZShmaWxlbmFtZSwgZm9ybWF0KSBzaG91bGQgY2xvc2UgdGhlIE91dHB1dFN0cmVhbS4KPGJyPjEzMDM3NSAtIEJhY2tncm91bmQgSW5oZXJpdGFuY2UgSW5jb3JyZWN0IGluIENvbXBvc2l0ZSBIaWVyYXJjaGllcwo8L2Jsb2NrcW91dGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI2YSAtIFR1ZXNkYXkgRmVicnVhcnkgMjgsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMjk2MDcgLSBEaXNwbGF5LmdldFNoZWxscygpIHJldHVybnMgZGlzcG9zZWQgc2hlbGwgUGFydCAyCjwvYmxvY2txb3V0ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjYgLSBUdWVzZGF5IEZlYnJ1YXJ5IDI4LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI0MDA0IC0gRHJvcCBlbmFibGVkIG9uIFRleHQgV2lkZ2V0Cjxicj4xMjY4MTggLSBIb3Jpem9udGFsIFNjcm9sbEJhciBub3QgUmVTaXplZCBXaGVuIFRhYmxlIENvbnRlbnRzIENoYW5nZWQKPGJyPjEyNjk5NiAtIENhbid0IGFzeW5jRXhlYyBzZXR0aW5nIG9mIHRleHQgaW4gdmlydHVhbCBUcmVlCjxicj4xMjgzNzggLSBUcmVlSXRlbSBhbmQgVGFibGVJdGVtIGNvbnN0cnVjdG9ycyBzaG91bGQgc3RhdGUgcHJlY29uZGl0aW9uIG9uIGluZGV4Cjxicj4xMjg1OTggLSAzLjIgTTUgZGVsdGEgcGFjayBub3QgZ2VuZXJhdGVkIGNvcnJlY3RseQo8YnI+MTI4ODQ1IC0gRXhwYW5kQmFyIFdpZGdldCBub3QgcGFpbnRpbmcgY29udHJvbHMKPGJyPjEyOTA1NCAtIFRleHQgd2lkZ2V0IFZlcmlmeUxpc3RlbmVyIGNhdXNlcyBjaGFyYWN0ZXJzIHRvIGJlIGluc2VydGVkIGJhY2t3YXJkcyBpZiB5b3UgY2hhbmdlIHRoZW0KPGJyPjEyOTEyNiAtIFdoZW4gVmVyaWZ5TGlzdGVuZXIgaXMgYWRkZWQgaW4gb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVGV4dCwgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBtaWdodCBiZSBvY2N1cnJlZCBieSBVTkRPIG9wZXJhdGlvbi4KPGJyPjEyOTUwMSAtIFRyZWUgRlVMTF9TRUxFQ1RJT04gZG9lc24ndCByZWRyYXcgaXRlbSBiYWNrZ3JvdW5kIGluIHNlbGVjdGlvbiBjb2xvcgo8YnI+MTI5NTM1IC0gR3JpZERhdGEvR3JpZExheW91dCBpcyBzaG93aW5nIGFibm9ybWFsIGxheW91dAo8YnI+MTI5NjA3IC0gRGlzcGxheS5nZXRTaGVsbHMoKSByZXR1cm5zIGRpc3Bvc2VkIHNoZWxsCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjUgLSBUdWVzZGF5IEZlYnJ1YXJ5IDIxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTM5NjkgLSBBY2Nlc3NpYmlsaXR5IDogTm8gdmlzdWFsIGZvY3VzIGlzIHByb3ZpZGVkIGluIFRhYmxlCjxicj40Nzg3MiAtIFtTV1QgRXhhbXBsZXNdIGJyb2tlbiBsaW5rIGluIHN3dF9sYXVuY2hlcl9leC5odG1sCjxicj44NzIxMyAtIFVuYWJsZSB0byBydW4gZWNsaXBzZTogdW5kZWZpbmVkIHN5bWJvbDogYXRrX29iamVjdF9hZGRfcmVsYXRpb25zaGlwCjxicj4xMjcwOTUgLSBOUEUgd2hlbiB0cnlpbmcgdG8gZGlzcG9zZSBjb2x1bW5zCjxicj4xMjcyNjYgLSBUZXh0LmdldENhcmV0TG9jYXRpb24oKSBvbiBHVEsgd2l0aCBzdHlsZSA9IFNXVC5TSU5HTEUKPGJyPjEyNzUxNiAtV2FybmluZ3MgaW4gU1dUIHNhbXBsZXMKPGJyPjEyNzk2MCAtIE5hdGl2ZSBjcmFzaCBpbiBTV1Qgd2hlbiBicm93ZXIgSmF2YVNjcmlwdCBjbG9zZXMgdGhlIHdpbmRvdwo8YnI+MTI4MjY3IC0gTm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGNhcHR1cmUgc2NyZWVuIHdpdGggbmV3IEdDKGRpc3BsYXkpCjxicj4xMjg0MDggLSBKUEVHUXVhbnRpemF0aW9uVGFibGUgcHJlY2lzaW9uPTggdmFsdWVzIGNhbiBiZSBuZWdhdGl2ZQo8YnI+MTI4NDQ4IC0gW0Jyb3dzZXJdIE5vIGphdmFzY3JpcHQgY29uZmlybSBkaWFsb2cuCjxicj4xMjg0NzYgLSBSZWdyZXNzaW9uOiBUcmVlIHdpdGggY29sdW1ucyBkb2VzIG5vdCByZXNldCBob3Jpem9udGFsIHNjcm9sbCBiYXIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGsgLSBUaHVyc2RheSBGZWJydWFyeSAxNiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyODI0NCAtIFRhYmxlIFJvdyBPdmVyZHJhd3MgVGFibGUgSGVhZGVycwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI0ayAtIFRodXJzZGF5IEZlYnJ1YXJ5IDE2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI3NzM0IC0gQ2Fubm90IG9wZW4gTGF1bmNoIENvbmZpZyBkaWFsb2cKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGkgLSBUaHVyc2RheSBGZWJydWFyeSAxNiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNzc1NSAtIE5QRSBpbiBUcmVlLmNhbGxQYWludEV2ZW50SGFuZGxlcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI0aCAtIFRodXJzZGF5IEZlYnJ1YXJ5IDE2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTIzNDY2IC0gW1ZpZXdlcnNdIFN0cmFuZ2UgZG90cyBpbiB0YWJsZSBpdGVtIGxhYmVscwo8YnI+MTI3NzUxIC0gVklSVFVBTCBUYWJsZSBkb2VzIG5vdCBwYWludCB3aXRoIHNuaXBwZXQgMTQ0CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjRkIC0gTW9uZGF5IEZlYnJ1YXJ5IDEzLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI2OTk2IC0gQ2FuJ3QgYXN5bmNFeGVjIHNldHRpbmcgb2YgdGV4dCBpbiB2aXJ0dWFsIFRyZWUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGMgLSBNb25kYXkgRmVicnVhcnkgMTMsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1NDQyNiAtIEltcGxlbWVudCBSaWNoVGV4dCBlZGl0b3IgZm9yIFNXVCAocGFydGlhbCBmaXgpCjxicj4xMDAxMTQgLSBTV1QsIGxhdW5jaGVyIGFuZCBzdXBwb3J0IEpOSSBsaWJyYXJpZXMgbmVlZCB0byBiZSBidWlsdCB1bml2ZXJzYWwKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGIgLSBNb25kYXkgRmVicnVhcnkgMTMsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4MDkxMyAtIFRhYkZvbGRlciBubyBsb25nZXIgc2V0cyBmb2N1cyB0byB0YWIgd2hlbiBtbmVtb25pYyBwcmVzc2VkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjQgLSBGcmlkYXkgRmVicnVhcnkgOSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjcwMTY3IC0gSW1hZ2UoRGV2aWNlLCBJbnB1dFN0cmVhbSkgdGhyb3dzIGluY29ycmVjdCBleGNlcHRpb24gZm9yIGJhZCBQTkcKPGJyPjEyNjg2NCAtIFJlZ3Jlc3Npb246IERyb3AgdGFyZ2V0IGhhcyBpbmNvcnJlY3QgRE5EIGN1cnNvcgo8YnI+MTI2OTk1IC0gQUlPT0IgZXhjZXB0aW9uIGZvciBUcmVlCjxicj4xMjY5OTYgLSBDYW4ndCBhc3luY0V4ZWMgc2V0dGluZyBvZiB0ZXh0IGluIHZpcnR1YWwgVHJlZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDIzYyAtIFR1ZXNkYXkgRmVicnVhcnkgNywgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Ck9uIEdUSywgY2xvc2UgYnV0dG9uIHdpbGwgbm90IGRyYXcgY29ycmVjdGx5IGR1ZSB0byBkeW5hbWljIHRvb2x0aXBzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjNiIC0gVHVlc2RheSBGZWJydWFyeSA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI2Mjk5IC0gQWZ0ZXIgY2xlYXJBbGwoKSwgR1RLIHZpcnR1YWwgVHJlZSBmb3JnZXRzIG9sZCBUcmVlSXRlbSBvYmplY3RzIGFuZCBjcmVhdGVzIG5ldyBvbmVzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjNhIC0gVHVlc2RheSBGZWJydWFyeSA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KQ29tcGlsZSBlcnJvcnMgb24gR1RLIDY0Cjxicj5DYWxsYmFja3MgbGVha2VkIG9uIEdUSwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDIzIC0gVHVlc2RheSBGZWJydWFyeSA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTgyNjUgU3RyaW5ncyBpbiBDb21ibyBkcm9wIGRvd24gbGlzdCBhcmUgdHJ1bmNhdGVkCjxicj4xMDUwMjggV2luQ0U6IE1lbnUgSW1hZ2UgUHJvYmxlbQo8YnI+MTI0NDgxIFRyZWVFZGl0b3I6IFByb2dyZXNzQmFyIGRvZXMgbm90IGZpbGwgY2VsbCBjb3JyZWN0bHkKPGJyPjEyNTI1NSBDaGVja2JveCB0cmVlIHNlbGVjdGlvbiBtYWtlcyBjaGVja2JveCBoYXJkIHRvIHNlZQo8YnI+MTI1NzI1IE1pc3Rha2UgaW4gRm9ybUxheW91dC5sYXlvdXQoQ29tcG9zaXRlLCBib29sZWFuKQo8YnI+MTI1ODQ5IFdyb25nIGNvbG9ycyB3aXRoIGdyYWRpZW50IHBhdHRlcm4KPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUEkiPjwvYT5OZXcgQVBJPC9oMz4KCjxwPiBBZGRlZCBFeHBhbmRCYXIgYW5kIGFzc29jaWF0ZWQgY2xhc3Nlcy48L3A+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDIyIC0gVHVlc2RheSBKYW51YXJ5IDMxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjQ2ODYgLSBTY3JvbGxCYXIgZG9lcyBub3QgcmVjZWl2ZSBTV1QuU2VsZWN0aW9uIG1lc3NhZ2VzCjxicj4xMDM5NzYgLSBTcGlubmVyIHdpZGdldCBzaG91bGQgcHJvdmlkZSBzZXRWYWx1ZXMoKSBtZXRob2QgbGlrZSBTbGlkZXIKPGJyPjExNTIwOSAtIFNXVCBPU1ggMy4yTSBkb2VzICBub3QgZGlzcGxheSBsYWJlbHMgb24gcmF3IGJhY2tncm91bmQKPGJyPjEyNDQxNCAtIFNJR1NFR1YgZnJvbSBzd3QtMy4yTTQtZ3RrLWxpbnV4LXg4Nl82NC56aXAKPGJyPkFkZGVkIGRyYWcgdW5kZXIgZmVlZGJhY2sgZm9yIFRhYmxlIGFuZCBUcmVlIG9uIE1hYwo8YnI+QWRkZWQgZHluYW1pYyB0b29sdGlwcyBvbiBhbGwgcGxhdGZvcm1zCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjEgLSBUdWVzZGF5IEphbnVhcnkgMjQsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozODUyOCAtIFR3byBmdWxsIHNjcmVlbiByZWRyYXdzIGNyZWF0aW5nIGEgR0Mgb24gRGlzcGxheQo8YnI+NDAxMTcgLSBTYW4tc2VyaWZlZCBtb25vc3BhY2VkIGZvbnRzIGRvIG5vdCBhbGlnbiBwcm9wZXJseS4KPGJyPjY4MjU1IC0gYSBUYWIgaXMgbm90IDQgc3BhY2VzCjxicj45MTM2NCAtIFNXVF9BV1QubmV3X1NoZWxsKCkgaW4gR1RLIHZlcnNpb24gYmxvY2tzIGZvcmV2ZXIgb24gUmVkSGF0IDkKPGJyPjExNzUwNyAtIFRleHQgZWRpdG9yIGZsYXNoZXMgb24gY2FsbCB0byBzZWxlY3RBbmRSZXZlYWwoaW50LGludCkKPGJyPjExMjEwNCAtIEdDLmRyYXdBcmMvZmlsbEFyYyByZXN1bHRzIGluIGRpZmZlcmVudCBlZmZlY3RzIHdoZW4gYW50aWFsaWFzIG9uL29mZgo8YnI+MTIxMTkwIC0gU2V0dGluZyBjb250ZXh0IG1lbnUgb24gZWRpdGFibGUgQ0NvbWJvCjxicj4xMjE1MDYgLSBHQy5kcmF3SW1hZ2UoKSBzZWxlY3RzIHdyb25nIHNvdXJjZSByZWdpb24KPGJyPjEyMzY3NSAtIGZpbGxHcmFkaWVudFJlY3RhbmdsZSgpIGluIGdjIGRvZXNuJ3QgdXNlIGdEaXAgY2xpcHBpbmcgd2hlbiBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGFyZSB0aGUgc2FtZS4KPGJyPjEyNDA5MiAtIFN0eWxlZFRleHQncyBSVEYgY29weS9wYXN0ZSBicm9rZW4KPGJyPjEyNDIwOCAtIFZpcnR1YWwgdHJlZSBzZXRJdGVtQ291bnQoMCkgaGFzIG5vIGVmZmVjdAo8YnI+MTI0NDAwIC0gUGxlYXNlIGV4cG9zZSBtaW5IZWlnaHQsIG1pbldpZHRoLCBleHBhbmRIb3Jpem9udGFsLCBleHBhbmRWZXJ0aWNhbCBpbiBTY3JvbGxlZENvbXBvc2l0ZQo8YnI+MTI0NTkxIC0gU2Nyb2xsZWRDb21wb3NpdGUuY29tcHV0ZVNpemUgcmV0dXJucyB3cm9uZyB2YWx1ZSB3aGVuIGFsd2F5c1Nob3dTY3JvbGxCYXJzPT10cnVlCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjAgLSBUdWVzZGF5IEphbnVhcnkgMTcsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4NjgyNSAJQ0xhYmVsIG5vdCBjb3JyZWN0bHkgY2FwdHVyZWQgYnkgV01fUFJJTlQKPGJyPjEyMDkwNyAJQm9yZGVyIGZvciBGb3JtcyBBUEkgY29udHJvbHMgc2NyZWVuc2hvdHMKPGJyPjEyMTcyMiAJSFRNTCBjbGlwYm9hcmQgdHJhbnNmZXIgZG9lcyBub3Qgd29yayBvbiBXaW5kb3dzCjxicj4xMjI0MjggCVBlcmZvcm1hbmNlIG9uIE9TIFggc3RpbGwgZGVncmFkZXMgb24gMTAuNC4zCjxicj4xMjMxNDMgCURyYWcgaGFuZGxlIGNoYW5nZXMgdG8gZm91ci13YXkgb24gY2xpY2sKPGJyPjEyMzE4NCAJRW1iZWRkZWQgaW1hZ2UgcmVuZGVyIGVycm9yIGluIFN0eWxlZFRleHQKPGJyPjEyMzU5NCAJVGV4dC5zZXRGb3JlZ3JvdW5kKENvbG9yKSBpcyBpZ25vcmVkIHdpdGggU1dULklOSEVSSVRfRk9SQ0UKPGJyPjEyMzc2NCAJVmVydGljYWwgdGFibGUgbGluZXMgbm90IHJlZHJhd24gb24gaG9yaXpvbnRhbCBzY3JvbGwKPGJyPjEyMzk5MyAJU1dUX0FXVCBlbWJlZGRlZCBmcmFtZSBkb2Vzbid0IGdldCBpY29uaWZ5L2RlY2lvbmlmeSBldmVudHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOSAtIFR1ZXNkYXkgSmFudWFyeSAxMCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ5MjY3IAlGaXJzdCBjaGFyYWN0ZXJzIGluIFRleHQgaW5pdGlhbGx5IG5vdCBkaXNwbGF5ZWQKPGJyPjExODY3MCAJTWFrZSBTdHlsZWRUZXh0LmdldExpbmVQaXhlbChpbnQpL2dldExpbmVJbmRleChpbnQpIHB1YmxpLi4uCjxicj4xMTg3OTYgCURpcmVjdG9yeURpYWxvZy5vcGVuIGRvZXMgbm90IHJldHVybiBjaG9vc2VuIGRpcmVjdG9yeQo8YnI+MTE5MjA3IAlUYWJsZUl0ZW0gZXJyb3JzIGFmdGVyL2R1cmluZyBkaXNwb3NlCjxicj4xMjA1MjQgCWRyYXdSb3VuZFJlY3RhbmdsZSBkcmF3IGJhZCByb3VuZCBjb3JuZXIgb2YgcmVjdGFuZ2xlLgo8YnI+MTIwNTczIAlbaW1wbGVtZW50YXRpb25dIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0Cjxicj4xMjA5MTQgCVdhcm5pbmdzIHN1cHByZXNzZWQgZnJvbSBHdGtGaWxlQ2hvb3NlciBjcmVhdGlvbgo8YnI+MTIwOTU0IAlCYWNrZ3JvdW5kIG9mIENvbnRyb2wgd2l0aCBTV1QuSU5IRVJJVF9GT1JDRSBkb2Vzbid0IHNob3cuLi4KPGJyPjEyMDk4MCAJUmVncmVzc2lvbjogSW1hZ2Ugb24gZGlzYWJsZWQgYnV0dG9uIG5vIGxvbmdlciBncmV5ZWQgb3V0Cjxicj4xMjE1MDcgCWZvbnQgbGVhZGluZyAobGluZSBzcGFjaW5nKSBleGNlc3NpdmUgZm9yIHNtYWxsIGZvbnRzCjxicj4xMjE3MjkgCWluIFNXVCwgamF2YWRvYyBmb3IgVGFibGUuZ2V0Q29sdW1ucyBkb2VzIGRvY3VtZW50IG9yZGVyCjxicj4xMjE3NDEgCURpc3Bvc2luZyBhIFN0eWxlZFRleHQgZGlzcG9zZXMgaXRzIG1lbnU/Cjxicj4xMjE4OTAgCUNhbnZhcyBhbmQgbW91c2VNb3ZlTGlzdGVuZXIgYW5kIE1hY09TCjxicj4xMjE5MDMgCU9TLkFscGhhQmxlbmQgY2F1c2VzICJiZGRyYXciIHN0ZG91dCBzcGV3Cjxicj4xMjI0MzMgCUV4Y2VwdGlvbiBpbiBJbWFnZXNMaXN0Cjxicj4xMjI3MzYgCVN0eWxlZFRleHQgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGYgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyMDY1NCAgICAJQ2hlZXNlIGluIFN0eWxlZFRleHQgb24gTGludXgKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGUgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyMTA4OSAgICAJTGluZUJhY2tncm91bmRMaXN0ZW5lciBubyBsb25nZXIgd29ya3MKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGMgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExODkwOSAgICAJUHJvYmxlbXMgd2l0aCBhY2NlbnRzIHVzaW5nIFNXVF9BV1QKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGIgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Ck5vUFIJV2FybmluZyBmaXhlcywgYmFja2dyb3VuZCByZWRyYXcgaW4gQ29tYm8gYW5kIFNwaW5uZXIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGEgLSBUdWVzZGF5IERlY2VtYmVyIDEzdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyOTk5NAlJbWFnZSBiYWNrZ3JvdW5kIENvbXBvc2l0ZSAvIFRyYW5zcGFyZW50IHdpZGdldCBiYWNrZ3JvdW5kcwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDE4IC0gVHVlc2RheSBEZWNlbWJlciAxM3RoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTE0NTE4CVtidWlsZF0gZWNsaXBzZSBzb2xhcmlzLW1vdGlmIGRlcGVuZHMgb24gbGlibS5zby4yCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTdhIC0gTW9uZGF5IERlY2VtYmVyIDEydGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMTY3MjIJW1Byb3BlcnRpZXNWaWV3XSBbQ2VsbEVkaXRvcnNdIChyZWdyZXNzaW9uKSBQcm9wZXJ0eSBlZGl0Li4uCjxicj4xMTk2MzggCVR5cG8gaW4gVG9vbEl0ZW0uZ2V0Q29udHJvbAo8YnI+MTE5NjcwIAlTdHlsZVRleHQuc2V0UmFuZ2UoU3R5bGVSYW5nZSkgbm8gbG9uZ2VyIHdvcmtpbmcKPGJyPjExOTY4NyAJVHJlZSBtb3VzZSBidXR0b24gZG93biBtZXNzaW5nIHVwIGNlbGwgZWRpdG9ycwo8YnI+MTIwMTc2IAlDYW4ndCByZWxpYWJseSBjaGFuZ2UgdGhlIGN1cnNvciBkdXJpbmcgVHJhY2tlci5vcGVuKCkKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxNyAtIFR1ZXNkYXkgRGVjZW1iZXIgNnRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTAwNjU5IAlEaWFsb2cgZGlzcGxheXMgc21hbGwgc29tZXRpbWVzIGluIEdUSwo8YnI+MTE2MTIxIAlJbnZhbGlkIHdpZGdldCB1c2VkIGZvciBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlCjxicj4xMTY3NDYgCVRvb2xJdGVtIHRleHQgaXMgY2xpcHBlZAo8YnI+MTE3NzAwIAlbb3BlbiB0eXBlXSBPcGVuIFR5cGUgdGFibGUgc2hvd3MgdW5tb3RpdmF0ZWQgZWxsaXBzaXMsIGQuLi4KPGJyPjExODExOSAJTWFjOiBDYWxsaW5nIFRyZWUuc2V0SXRlbUNvdW50KCkgY2F1c2VzIFNXVEVycm9yOiBJdGVtIG5vLi4uCjxicj4xMTgzNjIgCVN0eWxlZFRleHQ6IFRvcCBpbmRleCB3cm9uZyBhZnRlciBzZWxlY3RBbGwKPGJyPjExODM3OCAJU3R5bGVkVGV4dCNjb21wdXRlU2l6ZSBpbXBvc2VzIGFydGlmaWNpYWwgbGltaXQgb24gcmV0dXJuLi4uCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTYgLSBUdWVzZGF5IE5vdmVtYmVyIDI5dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2NDc3NiAgICAJU3R5bGVkVGV4dCB3b3JkIHRyYXZlcnNlIHBsYWNlcyBjYXJldCB3cm9uZyB3aXRoIFdSQVAKPGJyPjY3NzU0IAlTdHlsZWRUZXh0OiBBSU9CRSAoUG93ZXIgb2YgMiArIDEpCjxicj43NDQ4MiAJQmFja2dyb3VuZCBjb2xvdXIgbm90IHByb3BhZ2F0ZWQgaW5zaWRlIGdyb3VwIG9yIHRhYmZvbGRlcgo8YnI+ODM0MDUgCVN1cHBvcnQgbXVsdGlwbGUgZm9udHMgaW4gU3R5bGVkVGV4dAo8YnI+ODM0MDYgCVN1cHBvcnQgb2JqZWN0cyBpbiBTdHlsZWRUZXh0Cjxicj44MzQzMCAJU3VwcG9ydCBpbmRlbnRhdGlvbiBpbiBTdHlsZWRUZXh0Cjxicj45OTM4MSAJW1BlcnNwZWN0aXZlQmFyXSBBbGlnbm1lbnQgb2YgaXRlbXMgaW4gcGVyc3BlY3RpdmUgc3dpdGNoLi4uCjxicj45OTQ2MSAJcmVzaXppbmcgVGFibGUgY2FuIGhhdmUgZHJhdyBwcm9ibGVtcwo8YnI+MTA5OTAxIAlQb29yIHBlcmZvcm1hbmNlIG9mIFN0eWxlZFRleHQuCjxicj4xMTI3MDUgCVtidWlsZF0gU1dUIHN0YW5kYWxvbmUgLnppcCB1bmNvbXByZXNzZXMgdG8gdGhlIGN1cnJlbnQgZC4uLgo8YnI+MTE1Mzk4IAlbYnVpbGRdIENvbXBpbGUgd2FybmluZ3MgaW4gb3MuYyBvbiBTb2xhcmlzL0dUSysKPGJyPjExNzU3NCAJUklHSFRfVE9fTEVGVCB8IERPVUJMRV9CVUZGRVJFRCBkb24ndCBnZXQgYWxvbmcKPGJyPjExNzc1NyAJSXMgVHJlZUl0ZW0gKC4uIGludCBoUGFyZW50LCAuLikgc3VwcG9zZWQgdG8gYmUgcHVibGljPwo8YnI+MTE3ODA3IAlwb3NzaWJsZSBidWcgaW4gVGFibGVJdGVtLnNldEltYWdlIChpbnQgaW5kZXgsIEltYWdlIGltYWdlKQo8YnI+MTE3ODE2IAlDcmFzaCB3aGlsZSBydW5uaW5nIEpGYWNlIHRlc3Qgc3VpdGUKPGJyPjExNzg3OSAJTnVsbFBvaW50ZXJFeGNlcHRpb24gZnJvbSBtb3VzZSBtb3ZlCjxicj4xMTc5MjggCUpEVCBUZXh0IHRlc3QgZG9uJ3QgcnVuIGFueW1vcmUgKG91dCBvZiBoYW5kbGVzKSAtIHdvcmtzIC4uLgo8YnI+MTE3OTkwIAlSZWR1Y2UgbWF0Y2hpbmcgY29tcGxleGl0eSBvZiB0aGUgU1dUIGZsYXQgdG9vbGJhciBSQyBzdHlsZQo8YnI+MTE4MTU0IAlTdHlsZWRUZXh0OiBzZXR0aW5nIHRoZSBjYXJldCBoYXMgbm8gZWZmZWN0Cjxicj4xMTgyMjcgCVN0eWxlZFRleHQuZ2V0QmFzZWxpbmUoKSAhPSBTdHlsZWRUZXh0LmdldEJhc2VsaW5lKG9mZnNldCkKPGJyPjExODI0MCAJU3R5bGVkVGV4dC5nZXRCYXNlbGluZShTdHlsZWRUZXh0LmdldENoYXJDb3VudCgpLTEpKSBjYXVzLi4uCjxicj4xMTgyNDEgCVN0eWxlZFRleHQ6IGdldExpbmVIZWlnaHQoaW50KSBhbmQgZ2V0QmFzZWxpbmUoaW50KTogY29kZS4uLgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDE1IC0gVHVlc2RheSBOb3ZlbWJlciAyMm5kLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTMwMTcgCVRpZ2VyOiBTdGFydGluZyBFY2xpcHNlIHdpdGggU3BvdGxpZ2h0IGZyZWV6ZXMgVUkgTWFuYWdlci4KPGJyPjEwMzMxMSAJW2J1aWxkXSBtb3ppbGxhIGFuZCBjYWlybyBzd3QgbGlicyBhcmUgbm90IGJ1aWx0IGR1cmluZyBlLi4uCjxicj4xMDQyODQgCUdUSyB3YXJuaW5ncyB3aGVuIHNldHRpbmcgaXRlbSBjb3VudCBvbiBWSVJUVUFMIFRhYmxlIGJlZi4uLgo8YnI+MTA3NzIwIAlbYnVpbGRdIFJlcXVlc3QgdG8gcmVwbGFjZSAke3dzfSwgJHtvc30gYW5kICR7YXJjaH0gaW4gZnIuLi4KPGJyPjExMzAwNSAJVGFibGUgSGVhZGVyIHN0YXlzIGRlcHJlc3NlZC4KPGJyPjExNjExMCAJRmlsZURpYWxvZyBoYW5ncyBTV1QgQXBwbGljYXRpb24KPGJyPjExNjM1MCAJVHJhbnNmb3JtIG5vdCBiZWluZyBzZXQgcHJvcGVybHkgb24gTGludXgtR1RLCjxicj4xMTY2ODMgCUhvbWUga2V5IGRvZXNuJ3Qgc2Nyb2xsIHdpbmRvdwo8YnI+MTE2Njg4IAllZGl0b3IgY2hlZXNlIGFmdGVyIGNvZGUgY29tcGxldGlvbgo8YnI+MTE2NzIwIAlHTENhbnZhcyBkb2Vzbid0IHNldCBoaW50IGZvciBtZXJnaW5nIG1vdXNlIG1vdGlvbiBldmVudHMKPGJyPjExNjg0NSAJQ3RybCtFbmQgaW4gU3R5bGVkVGV4dCBkb2VzIG5vdCBzY3JvbGwgZG93biBlbm91Z2ggdG8gcmV2Li4uCjxicj4xMTY4NTUgCVN0eWxlZFRleHQgd2l0aCBXUkFQIGFuZCBzcGVjaWFsIHRleHQgZHJhd3MgY2hlZXNlIG9uIEFyci4uLgo8YnI+MTE2OTM4IAlWSVJUVUFMIFRyZWUgaGFuZ3MKPGJyPjExNzEyNSAJVHJlZSB3aXRoIGNvbHVtbnMgc2hvd3MgaG9yaXpvbnRhbCBzY3JvbGwgYmFyIHdoZW4gaXQgc2hvLi4uCjxicj4xMTcxNzQgCU1vdXNlIGV2ZW50IGNvb3JkaW5hdGVzIGJyb2tlbiBvbiBMaW51eC1HVEsKPGJyPjExNzE5NSAJUmVncmVzc2lvbjogU2hlbGwgaWdub3JlcyBmaXJzdCBtb3VzZS1jbGljayBhZnRlciBkaWFsb2cgLi4uCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTRhIC0gVHVlc2RheSBOb3ZlbWJlciAxNXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTE2NDY2CQlBSU9PQkUgaW4gU3R5bGVkVGV4dFJlbmRlcmVyLnVwZGF0ZVJhbmdlcwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDE0IC0gVHVlc2RheSBOb3ZlbWJlciAxNXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNzk4OTQgICAgCUNvbnRyb2wudXBkYXRlKCkgbWV0aG9kIGlzIHRvbyBleHBlbnNpdmUKPGJyPjEwMDY1OSAJRGlhbG9nIGRpc3BsYXlzIHNtYWxsIHNvbWV0aW1lcyBpbiBHVEsKPGJyPjEwNzIxOSAJUmVkcmF3IHByb2JsZW1zIG9uIHJlc2l6aW5nIFRyZWUgY29sdW1uCjxicj4xMTIzNTggCU5lZWQgYSB3YXkgdG8gY3JlYXRlIGEgbmV3IENvbG9yIGJhc2VkIG9uIGFuIGV4aXN0aW5nIGNvbG9yCjxicj4xMTI0NTQgCUNvbG9yU2VsZWN0b3IgYnV0dG9uIGRvZXMgbm90IGRpc3BsYXkgY29ycmVjdGx5IHdoZW4gZmlycy4uLgo8YnI+MTEzMTA1IAlUYWJsZSB3aWRnZXQgZG9lcyBub3QgcmV0dXJuIHRhYmxlIGl0ZW0gd2hlbiAjZ2V0SXRlbShQb2kuLi4KPGJyPjExNDgxNSAJS2V5RG93biBMaXN0ZW5lciBkZWFmIHVudGlsIGNvbnRyb2xzIHRyYXZlcnNlZDsgdGhlbiBmb2N1Li4uCjxicj4xMTUyMjkgCVNXVC5SSUdIVCBvbiBMYWJlbCB3aXRoIEltYWdlIGNhdXNlcyBkcmF3aW5nIHByb2JsZW1zCjxicj4xMTUyMzAgCUZvbnQgc21vb3RoIGRvZXMgbm90IHdvcmsgaW4gRWNsaXBzZSBGb3Jtcwo8YnI+MTE1NjI4IAlbYnVpbGRdIEdMRGF0YS5qYXZhIG1pc3NpbmcgZnJvbSBzcmMuemlwCjxicj4xMTU2NjcgCUhhbmRsZSBsZWFrIGluIFRleHRMYXlvdXQKPGJyPjExNTY3NSAJZGlzYXBwZWFyaW5nIGNoZWNrYm94IHdpdGggV2luZG93cyBYUCBsb29rIGFuZCBmZWVsCjxicj4xMTYwMDUgCUNhbm5vdCB0eXBlIGluIFRleHQgd2lkZ2V0IGluIGFuIE9OX1RPUCBTaGVsbAo8YnI+MTE2MDM4IAlOZWVkIG1vcmUgZG9jcyBmb3IgbW9kYWwgYmVoYXZpb3IgY29uc3RhbnRzIGluIFNXVCBjbGFzcwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDEzIC0gVHVlc2RheSBOb3ZlbWJlciA4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0Nzc2MCAgICAJSW1hZ2VzIHRoYXQgU1dUIGNhbm5vdCBsb2FkLgo8YnI+OTMzODAgCVtEbkRdIDEwMCUgQ1BVIHVzYWdlIHdoZW4gZHJhZ2dpbmcgZmlsZXMgaW4gdGhlIG5hdmlnYXRvci4uLgo8YnI+OTgyODIgCVdyYXBwaW5nIGhhcyBzdHJhbmdlIGJlaGF2aW9yIGZvciBsb25nIExhYmVsIHdpdGggbm8gc3BhY2VzCjxicj4xMTExOTUgCURvdWJsZWNsaWNraW5nIGJldHdlZW4gVHJlZUNvbHVtbnMgZG9lcyBub3QgcmVzaXplIHRoZSBjby4uLgo8YnI+MTEyMzQ1IAlbTGF5b3V0RXhhbXBsZV0gVG9vbGJhciByZXBsYWNpbmcgYW5vdGhlciB3aWRnZXQgY2F1c2VzIGMuLi4KPGJyPjExMjQ2MyAJVHJlZS5zaG93Q29sdW1uIGRvZXNuJ3Qgc2Nyb2xsIGNvbHVtbiBmcm9tIGxlZnQgb2Ygdmlld3BvLi4uCjxicj4xMTMyNDQgCUFjY2Vzc2liaWx0eS4uLldoZW4gdXNpbmcgSkFXUyBvbiBhIFN0eWxlZFRleHQgd2lkZ2V0IHRoZS4uLgo8YnI+MTEzODAyIAlEaWFsb2dzIGJsb2NrIHRoZSBleGVjdXRpb24gb2YgKGEpc3luY0V4ZWNzCjxicj4xMTQ2MzIgCUNvbnRyb2xFeGFtcGxlIHNob3VsZCBzaG93IGJ1dHRvbiB3aXRoIGJvdGggaW1hZ2UgYW5kIHRleHQKPGJyPjExNTA5MiAJU25pcHBldCAyMDMgZG9lc24ndCB1c2UgYWxsIHRleHRzCjxicj4xMTUxNzYgCVJlZ3Jlc3Npb246IERpc2FibGluZyB0b29sIGJhciBtYWtlcyBzZXBhcmF0b3IgaXRlbXMgZGlzYS4uLgo8YnI+MTE1MjI5IAlTV1QuUklHSFQgb24gTGFiZWwgd2l0aCBJbWFnZSBjYXVzZXMgZHJhd2luZyBwcm9ibGVtcwo8YnI+MTE1MjkyIAlOdWxsUEUgaW4gVHJlZSNfZ2V0SXRlbShUcmVlSXRlbSBwYXJlbnRJdGVtLCBpbnQgaW5kZXgpCjxicj4xMTUzMTcgCVRvb2xJdGVtJ3MgYXJlIG5vdyAobGlnaHQtKWdyYXkgaW4gTTMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxMmMgLSBUdWVzZGF5IE5vdmVtYmVyIDJuZCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExNDUzMwlFZGl0b3IgcG9wdXAgaGFzIHdyb25nIHNpemUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxMmIgLSBUdWVzZGF5IE5vdmVtYmVyIDFzdCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExNDQ5OAlUYWJsZSBkb2Vzbid0IHNlbmQgc2VsZWN0aW9uIGNoYW5nZSBldmVudHMgYW55bW9yZSB3aGVuIHNlbGVjdGluZyBlbGVtZW50cyB3aXRoIHRoZSBtb3VzZQo8YnI+MTE0NTE4CVtidWlsZF0gZWNsaXBzZSBzb2xhcmlzLW1vdGlmIGRlcGVuZHMgb24gbGlibS5zby4yCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTJhIC0gVHVlc2RheSBOb3ZlbWJlciAxc3QsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMTIzOTAJW1ZpZXdlcnNdIEpVbml0IGVycm9yIGluIEpGYWNlUGVyZm9ybWFuY2VTdWl0ZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDEyIC0gTW9uZGF5IE9jdG9iZXIgMzFzdCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjc2Nzg5IAlUYWJsZSByZWRyYXcgZHVyaW5nIGRyYWcnbidkcm9wCjxicj44NTA2OSAJW01hY10gS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgb24gRXhpdAo8YnI+ODc4ODMgCVJlbW92ZSB0aXRsZSBiYXIgYnV0dG9ucyBmcm9tIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3Mgby4uLgo8YnI+ODg3MjQgCVByb3ZpZGUgJ3NpbmNlJyBqYXZhZG9jIGluIHNuaXBwZXRzCjxicj45MjM0MSAJRENSIC0gQWRkIFNXVC5WSVJUVUFMIHN0eWxlIHRvIFRyZWUgd2lkZ2V0Cjxicj45ODUxMSAJVHJlZXZpZXdlciBkb2Vzbid0IGRlLXNlbGVjdCBjaGlsZCB3aGVuIHBhcmVudCBpcyBjbG9zZWQKPGJyPjEwMDY2OCAJTWFjIG9ubHk6IHJlZHJhdyBidWcgd2hpY2ggb2NjdXJzIHdoZW4gc3dpdGNoaW5nIHZpZXdzCjxicj4xMDEzMzEgCUdDLmRyYXdGb2N1cyBub3QgaW1wbGVtZW50ZWQgb24gdGhlIE1hYwo8YnI+MTA0OTczIAlVbmhhbmRpbHkgV29ya2Fyb3VuZCBpbiBUZXh0LmdldENhcmV0TG9jYXRpb24gKCkKPGJyPjExMDk1MSAJQ29tYm8uc2V0SXRlbShpbnQsIFN0cmluZykgZG9lcyBub3QgcHJlc2VydmUgdGhlIHNlbGVjdGlvLi4uCjxicj4xMTEzMDMgCUNhbm5vdCBtaWRkbGUtYnV0dG9uIHBhc3RlIHRvIHJ4dnQgZnJvbSBFY2xpcHNlCjxicj4xMTE3OTggCVRleHQjZ2V0Q2FyZXRMb2NhdGlvbigpIHJlcGxhY2VzIHNlbGVjdGVkIHRleHQgYnkgIiAiIGlmZi4uLgo8YnI+MTEzMTcyIAlTV1QgTGFiZWwgd2lkZ2V0IHRyYW5jYXRlcyB0aGUgdGV4dCBpZiBpdCBjb250YWlucyBhIGxvLi4uCjxicj4xMTMyMDQgCVRleHQgd2lkZ2V0IGJsZWVkcyBvdXRzaWRlIFNhc2hGb3JtCjxicj4xMTM4OTUgCXBhbmdvX2xheW91dF9jb250ZXh0X2NoYW5nZWQgY2FsbGVkIHRvbyBvZnRlbgo8YnI+MTEzOTcxIAlUZXN0IGZhaWx1cmVzIGluIFRyZWUgb24gTjIwMDUxMDI3LTAwMTAKPGJyPjExNDAzOSAJVGFibGUuY29tcHV0ZVNpemUgcmV0dXJucyBib2d1cyBQb2ludC55IHZhbHVlcyB1bmRlciBXaW4zLi4uCjxicj4xMTQxMzkgCUJhZCBjb2xvdXJzIGZvciB0ZXh0IGluIHRoZSBwbHVnaW4ueG1sIGVkaXRvcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDExIC0gVHVlc2RheSBPY3RvYmVyIDI1dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNDYxMiAgICAJc2Nyb2xsIHByb2JsZW0gaW4gdHJlZSwgdGFibGUsIGFuZCBsaXN0Cjxicj4zNTkwOSAJVGFibGUgSElERV9TRUxFQ1RJT04gYmVoYXZpb3VyIG5vdCBpbXBsZW1lbnRlZAo8YnI+NDE0NjYgCVBhbnRoZXI6IENoZWNrIGFuZCBSYWRpbyBUb29sSXRlbXMgZG9uJ3QgdXNlIGNvcnJlY3QgbG9vawo8YnI+NTE3MzYgCVtKVW5pdF0gVHJlZUl0ZW0gdGVzdCBjYXNlcyBmYWlsaW5nCjxicj42ODY1NyAJSlVuaXQgdGVzdCBmYWlscyBmb3IgSW1hZ2Uuc2V0QmFja2dyb3VuZAo8YnI+NzY4MDQgCUltcHJvdmUgU1dUIHBlcmZvcm1hbmNlIG92ZXIgR1RLIHdpbmRvdyBzeXN0ZW0KPGJyPjg1NTM5IAlbSlVuaXRdIEdDLmNvcHlBcmVhIHRlc3QgY2FzZXMgZmFpbGluZwo8YnI+ODk2ODcgCWNvbXB1dGVTaXplKC0xLCAtMSkgd3JvbmcgZm9yIFRleHQgd2l0aCBTV1QuV3JhcC4KPGJyPjkxMzg4IAlUaWdlcjogMSBwaXhlbCBsaW5lIGRyYXduIG92ZXIgc2Nyb2xsYmFycwo8YnI+OTQzNzAgCVNXVCBjcmFzaGVzIHdpdGggS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgb24gbWFjCjxicj45NDYyOSAJQ2xpcHBlZCB0ZXh0IGZpZWxkcyBpbiBwcm9qZWN0IGluZm8gcGFnZQo8YnI+OTY4MzkgCUNDb21ibyB2aXNpYmxlIGFib3ZlIG5laWdoYm91cmluZyBhcmVhcyB3aGlsZSBzY3JvbGxpbmcgLi4uCjxicj4xMDAwMzUgIEVjbGlwc2UgbG9zZXMgaXRzIGRvY2sgaWNvbiB3aGVuIGRvY2sgcmVzdGFydGVkCjxicj4xMDA2OTYgCUtleWJvYXJkIGZhaWxzIG9uIE1hY09TIFgKPGJyPjEwMjA4OCAJVGV4dCB3aXRoIENFTlRFUiBoYXMgdG9vIG11Y2ggbG9naWNhbCBzcGFjZQo8YnI+MTA5MjE1IAlNb3ZlYWJsZSB0YWJsZSBjb2x1bW4gYW5kIERORCBmZWVkYmFjayBjbGFzaCBvbiBNYWNPUyBYCjxicj4xMDk5NTEgCU1hYzogTWVudSBIaWdobGlnaHQgQ2hlZXNlCjxicj4xMDk5NTIgCU1hYzogTWVudSBDbGVhcmVkIEFmdGVyIFNoZWxsIFJlc3RvcmVkIEZyb20gRG9jawo8YnI+MTExOTczIAlEZWZhdWx0IERpYWxvZyBmb250IG9uIE1hYyBPUyBYIG5vdCBnb29kIGZvciBEQkNTIGxhbmd1YWdlcwo8YnI+MTEyMTE2IAlBbnRpYWxpYXNpbmcgY2F1c2VzIGluY29ycmVjdCBkcmF3aW5nCjxicj4xMTI0MDMgCXdpbmRvdyBkaW1lbnNpb25zIGFyZSB0aW55Cjxicj4xMTI5OTQgCWF1dG8gaG9vayB1cCBzaW1wbGUgd2lkZ2V0IHJlbGF0aW9ucyBmb3Igc2NyZWVuIHJlYWRlcnMKPGJyPjExMzEwMCAJQnV0dG9uIHNpemUgdGVzdCBmYWlsdXJlcyBpbiBvcmcuZWNsaXBzZS51aS50ZXN0cwo8YnI+MTEzNDg1IAlEb24ndCBmbHVzaCBYIGV4cG9zZXMgZm9yIGEgU01PT1RIIFNhc2gKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxMCAtIFR1ZXNkYXkgT2N0b2JlciAxOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzI0NzEgICAgCURpc2FibGVkIHRleHQgZmllbGQgZG9lcyBub3Qgc2hvdyBhcyBnaG9zdGVkCjxicj4zNDUxMyAJVGV4dCBoYXMgYSBob3Jpem9udGFsIHNjcm9sbGJhciB3aGVuIG5vdCByZXF1aXJlZAo8YnI+NDEzMDYgCUJvcmRlciBkcmF3cyB0aHJvdWdoIGZhc3Qgdmlld3MKPGJyPjQxNDY3IAlQYW50aGVyOiBTd2l0Y2ggdG8gSElWaWV3cyBhbmQgQ29tcG9zaXRpbmcgbW9kZQo8YnI+NDM5MjAgCUNsaXBwaW5nIHByb2JsZW1zCjxicj41MTc0OSAJTGlzdCBmbGFzaGVzCjxicj41NzcyMyAJQklESTogU3R5bGVkVGV4dCBidWcgd2hlbiBjaGFuZ2luZyB0aGUgY29sb3Igb2YgYm9sZCB0ZXh0Cjxicj42MjkwOCAJU2Nyb2xsQmFycyBmbGFzaCB3aGVuIFRleHQgd2lkZ2V0IGNyZWF0ZWQKPGJyPjY0OTk3IAlsYWJlbCBjaGVlc2Ugd2hlbiBkaWFsb2cgbGF5b3V0IGNoYW5nZXMuCjxicj42Njk4MCAJQ3VzdG9tIENvbWJvOiBjaGFuZ2luZyBhbnkgb3B0aW9uIHdoaWxlIHRoZSBjb21wb25lbnQgaXMgLi4uCjxicj43MDU4NyAJW1BlcnNwZWN0aXZlc10gamF2YSBwZXJzcGVjdGl2ZSBkb2VzIG5vdCByZXBhaW50IG9uIG9jY2FzaW9uCjxicj43NDU3NCAJUHJvcGVydHkgRGlhbG9nID4gSW5mbyBQYWdlOiBsYXlvdXQgYnJva2VuCjxicj44MjAyMSAJQklESTp3aGVuIHNlYXJjaGluZyBmb3IgYSBzdWJzdHJpbmcgb2YgYW4gQXJhYmljIHdvcmQgdGhlLi4uCjxicj44NTc3NSAJRm9jdXMgcGFpbnRlZCBvdXRzaWRlIG9mIHRoZSB2aXNpYmxlIGFyZWEgb2Ygc2Nyb2xsYWJsZS4KPGJyPjg5Njg3ICAJY29tcHV0ZVNpemUoLTEsIC0xKSB3cm9uZyBmb3IgVGV4dCB3aXRoIFNXVC5XcmFwLgo8YnI+ODk2OTYgCUJhZCBwYWludGluZyB3aGVuIGVyYXRpY2FsbHkgc2Nyb2xsaW5nIGNvbXBhcmUgZWRpdG9yCjxicj45NDYyOSAgIENsaXBwZWQgdGV4dCBmaWVsZHMgaW4gcHJvamVjdCBpbmZvIHBhZ2UKPGJyPjk5MjY2IAlbVmlld2Vyc10gQm9ndXMgZW1wdHkgcm93cyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGFibGUKPGJyPjEwMjUyNSAJQnV0dG9uIGluIGEgdG9vbGJhciBub3Qgc2l6ZWQgY29ycmVjdGx5Cjxicj4xMDQwNDEgCVticm93c2VyXWJyb3dzZXIuZXhlY3V0ZSgpIGZhaWxzIHdoZW4gQWNyb2JhdCBSZWFkZXIgdjcgaS4uLgo8YnI+MTA4NjM1IAlUZXh0IHdpZGdldCBpbiBNQUMgT1MgWCBkb2VzbnQgcGFpbnQgdG8gR0MKPGJyPjEwODk0MyAJRHJhZ2dpbmcgdGFibGUgY29sdW1uIHNhc2hlcyBsZWZ0IHRvIHJpZ2h0IGxlYXZlcyBwcmV0dHkgLi4uCjxicj4xMTE5MTAgCVJlZ3Jlc3Npb246IEVtcHR5IHVudXNhYmxlIGRpYWxvZ3Mgb24gUmVkaGF0IDgrOSAvIGd0ay0yLi4uLgo8YnI+MTEyMzM2IAlTdHlsZWRUZXh0IGlzIHN0aWxsIG1pc2JlaGF2aW5nCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDlhIC0gVHVlc2RheSBPY3RvYmVyIDExdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgpOb1ByCVRleHQgaXNzdWVzIG9uIHRoZSBNYWMsIGNvbXBpbGUgZXJyb3Igb24gUGhvdG9uCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDkgLSBUdWVzZGF5IE9jdG9iZXIgMTF0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEzODEzICAgQVBJIHJlcXVlc3Q6IG5vdGlmaWNhdGlvbiB3aGVuIE9TIHN5c3RlbSBjb2xvcnMgY2hhbmdlCjxicj4yMjAwMCAJR1RLOiBNZW51YmFyIGlzIG5vdCBhY2NvdW50ZWQgZm9yIGluIGNvbXB1dGVUcmltKCkuCjxicj41MTQ4MCAJSlVuaXQgdGVzdHMgZm9yIEJyb3dzZXIgYXJlIHByaW50aW5nIHRvIGNvbnNvbGUKPGJyPjcxMzQ4IAlDYW4ndCBsaXN0ZW4gRXhjZWwgZXZlbnRzCjxicj43NTM5MCAJW2Jyb3dzZXJdIGRvd25sb2FkIG5vdCB3b3JraW5nIG9uIHRoZSBtYWMKPGJyPjkzNzYzIAlDbGlja2luZyBvbiB0aGUgYnV0dG9uIGZyYW1lIGRvZXMgbm90IGFjdGl2YXRlIHRvb2xpdGVtJ3MuLi4KPGJyPjExMDM0NiAJVGV4dCB3aWRnZXQgZG9lcyBub3QgdHJpZ2dlciBTV1QuRGVmYXVsdFNlbGVjdGlvbiBldmVudHMgLi4uCjxicj4xMTA1NTkgCVByZXNzaW5nIENtZCtRIHR3aWNlIGNyYXNoZXMgYXBwbGljYXRpb24KPGJyPjExMDkyMyAJVGFibGVJdGVtLnNldEltYWdlIGRvZXMgbm90IHJlZHJhdyB0aGUgaXRlbQo8YnI+MTExNzUxIAlbT3BlbkdMXSBObyBHTERhdGEgY2xhc3MgZm91bmQgd2hlbiBydW5uaW5nIGV4YW1wbGVzCjxicj4xMTE3NjIgCUpWTSBkdW1wIGluIFNXVCBuYXRpdmUgbWV0aG9kCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDggLSBUdWVzZGF5IE9jdG9iZXIgNHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzM5NjcgIAlEQ1IgLSBJbWFnZSBBTkQgVGV4dCBCdXR0b24gc3VwcG9ydCB3aGVuIGF2YWxhaWJsZQo8YnI+ODU5NjIgCUludGVybmFsIGJyb3dzZXIgbWFpbnRhaW5zIHNlc3Npb24gYWZ0ZXIgd2luZG93IGlzIGNsb3NlZAo8YnI+ODg5NTggCURpcmVjdG9yeURpYWxvZyBhbmQgRmlsZURpYWxvZyBicmluZyBDUFUgdXRpbGl6YXRpb24gdG8gMTAwJQo8YnI+OTAxMTYgCVtidWlsZF0gcGtnLWNvbmZpZyBhcmd1bWVudHMgcGFzc2VkIHRvIGxkIGFuZCBub3QgZ2NjCjxicj45ODI5NiAJQnJvd3NlciBpbiBCcm93c2VyRXhhbXBsZSBvcGVucyB0b28gc21hbGwKPGJyPjEwMjA5NyAJW2J1aWxkXSBidWlsZC5zaCB1c2VzIGhhcmRjb2RlZCBBV1RfTElCX1BBVEgKPGJyPjEwMzg5NCAJYnJvd3NlciBmYWlsIHRvIGh5cGVyIGxpbmsgdG8gYW5vdGhlciBwYWdlCjxicj4xMDk0MzEgCUFycmF5SU9CIGluIFRyZWUud21Ob3RpZnlDaGlsZAo8YnI+MTEwMzQyIAlTV1QgRXhhbXBsZSBMYXVuY2hlcjogRG91YmxlLWNsaWNrIG9uICJTdGFuZGFsb25lIiBmb2xkZXIuLi4KPGJyPjExMDUzMSAJVk0gY3Jhc2hlcyB3aGVuIGNyZWF0aW5nIGFuIEltYWdlIGFmdGVyIHJvdGF0aW9uCjxicj4xMTA3MzQgCVdhcm5pbmdzIGFib3V0IFhDcmVhdGVDb2xvcm1hcAo8YnI+MTEwNzUzIAlnZGtfcmVnaW9uX2dldF9yZWN0YW5nbGVzIGxlYWtzCjxicj4xMTA3NjcgCWphdmEubGFuZy5Ob1N1Y2hNZXRob2RFcnJvcjogWEVycm9yUHJvYyB3aGVuIHNldHRpbmcgRGlzcC4uLgo8YnI+MTEwOTQ5IAlsaW5rIGVycm9yIGluIEdDLnNldENsaXBwaW5nKHgsIHksIHcsIGgpIG9uIHBvY2tldCBwYwo8YnI+MTExMTU3IAlUcmVlSXRlbS5zZXRCYWNrZ3JvdW5kIGRvZXNuJ3Qgd29yawo8YnI+MTExMjg0IAlDcmFzaCBpbiBUcmVlU2VsZWN0aW9uIC0gRXZlbnQKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwNyAtIFR1ZXNkYXkgU2VwdGVtYmVyIDI2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNzcwOSAJU3VwcG9ydCBPcGVuR0wKPGJyPjUwNjQ2IAlDVGFiRm9sZGVyIHRvb2x0aXBzIGFyZSBub3QgcmVhZCBvdXQKPGJyPjc0MDk1IAlTV1RfQVdUIFggZXJyb3Igd2l0aCBKYWRlRGlzcGxheSBpbnRlZ3JhdGlvbgo8YnI+MTA0NDA3IAlSaWdodCBjbGljayBvbiBUcmVlIGRvZXMgbm90IGhvbm9yIHRoZSBTV1QuRlVMTF9TRUxFQ1RJT04uLi4KPGJyPjEwODkyMSAJVHJlZSB3aXRoIGxpbmVzIHZpc2libGUgbm90IHBhaW50ZWQgY29ycmVjdGx5Cjxicj4xMDg5NDkgCVticm93c2VyXSBqYXZhc2NyaXB0IGFsZXJ0cyBhcmUgbm90IHNob3duCjxicj4xMTA0MzIgCWF0a19vYmplY3RfZmFjdG9yeV9jcmVhdGVfYWNjZXNzaWJsZSBlcnJvcnMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwNmQgLSBXZWRuZXNkYXkgU2VwdGVtYmVyIDIxc3QsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMTAwNTcJW2Jyb3dzZXJdIGNyYXNoIHdoZW5ldmVyIGEgQnJvd3NlciBpcyBkaXNwb3NlZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDA2YyAtIE1vbmRheSBTZXB0ZW1iZXIgMTl0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExMDA3MwlwZXJzcGVjdGl2ZSBidXR0b24gZ29lcyBibGFuayBhZnRlciBjbG9zaW5nIHBlcnNwZWN0aXZlCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDZiIC0gTW9uZGF5IFNlcHRlbWJlciAxOXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTkyNjYJW1ZpZXdlcnNdIEJvZ3VzIGVtcHR5IHJvd3MgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHRhYmxlCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDZhIC0gTW9uZGF5IFNlcHRlbWJlciAxOXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KTm9QUiAgICAJQ29tcGlsZSBmaXhlcyBmb3IgNjQtYml0CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDYgLSBNb25kYXkgU2VwdGVtYmVyIDE5dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMDE3NTAgICAgCVtCcm93c2VyXSBDbGlja2luZyBvbiBsaW5rIHRvIFBERiBmaWxlIGRvZXMgbm90aGluZwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDA1IC0gVHVlc2RheSBTZXB0ZW1iZXIgMTN0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1NzIgICAgCU5lZWQgc3VwcG9ydCBmb3IgdG9vbCB0aXBzIGluIHRhYmxlIGNvbHVtbnMgKDFHQlpMRDEpCjxicj4zNDE4NCAJTmF0aXZlIFRyZWU6IE5vIHRvb2x0aXBzCjxicj40NjM4NyAJUGF0Y2ggZm9yIHNhdmluZyBhbmltYXRlZCBHSUZzCjxicj44NzUwMyAJaW1wbGVtZW50IE9TWCBvcGVuZ2wgYmluZGluZwo8YnI+ODc1NzcgCUdDLmRyYXdJbWFnZSgpIHdpdGggcmVzY2FsaW5nIGRvZXMgbm90IG9wdGltaXplIGNsaXBwZWQgZC4uLgo8YnI+OTc1OTcgCVRyZWUgaXMgbm90IHNob3dpbmcgbGluZXMKPGJyPjEwMTIwNCAJW2NvbnNpc3RlbmN5XSBNb3VzZURvd24gZmlyZWQgd2hpbGUgdXNpbmcgU2Nyb2xsYmFyIGluIFRhYmxlCjxicj4xMDI5NTIgCUZvcmVncm91bmQgY29sb3IgZ2V0cyBsb3N0IHdoZW4gcGFpbnRpbmcgYSBQYXRoCjxicj4xMDU3NzIgCVN0cmFuZ2UgYmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbCBvbiB0ZXh0IHNlYXJjaCBwYWdlCjxicj4xMDYyODkgCUJsdXJyeSBUcmVlIHRleHQgaW4gc2Vjb25kIGNvbHVtbgo8YnI+MTA2NDk4IAljcmVhdGluZyBUcmVlIGNvbHVtbiAwIGNhdXNlcyBkcmF3aW5nIHByb2JsZW0KPGJyPjEwNzI0MyAJU2Nyb2xsYmFyLnNldFZhbHVlcyBzaWxlbnRseSBkb2VzIG5vdGhpbmcKPGJyPjEwNzY4NCAJUmVzZXR0aW5nIG9mIGNsaXBwaW5nIHJlZ2lvbiBkb2VzIG5vdCB3b3JrIGlmIGdjLnNldFRyYW5zLi4uCjxicj4xMDgwNjAgCUV4dHJhIG5vbi1mdW5jdGlvbmFsIGhvcml6b250YWwgc2Nyb2xsIGJhciBpbiBUcmVlVmlld2VyCjxicj4xMDgxOTAgCUNvbWJvIGRvZXNuJ3QgcHJvZHVjZSBtb2RpZmljYXRpb24gZXZlbnQgZm9yIEFMVC1ET1dOCjxicj4xMDgzMTUgCUdDLnNldEFkdmFuY2VkKCkgZGVzdHJveXMgY2xpcHBpbmcKPGJyPjEwODMzMSAJVXNpZ24gaW50ZXJuYWwgd2ViIGJyb3dzZXIgdG8gYWNjZXNzIGJhc2ljIGF1dGggcHJvdGVjdGVkLi4uCjxicj4xMDg0MjMgCUdDLmRyYXdBcmMgZG9lc24ndCB3b3JrIGNvcnJlY3Qgd2l0aCBDYWlybwo8YnI+MTA4NTExIAlFY2xpcHNlIGNyYXNoZXMgd2hlbiBvcGVuIGh0bWwgZmlsZSByZW5hbWVkCjxicj4xMDg3MDYgCUdDLmRyYXdSb3VuZFJlY3RhbmdsZSgpIGRvZXNuJ3Qgd29yayBpZiBDYWlybyBpcyBpbml0aWFsaXplZAo8YnI+MTA4Nzk2IAlQbGVhc2UgbWFrZSBGb3JtQXR0YWNobWVudCgpIHB1YmxpYwo8YnI+MTA4ODY1IAlTV1QuRE9VQkxFX0JVRkZFUkVEICsgR0MuZHJhd0ZvY3VzKCkgZXF1YWxzIGNoZWVzZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDA0IC0gVHVlc2RheSBBdWd1c3QgMzB0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM0MTU5ICAgIAlbVGFza3NdIEZpcnN0IHRocmVlIGNvbHVtbnMgb2YgVGFzayBMaXN0IHRvbyB3aWRlIHcvbmF0aXYuLi4KPGJyPjM3OTU5IAlTZWxlY3Qgb24gaG92ZXIgc2VsZWN0cyB3aGVuIG1vdXNlIGlzIGluIHNjcm9sbGJhcgo8YnI+NjAzMDkgCVRleHRMYXlvdXQuZ2V0Qm91bmRzLmhlaWdodCBub3QgcmlnaHQgd2hlbiB0aGUgdGV4dCB0ZXJtaS4uLgo8YnI+NjU3MjkgCVRleHRMYXlvdXQuZ2V0T2Zmc2V0IGlzIG5vdCB3b3JraW5nIHdoZW4gdXNpbmcgJ1xuJy4KPGJyPjY3MDY2IAlUYWJsZSAibGluZXMgdmlzaWJsZSIgZmxhZyBkb2VzIG5vdCB3b3JrCjxicj44MDQ5MCAJVGhlIFNXVCBicm93c2VyIHdpZGdldCBkb2Vzbid0IHdvcmsgd2l0aCBpbnB1dCBmaWVsZCB0eXBlLi4uCjxicj44MTU2NyAJW1Byb3BlcnRpZXNWaWV3XSBQcm9wZXJ0aWVzIFZpZXcgc2Nyb2xsaW5nIHByb2JsZW0KPGJyPjk2MzM5IAlOZXh0IEVkaXRvciBjYXVzZXMgY3Jhc2ggd2hlbiByZW1hcHBlZCB0byBDdHJsLVRhYgo8YnI+OTc1OTcgCVRyZWUgaXMgbm90IHNob3dpbmcgbGluZXMKPGJyPjEwMTIwNCAJW2NvbnNpc3RlbmN5XSBNb3VzZURvd24gZmlyZWQgd2hpbGUgdXNpbmcgU2Nyb2xsYmFyIGluIFRhYmxlCjxicj4xMDU2MjIgCVRvb2xJdGVtLnNldFRleHQoIiIpIHNob3VsZCByZW1vdmUgVGV4dCBhbmQgcmV0dXJuIHRvIGluaS4uLgo8YnI+MTA1NzcyIAlTdHJhbmdlIGJhY2tncm91bmQgY29sb3Igb2YgbGFiZWwgb24gdGV4dCBzZWFyY2ggcGFnZQo8YnI+MTA2NDk0IAljcmVhdGluZyBUYWJsZS9UcmVlQ29sdW1uIG1ha2VzIGV4aXN0aW5nIGl0ZW0gZGlzYXBwZWFyCjxicj4xMDY1MDIgCXNldHRpbmcgVGFibGUgY29sdW1uIGFsaWdubWVudCBkb2VzIG5vdCB2aXN1YWxseSB1cGRhdGUKPGJyPjEwNjUxMSAJQ2Fubm90IHNldCB0ZXh0IHNlbGVjdGlvbiBpbiBWZXJpZnlMaXN0ZW5lci52ZXJpZnlUZXh0Cjxicj4xMDY5MjggCUpWTSB0ZXJtaW5hdGVzIHdoZW4gY2xvc2luZyB3ZWIgYnJvc2VyIHdpdGggQ29tbWFuZCBXIG9uIC4uLgo8YnI+MTA3Nzc3IAlbYnJvd3Nlcl0gY3Jhc2ggd2hlbiBhY2Nlc3NpbmcgcGFzc3dvcmQtcHJvdGVjdGVkIHNpdGUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwMyAtIFR1ZXNkYXkgQXVndXN0IDIzcmQsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4OTE4MyAgICAJSW1hZ2UgaW4gYW55IHRhYmxlIGNvbHVtbiBoZWFkZXIgY3JlYXRlcyBpbmRlbnQgaW4gZmlyc3QgLi4uCjxicj45MjYzNiAJW0Jyb3dzZXJdIENsaWNraW5nIGluIHdlYiBicm93c2VyIChlZGl0b3IpIGRvZXMgbm90IGRpc21pLi4uCjxicj4xMDA2NjUgCUFkZCBSZXNvdXJjZS5nZXREZXZpY2UoKQo8YnI+MTA0MzgwIAlUZXh0IHdpdGggV1JBUCAtIENvbXB1dGUgZmFpbHMKPGJyPjEwNTQ5NCAJc2V0dGluZyBpbWFnZSBpbiBUcmVlSXRlbSBjb2x1bW4gMSBhZmZlY3RzIGl0cyBmdXR1cmUgY29sLi4uCjxicj4xMDYwMDYgCVtDb250cmlidXRpb25zXSBOdWxsUG9pbnRlckV4Y2VwdGlvbnMgaW4gTWVudU1hbmFnZXIudXBkYXRlCjxicj4xMDcxMjMgCUFscGhhIHZhbHVlcyBvbiBHQyBhcmUgbm90IGFwcGxpZWQgdG8gSW1hZ2VzIG9uIFdpbmRvd3MKPGJyPjEwNzMyNCAJUmVjZW50IGNoYW5nZXMgY2F1c2luZyBhIFZNIGNyYXNoCjxicj4xMDczMjkgCUFJT09CRXhjZXB0aW9uIGNhdXNlZCBieSBUcmVlLnNldFJlZHJhdygpCjxicj4xMDc0NTIgCVticm93c2VyXSBmaXJlcyAyIGtleVVwIGV2ZW50cwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDAyYSAtIFRodXJzZGF5IEF1Z3VzdCAxOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTA3MTEyIAlDbG9zaW5nIGFuIGVkaXRvciBhZGRzICJXaWRnZXQgaXMgZGlzcG9zZWQiIGVycm9yIHRvIHRoZSAuLi4KPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwMiAtIFR1ZXNkYXkgQXVndXN0IDE2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NDE2ICAgIAlXaWRnZXQgdHJlZSBzaG91bGQgYmUgdmFsaWQgZHVyaW5nIGEgZGlzcG9zZSBldmVudCAoMUZGMURKNCkKPGJyPjQ4NjIgCUNoZWNrIGZvciBpc0Rpc3Bvc2VkKCkgaW4gZGlzcG9zZSBhZnRlciBzZW5kaW5nIERpc3Bvc2UgQy4uLgo8YnI+NjQxMDcgCUl0ZW1zIGluIGJhZCBzdGF0ZSBpbiBkaXNwb3NlIGNhbGxiYWNrCjxicj44OTE4MyAJSW1hZ2UgaW4gYW55IHRhYmxlIGNvbHVtbiBoZWFkZXIgY3JlYXRlcyBpbmRlbnQgaW4gZmlyc3QgLi4uCjxicj45MDQ0NyAJQUlPT0Igd2hlbiBjcmVhdGluZyBUcmVlSXRlbXMgaW4gVHJlZUl0ZW0uZGlzcG9zZSgpIGNhbGxiYWNrCjxicj45MDQ3OCAJVHJlZUl0ZW0uZGlzcG9zZSBjYWxsYmFjayBwcm92aWRlcyBvcHBvcnR1bml0eSBmb3IgVHJlZSBoLi4uCjxicj45MjAxMyAJRENSIC0gTmVlZCBTV1QuVkVSVElDQUwgc3R5bGUgZm9yIENvb2xCYXIKPGJyPjk0ODk2IAlCcm93c2VyLnNldFRleHQoKSBmaXJlcyBhbiB1bmV4cGVjdGVkIHVybAo8YnI+MTA0MzgwIAlUZXh0IHdpdGggV1JBUCAtIENvbXB1dGUgZmFpbHMKPGJyPjEwNDU4OSAJQ3Jhc2ggd2hpbGUgcnVubmluZyBKRmFjZSB0ZXN0IHN1aXRlcwo8YnI+MTA2Mjg5IAlCbHVycnkgVHJlZSB0ZXh0IGluIHNlY29uZCBjb2x1bW4KPGJyPjEwNjUzNiAJVGFibGVJdGVtLmdldEJvdW5kcyAtIHNtYWxsIGluY29uc2lzdGVuY2llcwo8YnI+MTA2NTQyIAlzaG93aW5nL2hpZGluZyBjb2x1bW4gc29ydCBhcnJvdyBzaG91bGQgcmVjb21wdXRlIGRpc3BsYXkuLi4KPGJyPjEwNjU0MyAJNjQtYml0IHByb2JsZW0gaW4gQ2Fpcm8KPGJyPjEwNjYwMSAJVHlwbyBpbiBTV1QgbWFrZWZpbGUKPGJyPjEwNjY0MCAJRmFpbHVyZXMgcnVubmluZyB0aGUgSkZhY2Ugc3VpdGVzCjxicj4xMDY2NDcgCVZNIGNyYXNoIGluIFRhYmxlSXRlbSBkaXNwb3NlCjxicj4xMDY3MzAgCVJlbmRlcmluZyBwcm9ibGVtcyBvbiBDdXN0b21pemUgUGVyc3BlY3RpdmUgZGlhbG9nCjxicj4xMDY3NTkgCVNXVCBkb2Vzbid0IGJ1aWxkIGFnYWluc3QgbmV3ZXN0IENhaXJvIHZlcnNpb25zCjxicj4xMDY4NTEgCU5QRXMgY2F1c2VkIGJ5IHJlY2VudCBUcmVlIGNoYW5nZXMKPGJyPjEwNzA0OCAJUGF0aC5tb3ZlVG8gZHJhd3MgbGluZXMKPGJyPjEwNzE0NSAJSmF2YWRvYyBjYW4gbm90IHJlZmVyIHRvIHBhY2thZ2UgcHJvdGVjdGVkIG1ldGhvZHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwMWMgLSBXZWRuZXNkYXkgQXVndXN0IDEwdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgpOb1BSICBTb3J0IGluZGljYXRvciBzdHVjayB1cCBvbiBXaW5kb3dzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDFiIC0gTW9uZGF5IEF1Z3VzdCA4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTcwOCAgTlBFIGluIFRhYmxlLnJlbGVhc2VXaWRnZXQKPGJyPjU5NTM3IFtXb3JrYmVuY2hdIEFjY2Vzc2liaWxpdHk6IE1pbmltaXplIGFuZCBNYXhpbWl6ZSBpY29ucyBpbi4uLgo8YnI+MTA1MTMzIG1vdXNlIHdoZWVsIHNjcm9sbGluZyBpbiBlZGl0b3IgbW92ZXMgc2Nyb2xsYmFyIHRodW1iIGJ1dC4uLgo8YnI+MTA1NTkxIFByb2JsZW1zIHNldHRpbmcgYW5kIHVwZGF0aW5nIGFuIEltYWdlIG9uIGEgTGFiZWwKPGJyPjEwNTg0OSBTV1QgYnVnczogR0RJIEhhbmRsZXMgbGVhawo8YnI+MTA2MDU4IEFudGlhbGlhc2luZyBtZW1vcnkgbGVhawo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDAxYSAtIFR1ZXNkYXkgQXVndXN0IDJuZCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjcwNTk5IAlVbmV4cGVjdGVkIHRvb2x0aXAgYmVoYXZpb3VyIG9mIENvbWJvIGNvbnRyb2wKPGJyPjgwNzk4IAlzZXRUb29sVGlwVGV4dCgpIG1ldGhvZCBvZiBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db21ibyAuLi4KPGJyPjk2MDUzIAlTcGlubmVyOiBQcmVzc2luZyBidXR0b25zIHNob3VsZCBmb2N1cyBzcGlubmVyIGFuZCBzZWxlY3QuLi4KPGJyPjk2OTE2IAlTcGlubmVyLnNldFRvb2xUaXBUZXh0KCkgZG9lc24ndCB3b3JrCjxicj45OTE0NSAJTGluayB3aWRnZXQgb25seSBkaXNhYmxlcyBsaW5rLCBub3QgdGV4dAo8YnI+MTAzNDY1IAlOZWVkIGJldHRlciBkb2N1bWVudGF0aW9uIG9mIFNXVCBldmVudCB0eXBlcy4KPGJyPjEwMzk3MyAJR0MgVHJhbnNmb3JtIG5vdCBhcHBsaWVkIHRvIGRyYXdJbWFnZSgpCjxicj4xMDQzMDEgCVN1cHBvcnQgZGlzY292ZXJ5IG9mIEFXVCBGcmFtZXMgYnkgd2Fsa2luZyB0aGUgV2lkZ2V0IGhpZS4uLgo8YnI+MTA0OTY2IAlMaW5rIGRpc3BsYXlzIGFzIGVuYWJsZWQgd2hlbiBzZXRUZXh0IGNhbGxlZCBhZnRlciBzZXRFbmEuLi4KPGJyPjEwNDk5MiAJTGlzdCBjb250cm9sIGJ1ZyBbY2hlZXNlIHdoZW4gcmVzaXppbmddCjxicj4xMDUxMzIgCUltYWdlIGZsYXNoaW5nIHdoZW4gdXNpbmcgYSBUcmVlIGluIGEgdGhlbWVkIFRhYkZvbGRlCjxicj4xMDUyMTMgCW1vdmVCZWxvdyhudWxsKSBkb2VzIG5vdCBhZGp1c3QgeiBvcmRlcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDAxIC0gVHVlc2RheSBKdWx5IDI2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxODYwNyBYUCBMb29rIGFuZCBGZWVsIC0gM0QgYm9yZGVyIGFwcGVhcmFuY2Ugb24gc29tZSB3aWRnZXRzIGQuLi4KPGJyPjI0NTM4IFRhYkl0ZW0gY29udHJvbHMgc2hvdWxkIHVzZSB0aGUgVGFiRm9sZGVyIHRvIHBhaW50IHRoZWlyIC4uLgo8YnI+Mzg5NDggY2FjdWxhdGUgdGFibGUgaGVpZ2h0IG5vdCBwb3NzaWJsZQo8YnI+NDI0NzUgQWRkIExFRlQvQ0VOVEVSL1JJR0hUIHRvIENvbnRyb2xFeGFtcGxlIFRleHQgdGFiCjxicj40MzE5MiBBZGQgc29ydCBpbmRpY2F0b3IgKGUuZy4gYXJyb3cpIGluIFRhYmxlQ29sdW1uCjxicj40NTg5NSBbYnJvd3Nlcl0gZ2V0IE5QRSB3aGVuIGNhbGxpbmcgYnJvd3NlciBhcGkgZnJvbSB3aXRoaW4gZGkuLi4KPGJyPjQ5MDY1IFRhYmxlIHdpZGdldCBmbGlja2VyCjxicj41MTk5NSBTZWxlY3Rpb25FdmVudCBub3QgZ2V0dGluZyBkZXRhaWwgaW5mbyBmb3Igc2Nyb2xsYmFyIGV2ZW50cwo8YnI+NjkzNzQgQ3Jhc2ggaW4gU1dUIEFjY2Vzc2libGUgLyBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwub2xlLndpLi4uCjxicj43NDA5NSBTV1RfQVdUIFggZXJyb3Igd2l0aCBKYWRlRGlzcGxheSBpbnRlZ3JhdGlvbgo8YnI+NzcxOTQgTXNnQm94IGlzIG5vdCBjZW50ZXJlZCBvbiBzY3JlZW4gb24gU29sYXJpcywgb2sgaW4gd2luMzIgLi4uCjxicj44MDQ2NSBYUCB0aGVtZSAtIGxhYmVsIGlzc3VlcyB3aXRoIHRhYiBmb2xkZXIKPGJyPjg1Mzg5IFtwcmVmZXJlbmNlc10gQ2hhbmdpbmcgQ29kZSBGb3JtYXR0ZXIgdGFiIHdpZHRoIGRvZXMgbm90IC4uLgo8YnI+ODYwMTggVHJlZUNvbHVtbiBzaG91bGQgc3VwcG9ydCBtb3ZlYWJsZSBoZWFkZXJzCjxicj45MjMxMyBWaXJ0dWFsIHRhYmxlOiBmbGFzaGVzIG9uIGNsZWFyCjxicj45MjM0MiBUcmVlIHdpZGdldDogbWFrZSBUcmVlQ29sdW1ucyByZW9yZGFibGUKPGJyPjk0NDI5IEdyb3VwIGxhYmVsIGRvZXNuJ3QgZmlyZSBtb3VzZSBldmVudHMKPGJyPjk0NTAyIFJlZHVuZGFudCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgY29vcmRpbmF0ZXMKPGJyPjk5NTI0IERpc3BsYXkuZXZlbnRQcm9jIHJlYWRzIGEgR2RrRXZlbnRCdXR0b24gd2hlbiBHZGtFdmVudEFueS4uLgo8YnI+OTk3NDYgVGFibGUgYW5kIFRyZWUgY29sdW1uIHJlc2l6ZSBsaW5lIG1hdGNoZXMgZm9yZWdyb3VuZCBjb2xvcgo8YnI+OTk3NjEgcHJlc3NpbmcgZG93biBhcnJvdyBzZWxlY3RzIHRvb2wgaXRlbQo8YnI+MTAwMzg3IENUYWJGb2xkZXIgY3JlYXRlcyBhbmQgZGlzcG9zZXMgYSBTaGVsbCBvbiBldmVyeSBNb3VzZUhvdmVyCjxicj4xMDA3NDEgVW51c2VkIHZhcmlhYmxlIGluIFNjcm9sbEJhci5qYXZhCjxicj4xMDEwOTMgW2Jyb3dzZXJdIGNyYXNoIHdoZW4gc2V0dGluZyBodG1sIGFzIHVybAo8YnI+MTAxNTM0IE5vIG5hdmlnYXRpb24gYnkgdHlwaW5nIGluIFZJUlRVQUwgVGFibGUKPGJyPjEwMTc5OSBFbmFibGluZyBhZHZhbmNlZCBncmFwaGljcyB3aWxsIGNhdXNlIGFscGhhIGdyYWRpZW50IHRvIGIuLi4KPGJyPjEwMTgzOSBzdXBwb3J0IE1hY09TIGNvbW1hbmQgbGluZSBvcHRpb24gIi1YZG9jazpuYW1lPTxhcHBsaWNhdGkuLi4KPGJyPjEwMjA4MCBVbnVzZWQgdmFyaWFibGVzIGluIEdDLmphdmEKPGJyPjEwMjE2NSBJbWFnZUxvYWRlciBjbG9zZXMgT3V0cHV0U3RyZWFtIG9uIHNhdmUKPGJyPjEwMjI3MiBSZXBhaW50aW5nIGEgZG91YmxlLWJ1ZmZlcmVkIGNhbnZhcyBtYXkgY2F1c2UgcGl4ZWwgY29ycnUuLi4KPGJyPjEwMjMxMyBkaXNwb3NpbmcgZmlyc3QgY29sdW1uIG9mIHJlb3JkZXJlZCBUcmVlIGNoYW5nZXMgaXRlbXMKPGJyPjEwMjQ4MSBQYXR0ZXJuIGRvZXNuJ3QgbWFrZSBhIGdyYWRpZW50Cjxicj4xMDI1NDMgSGVpZ2h0IG9mIE1lbnVJdGVtcyBkaWZmZXJzIHdoZW4gdXNpbmcgSWNvbnMgYW5kIFRleHQgY29tLi4uCjxicj4xMDI2MTcgVGFibGUgcmlnaHQgbW91c2UgZG91YmxlIGNsaWNrIHJlZ2lzdGVycyBhcyBsZWZ0IG1vdXNlIGNsaWNrCjxicj4xMDI3OTQgR3JpZExheW91dCBoYXMgY2hhbmdlIGJlaGF2aW91ciBiZXR3ZWVuIDMuMC4yIGFuZCAzLjEKPGJyPjEwMjgzMCBKdW5pdCB0ZXN0IG9mIFRhYmxlQ29sdW1uICh0ZXN0X3NldFRleHRMamF2YV9sYW5nX1N0cmluZy4uLgo8YnI+MTAyOTUyIEZvcmVncm91bmQgY29sb3IgZ2V0cyBsb3N0IHdoZW4gcGFpbnRpbmcgYSBQYXRoCjxicj4xMDMxODcgU3VwcG9ydCBncmFkaWVudHMgd2l0aCBhbHBoYQo8YnI+MTAzMjM4IFRyYXlJdGVtIG9ic2N1cmVzIEtERSdzIGdyYWRpZW50Cjxicj4xMDMzNDkgU2NhbGUgd2lkZ2V0IHN3aXRjaGVzIGZvY3VzIHdoZW4gc2V0dGluZyBiYWNrZ3JvdW5kCjxicj4xMDM0MzEgSmF2YURvYyBmb3IgQ29tcG9zaXRlLmdldENoaWxkcmVuKCkgaXMgd3JvbmcKPGJyPjEwMzQzNiBQZXJmb3JtYW5jZSBvZiBzZWxlY3Rpb24gaW4gYSBtdWx0aS1zZWxlY3QgdGFibGUKPGJyPjEwMzU3MSBJbWFnZSBpbiB0YWJsZSBoZWFkZXIgZ2V0cyBjb3JydXB0ZWQKPGJyPjEwMzYwMyBJbWFnZURhdGEgZ2V0UGl4ZWwgb3BlcmF0aW9uCjxicj4xMDM2MjcgVGV4dCNnZXRDYXJldFBvc2l0aW9uKCkgcmV0dXJucyB3cm9uZyB2YWx1ZSBmb3Igbm9uLXplcm8gLi4uCjxicj4xMDM2NDIgcmVzZXR0aW5nIGNsaXBwaW5nIHBhdGggZG9lc24ndCB3b3JrIHdoZW4gdHJhbnNmb3JtcyBhcmUgLi4uCjxicj4xMDM5MzQgVGFibGUuZ2V0SXRlbShQb2ludCkgdXNlcyBpbmNvcnJlY3QgY2FsY3VsYXRpb24gb24gTW90aWYKPGJyPjEwMzkzNyBNb3RpZjogUmVzaXppbmcgYSBjb2x1bW4gaW4gYSBsYXJnZSB2aXJ0dWFsIHRhYmxlIGlzIGV4dHIuLi4KPGJyPjEwMzkzOSBPbiBNb3RpZjogSW4gYSBsYXJnZSB2aXJ0dWFsIHRhYmxlIFRhYmxlLnJlbW92ZUFsbCgpIGlzIC4uLgo8YnI+MTA0NTA5IHJlZHVjaW5nIFZJUlRVQUwgVGFibGUncyBpdGVtIGNvdW50IGNhbiBzaG93IGRyYXdpbmcgcHJvYmxlbQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM4aSAtIE1vbmRheSBKdW5lIDI3dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMDE3OTUgICBHQy5maWxsR3JhZGllbnRyZWN0YW5nbGUoKSB3aXRoIEdESSsgY2F1c2VzIGNyYXNoCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzhmIC0gVGh1cnNkYXkgSnVuZSAyM3JkLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjA0NDggICBUZXh0IFdpZGdldCBKYXZhZG9jIGZvciBUZXh0IGxpbWl0Cjxicj40MTM0NiAJSmF2YWRvYzogYWRkIGEgbm90ZSBhYm91dCB0aGUgb3JkZXIgb2YgZ2V0U2VsZWN0ZWRJbmRpY2VzLi4uCjxicj40OTY3NCAJRE5ELkZFRURCQUNLX0lOU0VSVF9CRUZPUkUgYW5kIERORC5GRUVEQkFDS19JTlNFUlRfQUZURVIuLi4KPGJyPjc4NjM0IAlJbWFnZURhdGEuZ2V0VHJhbnNwYXJlbmN5TWFzayAtIGluY29ycmVjdCBqYXZhZG9jIG9yIGltcGwuLi4KPGJyPjg0NjgxIAlUaGUgc3BlY2lmaWNhdGlvbnMgZm9yIHNvbWUgbWV0aG9kcyBzaG91bGQgZGVzY3JpYmUgdGhlIGIuLi4KPGJyPjg0ODkxIAlJbiB0aGUgc3BlY2lmaWNhdGlvbnMgc29tZSBtZXRob2RzIGRvIG5vdCBkZXNjcmliZSB0aGVpciAuLi4KPGJyPjg0OTA2IAlXZSBmb3VuZCBzb21lIHR5cG9zIG9yIGJyb2tlbiBsaW5rcy4KPGJyPjg0OTExIAlVbnNwZWNpZmllZCBtZXRob2RzCjxicj44NjU2MiAJQ2FuIFdpZGdldC5nZXREaXNwbGF5KCkgYmUgY2FsbGVkIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZD8KPGJyPjk5MzQ4IAlKYXZhIGRvYyBmb3IgRGVjb3JhdGlvbnMuc2V0SW1hZ2VzKEltYWdlc1tdIGltYWdlcykgZG9lcyAuLi4KPGJyPjEwMDY2MyAJWzY0XSBMaW5rcyBkbyBub3QgcGFpbnQKPGJyPjEwMDY5OSAJV2lkZ2V0LnNldEtleVN0YXRlIHJlYWRzIGZyb20gbWVtb3J5IHdoaWNoIGhhcyBiZWVuIGZyZWVkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzggLSBGcmlkYXkgSnVuZSAxNnRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTg4NDUgQ3Jhc2ggd2hlbiBhIENvbWJvIGRpc3Bvc2VkIG9uIEZvY3VzT3V0Cjxicj45OTM3NiBUYWJsZUNvbHVtbiBoYXMgd2lkdGg9MCBhbmQgc2Vjb25kIGNvbHVtbiBtaXNzaW5nCjxicj45OTUzNCBJbWFnZUxpc3QgbGVha3MgYSBwaXhidWYgaWYgYW4gaW1hZ2UgYWRkZWQgbXVsdGlwbGUgdGltZXMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzN2kgLSBGcmlkYXkgSnVuZSAxNnRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDgwNSByZXNpemUgZHVyaW5nIHNldFJlZHJhdyBjYXVzZXMgY2hlZXNlICgxR0o0VVJYKQo8YnI+OTY0NzkgU1dUTWVzc2FnZXMucHJvcGVydGllcyBtaXNzaW5nIGZyb20gc291cmNlIHppcAo8YnI+OTcxNzAgW0Fib3V0XSBFY2xpcHNlIGxvZ28gbm90IHJlbmRlcmVkIGNvcnJlY3RseSBpbiBhYm91dCBkaWFsLi4uCjxicj45NzYyNSBJbnRybyBUZXN0IEEuNCBFY2xpcHNlIGNyYXNoZWQuCjxicj45OTI2NiBbVmlld2Vyc10gQm9ndXMgZW1wdHkgcm93cyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGFibGUKPGJyPjk5NTE4IEV4dHJlbWVseSBqdW1weSByZXNpemluZyBpbiB0aGUgQ29udHJvbEV4YW1wbGUKPGJyPjk5NTI1IFRleHRMYXlvdXQuZ2V0TGluZU9mZnNldHMoKSBsZWFrcyBhIHBhbmdvIGl0ZXIKPGJyPjk5NTI3IERpYWxvZyBzaXplIHByb2JsZW1zIHdoZW4gdXNpbmcgdGhlIGlvbiB3aW5kb3cgbWFuYWdlcgo8YnI+OTk1MzUgRm9udERpYWxvZyBsZWFrcyBhIHN0cmluZwo8YnI+OTk1NDEgQ3Vyc29ycyBub3QgZGlzcG9zZWQgaW4gU1dUIEZpbGVWaWV3ZXIgZXhhbXBsZQo8YnI+OTk1NjEgR0RJKyBjcmFzaCB3aXRoIGljb25zIHdoZXJlIHdpZHRoID4gaGVpZ2h0IFt3YXM6IEdFRiBwYWluLi4uCjxicj45OTYzNiBbYnJvd3Nlcl0gYnJvd3NlciBjb250ZW50cyBiZWNvbWUgZXhjbHVkZWQgZnJvbSB0YWIgb3JkZXIKPGJyPjk5NzQ1IFRyYXkgZG9lc24ndCBzdXBwb3J0IGltYWdlIHdpdGggYWxwaGEKPGJyPjk5NzU2IHBhaW50IGV4YW1wbGUgaXMgbWlzc2luZyB2aWV3IGljb24KPGJyPjk5OTM2IFticm93c2VyXSBuc0lSZXF1ZXN0IGhhcyBzb21lIGluY29ycmVjdCBtZXRob2Qgc2lnbmF0dXJlcwo8YnI+MTAwMDQwIFNsb3dkb3duIGJldHdlZW4gMy4xIFJDMSBhbmQgTjIwMDUwNjAyIGR1ZSB0byBjaGFuZ2UgdG8gSS4uLgo8YnI+MTAwMTk5IERpc3BsYXkuYXN5bmNFeGVjKCkgY2FuIGhhbmcgV2luZG93cwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM3ZyAtIEZyaWRheSBKdW5lIDEwdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5OTM0MSBHREkgbGVhayBpbiBMYWJlbCB3aXRoIHRyYW5zcGFyZW50IGltYWdlcyAocG5nLCBnaWYpCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzdmIC0gRnJpZGF5IEp1bmUgMTB0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk4ODAyIEZvY3VzIGNhbm5vdCBiZSBnaXZlbiB0byB2aXNpYmxlIGJ1dCB6ZXJvLXNpemVkIGNvbnRyb2xzCjxicj45ODg5NCBTaGVsbC5zZXRJbWFnZXMoKSBzaG91bGQgYmUgc21hcnRlcgo8YnI+OTkxNjcgSG92ZXIgRXZlbnQgZmlyZWQgY29udGluaW91c2x5IGFsdGhvdWdoIE1vdXNlIG5vdCBtb3ZpbmcKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzN2MgLSBUaHVyc2RheSBKdW5lIDl0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk2MjEyIG9yZy5lY2xpcHNlLnVpIGNvdWxkIG5vdCBiZSBmb3VuZC4KPGJyPjk2Njc5IE91dE9mTWVtb3J5IEV4Y2VwdGlvbiBmcm9tIGNvcnJ1cHRlZCBjbGlwYm9hcmQ/Cjxicj45OTEwOSAgQ29tcHV0ZVNpemUgb24gTGluayBnaXZlcyBkaWZmZXJlbnQgcmVzdWx0cyB3aGVuIGNhbGxpbmcgdHdvIHRpbWVzIGluIGEgcm93CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzcgLSBUaHVyc2RheSBKdW5lIDl0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjc3NjExICBbYnJvd3Nlcl0gSUUgc2hvd3Mgd2FybmluZyBkaWFsb2cgd2hlbiBKUyBlcnJvciBvY2N1cmVkICAKPGJyPjg5Mzk3ICBDb21waWxlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIGxpYnN3dC1ndGstWFhYWC5zbyAgCjxicj45MTU0NyAgSW5zZXJ0aW9uIGxpbmUgaW4gVHJlZVZpZXdlciBkb2VzIG5vdCBzaG93IHVwIGR1cmluZyBkcmFnLi4uICAKPGJyPjkzNzI0ICBEcmFnLWFuZC1kcm9wIGNyZWF0ZXMgc2lnbmFsIG5hbWVzIGV2ZXJ5IHRpbWUgIAo8YnI+OTQyMTAgIE11bHRpcGxlIGV4cGFuc2lvbiBicm9rZW4gaW4gdHJlZXMgIAo8YnI+OTYwNDIgIGNvbXB1dGVUcmltKCkgaXMgbm90IHJldHVybmluZyB0aGUgY29ycmVjdCB2YWx1ZSAgCjxicj45NjUyNSAgUGFpbnRpbmcgYSB0cmFuc2x1Y2VudCBpbWFnZSBmYWlscyB3aGVuIHRoZSBHQyBpcyBtaXJyb3JlZCAgCjxicj45NjcyMyAgVGFibGUgbm90IHNob3duIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3MgaW5pdGlhbGx5ICAKPGJyPjk2ODczICBJY29ucyBpbiB0b29saXRlbSBhcmUgbWlycm9yZWQgb24gbWlycm9yZWQgdG9vbGJhciAgCjxicj45NzAxMSAgQ3VzdG9tIFRhYmxlIGZvbnQgaXMgbm90IGFwcGxpZWQgdG8gZmlyc3QgY29sdW1uIGhlYWRlciAgCjxicj45NzA0NiAgUE5HIGltYWdlcyBsb29rIGNvcnJ1cHQgYXMgbWFpbiB3aW5kb3cgaWNvbiAgCjxicj45NzE3NyAgW21pc2NdIENoaW5lc2UgSU1FIHN0YXR1cyBsb3N0ICAKPGJyPjk3MzQwICBNb3VzZUVudGVyIG5vdCBmaXJlZCB3aGVuIHNjcm9sbCBiYXIgcmVsZWFzZWQgIAo8YnI+OTczNzAgIGdub3Blcm5pY3VzIG5vIGxvbmdlciByZWFkcyBjdXN0b20gd2lkZ2V0cyBpbiBlY2xpcHNlICAKPGJyPjk3NjUxICB0cmVlIGluc2VydCBtYXJrIGNoZWVzZSAgCjxicj45NzY1OSAgVHJlZUNvbHVtbnMgZG9uJ3QgZmlyZSBDb250cm9sRXZlbnRzIG9uIGRpc3Bvc2UoKSBbd2luMzJdICAKPGJyPjk3NjY4ICBDaGV2cm9uIG5vdCBhbHdheXMgc2hvd2luZyBpbiBQZXJzcGVjdGl2ZSBTd2l0Y2hlciAgCjxicj45NzY3OCAgU2FzaEZvcm0gLSBjYW4gbG9zZSBzYXNoIGZvciBpdGVtIG9uIGZhciByaWdodCAgCjxicj45NzY4NiAgQUlPT0Igd2hlbiByZW1vdmluZyBub24tZXhpc3RlbnQgVGFibGVJdGVtIGJ5IGluZGV4ICAKPGJyPjk3Njk2ICBUb29sSXRlbSB3aXRoIGltYWdlIGlzIGJsYW5rIG9yIHNob3dzIGNoZWVzZSAgCjxicj45NzY5NyAgQ0NvbWJvIC0gZHJvcCBkb3duIGxpc3QgYXBwZWFycyBpbiB3cm9uZyBwbGFjZSAgCjxicj45NzcyNSAgR1RLIC0gTGF5b3V0IEV4YW1wbGUgdGFibGUgZWRpdG9yIGNvbWJvIGluIHdyb25nIHBsYWNlICAKPGJyPjk3NzQzICBbcG9ydGFiaWxpdHldIERyYWcgVG9vbCBUdXJucyBPZmYgb24gTGludXggIAo8YnI+OTc3NDUgIFRhYmxlIGNvbHVtbiBoZWFkZXIgc3RheXMgcHJlc3NlZCBpZiBtb3VzZSBidXR0b24gcmVsZWFzZS4uLiAgCjxicj45Nzc2MiAgSGlkaW5nIHJlZHJhdyB3aW5kb3cgYmVmb3JlIGRlc3Ryb3lpbmcgaXQgIAo8YnI+OTc4MTMgIGhlaWdodCBvZiBUZXh0IHdpZGdldHMgZm9yIFNXVC9HVEsgZGlmZmVycyBmcm9tIG5hdGl2ZSBHVC4uLiAgCjxicj45NzkwMyAgcHJvYmxlbSBpbiBmZWF0dXJlcyBQbGF0ZWZvcm0gYW5kIFBsYXRlZm9ybSBQbHVnLWluIERldmVsLi4uICAKPGJyPjk3OTE1ICBUYWJsZS5yZW1vdmUoaW50KSBjYW4gY2hhbmdlIHNlbGVjdGlvbiAgCjxicj45NzkzMSAgQ29vbGJhciBmYWlscyB0byBzaG93IGNvbnRlbnRzIHVudGlsIHJlc2l6ZWQgIAo8YnI+OTc5NzggIFRhYmxlL1RyZWVDb2x1bW5zIGRvbid0IGZpcmUgQ29udHJvbEV2ZW50cyBvbiBkaXNwb3NlKCkgWy4uLiAgCjxicj45Nzk4MSAgRm9jdXMgZ2l2ZW4gdG8gdGhlIEVjbGlwc2Ugd2luZG93IHdoaWxlIHRoZSBwcmVmZXJlbmNlcyBkLi4uICAKPGJyPjk3OTg1ICBTbmlwcGV0MTQ0IChWaXJ0dWFsIFRhYmxlKSBzbG93IG9uIHRoZSBNYWMgIAo8YnI+OTc5OTIgIGphdmFkb2Mgd2FybmluZ3MgaW4gUkMxICAKPGJyPjk4MDI0ICBPcGVuIHR5cGUgZGlhbG9nIHNraXBzIG92ZXIgdG9vIG11Y2ggIAo8YnI+OTgxNTYgIEltYWdlcyBub3QgYXBwZWFyaW5nIG9uIG1lbnVzLCBvciB3aGVuIHBhaW50ZWQgIAo8YnI+OTgzODMgIExpbnV4IEFNRDY0IG1pc3Npbmcgb3JnLmVjbGlwc2Uuc3d0Lmd0ay5saW51eC54ODYgMy4xLjAgaC4uLiAgCjxicj45ODQzOSAgUGl4ZWwgY29ycnVwdGlvbiB3aGVuIHVzaW5nIGNsaXBwaW5nIG9uIGEgZG91YmxlLWJ1ZmZlcmVkLi4uICAKPGJyPjk4ODAyICBGb2N1cyBjYW5ub3QgYmUgZ2l2ZW4gdG8gdmlzaWJsZSBidXQgemVyby1zaXplZCBjb250cm9scyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzYgLSBUaHVyc2RheSBNYXkgMjZ0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI2OTAyOiAgR1RLOiBtb3VzZSB3aGVlbCBkb2Vzbid0IHdvcmsgb24gdGhlIGNvbXBhcmUgZWRpdG9yICAKPGJyPjY0MzkzOiAgRm9yZ290IHRvIGNsb3NlIDxjb2RlPiB0YWcgaW4gU1dUIGphdmFkb2NzICAKPGJyPjc3NTQwOiAgdHlwbyBpbiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmN1c3RvbS5TdHlsZWRUZXh0LnNldE9yaWVuLi4uICAKPGJyPjc3NjE3OiAgQnJpZWYgInBhZ2Ugbm90IGZvdW5kIiBtZXNzYWdlIG9uIHN0YXJ0dXAgIAo8YnI+ODEwNjQ6ICBbQnJvd3Nlcl0gSFRNTCBzZXQgdmlhIHNldFRleHQoKSBub3Qgc2hvd2luZyBpbiBtb3N0IGNhcy4uLiAgCjxicj44MjE2OTogIEluIGNvbnNvbGUgcGFuZSwgY2Fubm90IGNsaWNrICJUZXJtaW5hdGUiIGFuZCB0aGVuICJSZW1vdi4uLiAgCjxicj44NTY0NTogIFR5cGVhaGVhZCBicm9rZW4gZm9yIFRhYmxlIGFuZCBUcmVlICAKPGJyPjg5Mzc4OiAgQ29tYm8gZGVmYXVsdCBzaXplIHRvbyBzbWFsbCB3aXRoIGNlcnRhaW4gZm9udHMgIAo8YnI+ODk1NzQ6ICBJbiB0aGUgdGFzayBiYXIsIHRoZSBFY2xpcHNlIHdpbmRvdyBpcyBjYWxsZWQgIlRvcExldmVsU2guLi4gIAo8YnI+ODk3MjA6ICBDcmFzaCBjbG9zaW5nIGRpYWxvZyB3aGVuIElNIGlzIG9wZW4gKElJSU0pICAKPGJyPjkwMjQ2OiAgU3R5bGVkVGV4dCBkcmF3cyBjaGVlc3kgaWYgdGhlIGNhcmV0IGlzIGludmlzaWJsZSAgCjxicj45MjEwNTogIEJJREkzLjE6IE1peGVkIEFyYWJpYyBhbmQgRW5nbGlzaCB0ZXh0IGlzIHZpZXdlZCBpbmNvcnJlYy4uLiAgCjxicj45MjM1MjogIERCQ1MzLjE6Y2FuJ3QgaW5wdXQgQ0hUIHN0cmluZ3MgYWZ0ZXIgcHJlc3MgRW50ZXIgd2hpbGUgeC4uLiAgCjxicj45MjYyOTogIFRhYmxlLnNldFNlbGVjdGlvbiBkb2VzIG5vdGhpbmcgaWYgdGhlcmUgaXMgYSBUYWJsZUNvbHVtbiAgIAo8YnI+OTQ0Mzc6ICBhZGQgIkNvbHVtbnMgUmVvcmRlcmFibGUiIGNoZWNrYm94IHRvIENvbnRyb2xFeGFtcGxlJ3MgVGEuLi4gIAo8YnI+OTQ1OTU6ICBlY2xpcHNlIGd0ayBkb2Vzbid0IHNldCBYIHdpbmRvdyBuYW1lICAKPGJyPjk0NTk4OiAgREJDUzMuMTpFY2xpcHNlIGhhbmdzIHdoZW4gYWN0aXZhdGUgSUlNRiBpbnB1dCBpbiBzZWFyY2ggLi4uICAKPGJyPjk0OTQ2OiAgRmlsZURpYWxvZyBzaG91bGQgaW5oZXJpdCBpbWFnZSBmcm9tIHBhcmVudCBzaGVsbCAgCjxicj45NTExNjogIGNhbiBjcmVhdGUgU2hlbGwgd2l0aCBkaXNwb3NlZCBwYXJlbnQgU2hlbGwgIAo8YnI+OTU3NTY6ICBUYWJsZXMgZG9uJ3QgcmVwYWludCAgCjxicj45NTgyNTogIEdUSyB3YXJuaW5ncyB3aGVuIHVzaW5nIGEgdmlydHVhbCB0YWJsZSAgCjxicj45NjA5MDogIFBvcHVwIG1lbnUgZG9lc24ndCB3b3JrIHdoZW4gZGlhbG9nIG9wZW5lZCB2aWEgc2hvcnQgY3V0ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzNWMgLSBGcmlkYXkgTWF5IDEzdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5MzUyNjogU1dUIEJyb3dzZXIgY3Jhc2hlcyBvbiBNYWNPUwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM1YiAtIEZyaWRheSBNYXkgMTN0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk1MDM1OiBDYW4ndCBMYXVuY2ggRWNsaXBzZSBvbiBXaW5kb3dzIDk4CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzVhIC0gVGh1cnNkYXkgTWF5IDEydGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4ODQ2MzogIE5vIGhvdmVyIGhlbHAgaW4gamF2YSBlZGl0b3IgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM1IC0gVGh1cnNkYXkgTWF5IDEydGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5NDQyMTogTlBFIHNob3dpbmcgYSBDb29sQmFyJ3MgZHJvcGRvd24KPGJyPjk0NDY3OiBUYWJsZSBsYXlvdXRzIHdoaWNoIG9ubHkgbGF5IG91dCBvbmNlIGFyZSBnaXZpbmcgYm9ndXMgc2l6ZXMKPGJyPjk0ODM1OiBCdXR0b25zIHdpdGggY2hhcmFjdGVycyB0aGF0IHN0YXJ0IHdpdGggYSBsaW5lIGFyZSBjdXQgb2ZmIGluIHJpZ2h0IHRvIGxlZnQKPGJyPjk0ODE1OiBEZWNvcmF0aW9ucy5zZXREZWZhdWx0QnV0dG9uKCkgZG9lcyBub3QgY2hlY2sgZm9yIG51bGwKPGJyPjk0Nzg0OiBKYXZhIHNlYXJjaCBjYW4ndCBiZSBjaGFuZ2VkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzQgLSBUdWVzZGF5IE1heSAxMHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzEwNjY6ICBCdXR0b24gd2lkZ2V0IGRvZXMgbm90IHN1cHBvcnQgaW1hZ2VzIHdpdGggdHJhbnNwYXJlbnQgY29sb3IuICAKPGJyPjcxMjI4OiAgUHJvZ3JhbS5maW5kUHJvZ3JhbSgiaHRtbCIpIHJldHVybnMgbnVsbCB3aGVuIHRoZXJlJ3Mgbm8gZGVmYXVsdCBjb21tYW5kICAKPGJyPjcxMjM0OiAgUHJvZ3JhbS5leGVjdXRlIG1hbmdsZXMgVVJMcyAgCjxicj43Mjc4NDogIENsb3NlIG92ZXJyaWRlIHJlZGlyZWN0IHdoaWxlIG9wZW5pbmcgYW5vdGhlciBsb3NlcyBmb2N1cyBmb3JldmVyICAKPGJyPjc1MTQ4OiAgTWFjIGxhdW5jaGVyOiBpbXByb3ZlIERvY2sgaWNvbiBhbmQgYXBwbGljYXRpb24gbmFtZSBzdXBwb3J0Cjxicj43NjYyODogIEVjbGlwc2UgY3Jhc2hlZCBKVk0gd2hlbiBDVlMgcHJvdG9jb2wgbm90IHNldCBjb3JyZWN0bHkgIAo8YnI+NzkyNjg6ICBQcm9ncmFtIEFQSSBkb2VzIG5vdCB3b3JrIHdpdGggR05PTUUgMi44IChsaWJnbm9tZXZmcy1XQVJOSU5HKSAgCjxicj43OTYzMTogIFtDVGFiRm9sZGVyXSBNaW4gLyBNYXggYnV0dG9ucyBhcmUgaGlkZGVuIHdoZW4gbGFzdCBpdGVtIGNsb3NlZCAgCjxicj44MDU2NDogIEltYWdlIHRyYW5zcGFyZW5jeSBub3QgYWx3YXlzIGhhbmRsZWQgY29ycmVjdGx5IChjYXNlICMxKSAgCjxicj44MDU2NzogIEltYWdlIHRyYW5zcGFyZW5jeSBub3QgYWx3YXlzIGhhbmRsZWQgY29ycmVjdGx5IChjYXNlICMyKSAgCjxicj44MzU2NDogIFtTYXNoRm9ybV0gU2FzaCBubyBsb25nZXIgbW92ZWFibGUgd2hlbiBvbmUgd2VpZ2h0IGlzIHZlcnkgdGlueSAgCjxicj44NDIxOTogIExpc3Quc2hvd1NlbGVjdGlvbigpIHNjcm9sbHMgbGlzdCBhbHRob3VnaCBpdGVtIGFscmVhZHkgdmlzaWJsZSAgCjxicj44NzA1MTogIE5QRSBpbiBmaWxlIGRpYWxvZyB3aGVuIHRyeWluZyB0byBvcGVuIGEgZmlsZSB3aXRoIGEgd2llcmQgbmFtZS4gIAo8YnI+ODc2MzY6ICBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gVHJlZUl0ZW0uc2V0SW1hZ2UoKSAgCjxicj44ODAzMDogIFRhYmxlIGFuZCBTV1QuQ0hFQ0s6IENoZWNrIG5vdCB2aXNpYmxlIG9uIHNlbGVjdGlvbiAgCjxicj45MDQ2MjogIGFkZCBmcmFnbWVudCBvcmcuZWNsaXBzZS5zd3QuZ3RrLmxpbnV4LnBwYyAgCjxicj45MDkzODogIEdDLnNldExpbmVTdHlsZSBwcm9kdWNlcyBpbmNvbnNpc3RlbnQgZGFzaCBmb3Igd2lkdGggZXF1YWwgMSAgCjxicj45MTE1OTogIFtDb25zaXN0ZW5jeV0gRHJvcFRhcmdldCBldmVudC5kYXRhVHlwZSBmaWVsZCBub3QgYWx3eXMgc2V0IG9uIERyYWdFbnRlciAgCjxicj45MTY3MjogIENUYWJGb2xkZXIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzICAKPGJyPjkyMTgxOiAgQm9ndXMgQ1RhYkZvbGRlciB0YWIgc2l6ZXMgIAo8YnI+OTI2MTI6ICBDVGFiRm9sZGVyIGhpZGRlbiB0YWJzIGNvdW50IChpbiBjaGV2cm9uKSBjYW4gYmVjb21lIDAgIAo8YnI+OTMxMDY6ICBHQjE4MDMwOiBDb3B5IEdCMTgwMzAgY2hhciBvdXRzaWRlIG9mIGVkaXRvciB0byBlZGl0b3Igd2lsbCBnZXQgdW5pY29kZSBlbmNvZGluZyBzaG93bi4gIAo8YnI+OTMzNDk6ICBTdXBwb3J0IGFscGhhIHRyYW5zcGFyZW5jeSBpbiBTaGVsbCBpbWFnZXMgIAo8YnI+OTMzODI6ICBVc2UgY2Fub25pY2FsIHNpZ25hbCBuYW1lcyAgCjxicj45MzM4NzogIGNvbnNvbGUgaGlqYWNrcyBTV1QgZXZlbnQgdGhyZWFkIHdoZW4gc2VsZWN0aW5nIGJpbmFyeSBjb250ZW50ICAKPGJyPjkzMzkxOiAgRWNsaXBzZSAzLjAuMSBQTEFURk9STSBDUkFTSC4gSlZNIHRlcm1pbmF0aW9uIGV4aXQgY29kZSAxIG9uIFN1U0UgOC4yIExpbnV4IHg4NiBndGsgb24gIkVjbGlwc2UgT3ZlcnZpZXciICAKPGJyPjkzNTAxOiAgVG9vbEJhci5jb21wdXRlU2l6ZSBpcyByZXR1cm5pbmcgYSBtdWNoIHdpZGVyIHdpZHRoIHRoYW4gaXQgdXNlZCB0byAgCjxicj45MzY2NDogIFRSQVZFUlNFX1JFVFVSTiBjbG9zaW5nIGEgZGlhbG9nIGNhbm5vdCBiZSBzdXBwcmVzc2VkIGluIGEgY29tYm8gYm94ICAKPGJyPjkzNjkxOiAgUHJvZ3JhbS5maW5kUHJvZ3JhbSgiaHRtbCIpIGZhaWxzIHdpdGggRmlyZWZveCBhcyB0aGUgZGVmYXVsdCBicm93c2VyICAKPGJyPjkzNzU5OiAgQ2FuJ3QgZHJhd1BhdGggb24gaW1hZ2UgR0MgIAo8YnI+OTM4NDg6ICBMYWJlbCBub3Qgd3JhcHBpbmcgIAo8YnI+OTM4NzA6ICBbSW1wb3J0L0V4cG9ydF0gVXNhYmlsaXR5IHByb2JsZW0gd2l0aCB0aGUgSW1wb3J0ID4gRXhpc3RpbmcgUHJvamVjdCBpbnRvIFdvcmtzcGFjZSAgCjxicj45NDAwMzogIENhbm5vdCB1cGRhdGUgYSBidXR0b24gaW1hZ2UgdXNpbmcgYSBHQyBpZiB0aGUgaW1hZ2UgaXMgc2V0IGJlZm9yZSBjcmVhdGlvbiAgCjxicj45NDEzMjogIENsYXNzQ2FzdCBleGNlcHRpb24gaW4gRmlsbExheW91dC5jb21wdXRlQ2hpbGRTaXplICAKPGJyPjk0MjAyOiAgQWN0aXZhdGUgZXZlbnQgbm90IGZpcmVkIHdoZW4gT05fVE9QIHdpbmRvdyBoaWRkZW4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDMzIC0gVHVlc2RheSBNYXkgM3JkLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzMzMTM6ICBbSlVOSVRdIENvbWJvIHJlbW92ZSBmYWlscyAgCjxicj4zMzgyMTogIEhlYWRlciBvZiBuYXRpdmUgdGFibGUgZG9lc24ndCBzaG93IGltYWdlcyAgCjxicj4zODQxNTogIHJlbW92ZSgpIGZ1bmN0aW9uIGluIGNvbWJvIGJlaGF2ZXMgaW5jb25zaXN0ZW50bHkgKEJCQVdUKSAgCjxicj40NTc5MzogIFBhbnRoZXI6IEluaXRpYWwgQ29tYm9ib3ggY29udGVudHMgbm90IHZpc2libGUgIAo8YnI+NjMyNjY6ICBOYXRpdmUgcGxhdGZvcm0gaWNvbnMgbG9vayBqdW5reSAgCjxicj42NTgwNjogIFttaXNjXSBUZXh0Vmlld2VyLnJldmVhbFJhbmdlIHZlcnkgc2xvdyBmb3IgbG9uZyByYW5nZXMgIAo8YnI+Njc0MDA6ICBFZGl0YWJsZSBjb21iby1ib3ggbWlzc2VzIG91dCB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgdW50aWwgZm9jdXMgaXMgZ2l2ZW4gIAo8YnI+ODA0NjM6ICBFQzogQ29vbEJhciBoZWlnaHQgPCBDb21ibyBoZWlnaHQgIAo8YnI+ODMwOTc6ICBEaWFsb2cgb3BlbnMgd2l0aCBubyBjb250ZW50czsgcmVzaXppbmcgc2hvd3MgY29udGVudHMgIAo8YnI+ODM5MDU6ICBObyB3YXkgdG8gY2VudGVyIHRvb2wgaXRlbXMgb24gYSB2ZXJ0aWNhbCB0b29sYmFyICAKPGJyPjg0NjMyOiAgaGlkaW5nIFRyZWUgaGVhZGVyIGNhbiBsZWF2ZSBjaGVlc2UgIAo8YnI+ODU4NjI6ICBbY29uc2lzdGVuY3ldIFRyZWVFdmVudCBmaXJlZCB1cG9uIGRpc3Bvc2FsIG9mIFRyZWVJdGVtcyAgCjxicj44NjIwMTogIE91dHB1dCBpbiBjb25zb2wgY2F1c2VzIEVjbGlwc2UgdG8gY3Jhc2ggIAo8YnI+ODYyMTQ6ICBHVEsgY2FyZXQgbG9jYXRpb24gZ2V0cyBoYW1tZXJlZCBhZnRlciBiZWluZyBzZXQgaW4gdmVyaWZ5IGV2ZW50ICAKPGJyPjg2ODMwOiAgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkdDOiBUcmFuc2Zvcm0gaGFzIG5vIGVmZmVjdCB0byBpbWFnZXMgd2l0aCB0cmFuc2FyZW50IGNvbG9ycyBsaWtlIEdJRi9QTkcgIAo8YnI+ODc0Nzc6ICBFY2xpcHNlIG9uIExpbnV4LU1vdGlmIHJlcXVpcmVzIEdMSUJDXzIuMyAgCjxicj44NzgyMjogIEdDLmRyYXdTdHJpbmcgaWdub3JlcyB0cmFuc3BhcmVuY3kgYm9vbGVhbiB3aGVuIGFscGhhIGlzIHVzZWQgIAo8YnI+ODkyMzk6ICBQYWludGluZyBwcm9ibGVtcyB1c2luZyBsYXRlc3QgYnVpbGRzICAKPGJyPjkwMTE1OiAgc3d0LW1vemlsbGEuemlwIHNvdXJjZSBmaWxlIHB1dHMgeHBjb20uY3BwIGluIGxpYnJhcnkvIHN1YmRpcmVjdG9yeSAgCjxicj45MDMwMzogIHR1cm4gb2ZmIGNhcmV0IGJsaW5rICAKPGJyPjkxMzAyOiAgKHJlZ3Jlc3Npb24pIFRyYW5zcGFyZW5jeSBpcyBub3QgdHJhbnNwYXJlbnQgaW4gcmVtb3ZlIGJ1dHRvbiBvbiBwcm9ncmVzcyB2aWV3IGl0ZW0gIAo8YnI+OTE0NDE6ICBEZWZhdWx0IGJ1dHRvbiBmbGlja2VycyBpbiAiUmVwbGFjZSB3aXRoIFVuY29tbWl0dGVkIENoYW5nZXMiIGRpYWxvZy4gIAo8YnI+OTIzMTg6ICBWaWV3Rm9ybS5zZXQqIHRyaWdnZXJzIGEgbGF5b3V0ICAKPGJyPjkyNTA1OiAgQ3JlYXRpbmcgYSBHTk9NRSBpY29uIHRoZW1lIGlzIHNsb3cgIAo8YnI+OTI1NDE6ICBUcmVlIGl0ZW1zIGRvIG5vdCBhbmltYXRlIGFzIHRoZXkgZXhwYW5kICAKPGJyPjkyNjE2OiAgZXZlbnQgZG9pdD1mYWxzZSBkb2VzIG5vdCB3b3JrIGZvciBDb21ibyBvbiBNYWMuICAKPGJyPjkyNjQ4OiAgVHJlZSxzZXRUb3BJdGVtIGNhbiBlbmQgdXAgc2V0dGluZyB0aGUgd3JvbmcgbnVtYmVyICAKPGJyPjkyODQ0OiAgSW5jcmVhc2Ugc2Nyb2xsaW5nIHNwZWVkIGJhc2VkIG9uIGRpc3RhbmNlIGZyb20gdGhlIHdpZGdldCAgCjxicj45Mjg2NDogIFthcGldIGNvbnN0cnVjdGlvbiBub3RpY2VzIGluIEdDLCBQYXR0ZXJuLCBldGMuICAKPGJyPjkyODgzOiAgTGluZXMgYXJlIG1pc2FsaWduZWQgKGFudGlhbGlhc2VkKSAgCjxicj45Mjk2NDogIExhdW5jaGVyIHNob3VsZCBoYXZlIG5vIHBpeG1hcCBiYWNrZ3JvdW5kIHVuZGVyIFggIAo8YnI+OTMwNTg6ICBGb3JtIExheW91dCBiZWhhdmlvdXIgaGFzIGNoYW5nZWQgYmV0d2VlbiAzLjAgYW5kIDMuMSAgCjxicj45MzE1MTogIFRhYmxlSXRlbS5jb21wdXRlRGlzcGxheVRleHQgZG9lcyBub3QgY2hlY2sgdG8gc2VlIGlmIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBzdHJpbmcgIAo8YnI+OTMxNTg6ICBTV1QgZmluZ2VycHJpbnRzIGFuZCBhc3NlcnRpb25zIHVzZSBDUFUgdGltZSBjZi4gZWxhcHNlZCBwcm9jZXNzICAKPGJyPjkzMjIyOiAgU2V0dGluZyBhIGN1cnNvciBvbmx5IG5lZWRzIGEgZmx1c2gsIG5vdCBhIHN5bmMgIAo8YnI+OTMyNTU6ICBbQ29udHJpYnV0aW9uc10gVmVydGljYWwgc2VwYXJhdG9yIHdoZXJlIGhvcml6b250YWwgd2FzIGV4cGVjdGVkICAKPGJyPjkzMjY2OiAgc2V0QmFja2dyb3VuZCBvZiB0ZXh0IHJlZHJhdyBpbmNvcnJlY3Qgd2l0aCB4cCBzdHlsZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzIgLSBUdWVzZGF5IEFwcmlsIDI2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0MTc3MjogIERCQ1M6IERCQ1MgY29weSBhbmQgcGFzdGUgZm9yIE9wZW5PZmZpY2UgZmFpbHVyZSAgCjxicj41MDU5ODogIFNvbWUgZm9jdXMgZXZlbnRzIGFyZSByZXBvcnRlZCB0d2ljZSAgCjxicj41NTM4MjogIHNldEFjY2VsZXJhdG9yKC0xKSBvbiBNZW51SXRlbSBzaG93cyBlcnJvciBvbiBMaW51eCAgCjxicj42ODQ3ODogIEFub3RoZXIgdmFyaWFudCBvZiB0aGUgU1dURXJyb3I6IG5vIG1vcmUgaGFuZGxlcyAgCjxicj42OTM4MTogIENhbGwgdG8gbmV3X1NoZWxsIHJlc3VsdHMgaW4gIk5vIG1vcmUgaGFuZGxlcyIgZXJyb3IgIAo8YnI+Njk3MDE6ICBQcmludGVyIGRvZXNuJ3Qgc3RyZXRjaCBCJlcgaW1hZ2VzIGNyZWF0ZWQgYnkgY29kZS4gIAo8YnI+ODA3NjI6ICBJbnRlcmFjdGl2ZSB0ZXh0IHNlbGVjdGlvbiBsYWdzIG9uIExpbnV4LUdUSysgIAo8YnI+ODEyOTg6ICBOUEUgY2hhbmdpbmcgc3R5bGUgb24gU2FzaEZvcm0gaW4gQ3VzdG9tQ29udHJvbEV4YW1wbGUgIAo8YnI+ODU0MjY6ICBUYWJsZSBub3QgZ2V0dGluZyBleHBvc2UgZXZlbnRzIHdoZW4gcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFub3RoZXIgd2luZG93ICAKPGJyPjg1NTI1OiAgbW5lbW9uaWNzIGFyZSBub3Qgd29ya2luZyAgCjxicj44NzI5NDogIFN0cmFuZ2UgY2xpcHBpbmcgd2hlbiBzY2FsaW5nIGFuZCByb3RhdGluZyBkcmF3VGV4dCAgCjxicj44ODA1OTogIExpbmUgV2lkdGggb2YgMCBpcyBpbnZpc2libGUgb24gdGhlIE1hYyAgCjxicj44ODcxNzogIFtETkRdIFRyZWUgaXMgc2Nyb2xsaW5nIHZlcnkgc2xvdyB3aGVuIGRyYWdnaW5nIGFuIEl0ZW0gdG8gdGhlIEJvdHRvbSAgCjxicj45MDE5MjogIE9OX1RPUCBzZXRWaXNpYmxlKHRydWUpIGZvY3VzIGlzc3VlcyBvbiBwYXJlbnQgb2YgY2hpbGQgc2hlbGwuICAKPGJyPjkxMDYwOiAgbGludXggY29weS1wYXN0ZSBjaGluZXNlIHRvIFN0eWxlZFRleHQgcHJvYmxlbSAgCjxicj45MTI1NDogIFtlbmNvZGluZ10gREJDUzMuMTogYm9ndXMgREJDUyBpbiBlZGl0b3IgYWZ0ZXIgcmUtYWN0aXZhdGlvbiAgCjxicj45MTM1MDogIFtCcm93c2VyXSBFbWJlZGRlZCBicm93c2VyIGZhaWxzIHRvIGhhbmRsZSBsaW5rIHRvIHRleHQgZmlsZSAgCjxicj45MTQ2NDogIFtjb250ZW50IGFzc2lzdF0gTlBFIGluIENvbXBsZXRpb25Qcm9wb3NhbFBvcHVwICAKPGJyPjkxNzMzOiAgTWVudUl0ZW0uc2V0VGV4dCBkb2Vzbid0IGNoZWNrIGlmIGl0IG1hdGNoZXMgdGhlIGV4aXN0aW5nIHRleHQgIAo8YnI+OTE4MDc6ICBDb250ZXh0IG1lbnUgc2hvd3MgdHdpY2UgaW4gY29tYm8gYm94LiAgCjxicj45MjAxNzogIFN1cHBvcnQgdmVyeSBsYXJnZSBJbWFnZSBvbiBXaW5kb3dzIHBsYXRmb3JtICAKPGJyPjkyMDQ2OiAgUGVuIGxlYWsgaW4gVGV4dExheW91dCNkcmF3KC4uLikgIAo8YnI+OTIxODY6ICBWaXJ0dWFsIHRhYmxlOiBub3QgcmVkcmF3biB3aGVuIGl0ZW0gY291bnQgZHJvcHMgdG8gemVybyAgCjxicj45MjIyODogIExheW91dCBvY2N1cnMgd2hpbGUgY3JlYXRpbmcgdGFibGUgY29sdW1ucywgY2F1c2luZyBBSU9PQkVzICAKPGJyPjkyMjMwOiAgSW5jb25zaXN0ZW50IEJ1dHRvbiBmb2N1cyBldmVudHMgYmV0d2VlbiBwbGF0Zm9ybXMgIAo8YnI+OTIzODI6ICBUZXh0IGluIHRhYmxlIG5vdCB1cGRhdGVkIG9uIGNsZWFyICAKPGJyPjkyNTgzOiAgSGlkZGVuIGZpbGVzIHNob3duIGJ5IGRlZmF1bHQgaW4gR3RrRmlsZUNob29zZXIgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDMxIC0gVHVlc2RheSBBcHJpbCAxOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDUzNzogIERDUiBBYmlsaXR5IHRvIHBhaW50IHdpdGggYSBicnVzaCBwYXR0ZXJuICgxRzBJOEJFKSAgCjxicj40NjIxOiAgQ0NvbWJvIG5ldmVyIGZpcmVzIGtleWJvYXJkIGV2ZW50cyAoMUdCNzZCUCkgIAo8YnI+NDc0MjogIERDUjogVXNlZnVsIGZlYXR1cmVzLCBpZGlvbXMgYW5kIGRvY3VtZW50YXRpb24gbWlzc2luZyBmcm9tIEdDICgxR0ZXQ1VPKSAgCjxicj43MDc1OiAgRENSIC0gUmVuZGVyaW5nIGhpbnRzIG9uIEdDIC0gYW50aSBhbGlhcyAvIG1pdHJlICAKPGJyPjEyNzIzOiAgV2luZG93cyBYUCBJY29uIGZvcm1hdCBub3Qgc3VwcG9ydGVkICAKPGJyPjIwNzIzOiAgRGlzY3JlcGVuY2llcyBpbiBUYWJsZSBiZWhhdmlvdXIgYWNyb3NzIHBsYXRmb3JtcyAgCjxicj4yMzYyMTogIEltYWdlIHNjYWxpbmcgZ2l2ZXMgcG9vciByZXN1bHRzIG9uIFdpbmRvd3MgIAo8YnI+Mjg1MzM6ICBUYWJsZSAtIG5vIGZvY3VzIGluZGljYXRvciAgCjxicj4zNDgyNjogIEVjbGlwc2UgY3Jhc2hlcyAtIHN0YWNrIHRyYWNlIHNob3dzIEdQIGluc2lkZSB0cmVlICAKPGJyPjM1MzQxOiAgV2F5IHRvIGRpc2FibGUgZm9udCBzbW9vdGhpbmcgZm9yIGVkaXRvcnMgb24gTWFjT1MgWCAgCjxicj4zNTY3MDogIEZvbnRNZXRyaWNzLmdldEFzY2VudCgpIHJldHVybnMgdGhlIHdyb25nIHZhbHVlICAKPGJyPjM3NTAwOiAgRmVhdHVyZSByZXF1ZXN0OiBTV1QgUHJvamVjdCBjcmVhdGlvbiB3aXphcmQgIAo8YnI+Mzg5NzM6ICBOZWVkIENvbnRyb2wuZ2V0TW9uaXRvciAob3IgV2lkZ2V0LmdldE1vbml0b3IpICAKPGJyPjQwOTg1OiAgRHJhdyB2ZXJ0aWNhbCBUZXh0IG9yIHJvdGF0ZSBncmFwaGljcy4gIAo8YnI+NDExNjA6ICBJbWFnZUxvYWRlciBoYXMgcmVwZWF0Q291bnQgb2YgMCBmb3IgYW5pbWF0ZWQgZ2lmcyAgCjxicj40MTc3NDogIERCQ1M6IERCQ1MgbmFtZWQgZmlsZSBkcmFnJmRyb3AgZmFpbHVyZSBvbiBHVEsgIAo8YnI+NDIxNTU6ICBDb250cm9sRXhhbXBsZSAtIFRvb2xiYXIgU1dULlZFUlRJQ0FMIGxlYXZlcyB3cm9uZyBzZXBhcmF0b3IgIAo8YnI+NDg3ODE6ICBjdXJzb3JzIG9mIHNpemUgMTYgbG9vayB3cm9uZyAgCjxicj41NjA5NDogIHRyYWNrZXIgcmVzaXplIHVzZXMgc2NyZWVuIGNvb3JkaW5hdGVzIGluc3RlYWQgb2YgY29udHJvbCAgCjxicj41NjcxODogIFNXVEV4Y2VwdGlvbiBhbmQgU1dURXJyb3Igc2hvdWxkIHVzZSBzdGFuZGFyZCAxLjQgZXhjZXB0aW9uIG5lc3RpbmcgIAo8YnI+NjI4MTc6ICBGaWxlRGlhbG9nOiBnZXRGaWxlTmFtZSBkb2VzIG5vdCByZXR1cm5zIGV4dGVuc2lvbiAgCjxicj42NDU5MDogIFticm93c2VyXSB3aWRnZXQgbm90IHNpemVkIHByb3Blcmx5ICAKPGJyPjY2ODgyOiAgYWx0Z3Iga2V5cyBub3QgYXZhaWxhYmxlICAKPGJyPjY4Njc5OiAgbWlub3IgY2hhbmdlcyB0byBtYWtlX2d0ay5tYWsgdG8gYWxsb3cgYnVpbGQgd2l0aCBpbnN0YWxsZWQgbW96aWxsYSAgCjxicj42ODg2NzogIEltYWdlRGF0YSAtIHJlbW92ZSBJbWFnZUxvYWRlciBkZXBlbmRlbmNpZXMgIAo8YnI+NjkzNTA6ICBBY2Nlc3NpYmlsaXR5IDogR3JvdXAgdGl0bGUgaXMgbm90IHRha2VuIGludG8gYWNjb3VudCBieSBXaW5kb3ctRXllcyA0LjUgIAo8YnI+NzM1MzY6ICBFY2xpcHNlIDMuMC4xIFJDMiBzb3VyY2UgYnVpbGQgZG9lcyBub3QgY29udGFpbiBsYXRlc3Qgb3JnLmVjbGlwc2Uuc3d0LnRvb2xzICAKPGJyPjc2NDU2OiAgRWNsaXBzZSAzLjAuMWNyYXNoZXMgb24gSFAtVVggd2l0aCBhIE51bGxQb2ludGVyRXhjZXB0aW9uIHdoZW4gc3RhcnRpbmcgdXAgIAo8YnI+NzcwNTU6ICBMb2cgc3RhY2t0cmFjZSBub3QgaGVscGZ1bCBmb3IgU1dURXhjZXB0aW9uIGFuZCBTV1RFcnJvciAgCjxicj44MDE1MDogIFtwbGFuIGl0ZW1dIFtsYXVuY2hlcl0gU3VwcG9ydCBmb3IgbGF1bmNoZXIgYnJhbmRpbmcgIAo8YnI+ODEyNDI6ICBbSlVuaXRdIEdQIGluIENsaXBib2FyZC5nZXRDb250ZW50cyAgCjxicj44MTY5MTogIFRyYWNrZXIgd2l0aCBTV1QuUmVzaXplIHJlYWxseSBzbG93ICAKPGJyPjgyNTk0OiAgUmVxdWVzdCBzdXBwb3J0IGZvciBhbHBoYSBjaGFubmVsIGluIENvbG9yICAKPGJyPjgyNzE5OiAgUmVxdWVzdCBmb3IgYWZmaW5lIHRyYW5zZm9ybWF0aW9uIEFQSSAgCjxicj44MzQ3MjogIFJlcXVlc3QgZm9yIEFQSSB0byBjaGVjayBmb3IgZG91YmxlIGJ1ZmZlcmluZyBzdXBwb3J0ICAKPGJyPjgzOTMzOiAgQ2hlY2sgYW5kIFJhZGlvIEJ1dHRvbnMgd2l0aCBpbWFnZSBkbyBub3QgdXNlIFhQIHN0eWxlICAKPGJyPjg0NTMyOiAgW2Jyb3dzZXJdIEphdmFkb2MgaG92ZXIgc3RheXMgb24gdG9wIHdoZW4gaXQgaGFzIGZvY3VzICAKPGJyPjg0NjczOiAgW2Jyb3dzZXJdIGFtZDY0IHByb2JsZW0gIAo8YnI+ODQ3NDA6ICBjcmFzaCBvbiB3aW5kb3dzIHhwIGtvcmVhbiAgCjxicj44NTMxMjogIGNvbWJvIGlzIGN1dCBvZmYgd2hlbiBhZGRlZCB0byBUb29sQmFyICAKPGJyPjg1NzM2OiAgW2Jyb3dzZXJdIFNXVCBFcnJvcnMgb24gUkggMy4wIFdoZW4gTW96aWxsYSBTZWN1cml0eSBQYXRjaCBtb3ppbGxhLTEuNC4zLTMuMC43IGluc3RhbGxlZCAgCjxicj44NjE5MzogIEphdmEgV2ViU3RhcnQ6IFNXVCBCcm93c2VyIGNhbm5vdCBmaW5kIGxpYnhwY29tLnNvOiBjYW5ub3Qgb3BlbiBzaGFyZWQgb2JqZWN0IGZpbGU6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpICAKPGJyPjg2NjA4OiAgRG8gbm90IHVuZGVyc3RhbmQgSmF2YWRvYyBvZiBMaW5rLnNldFRleHQoKSAgCjxicj44NjYzMTogIEphdmFkb2Mgd3JvbmcgZm9yIEltYWdlKHN0cmVhbSkgIAo8YnI+ODY3NDE6ICBQcmVzc2luZyBiYWNrc3BhY2UgaW4gYnJvd3NlciB3aWRnZXQgc2hvd3MgbmF2aWdhdGlvbiBjYW5jZWxsZWQgcGFnZSAgCjxicj44Nzg4MjogIE5vIGRlZmF1bHQgY29udGV4dHVhbCBtZW51IGl0ZW0gb24gTWFjICAKPGJyPjg4MTMzOiAgU2xvdyByZW5kZXJpbmcgd2l0aCBpbWFnZXMgd2l0aCB0cmFuc3BhcmFuY3kgYml0IHNldCAgCjxicj44ODgzOTogIEVtYmVkZGVkIFN3aW5nOiBFbnRlciBrZXkgZG9lcyBub3Qgd29yayAgCjxicj44OTU0NzogIFNXVCBidW5kbGUgbWFuaWZlc3QgZmlsZXMgdXNlIGRlcHJlY2F0ZWQgc3ludGF4ICAKPGJyPjg5NjgxOiAgTGluayB3aWRnZXQgbWlzc2luZyBsYXN0IHdvcmQgYXQgcHJlZmVycmVkIHNpemUuICAKPGJyPjg5Nzc5OiAgTlBFIGluIENDb21iby5kcm9wRG93bigpICAKPGJyPjg5OTExOiAgTWlzc2luZyBndGtfdHJlZV92aWV3X2NvbHVtbl9nZXRfZml4ZWRfd2lkdGggb24gYW1kNjQgIAo8YnI+OTAxNTI6ICByZXNpemluZyBMYWJlbCBmbGFzaGVzICAKPGJyPjkwMjIyOiAgRGV2aWNlIGNvbnN0cnVjdG9yICAKPGJyPjkwMjU4OiAgVGFibGUgaXRlbSBub3QgdXBkYXRlZCB3aGVuIGl0ZW0gY291bnQgPT0gMSAgCjxicj45MDg1NjogIHNlZ2ZhdWx0IHdoaWxlIGNsaWNraW5nIGluIGJyb3dzZXIgIAo8YnI+OTA4OTk6ICBVc2luZyBQYWludExpc3RlbmVyIG9uIFRhYmxlIGRlc3Ryb3lzIHJlcGFpbnRpbmcgKEJ1dHRvbiBpcyB0aGUgc2FtZSBjYXNlKSAgCjxicj45MDk0NjogIGd0a19lbnRyeV9zZXRfdGV4dCBjcmFzaGVzIHdoZW4gcGFzc2VkIGEgemVyby1sZW5ndGggYnVmZmVyICAKPGJyPjkxMDE5OiAgU1dUIFJlbmRlcmluZyBQcm9ibGVtcyAgCjxicj45MTA3MDogIENhbm5vdCBzZWxmLWhvc3QgZWNsaXBzZSAgCjxicj45MTA4OTogIFNXVCBTbmlwcGV0IDc3IEZvciBUYWJsZSBDb2wgcmVzaXplIGhhcyBhbiBlcnJvciBpbiBpdCAoZml4IGluY2x1ZGVkIGJla2xvdykgIAo8YnI+OTEyNTI6ICBWaWV3IHRvb2xiYXJzIGFyZSBzaG93aW5nIHdpdGggYmxhY2sgYmFja2dyb3VuZHMgIAo8YnI+OTE0MjM6ICBGaXhlZCBzaXplIGNvbHVtbnMgdXNlZCBldmVuIGlmIGZpeGVkX2hlaWdodF9tb2RlIG5vdCBzdXBwb3J0ZWQgIAo8YnI+OTE0MzU6ICBDdHJsK1NQQUNFIGlzIG5vdCBhIHZhbGlkIGtleWJpbmRpbmcgYXNzaWdubWVudCBmb3IgYWN0aW9ucyBvbiBuYXRpdmUgd2lkZ2V0cyAgCjxicj45MTQ1NjogIHBsYXRmb3JtLWxhdW5jaGVyOiBlY2xpcHNlLmMgd29uJ3QgY29tcGlsZSBvbiBCU0QgKE1hYykgYmVjYXVzZSBvZiBtYWNybyBjbGFzaCAgCjxicj45MTQ2ODogIEdUSysgMi4yIHJlcXVlc3RzIGRhdGEgZnJvbSBub24tdmlzaWJsZSByb3dzIG9mIGEgVklSVFVBTCB0YWJsZSAgCjxicj45MTQ3NTogIE01IFNlbGVjdGluZyBUcmVlQ29sdW1uIGRvZXMgbm90IGNyZWF0ZSBhbiBTV1QuU2VsZWN0aW9uIEV2ZW50IG9uIE1hYyBPUyBYICAKPGJyPjkxNTExOiAgRGlyZWN0b3J5IERpYWxvZyAtIFNlbGVjdGlvbiBzdHJpbmcgbm90IGV4dGVybmFsaXplZD8gIAo8YnI+OTE1NTU6ICBUYWJsZSBub3QgdmlzaWJsZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzAgLSBUdWVzZGF5IEFwcmlsIDExdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NzQ2OiAgRENSOiBUcmVlSXRlbSBuZWVkcyByZW1vdmVBbGwoKSBtZXRob2QgKDFHRzBOTDApICAKPGJyPjExMTc4OiAgUHJlc3NlZCAmIGRpc2FibGVkIHRvb2xiYXIgYnV0dG9uIGxvb2tzIGVuYWJsZWQgIAo8YnI+NDg0NDM6ICBQcm9wZXJ0eSBzaGVldCBkb2VzIG5vdCByZXBhaW50ICAKPGJyPjUzMzkwOiAgTlBFIGNoYW5naW5nIHBlcnNwZWN0aXZlcyAgCjxicj41NjIyMzogIERpc3BsYXkgZmlsdGVycyBkbyBub3Qgd29yayBpbiBjb21wb3VuZCBuYXRpdmUgd2lkZ2V0cyAgCjxicj42NDIxOTogIEdlb21ldHJpY2FsVHJhbnNmb3JtYXRpb24gIAo8YnI+NjUxOTI6ICBvcmcuZWNsaXBzZS5zd3QuQnJvd3Nlci5hZGRIZWxwTGlzdGVuZXIgZG9lcyBub3Qgd29yayBhZnRlciB0aGUgc2V0VXJsIG1ldGhvZCBpcyBjYWxsZWQgIAo8YnI+Njc1Mjk6ICBXaW5kb3ctPlByZWZlcmVuY2VzLT5IZWxwIGNyYXNoZXMgRWNsaXBzZSAgCjxicj43ODQ1OTogIFBsYXRmb3JtIGRpZmZlcmVuY2VzIHNldHRpbmcgc2l6ZSB3aGlsZSBzaGVsbCBpcyBtYXhpbWl6ZWQgIAo8YnI+ODAyMDQ6ICBDaGVja2JveCBpbiBUcmVlIG9yIFRhYmxlIGlnbm9yZXMgc2Vjb25kIGNsaWNrIG9mIGRvdWJsZSBjbGljayAgCjxicj44MTI2MzogIFtDdXN0b21Db250cm9sRXhhbXBsZV0gQ0NvbWJvIGNhcmV0IG1vdmVzIGF0IHJhbmRvbSB3aGVuIHVwIGFuZCBkb3duIGFycm93cyBhcmUgcHJlc3MgIAo8YnI+ODMzMDg6ICBLREUgaW50ZWdyYXRpb24gY2F1c2luZyBjcmFzaGVzIG9uIEtERSAzLjMuMiAgCjxicj44MzczMTogIChqYXZhZG9jIHVwZGF0ZSkgV2luZG93RXZlbnQgbG9jYXRpb24gYW5kIHNpemUgZmllbGRzIGFyZSBpbiB0ZXJtcyBvZiBzaGVsbCBzaXplLCBub3QgYnJvd3NlciBjb250cm9sIHNpemUgIAo8YnI+ODQxMTA6ICB3b3Jrc3BhY2UgbG9zdCAgCjxicj44NDc3MzogIFtsYXVuY2hlcl0gaWNvbiBub3QgYmVpbmcgdXNlZCBpbiBlcnJvciB3aW5kb3cgIAo8YnI+ODUxMTc6ICBTZWxlY3RlZCBhbmQgZGlzYWJsZWQgdG9vbCBpdGVtIGxvb2tzIGVuYWJsZWQgIAo8YnI+ODU1Mzc6ICBbSlVOSVRdIERpc3BsYXkubWFwIHRlc3QgY2FzZXMgZmFpbGluZyAgCjxicj44NzAzNzogIFticm93c2VyXSBjaGFyc2V0L3htbCBJbnRybyBxdWVzdGlvbiAgCjxicj44NzExMzogIEZpcnN0IFRhYmxlQ29sdW1uIHdpdGggc3R5bGUgU1dULlJJR0hUIGRyYXdzIGJhZGx5ICAKPGJyPjg3NTU5OiAgTlBFIGluIFRhYmxlSXRlbS5nZXRUZXh0IHVzaW5nIGNvbnRyb2wgZXhhbXBsZSAgCjxicj44NzgzNzogIFN0cmFuZ2UgcmVkcmF3IGFuZCBkaXNhYmxlZCBiZWhhdmlvdXIgd2l0aCBTV1QuQ0hFQ0sgdG9vbGl0ZW1zIHdpdGggYW5kIHdpdGhvdXQgZGlzYWJsZWQgaWNvbnMgc2V0LiAgCjxicj44Nzk5NzogIFRhYmxlRWRpdG9yLmRpc3Bvc2UoICkgY2F1c2VzIE5QRSBpZiBsaW5rZWQgVGFibGUgaXMgYmVpbmcgZGlzcG9zZWQgIAo8YnI+ODgzODg6ICB0cmVlIGZvY3VzIGNoZWVzZSAgCjxicj44ODczNTogIFRhYmxlLmdldENsaWVudEFyZWEoKSB3aWR0aCBpcyBpbmNvbnNpc3RlbnQgd2l0aCB3aW4zMiAgCjxicj44ODgyNzogIE5lZWQgYSBkaXN0aW5jdGl2ZSBwbGF0Zm9ybSBmaWx0ZXIgZm9yIEdUSyAvIEdUSyA2NCAgCjxicj44ODgyOTogIFRhYmxlLnNldENvbHVtbk9yZGVyKCkgbWF5IG5vdCBmaXJlIGVub3VnaCBNb3ZlIGV2ZW50cyAgCjxicj44OTMyOTogIFtWaWV3ZXJzXSBDVlMgUmVwb3NpdG9yaWVzIFZpZXc6ICJQZW5kaW5nLi4uIiBpdGVtIGdldHMgYW4gaWNvbiB3aGVuIHNlbGVjdGVkICAKPGJyPjg5MzY3OiAgU3RyaW5nIGlzIG5vdCByZW5kZXJlZCBpbnNpZGUgc3RyaW5nRXh0ZW50ICAKPGJyPjg5Mzc4OiAgQ29tYm8gZGVmYXVsdCBzaXplIHRvbyBzbWFsbCB3aXRoIGNlcnRhaW4gZm9udHMgIAo8YnI+ODk0ODM6ICBbVGFibGVdIE5vIFNXVC5SZXNpemUgd2hlbiBTY3JvbGxiYXJzIGJlY29tZSB2aXNpYmxlICAKPGJyPjg5NjY5OiAgW2Jyb3dzZXJdIEYxIGRvZXMgbm90IGJyaW5nIGVjbGlwc2UgaGVscCBjb250ZW50IHdoZW4gYnJvd3NlciBoYXMgZm9jdXMgIAo8YnI+OTAwODc6ICBHQy5jb3B5QXJlYSBjYXVzZXMgY29udGludW91cyByZXBhaW50aW5nIG9mIENhbnZhcyAgCjxicj45MDEyMzogIFNXVCBtYW5pZmVzdHMgc3RpbGwgdXNlIFByb3ZpZGUtUGFja2FnZSAgCjxicj45MDE3NjogIFNjYWxlIHdpZGdldCBhbmQgU1dULlBBR0VfVVAga2V5IGV2ZW50ICAKPGJyPjkwMjE3OiAgUmVxdWVzdDogU1dUIEZyYWdtZW50IG5hbWUgdG8gYmUgdW5pcXVlIGZvciBhIGdpdmVuIHdzL29zL2FyY2ggIAo8YnI+OTAyMjM6ICBSZWdyZXNzaW9uOiBTcGlubmVyIHJlcG9ydHMgd3JvbmcgdmFsdWUgIAo8YnI+OTAyODI6ICBTV1QuUklHSFQgbm90IHdvcmtpbmcgb24gVGV4dCBjb250cm9sIG9uIE1hYyBPUyBYICAKPGJyPjkwMzE3OiAgY2xpY2tpbmcgaW4gVGFibGUgb3IgVHJlZSBmaXJzdCB0aW1lIGZpcmVzIHR3byBzZWxlY3Rpb24gZXZlbnRzICAKPGJyPjkwMzI2OiAgU2hlbGwgcmVhbGl6ZWQgdG9vIGVhcmx5IGZvciBubyByZWFzb24gIAo8YnI+OTAzNjY6ICBTV1QgTGluayBXaWRnZXQgdGhyb3dzIEFycmF5IE91dCBvZiBCb3VuZHMgRXhjZXB0aW9uICAKPGJyPjkwNDU3OiAgU1dUIGluIE02IGFuZCBwcmlvciB3aWxsIG5vdCBidWlsZCBhZ2FpbnN0IHRoZSBTdW4gSkRLICAKPGJyPjkwNTEzOiAgTGluayB3aWRnZXQgZG9lcyBub3QgaGF2ZSBhIHByb3BlciBDcmVhdGVIYW5kbGUgbWV0aG9kICAKPGJyPjkwNzI5OiAgU2hlbGwgd2l0aCBzdHlsZSBNT0RFTEVTUyBvciBESUFMT0dfVFJJTSBpZ25vcmVzIHNldFNpemUoKSAgCjxicj45MDc3MDogIFJhY2UgY29uZGl0aW9ucyBpbiBEZXZpY2UuZ2V0RGV2aWNlKCkgbWV0aG9kICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyOSAtIFR1ZXNkYXkgQXByaWwgNXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjA5NTQ6ICBbQWJvdXRdIEZlYXR1cmUgUGx1Z2lucyBkaWFsb2cgZmFpbHMgdG8gbGF1bmNoIHdlYiBicm93c2VyICAKPGJyPjI1NDkwOiAgV2hpdGUgQ29sb3IgZG9lc24ndCBhcHBlYXIgb24gVG9vbGJhciBJbWFnZSAgCjxicj4zNDQ4MTogIEphdmEgQ29tcGlsZXIgUHJvcGVydGllcyBmb3IgYSBQcm9qZWN0ICAKPGJyPjQxMDY1OiAgQXJyb3cgYnV0dG9uIGxvb2sgaXMgaW5jb25zaXN0ZW50IHdpdGggc2Nyb2xsIGFycm93cyAgCjxicj41NzgxOTogIFtTV1QtRXhhbXBsZS1Db250cm9scy1UYWJsZV0gSW4gc29tZSBjYXNlcyB0aGUgdmVydGljYWwgc2Nyb2xsIGJhciBpcyBub3QgYXZhaWxhYmxlIHdpdGggc2l6ZSAxMHgxMCAgCjxicj42NDE5MjogIFNjcm9sbGJhciAtIHNldFZpc2libGUgbm90IHdvcmtpbmcgYXMgZXhwZWN0ZWQgIAo8YnI+Njk5MTk6ICBbQnJvd3Nlcl0gSmF2YWRvYyB2aWV3IHN0ZWFscyBrZXkgZXZlbnRzLiAgCjxicj43NTE0MTogIFtCcm93c2VyXSBDVGFiSXRlbSB3aXRoIEJyb3dzZXIgY29udGFpbmluZyB2aWRlbyBjcmFzaGVzIHdoZW4gZGlzcG9zaW5nIGl0ZW0ncyBpbWFnZSAgCjxicj43NTMxNzogIFtCcm93c2VyXSBMb2NhdGlvbiBub3QgYnJvd3NlZCB3aGVuIFVSTCBtaXNzZXMgcHJvdG9jb2wgLyB3d3cgIAo8YnI+Nzk4ODE6ICBCcm93c2VyIGNsYXNzIHNoaXBwZWQgd2l0aCBBSVgtTW90aWYgY2hlY2tzIGZvciBMaW51eCA/IT8gIAo8YnI+Nzk5Mjc6ICBjcmFzaCB3aGVuIHVzaW5nIGEgVGFibGUsIFRhYmxlSXRlbXMgdXNpbmcgaW1hZ2VzIHdpdGggYWxwaGEsIGFuZCB1c2luZyBUYWJsZUNvbHVtbi5wYWNrICAKPGJyPjgxMjM1OiAgW0pVbml0XSBUYWJsZUl0ZW0uZ2V0Qm91bmRzIHRlc3QgZmFpbHMgIAo8YnI+ODEyNDA6ICBbSlVuaXRdIFRyZWUgZ2V0L3NldFRvcEl0ZW0gZmFpbHMgIAo8YnI+ODI3MDM6ICBUcmVlIHdpdGggVHJlZUNvbHVtbnMgZG9lc24ndCBkaXNwbGF5IEZVTExfU0VMRUNUSU9OIHByb3Blcmx5ICAKPGJyPjgzNDc3OiAgW2Jyb3dzZXJdIE5hdGl2ZSBjcmFzaCBvdXRzaWRlIEpWTSBpbiBsaWJ3aWRnZXRfZ3RrMi5zbyAgCjxicj44NTUzMDogIENvbnRyb2wgaW4gdmVydGljYWwgVG9vbEJhciBkb2Vzbid0IGZpdCAgCjxicj44NzY5NTogIEludGVyZmFjZSBEaXNwb3NlYWJsZSAgCjxicj44Nzg1NTogIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIFRhYmxlLmNhbGxXaW5kb3dQcm9jICAKPGJyPjg4Mjc4OiAgVHJlZUl0ZW0gc2hvdWxkIHByb3ZpZGUgaXRlbS5yZW1vdmVBbGwgIAo8YnI+ODkwNjM6ICBbTWFya2Vyc10gaW5maW5pdGUtbG9vcCBkdXJpbmcgY3ZzIG92ZXJyaWRlIGFuZCB1cGRhdGUgIAo8YnI+ODkyMTc6ICBMYWJlbC5jb21wdXRlU2l6ZSgpIHJldHVybmluZyBpbmNvcnJlY3QgdmFsdWVzIHdoZW4gdXNpbmcgV1JBUCAgCjxicj44OTUzMzogIFtUaGVtZXNdIENvbG9ycyBhbmQgRm9udHMgcHJlZmVyZW5jZXMgcGFnZSBoYXMgZnVubnkgaWNvbnMgZm9yIGNvbG9yIGVudHJpZXMgIAo8YnI+ODk1NjQ6ICBJbWFnZSBhcHBlYXJzIGFuZCBkaXNhcHBlYXJzIGluIFRyZWUgIAo8YnI+ODk1NzU6ICBCcm93c2VyIHdpZGdldCBjcmFzaGVzICAKPGJyPjg5NjY1OiAgVk0gdGVybWluYXRlZCB3aGVuIHN3aXRjaGluZyBwYWdlIGluIHRoZSBQbHVnaW4gbWFuaWZlc3QgZWRpdG9yICAKPGJyPjg5Nzg1OiAgRGlzYWJsZWQgbGlua3MgbG9vayBsaWtlIG5vcm1hbCBsaW5rcyAgCjxicj44OTgyNjogIFtCcm93c2VyXSBicm93c2VyIGVhdHMgYWxsIGtleXN0cm9rZXMgIAo8YnI+ODk4ODU6ICBDcmFzaCB1c2luZyBjb21tYW5kLU8uICAKPGJyPjkwMDA5OiAgY29kZSBhc3Npc3QgbG9zZXMgaXRzIHZpc3VhbCBzZWxlY3Rpb24gIAo8YnI+OTAwMTg6ICBOYXRpdmUgdG9vbHRpcHMgbGVmdCBhcm91bmQgb24gQ1RhYkZvbGRlciAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjggLSBUaHVyc2RheSBNYXJjaCAyOXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPHA+TmV3IEFQSSBoYXMgYmVlbiBhZGRlZCB0byBTcGlubmVyPC9wPgo8YmxvY2txdW90ZT4KaW50IFNwaW5uZXIuZ2V0RGlnaXRzKCkKPGJyPlNwaW5uZXIuc2V0RGlnaXRzKGludCkKPC9ibG9ja3F1b3RlPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjg2MDc5OiAgU3Bpbm5lciBzaG91bGQgaGFuZGxlIG5vbi1pbnRlZ2VyIGluY3JlbWVudHMgIAo8YnI+ODcyMDc6IENvbnRlbnQgb2YgZmlyc3QgY29sdW1uIGluIFRyZWUgd2l0aCBjb2x1bW5zIG92ZXJmbG93cyBwYXN0IGxhc3QgY29sdW1uICAKPGJyPjg5MDI4OiB1bmVjY2Vzc2FyeSBjYXN0cyAgCjxicj44OTE1NjogQ2Fpcm8gYmluZGluZ3MgZm9yIFNXVCBjYW4gbm90IGJlIGNvbXBpbGVkLiAgCjxicj44OTE2MzogR3JpZERhdGEudmVydGljYWxJbmRlbnQgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjdjIC0gVGh1cnNkYXkgTWFyY2ggMjRuZCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxwPk5ldyBBUEkgaGFzIGJlZW4gYWRkZWQgdG8gVHJlZSBhbmQgVGFibGVUcmVlPC9wPgo8YmxvY2txdW90ZT4KaW50IFRyZWUuaW5kZXhPZihUcmVlSXRlbSkKPGJyPmludCBUcmVlSXRlbS5pbmRleE9mKFRyZWVJdGVtKQo8YnI+VHJlZUl0ZW0gVHJlZS5nZXRJdGVtKGludCkKPGJyPlRyZWVJdGVtIFRyZWVJdGVtLmdldEl0ZW0oaW50KQo8L2Jsb2NrcXVvdGU+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjY2MjU6ICBDb21ibyBjdXJzb3IgYW5kIGNvcHkvcGFzdGUgYXJlIG5vdCB3b3JraW5nIHJpZ2h0ICAKPGJyPjg3NTU0OiBOZWVkIGJvdW5kaW5nIHJlY3RhbmdsZSBmb3IgYSBQYXRoICAKPGJyPjg3ODIwOiBHQy5kcmF3U3RyaW5nIHVzZXMgQkcgY29sb3IgZm9yIGZvbnQgd2hlbiBhbHBoYSB2YWx1ZSA8IDI1NSAgCjxicj44NzgyNDogR0Mgc2V0UmVnaW9uIGFuZCBnZXRSZWdpb24gYXJlIG5vdCBzeW1tZXRyaWMgIAo8YnI+ODgxMjI6IHN3aXRjaCBvcmcuZWNsaXBzZS5zd3QgcGx1Z2luIGFuZCBmcmFnbWVudHMgdG8gbmV3IGVjbGlwc2UgamFyIGZvcm1hdCAgCjxicj44ODQwOTogRGV2aWNlLmdldEZvbnRMaXN0IHNob3VsZCBoYXZlIGJldHRlciBwZXJmb3JtYW5jZSAgCjxicj44ODU4MjogQ29tcHV0ZWQgd2lkdGggb2YgbGluayB3aWRnZXQgaXMgdG9vIGxhcmdlICAKPGJyPjgyMzM2OiBUcmVlVmlldzogc2V0dGluZyBncmF5IGdpdmVzIGZyZWUgY2hlY2sgbWFyayAgCjxicj44MzQzMjogaUZyYW1lIGRvZXMgbm90IHJlbmRlciBib3JkZXIgd2hlbiBpbiBTV1QgQnJvd3NlciAgCjxicj44NzUzNDogVFZUMy4xICMzMyAtIFNXVCBCcm93c2VyIFZpZXcgY2Fubm90IGJlIGZvdW5kICAKPGJyPjg3NzI2OiBSZW1vdmluZyBsaWJYbSBsaW5rcyBmcm9tIG1vdGlmIGRyb3BzICAKPGJyPjg3ODEwOiBTdXBwb3J0IEZVTExfU0VMRUNUSU9OIGluICh0YWJsZSkgVHJlZSAgCjxicj44NzgzMzogUGxhdGZvcm0tZmlsdGVyIG11c3QgYmUgYWRkZWQgdG8gdGhlIGZyYWdtZW50cyAgCjxicj44ODA5MzogU2hhcGVzIGFyZSBkcmF3biB0b28gbGFyZ2Ugd2hlbiBhIHRyYW5zZm9ybSBpcyB1c2VkICAKPGJyPjg4MTcxOiBXYXJuaW5nIGluIE4yMDA1MDMxNi0wMDEwIGJ1aWxkICAKPGJyPjg4NTE5OiBOZWVkIGEgd2F5IHRvIGNsZWFyIHRoZSBUcmFuc2Zvcm0gZnJvbSBhIEdDICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyNiAtIFR1ZXNkYXkgTWFyY2ggMTV0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY4MDQwOiBWaWV3cyBrZWVwIHJlc2l6aW5nIGFmdGVyIG1vdXNlIHVwCjxicj44NjI5NDogRmluZC9SZXBsYWNlIG5vdCB3b3JraW5nICJJbGxlZ2FsL1Vuc3VwcG9ydGVkIGVzY2FwZSBvbiB0aGUgTWFjCjxicj44NzAxMDogTm9TdWNoTWV0aG9kRXJyb3IgRGlzcGxheS5zZXREaXJlY3RvcnlQcm9jCjxicj44NzM3MjogW2Jyb3dzZXJdIENUUkwtTiBzaG91bGQgbm90IHJ1biBJRSBhY3Rpb24gd2hlbiB1c2luZyBCcm93c2VyLnNldFRleHQKPGJyPjg3NTc4OiBUVlQzLjEgIzM4IC0gUlVTIG1uZW1vbmljcyBvbmx5IHdvcmsgaW4gbWFpbiB3aW5kb3cKPGJyPjg3NTg0OiBSZW1vdmUgSW1hZ2VMb2FkZXIgZGVwZW5kZW5jeSBpbiBUZXN0X29yZ19lY2xpcHNlX3N3dF9ncmFwaGljc19JbWFnZSBhbmQgVGVzdF9vcmdfZWNsaXBzZV9zd3RfZ3JhcGhpY3NfSW1hZ2VEYXRhCjxicj44NzY2NDogTnVsbCBwb2ludGVyIGV4Y2VwdGlvbiBpbiBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5UcmVlSXRlbS5jb21wdXRlRGlzcGxheVRleHQgaW4gMy4xTTVhCjxicj44NzY3NjogRG91YmxlLWNsaWNrIG9ubHkgd29ya3Mgb24gYSB0cmVlJ3MgY29sdW1uMAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDI1IC0gVHVlc2RheSBNYXJjaCA4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0MTIwMjogIEdUSy1CSURJOiBSVEwgc3VwcG9ydCBpbiBTbGlkZXIgIAo8YnI+ODQwMTI6ICBTdHlsZWRUZXh0IHdpdGggU1dULldSQVAgc3R5bGUgZG9lcyBub3QgYWRqdXN0IHNlbGVjdGlvbiBjb3JyZWN0bHkgIAo8YnI+ODQwNTE6ICBUYWJsZSB3aWRnZXQgdW5leHBlY3RlZGx5IGZpcmUgZGVhY3RpdmF0ZWQgZXZlbnQgd2hpbGUgY2xpY2tpbmcgc2Nyb2xsIGJhciBidXR0b25zLiAgCjxicj44NjU4MjogIFNwaW5uZXIgc2hvdWxkIGFsbG93IHdyYXBwaW5nIHRvIGJlIHR1cm5lZCBvZmYgIAo8YnI+ODY5MjE6ICBDcmFzaCBlbWJlZGRpbmcgb3RoZXIgcHJvY2Vzcy4gIAo8YnI+ODcwNzU6ICBbU1dUIEV4YW1wbGVzIC0gU1dUIENvbnRyb2xzXSBJbmNvcnJlY3QgRGlhbG9nIGJ1dHRvbnMgY3JlYXRpb24gd2l0aCBTV1QuUkVUUlksIFNXVC5BQk9SVCwgYW5kIFNXVC5JR05PUkUgb24gTWVzc2FnZUJveCAgCjxicj44NzEyMjogIExpbms6IHByb2JsZW0gd2l0aCBXTV9QUklOVCAgCjxicj44NzI2NTogIExpbmsgd2lkZ2V0IGphdmFkb2MgZG9lcyBub3QgbWVudGlvbiBzdHlsZSBiaXRzICAKPGJyPjg3MzYzOiAgUmVncmVzc2lvbjogTWVudURldGVjdCBubyBsb25nZXIgb3BlbnMgbmV3IG1lbnVzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyNCAtIFR1ZXNkYXkgTWFyY2ggMXN0LCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzQxNDY6IEdUSy1CSURJOiBSVEwgc3VwcG9ydCBpbiBUb29sSXRlbQo8YnI+MzQxNjA6IENsaWNraW5nIG9uIHRhYmxlIGhlYWRlciBkb2VzIG5vdCBzb3J0IHcvbmF0aXZlIHRhYmxlCjxicj40MTE4NDogR1RLLUJJREk6IFN1cHBvcnQgb2YgUlRMIG9yaWVudGF0aW9uIG9mIGJhc2VkIFNXVCB3aWRnZXRzCjxicj40MTI0MzogR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIExpc3QKPGJyPjQxMzYzOiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gVGFiRm9sZGVyCjxicj40MTM2NDogR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIENvbWJvCjxicj40MTU0NjogR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIFRhYmxlCjxicj41MTgyODogR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIE1lbnUKPGJyPjU2NTkzOiBUYWJsZUl0ZW0uc2V0Rm9udCgpIGNhdXNlcyBjZWxzIHRvIGJlIHJlbmRlcmVkIHdpdGggZWxsaXBzaXMgZXZlbiB3aGVuIHRoZXkgYXJlbid0IG5lY2Vzc2FyeQo8YnI+NTg0MDE6IE5lZWQgYSBtb3JlIGZsZXhpYmxlIEdyaWRMYXlvdXQgYW5kIEdyaWREYXRhIGNsYXNzIHRvIHN1cHBvcnQgbW9yZSBkeW5hbWljIGxheW91dHMKPGJyPjgzNzAzOiBDcmFzaCB3aGVuIHVzaW5nIHNvdXJjZSAtIGZpbmQgc3RyaW5ncyB0byBleHRlcm5hbGl6ZQo8YnI+ODU1NTI6IFRleHRMYXlvdXQgcHJlZmVycmVkIHNpemUgZGVwZW5kcyBvbiBjdXJyZW50IHdpZHRoCjxicj44NTYzNDogU3RyYW5nZSBibGlwIGFib3ZlIGhlbHAgY29tYm8KPGJyPjg1ODc2OiBMaW5lIGJ1Z3MgaW4gR0MKPGJyPjg2MDAwOiBJbWFnZUxvYWRlciBTYXZlIC0gcHJvZHVjZXMgaW52YWxpZCBKUEVHIGltYWdlcwo8YnI+ODYxNDU6IFZNIENyYXNoIHdoZW4gcnVubmluZyByZW1vdGVseSB2aWEgY3lnd2luL1gKPGJyPjg2MjE2OiBEaXNwbGF5LmdldEFjdGl2ZVNoZWxsKCkgc2xvdyB3aXRoIGxvdHMgb2Ygd2lkZ2V0cwo8YnI+ODYyNzU6IE5QRSBpbiBTaGVsbC5ndGtfZm9jdXNfb3V0X2V2ZW50Cjxicj44NjM3NTogVG9vbGl0ZW0gY2FsbGluZyBndGtfd2lkZ2V0X2FkZF9ldmVudHMgYWZ0ZXIgaXQgaXMgcmVhbGl6ZWQKPGJyPjg2NDAyOiBUb29sQmFyIG9ubHkgbmVlZHMgdG8gcmVzaXplIGl0cyBjaGlsZHJlbiBpZiB0aGUgYm91bmRzIGFyZSByZXF1aXJlZAo8YnI+ODY1Nzc6IE5vdCByZW1vdmluZyBldmVudCBmaWx0ZXIgYWRkZWQgd2l0aCBnZGtfd2luZG93X2FkZF9maWx0ZXIKPGJyPjg2NTg3OiBUcmVlOiBwcm9ibGVtIHdpdGggV01fUFJJTlQKPGJyPjg2NTg4OiBUcmVlOiBwcm9ibGVtIHdpdGggY29sdW1uIHJlc2l6ZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDIzZyAtIFR1ZXNkYXkgRmVicnVhcnkgMjFzdCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjg1NjYyOiAgVk0gY3Jhc2ggPyB3aGVuIGJyb3dzZXIgd2lkZ2V0IGlzIGJlaW5nIHVzZWQgIAo8YnI+NzA3MTM6ICBGaXJzdCBMYXVuY2ggZnJvbSBEb2NrIGZhaWxzICAKPGJyPjcxODQ0OiAgcG9wdXAgbWVudSBoYXMgYnVuY2ggb2YgZW1wdHkgaXRlbXMgIAo8YnI+ODU4MzQ6ICBub3RpZnlBbGwoKSBzbG93IGluIGxvY2tpbmcgY29kZSAgCjxicj44NTg0OTogIEdDLmNvcHlBcmVhKCkgc2xvdyBvbiBpbWFnZXMgIAo8YnI+ODU4NzU6ICBFY2xpcHNlIGNyYXNoZXMgd2hlbiBjbGlja2luZyBvbiAiVmlldyBJbnN0YWxsYXRpb24gSGlzdG9yeSIgIAo8YnI+NjY4MTU6ICBTZWxlY3Rpb24gZGlzYXBwZWFycyBpbiB0cmVlcyB3aGVuIHRoZXkgZG8gbm90IGhhdmUgZm9jdXMgKEtERSkgIAo8YnI+Mzc3NzU6ICBTV1QgaXMgbm90IDY0LWJpdCBjbGVhbiAgCjxicj43MDI5MzogIEFwcGxpY2F0aW9uIGVycm9yIGR1cmluZyB0aGUgc3RhcnQgb2YgRWNsaXBzZSAgCjxicj43MzkxOTogIGFkZCBhbnQgdGFzayB0byBidWlsZCBuYXRpdmUgbGlicmFyaWVzIGFzIHBhcnQgb2YgdGhlIGVjbGlwc2UgYnVpbGQgIAo8YnI+ODU4Nzc6ICBTaGVsbCBoYXMgdW53YW50ZWQgdGl0bGUgYmFyIG9uIFBvY2tldCBQQyAgCjxicj44NTIzNjogIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGxheW91dGluZyBsaW5rIHdpZGdldCAgCjxicj44NTQxMjogIGNoYW5naW5nIGxpbmsgZm9yZWdyb3VuZCBkb2VzIG5vdCByZXBhaW50ICAKPGJyPjUwMTIzOiAgRHJvcCBkb3duIENvbWJvIGRvZXNuJ3QgZHJvcCBkb3duICAKPGJyPjUxNzA1OiAgW0pVTklUXSAtIENvb2xJdGVtIGZhaWxzIEpVbml0IHRlc3RzICAKPGJyPjg1MDY5OiAgW01hY10gS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgb24gRXhpdCAgCjxicj44NTQ1MzogIEFkdmFuY2VkIGdyYXBoaWNzIG5vdCB3b3JraW5nIG9uIFcySyAtIHRyaWdnZXIgc3lzdGVtIHdpbmRvdyAgCjxicj44NTUzMTogIHN3dC1jYWlybyBsaWJyYXJ5IG5vdCBidWlsdCBvbiBBTUQ2NCAgCjxicj44NTU0NzogIENvbWJvIGJveCBsaXN0IGlzIHdheSB0b28gYmlnICAKPGJyPjg1OTU4OiAgMy4xTTVhIG5vdCB1c2FibGUgb24gd2luOTggIAo8YnI+MjIwMzU6ICBEQ1IgLSBEcmFnYWJsZSB0YWJsZWNvbHVtbnMgaW4gdGFibGUgIAo8YnI+NTEwNzk6ICBSZXNpemluZyBvZiBUYWJsZUNvbHVtbnMgb24gTGludXggZGlzcGxheXMgZXh0cmEgaG9yaXpvbnRhbCB0b29sYmFyICAKPGJyPjg0NTU3OiAgVGFibGUgaXRlbSBkb2VzIG5vdCBhcHBlYXIgaW4gdGFibGUgIAo8YnI+ODUzODY6ICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBEcm9wVGFyZ2V0ICAKPGJyPjQ1NDM6ICBEQ1IgLSBuZWVkIGZsaXBwaW5nIGltYWdlIHN1cHBvcnQgYWxhIGF3dC5HcmFwaGljcy5kcmF3SW1hZ2UoKSAoMUZaMEM3RykgIAo8YnI+MzAzMjk6ICBTdXBwb3J0IEJlemllciBjdXJ2ZXMgb24gc3d0LmdyYXBoaWNzLkdDICAKPGJyPjg1NzMyOiAgZ2V0Q2xpZW50QXJlYSgpIGNhdXNlIFNoZWxsIHRvIGJlIHJlc2l6ZWQgdG8gaXRzIGluaXRpYWwgc2l6ZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjMgLSBUdWVzZGF5IEZlYnJ1YXJ5IDE1dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8cD5OZXcgQVBJIGhhcyBiZWVuIGFkZGVkIHRvIFRhYmxlIGFuZCBUYWJsZUNvbHVtbiB0byBzdXBwb3J0IHJlb3JkZXJpbmcgb2YgY29sdW1ucyBieSBkcmFnZ2luZyB0aGUgaGVhZGVyczwvcD4KPGJsb2NrcXVvdGU+CmludFtdIFRhYmxlLmdldENvbHVtbk9yZGVyKCkKPGJyPlRhYmxlLnNldENvbHVtbk9yZGVyKGludFtdKQo8YnI+Ym9vbGVhbiBUYWJsZUNvbHVtbi5nZXRNb3ZlYWJsZSgpIC0gZGVmYXVsdCBpcyBmYWxzZQo8YnI+VGFibGVDb2x1bW4uc2V0TW92ZWFibGUoYm9vbGVhbikKPGJyPlNXVC5Nb3ZlIGV2ZW50IGlzIHNlbnQgZm9yIHRoZSBUYWJsZUNvbHVtbiB3aGVuIGNvbHVtbnMgYXJlIGRyYWdnZWQgdG8gYSBuZXcgcG9zaXRpb24KPC9ibG9ja3F1b3RlPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjxicj4yMjAwMDogIEdUSzogTWVudWJhciBpcyBub3QgYWNjb3VudGVkIGZvciBpbiBjb21wdXRlVHJpbSgpLiAgCjxicj4zNDY0NDogIERORCBpbiB0aGUgRmlsZVZpZXdlciBleGFtcGxlIHJlc2V0cyB0cmVlIHNlbGVjdGlvbiAgCjxicj4zOTIzNzogIEdUSyBUcmVlIERORCBkb2Vzbid0IGhpZ2hsaWdodCBiZXR3ZWVuIG1hcmtpbmdzICAKPGJyPjQ1NDI5OiAgVGFibGVDb2x1bW4ucGFjaygpIGRvZXNuJ3QgZGVjcmVhc2UgY29sdW1uJ3Mgd2lkdGggb24gR1RLICAKPGJyPjc5NDE5OiAgW1ByZWZlcmVuY2VzXSBOZWVkIGEgbGluayBjb21wb25lbnQgIAo8YnI+ODEyNTQ6ICBDb250cm9sRXhhbXBsZSBzcGV3cyB3YXJuaW5ncyAgCjxicj44Mzc5NTogIEdyaWRMYXlvdXQgZG9lc24ndCBoYW5kbGUgaG9yaXpvbnRhbCBzcGFubmluZyBvZiBtdWx0aXBsZSBjb2x1bW5zIGNvcnJlY3RseSAgCjxicj44NDUwMDogIEJyb2tlbiBzZWxlY3Rpb24gb24gVGFibGVJdGVtIHdoZW4gSW1hZ2UgaW4gMXN0IENvbHVtbiAgCjxicj44NDUzNTogIFRpdGxlQXJlYURpYWxvZyBkb2Vzbid0IGRpc21pc3Mgb24gPEVOVEVSPiBpZiBjb250YWlucyBDb21ibyhTV1QuU0lNUExFKSAgCjxicj44NDYwMjogIHNjcm9sbGluZyBUcmVlIHdpdGggY29sdW1ucyBob3Jpem9udGFsbHkgZmlyZXMgTW92ZSBhbmQgUmVzaXplIGV2ZW50cyAgCjxicj44NDYwOTogIFRhYmxlQ29sdW1uIGhhcyBOUEUgd2hpbGUgY2FsbGluZyBwYWNrKCkgb24gbGFzdCBjb2x1bW4gIAo8YnI+ODQ2MTM6ICBzZXR0aW5nIFRyZWUgaGVhZGVyIHZpc2liaWxpdHkgZmlyZXMgUmVzaXplICAKPGJyPjg0NjMwOiAgcmVzaXppbmcgYSBUcmVlQ29sdW1uIGRvZXMgbm90IGZpcmUgUmVzaXplIG9yIE1vdmUgIAo8YnI+ODQ2NjU6ICBDbGFyaWZ5IEphdmFkb2Mgb2YgRGlzcGxheS5wb3N0RXZlbnQgIAo8YnI+ODQ3MzM6ICBUYWJGb2xkZXIgcG9zaXRpb24gY2hhbmdlIGJyb2tlbiAgCjxicj44NDc1NTogIENhbm5vdCBvcGVuIGZpbGVuYW1lcyB3aXRoIDgtYml0IGNoYXJhY3RlcnMgIAo8YnI+ODQ3NjU6ICBTdGFja092ZXJmbG93IGluIHNldFRleHQgIAo8YnI+ODQ3ODM6ICBEaXJlY3RvcnkgZGlhbG9nIGRvZXMgbm90IGRlYWwgd2l0aCBub24tVVRGOCBmaWxlbmFtZXMgIAo8YnI+ODQ4NjE6ICBEaXNwbGF5LnBvc3QoRXZlbnQpIG5vdCB3b3JraW5nIGZvciBjaGFyIGtleSBldmVudHMgU1dULlRBQiwgU1dULkVTQywgU1dULkRFTCBhbmQgU1dULkJTICAKPGJyPjg0ODg4OiAgVGVtcG9yYXJ5IC0gZG9uJ3QgdXNlIGNlcnRhaW4gd2Vic2l0ZXMgaW4ganVuaXQgdGVzdHMgIAo8YnI+ODQ5NTM6ICBWaWV3IGNvbnRlbnRzIGFyZSBkcmF3biBvdmVyIHRhYiBhcmVhICAKPGJyPjg1MDA2OiAgVGFibGVDb2x1bW4ucGFjaygpIG9mIGNvbHVtbiAwIHd0aCBTV1QuQ0hFQ0sgaXMgYmFkICAKPGJyPjg1MTE5OiAgVXNlIEdES19IQU5EMiBpbnN0ZWFkIG9mIEdES19IQU5EMSBmb3IgU1dULkNVUlNPUl9IQU5EICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyMiAtIFR1ZXNkYXkgRmVicnVhcnkgOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjgwMDMzOiAgU1dUIEJyb3dzZXIgZG9lcyBub3QgZGlzcGxheSBodHRwcy4gIAo8YnI+NTQ5NzM6ICBbYnJvd3Nlcl0gRGVmYXVsdCBXaW5kb3dFdmVudCB0byBoYW5kbGUgbm9ybWFsIHdpbmRvdyBvcGVuIGNhc2UgLSBmZWF0dXJlIHJlcXVlc3QgIAo8YnI+ODE0NjM6ICBbbGF1bmNoZXJdIExhdW5jaGVyIGFuZCBDb3JlIGlzc3VlcyByZWdhcmRpbmcgLXNob3dTcGxhc2ggIAo8YnI+ODE5Njk6ICBbbGF1bmNoZXJdIExhdW5jaGVyIHNob3VsZCBiZSBpbmRlcGVuZGVudCBvZiBzdGFydHVwLmphciBsb2NhdGlvbiAgCjxicj44MjczOTogIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OIGhvdmVyaW5nIG92ZXIgY2hlY2sgaW4gdGFibGUgd2l0aCBTV1QuQ0hFQ0sgc3R5bGUgIAo8YnI+ODM0MzI6ICBpRnJhbWUgZG9lcyBub3QgcmVuZGVyIGJvcmRlciB3aGVuIGluIFNXVCBCcm93c2VyICAKPGJyPjgzODE5OiAgSlBvcHVwTWVudSBkb2Vzbid0IHdvcmsgY29ycmVjdHkgaW4gYSBTV1QgY29tcG9zaXRlICAKPGJyPjgzOTc4OiAgQ0xhYmVsIHdpdGggc3R5bGUgU1dULkNFTlRFUiBraWxscyB0YWJiaW5nICAKPGJyPjg0MDg1OiAgWFAgc3R5bGUgbm90IHN1cHBvcnQgd2l0aCBCdXR0b24gd2l0aCBTV1QuQVJST1cgIAo8YnI+ODQyMDE6ICBMYWJlbCB0ZXh0IGRvZXNuJ3Qgd3JhcCBjb3JyZWN0bHkgIAo8YnI+ODQzODM6ICBbYnJvd3Nlcl0gY2FuJ3QgbmF2aWdhdGUgdG8gZWNsaXBzZSBidWd6aWxsYSAgCjxicj44NDQwNDogIERpc2FibGVkIGJ1dHRvbiBzdG9wcyBldmVudHMgIAo8YnI+ODQ1ODE6ICBDaGVjayBidXR0b24gc2l6ZSBkb2VzIG5vdCBjaGFuZ2Ugd2hlbiByaWdodCBhbGlnbmVkICAKPGJyPjg0NjAwOiAgcmVzaXppbmcgVHJlZUNvbHVtbiBsZWF2ZXMgY2hlZXNlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyMSAtIFR1ZXNkYXkgRmVicnVhcnkgMXN0LCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjQ0MDg6ICBJbWFnZSBQcm9jZXNzaW5nIEFsZ29yaXRoaW1zICgxUFE4UkdUKSAgCjxicj40NDczOiAgRENSIC0gbmVlZCBBUEkgdG8gYmVnaW4vZW5kIGRlZmVyIGxheW91dCAoMUZNR0ZSUCkgIAo8YnI+NDY4MDogIERDUiAtIHRyZWUgYW5kIHRhYmxlIGRvZXMgbm90IG1hdGNoIGl0ZW0gd2hlbiBrZXkgaXMgdHlwZWQgIAo8YnI+MTg2OTk6ICBCdXR0b25zIHdpdGggaW1hZ2VzIGRvbid0IHVzZSB0aGUgWFAgdGhlbWUgIAo8YnI+NTk1MTQ6ICBOZWVkIHN1cHBvcnQgdG8gdW5kZXJsaW5lIHRleHQgd2hlbiB1c2luZyBUZXh0TGF5b3V0IEFQSS4gIAo8YnI+ODA0MTQ6ICBBcnJtTGlzdGVuZXIgZm9yIE1lbnVJdGVtIGdlbmVyYXRlcyBzdWJtZW51IHdpdGggaW52aXNpYmxlIGxhYmxlcyAgCjxicj44MjM0NjogIENMYWJlbCBkaXNhcHBlYXJzIHdoZW4gZ2l2ZW4gU1dULkNFTlRFUiBmbGFnIGluIGNvbnN0cnVjdG9yICAKPGJyPjgzMjUxOiAgSmF2YWRvYyB3YXJuaW5ncyBpbiBsYXRlc3QgYnVpbGRzICAKPGJyPjgzNTQ2OiAgUHJpbnRpbmcgZG9lc24ndCBzZWVtIHRvIHdvcmsgYW55bW9yZSBpbiBsYXRlc3QgaW50ZWdyYXRpb24gYnVpbGQgIAo8YnI+ODM2Njc6ICBFY2xpcHNlIHNwbGFzaHNjcmVlbiBpcyB2ZXJ5IHJ1ZGUgIAo8YnI+ODM2ODM6ICBKYXZhZG9jIG9mIFN0eWxlUmFuZ2UgZG9lcyBub3QgbWVudGlvbiBpdCBzdXBwb3J0cyBTV1QuSVRBTElDICAKPGJyPjgzNjk5OiAgRm9udCByZXNldCB0byBkZWZhdWx0IGFmdGVyIHNjcmVlbiBzYXZlciAgCjxicj44Mzc2NTogIERDUjogYWRkIHN0cmlrZW91dCB0byBUZXh0TGF5b3V0ICAKPGJyPjgzNzY5OiAgSW1hZ2VMb2FkZXIgLSBFeGNlcHRpb24gRm9yIEltYWdlIFNhdmUgIAo8YnI+ODM3OTE6ICBSZXBhaW50IHByb2JsZW1zIGZvciBDb21ibyB1c2luZyBTV1QuU0lNUExFIHN0eWxlICAKPGJyPjgzODM4OiAgZGlmZmVyZW50IHN0eWxlIG9mIGluZGV0ZXJtaW5hbnQgcHJvZ3Jlc3MgYmFyIHJlcXVlc3RlZCAgCjxicj44NDA3NzogIFRhYmxlLnBhY2soKSBleHRlbmRzIGxhc3QgY29sdW1uIHRvIGluY2x1ZGUgc2Nyb2xsIGJhciAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjAgLSBUdWVzZGF5IEphbnVhcnkgMjV0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpSb3dEYXRhLmV4Y2x1ZGUgYW5kIEdyaWREYXRhLmV4Y2x1ZGUgaGF2ZSBiZWVuIGFkZGVkIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byAKc2VsZWN0aXZlbHkgZXhjbHVkZSB3aWRnZXRzIGZyb20gYSBMYXlvdXQgb3BlcmF0aW9uLgo8L2Jsb2NrcXVvdGU+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjQyNjMyOiAgQ2xpcGJvYXJkIGJlY29tZXMgZW1wdHkgYWZ0ZXIgc2hlbGwgY2xvc2VzICAKPGJyPjQ5NDI2OiAgTGF5b3V0cyBzaG91bGQgc3VwcG9ydCBsYXlpbmcgb3V0IG9ubHkgYSBzdWJzZXQgb2YgYSBjb21wb3NpdGUncyBjaGlsZHJlbiAgCjxicj42NDkyMzogIEVDOiBuZWVkIGFwaSB0byBxdWVyeSBmb3IgVHJheSBzdXBwb3J0ICAKPGJyPjc2NzIyOiAgW1JDUF0gW2xhdW5jaGVyXSBhYmlsaXR5IHRvIGdlbmVyYXRlIGV4ZWN1dGFibGUgd2l0aCBzcGVjaWZpYyBpY29uIHJlc291cmNlcyAgCjxicj43OTk0NDogIFRoZSBFY2xpcHNlIGxhdW5jaGVyIHNob3VsZCBnaXZlIHRoZSBzcGxhc2ggc2NyZWVuIHdpbmRvdyBhIHR5cGUgaGludCAgCjxicj44MjAyNjogIFtsYXVuY2hlcl0gZWNsaXBzZSBsYXVuY2hlciBkb2VzIG5vdCBjb25uZWN0IHN0ZG91dCBvZiBqdm0gdG8gY29uc29sZSAgCjxicj44MjQ2OTogIFtsYXVuY2hlcl0gTGF1bmNoZXIgc2hvdWxkIG5vdCBoYXJkIGNvZGUgYSByZWZlcmVuY2UgdG8gb3JnLmVjbGlwc2UuY29yZS5sYXVuY2hlci5NYWluICAKPGJyPjgyNjQwOiAgU2V0dGluZyBzdHlsZSBiaXRzIGJyZWFrcyBTV1QgZW1iZWRkZWQgU3dpbmcgaW4gTWlsZXN0b25lIE00ICAKPGJyPjgyNjU3OiAgSGVscCBmYWlscyB0byBvcGVuICAKPGJyPjgyNjkzOiAgU2ltcGxlIGV4YW1wbGUgc25pcHBldCBmb3IgT3BlbkdMICAKPGJyPjgyODI4OiAgVGFibGUncyBTV1QuRlVMTF9TRUxFQ1RJT04gYnJva2VuIGZvciBlbXB0eSB0YWJsZSBpdGVtcyAgCjxicj44MjgzNzogIEVtYmVkZGluZyBzd2luZyBvbiBzd3QgXyBwcm9ibGVtcyB3aXRoIEpESzEuNC4xICAKPGJyPjgyOTA1OiAgZHJhd0ltYWdlIGRvZXNuJ3QgaG9ub3IgY2xpcCByZWN0ICAKPGJyPjgzMjYyOiAgcnh2dCBwYXN0ZXMgbnVsbCB0ZXJtaW5hdG9yICAKPGJyPjgzMzA1OiAgSmF2YWRvYyBvZiBEaXNwbGF5LmFkZEZpbHRlciBjb3VsZCBiZSBpbXByb3ZlZCAgCjxicj44MzQyNDogIFticm93c2VyXSBjaGVjayBpZiByZXBhcmVudGluZyB3b3JrcyAgCjxicj44MzUzMjogIFticm93c2VyXSBIVFRQUyBsaW5rIGNyYXNoZXMgQnJvd3NlciB3aXRoIE1vemlsbGEgMS43LjUgIAo8YnI+ODM1NDM6ICBhZGQgYWxwaGEgc3VwcG9ydCB0byBHVEsgTWVudUl0ZW0gVGFiSXRlbSBUYWJsZUNvbHVtbiBUcmF5SXRlbSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTljIC0gVHVlc2RheSBKYW51YXJ5IDE4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+MjI2NDY6ICBDaGVlc2UgYXBwZWFycyBpbiB0YWJsZSB3aGVuIHVzaW5nIG1vdXNlIHdoZWVsICAKPGJyPjM3NzA0OiAgW3BsYW4gaXRlbV0gU3VwcG9ydCBHVUkgdGVzdCB0b29scyAgCjxicj41MzkyMzogIENoYW5naW5nIHRhYmxlIGZvbnQgY2F1c2VzIHRhYmxlIGdyaWRsaW5lcyB0byBiZSBtaXNhbGlnbmVkLiAgCjxicj43NTA4NzogIHJlZHJhdyBlcnJvcnMgaW4gc2Nyb2xsYWJsZSB0YWJsZSB3aGVuIHJvdyBpcyB0byBoZWlnaHQgIAo8YnI+ODA2MDg6ICBTV1QuZXJyb3IgZG9lcyBub3QgaW5pdGlhbGl6ZSB0aGUgY2F1c2luZyBleGNlcHRpb24uICAKPGJyPjgxODE5OiAgTWlzc2luZyBzY2VuYXJpbyByZXN1bHRzIGZvciBMaW51eCBHVEsgIAo8YnI+ODE5ODc6ICBCSURJOkNoZWNrIGJveCBtYXJrIGlzIGludmVydGVkICAKPGJyPjgyMDY3OiAgQklESTpQcmludGluZyBvZiB0ZXh0IGZpbGVzIGlzIG5vdCByaWdodCBhbGlnbmVkICAKPGJyPjgyNDU0OiAgQklESTpKYXZhIGVkaXRvciBpcyBSVEwgb3JpZW50ZWQgIAo8YnI+ODI0NjY6ICBQcm9ibGVtIGluIGludm9raW5nIEVjbGlwc2UgdXNpbmcgdGVsbmV0ICAKPGJyPjgyNTAxOiAgVGFibGUgc29ydC9yZWRyYXcgcHJvYmxlbSAgCjxicj44MjUzMTogIE1pc3Npbmcgc2VsZWN0aW9uRXZlbnQgd2hlbiBkaXNwb3NpbmcgVHJlZUl0ZW0gIAo8YnI+ODI2NjA6ICBCcm93c2VyIHdpdGhvdXQgc2Nyb2xsIGJhcnMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDE5IC0gVHVlc2RheSBKYW51YXJ5IDExdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KVHJlZUNvbHVtbiAtIHN1cHBvcnQgY3JlYXRpbmcgY29sdW1ucyBpbiBhIHRyZWUgd2lkZ2V0LiBUaGlzIHJlcGxhY2VzIHRoZQplbXVsYXRlZCBUYWJsZVRyZWUgYW5kIGdpdmVzIGFjY2VzcyB0byB0aGUgbmF0aXZlIGxvb2sgYW5kIGZlZWwgb2YgdGhlIHRyZWUuCjxicj4KPGJyPjxiPk5ldyBUcmVlIEFQSTo8L2I+Cjxicj5pbnQgZ2V0R3JpZExpbmVXaWR0aAo8YnI+aW50IGdldEhlYWRlckhlaWdodAo8YnI+Ym9vbGVhbiBnZXRIZWFkZXJWaXNpYmxlCjxicj5UcmVlQ29sdW1uIGdldENvbHVtbiAoaW50IGluZGV4KQo8YnI+aW50IGdldENvbHVtbkNvdW50Cjxicj5UcmVlQ29sdW1uIFtdIGdldENvbHVtbnMKPGJyPmJvb2xlYW4gZ2V0TGluZXNWaXNpYmxlCjxicj52b2lkIHNldExpbmVzVmlzaWJsZSAoYm9vbGVhbiBzaG93KQo8YnI+dm9pZCBzZXRIZWFkZXJWaXNpYmxlIChib29sZWFuIHNob3cpCjxicj52b2lkIHNob3dDb2x1bW4gKFRyZWVDb2x1bW4gY29sdW1uKQo8YnI+Cjxicj48Yj5OZXcgVHJlZUl0ZW0gQVBJOjwvYj4KPGJyPkNvbG9yIGdldEJhY2tncm91bmQgKGludCBpbmRleCkKPGJyPlJlY3RhbmdsZSBnZXRCb3VuZHMgKGludCBpbmRleCkKPGJyPkZvbnQgZ2V0Rm9udCAoaW50IGluZGV4KQo8YnI+Q29sb3IgZ2V0Rm9yZWdyb3VuZCAoaW50IGluZGV4KQo8YnI+SW1hZ2UgZ2V0SW1hZ2UgKGludCBpbmRleCkKPGJyPlJlY3RhbmdsZSBnZXRJbWFnZUJvdW5kcyAoaW50IGluZGV4KQo8YnI+U3RyaW5nIGdldFRleHQgKGludCBpbmRleCkKPGJyPnZvaWQgc2V0QmFja2dyb3VuZCAoaW50IGluZGV4LCBDb2xvciBjb2xvcikKPGJyPnZvaWQgc2V0Rm9udCAoaW50IGluZGV4LCBGb250IGZvbnQpCjxicj52b2lkIHNldEZvcmVncm91bmQgKGludCBpbmRleCwgQ29sb3IgY29sb3IpCjxicj52b2lkIHNldEltYWdlIChJbWFnZSBbXSBpbWFnZXMpCjxicj52b2lkIHNldEltYWdlIChpbnQgaW5kZXgsIEltYWdlIGltYWdlKQo8YnI+dm9pZCBzZXRUZXh0IChTdHJpbmcgW10gc3RyaW5ncykKPGJyPnZvaWQgc2V0VGV4dCAoaW50IGluZGV4LCBTdHJpbmcgc3RyaW5nKQo8L2Jsb2NrcXVvdGU+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NDU5MTogIHByb3Agc2hlZXQgLSB0aGUgZmlyc3QgY29sdW1uIHNlZW1zIHRvIGxlYXZlIHRvbyBtdWNoIHVudXNlZCBzcGFjZSAoMUc3R0lDMykgIAo8YnI+MTM5NTQ6ICBUYWJsZVRyZWUgVHJlZSBpY29ucyBhcmUgbGFyZ2UgIAo8YnI+MjUwMDc6ICBBbGxvdyBmb3IgaWNvbnMgaW4gVGFibGVUcmVlSXRlbXMgaW4gZmlyc3QgY29sdW1uICAKPGJyPjM2ODIyOiAgRENSIC0gVGFibGVUcmVlIGRvZXNuJ3Qgc3VwcG9ydCBkcmFnIGFuZCBkcm9wICAKPGJyPjUyMTQ1OiAgVGFibGVUcmVlIGluY29ycmVjdGx5IGhhbmRsZXMgTGVmdC1BcnJvdyBpbiBzdWJ0cmVlICAKPGJyPjY2MTc5OiAgVGFibGVUcmVlIHdpZGdldCBoYXMgd2VpcmQgKy8tIHNpZ25zIG9uIFdpbmRvd3MgIAo8YnI+NzM2MjI6ICBUYWJsZVRyZWUgcGx1cyBzaWduIGJhY2tncm91bmQgd3JvbmcgY29sb3Igb24gU29sYXJpcyAgCjxicj44MDU5OTogIFNXVCBnZXRzIHdpbmRvdyBvcmlnaW4gZXZlbiBpZiBub2JvZHkgaGFzIGhvb2tlZCBhIG1vdGlvbiBldmVudCAgCjxicj44MDgzMDogIGltcGxlbWVudCBHQy5kcmF3Rm9jdXMgIAo8YnI+ODE2OTU6ICBbTGludXggR1RLXSBTV1QgVGV4dCBkaXNwbGF5cyB0aGUgd3JvbmcgY2hhcmFjdGVycyBpZiBjYWxsIGFkZE1vZGlmeUxpc3RlbmVyICAKPGJyPjgxODkzOiAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZyb20gU3R5bGVkVGV4dCBXaWRnZXQgIAo8YnI+ODIxNTY6ICBbbGF1bmNoZXJdIHR5cG8gaW4gZWNsaXBzZUNvbmZpZy5jICAKPGJyPjgyMTYwOiAgW2xhdW5jaGVyXSBlY2xpcHNlVW5pY29kZS5oIG5lZWRzIHRvIGluY2x1ZGUgY3R5cGUuaCAgCjxicj44MjI4MjogIENvbnRyb2wucmVkcmF3KCkgaW52YWxpZGF0ZXMgY2hpbGRyZW4gb24gTGludXgtR1RLICAKPGJyPjgyMzg1OiAgQnJvd3NlciB3aWRnZXQgY2F1c2VzIGNyYXNoIG9yIGZyZWV6ZSB3aGVuIG9wZW5pbmcgVVJMIHdpdGggSmF2YSAyIGFwcGxldHMgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTggLSBUdWVzZGF5IEphbnVhcnkgNHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODE3NTk6ICBDYW4ndCBzZWxlY3QgdG9vbCBpdGVtcyB3aGVuIHRvb2wgYmFyIGhhcyBhIERyYWdEZXRlY3QgbGlzdGVuZXIgIAo8YnI+NzgyOTU6IFZNIGNyYXNoIGluIG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5ndGsuT1MuZ3RrX2ZpbGVfY2hvb3Nlcl9kaWFsb2dfbmV3ICAKPGJyPjgwNzU4OiBDb250cm9sRXhhbXBsZSBzaG93aW5nIHN0cmFuZ2UgZXZlbnRzICAKPGJyPjgxMjY1OiBiYWNrZ3JvdW5kIG9mIHRyZWUgaXMgaW5jb3JyZWN0IHdoZW4gZGlzYWJsZWQgIAo8YnI+ODEzOTk6IFBpeGVsIENvcnJ1cHRpb24gY2F1c2VkIGJ5IFRyYWNrZXIgb24gYSBDb21wb3NpdGUgd2l0aCBjaGlsZHJlbiAgCjxicj43ODg1NDogTWVtb3J5IGxlYWsgaW4gQ2xpcGJvYXJkUHJveHkuZ2V0RnVuYygpICAKPGJyPjgxMzk1OiBbTmF2aWdhdG9yXSBDYW5ub3Qgb3BlbiBjb250ZXh0IG1lbnUgb24gTmF2aWdhdG9yIHRoYXQgaXMgaW5pdGlhbGx5IGVtcHR5ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAxNyAtIFR1ZXNkYXkgRGVjZW1iZXIgMjFzdCwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQxMjI3OiAgW1dvcmtiZW5jaF0gU3dpdGNoaW5nIGFwcGxpY2F0aW9ucywgdGhlcmUgaXMgbGFnIGRpc3BsYXlpbmcgdGhlIG1lbnViYXIgIAo8YnI+NjY5NTQ6ICBPcGVuIGV4dGVybmFsIEphdmFEb2Mgb3BlbnMgb24gdHlwZSBpbnN0ZWFkIG9mIG1lbWJlciBbamF2YWRvY10gIAo8YnI+NzkyMTY6ICBbY29uc2lzdGVuY3ldIGF0dGFjaGluZyBhIERyYWdEZXRlY3QgbGlzdGVuZXIgdG8gYSBzYXNoIGFmZmVjdHMgdGhlIHNlbGVjdGlvbiBldmVudCAgCjxicj44MDIxNjogIEtFUk5fUFJPVEVDVElPTl9GQUlMVVJFIGR1ZSB0byBFWENfQkFEX0FDQ0VTUyBvbiBleGl0ICAKPGJyPjgwMjc2OiAgQ0Jhbm5lckxheW91dCBjYWxscyBDb250cm9sLnVwZGF0ZSB0b28gb2Z0ZW4gIAo8YnI+ODA1MTk6ICB1cGRhdGUgcGxhdGZvcm0tbGF1bmNoZXIgc3RydWN0dXJlIHRvIGluY2x1ZGUgYXJjaCAgCjxicj44MDg2NzogIEFQUFNUQVJUSU5HIGN1cnNvciBoYXMgY29sb3VycyByZXZlcnNlZCAgCjxicj44MDkxMTogIFNXVC5TZXREYXRhIGV2ZW50IG5vdCB0aHJvd24gaW4gYWxsIG5lZWRlZCBjYXNlcyAgCjxicj44MDk2NTogIENvbnRyb2xFeGFtcGxlIGRvZXMgbm90IHJlZ2lzdGVyIGNvcnJlY3QgZXZlbnQgIAo8YnI+ODA5NzU6ICBOZWVkIHRvIHVwZGF0ZSBKYXZhZG9jIGZvciAicHVibGljIiBmaWVsZHMgIAo8YnI+ODExMzc6ICBUYWJsZUVkaXRvcnMgc2hpZnRlZCB0byB0aGUgcmlnaHQgd2hlbiB0YWJsZSBoYXMgaW1hZ2UgIAo8YnI+ODExNzU6ICBsYXVuY2hlciBkb2VzIG5vdCBzaG93IHNwbGFzaCBzY3JlZW4gd2hlbiBhbnkgYXJndW1lbnQgaXMgc2V0ICAKPGJyPjgxMjQxOiAgW0p1bml0XSBOUEUgaW4gQ0xhYmVsICAKPGJyPjgxMjgzOiAgW0pVbml0XSBOUEUncyBhbmQgTm8gbW9yZSBjYWxsYmFja3MgZnJvbSBCcm93c2VyIHdoZW4gTU9aSUxMQV9GSVZFX0hPTUUgbm90IHNldCAgCjxicj44MTMzNjogIHVzaW5nIGEgaW5pIGZpbGUgc2VlbXMgdG8gcHJldmVudCBlY2xpcHNlIGZyb20gc3dpdGNoaW5nIHdvcmtzcGFjZSAgCjxicj44MTM1NzogIFRhYmxlQ29sdW1uLnNldFRleHQoIiIpIHJlc3VsdHMgaW4gc2NyZWVuIGNoZWVzZSAgCgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDE2IC0gVHVlc2RheSBEZWNlbWJlciAxNHRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTIzNzk6ICBDb29sQmFyIGRvZXMgbm90IGJlaGF2ZSBwcm9wZXJseSB3aXRoIENvbWJvIGFzIGl0ZW0gIAo8YnI+Njk2OTQ6ICBsaW51eC1pYTY0LWd0ayBwbGF0Zm9ybSBsYXVuY2hlciBjcmFzaGVzIGltbWVkaWF0ZWx5ICAKPGJyPjcwMzE4OiAgU3VwcG9ydCBmb3IgbXVsdGlwbGUgbGluZXMgaW4gQ0xhYmVsICAKPGJyPjc0MTM4OiAgRHVwbGljYXRlIERMTHMgaW4gd2luMzIgZnJhZ21lbnQgIAo8YnI+NzY4NTU6ICBbUkNQXSBsYXVuY2hlciBzaG91bGQgcmVhZCBhbiBpbmkgZmlsZSAgCjxicj43OTEyODogIFNXVCAzLjEgZG9lcyBub3Qgd29yayBvbiBwcGM2NCAgCjxicj43OTUwNDogIHNoZWxsIG5vdCBvcGVuZWQgaWYgcHJldmlvdXMgc2hlbGwgd2FzIGRpc3Bvc2VkIHdoZW4gYWN0aXZlICAKPGJyPjgwMTYwOiAgUmVncmVzc2lvbjogUHJlc3NpbmcgUmV0dXJuL0VzYyBkb2VzIG5vdCBjbG9zZSBkcm9wIGRvd24gbGlzdCBvZiBlZGl0YWJsZSBjb21ibyAgCjxicj44MDQ4NTogIGdldCBhIGphdmEubGFuZy5VbnNhdGlzZmllZExpbmtFcnJvciBhdCBsYXVuY2ggIAo8YnI+ODA1MDY6ICBbY29uc2lzdGVuY3ldIGZvcmNlQWN0aXZlIGFuZCBzZXRBY3RpdmUgYXJlIGluY29uc2lzdGVudCBhY3Jvc3MgcGxhdGZvcm1zICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAxNSAtIFR1ZXNkYXkgRGVjZW1iZXIgN3RoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNzEwMTogIERDUiBhYmlsaXR5IHRvIHJlY2VpdmUgc2Nyb2xsIGV2ZW50cyAoZS5nLiBzY3JvbGx3aGVlbCkgZnJvbSBTY3JvbGxhYmxlICAKPGJyPjI0NTM4OiAgVGFiSXRlbSBjb250cm9scyBzaG91bGQgdXNlIHRoZSBUYWJGb2xkZXIgdG8gcGFpbnQgdGhlaXIgYmFja2dyb3VuZCB3aGVuIHVzaW5nIFhQIHZpc3VhbCBzdHlsZXMuICAKPGJyPjY4MjEyOiAgTWFjIC0gY2FuJ3QgZHJhZyBmcm9tIFNXVCBhcHBsaWNhdGlvbiB0byBhbm90aGVyIGFwcGxpY2F0aW9uICAKPGJyPjc5NTI3OiAgb3JnLmVjbGlwc2Uuc3d0Lmd0ayogYnVpbGQueG1sIGdhdGhlci5iaW4ucGFydHMgdGFyZ2V0IG5lZWRzIHRvIGNvbGxlY3QgbGlicmFyaWVzIGZyb20gYXJjaGljdGVjdHVyZSBzcGVjaWZpYyBkaXJlY3RvcmllcyB0byBzdXBwb3J0IHNvdXJjZSBidWlsZHMgIAo8YnI+Nzk1NTc6ICBEaXNwbGF5LmdldFNoZWxscygpIG9wdGltaXphdGlvbiAgCjxicj43OTkzNDogIEluY29ycmVjdCBTV1QuRGVhY3RpdmF0ZSByZWNlaXZlZCAgCjxicj44MDEyMDogIENUYWJGb2xkZXIgbGF5b3V0IHB1dHMgdG9wIHJpZ2h0IGl0ZW0gb25lIHBpeGVsIHRvIGZhciB0byB0aGUgcmlnaHQgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDE0IC0gVHVlc2RheSBOb3ZlbWJlciAyOXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTY5NzE6ICBMYXlvdXRFeGFtcGxlIG5vdCBiaWcgZW5vdWdoICAKPGJyPjIwMDE4OiAgQ0NvbWJvIG1pc3Npbmcga2V5Ym9hcmQgYWNjZXNzICAKPGJyPjI2ODU5OiAgW2NvbnNpc3RlbmN5XSBFbnN1cmUgQnV0dG9uLnNldEltYWdlKG51bGwpIGlzIGNvbnNpc3RlbnQgYWNyb3NzIGFsbCBwbGF0Zm9ybXMgIAo8YnI+MjY4Nzg6ICBFY2xpcHNlIGRvZXNuJ3QgaW50ZXJhY3Qgd2l0aCBYJ3MgIlNlbGVjdGlvbiBDbGlwYm9hcmQiICAKPGJyPjQ0MjE3OiAgQ2FsbGluZyBDbGlwYm9hcmQgb24gTW90aWYgbm8gbG9uZ2VyIGFjY2VwdHMga2V5L21vdXNlIGV2ZW50cyAgCjxicj40OTA1NzogIEluY29uc2lzdGVuY3kgaW4gbGF5b3V0IGhhbmRsaW5nIGR1cmluZyBzaGVsbC5zZXRWaXNpYmxlICAKPGJyPjYzNDgxOiAgQ2xpcGJvYXJkIGdldEF2YWlsYWJsZVR5cGVzIHJ1bnMgdGhlIGV2ZW50IGxvb3Agb24gTW90aWYgIAo8YnI+NjU0MDY6ICBbY29uc2lzdGVuY3ldIENsaXBib2FyZCBpbmNvbnNpc3RlbmNpZXMgYWNyb3NzIHBsYXRmb3JtcyAgCjxicj42NTU0NTogIERORCBjYW4gaGFuZyBkZXNrdG9wICAKPGJyPjY1NTQ3OiAgW2NvbnNpc3RlbmN5XURORCBpbmNvbnNpc3RlbmNpZXMgIAo8YnI+NjkzMDQ6ICBFQzogZGlzYXBwZWFyaW5nIHRhYmxlIGNvbHVtbiBoZWFkZXJzICAKPGJyPjcyMDMzOiAgW2Jyb3dzZXJdIHN1cHBvcnQgQU1ENjQgKGVhcmx5IGFjY2VzcykgIAo8YnI+NzM5NjU6ICBbTGF5b3V0c10gYWRkIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0LCBtYXJnaW5Ub3AgYW5kIG1hcmdpbkJvdHRvbSB0byBHcmlkTGF5b3V0ICAKPGJyPjc4NTQ4OiAgW2NvbnNpc3RlbmN5XSBCdXR0b24gU2VsZWN0aW9uIGZpcmVzIGJlZm9yZSBNb3VzZVVwICAKPGJyPjc4NTU4OiAgW2NvbnNpc3RlbmN5XSBTbGlkZXIgZmlyZXMgdHdvIHNlbGVjdGlvbiBldmVudHMgb24gc2luZ2xlIGNsaWNrICAKPGJyPjc4NTU5OiAgW2NvbnNpc3RlbmN5XSBTbGlkZXIgZmlyZXMgdHdvIFNlbGVjdGlvbiBldmVudHMgYmVmb3JlIE1vdXNlRG93biAgCjxicj43ODU2NDogIFtjb25zaXN0ZW5jeV0gVGFiRm9sZGVyIHRhYiB0cmF2ZXJzYWxzIGRvIG5vdCBmaWxsIGluIGRldGFpbCBmaWVsZCAgCjxicj43ODU2NTogIFtjb25zaXN0ZW5jeV0gVGFiRm9sZGVyIGZpcmVzIHR3byBNZW51RGV0ZWN0IGV2ZW50cyAgCjxicj43ODU2NjogIFtjb25zaXN0ZW5jeV0gVGFibGUgZmlyZXMgdHdvIERlZmF1bHRTZWxlY3Rpb24gZXZlbnRzICAKPGJyPjc4NTY4OiAgW2NvbnNpc3RlbmN5XSBUYWJsZSBmaXJlcyBEZWZhdWx0U2VsZWN0aW9uIGJlZm9yZSBLZXlEb3duICAKPGJyPjc5MTA3OiAgW2NvbnNpc3RlbmN5XSBzZXRJdGVtcyhTdHJpbmdbXSkgd2l0aCBudWxsIGVsZW1lbnRzICAKPGJyPjc5MTg2OiAgW2NvbnNpc3RlbmN5XSBwcmVzc2luZyBFbnRlciBvbiBCdXR0b24gZmlyZXMgTW91c2VVcCBvbiB3aW4zMiBvbmx5ICAKPGJyPjc5MTkxOiAgW2NvbnNpc3RlbmN5XSBCdXR0b24gS2V5VXAtU2VsZWN0aW9uIGRpZmZlcmVuY2VzICAKPGJyPjc5MjEwOiAgW2NvbnNpc3RlbmN5XSBDb21ibyBkb2VzIG5vdCBmaXJlIHNvbWUgS2V5RG93bnMgIAo8YnI+NzkyMTU6ICBbY29uc2lzdGVuY3ldIFByb2dyZXNzQmFyIGRvZXMgbm90IGZpcmUgc29tZSBtb3VzZSBldmVudHMgIAo8YnI+NzkyMjE6ICBbY29uc2lzdGVuY3ldIFRhYkZvbGRlciBkb2VzIG5vdCBmaXJlIHNvbWUgS2V5RG93bnMgIAo8YnI+NzkyMjg6ICBTb2xhcmlzIDggY3Jhc2ggIAo8YnI+NzkyMzc6ICBbY29uc2lzdGVuY3ldIFRleHQgZG9lcyBub3QgZmlyZSBNZW51RGV0ZWN0ICAKPGJyPjc5NDIzOiAgW2NvbnNpc3RlbmN5XSBUYWJGb2xkZXIgZmlyZXMgU2VsZWN0aW9uIGZvciBhbGwgbW5lbW9uaWNzICAKPGJyPjc5NDgxOiAgU2FzaCBubyBsb25nZXIgZHJhZ2dhYmxlIHdoZW4gdG9vIHNtYWxsICAKCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTMgLSBUdWVzZGF5IE5vdmVtYmVyIDIzcmQsIDIwMDQgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KU3Bpbm5lciAtIGFsbG93IHRoZSB1c2VyIHRvIGVudGVyIGFuZCBtb2RpZnkgbnVtZXJpYyB2YWx1ZXMKPGJyPkdDLnNldExpbmVDYXAgLSBTZXRzIHRoZSByZWNlaXZlcidzIGxpbmUgY2FwIHN0eWxlIHRvIHRoZSBhcmd1bWVudAo8YnI+R0MuZ2V0TGluZUNhcCAtIFJldHVybnMgdGhlIHJlY2VpdmVyJ3MgbGluZSBjYXAgc3R5bGUKPGJyPkdDLnNldGxpbmVKb2luIC0gU2V0cyB0aGUgcmVjZWl2ZXIncyBsaW5lIGpvaW4gc3R5bGUgdG8gdGhlIGFyZ3VtZW50Cjxicj5HQy5nZXRMaW5lSm9pbiAtIFJldHVybnMgdGhlIHJlY2VpdmVyJ3Mgam9pbiBzdHlsZQo8L2Jsb2NrcXVvdGU+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NDg1MzogIEdDLnNldExpbmVTdHlsZSBkb2VzIG5vdCB3b3JrIGlmIHdpZHRoID4gMSAoMUdLWjE4TikgW3BvcnRhYmlsaXR5XSAgCjxicj41NjQ1OiAgRENSOiBOZWVkIHRvIGJlIGFibGUgY3V0IGFuZCBwYXN0ZSBkYXRhIG9uIENsaXBib2FyZCAgCjxicj4xMTQxODogIERDUiAtIE5lZWQgbGluZXN0eWxlIHRvIGFsbG93IGRvdHMgb2YgMSBwaXhlbCAgCjxicj4xNDI5NzogIEFkZCBhIFNwaW5uZXIgd2lkZ2V0IHRvIHRoZSBTV1QgdG9vbGtpdCAgCjxicj4zNDUyMzogIFRleHQgLSBObyBjb250ZXh0IG1lbnUgIAo8YnI+MzUwNDA6ICBQcm9ibGVtcyB3aXRoIFBORyB0cmFuc3BhcmVuY3kgaW4gSW1hZ2UgQ2xhc3MgIAo8YnI+MzgzNTU6ICBJbnZhbGlkIGhhbmRsaW5nIHRyYW5zcGFyZW50IHBpeGVsIGlmIHRoZXJlIGlzIGFub3RoZXIgcGl4ZWwgd2l0aCBzYW1lIFJHQiAgCjxicj4zODQ0MzogIFN1cHBvcnQgR1RLIG9uIFNwYXJjIFNvbGFyaXMgIAo8YnI+NDM2ODQ6ICBTZXR0aW5nIGN1cnNvciB0byBTV1QuQ1VSU09SX0FQUFNUQVJUSU5HIGRvZXNuJ3Qgc2VlbSB0byB3b3JrICAKPGJyPjUyNjM3OiAgTGluZSBTdHlsZXMgb24gR1RLIHZhcnkgZ3JlYXRseSBmcm9tIHRob3NlIG9uIFdpbmRvd3MuICAKPGJyPjYwODE1OiAgSW1hZ2UgdHJhbnNwYXJlbmN5IGRvZXMgbm90IHdvcmsgaW4gdGFibGVzLCBjb2x1bW4gPjAgIAo8YnI+NjcyMzc6ICBETkQgY29weSBhbmQgbGluayBhcmUgYWxsb3dlZCB3aXRoIGRlZmF1bHQgbW91c2UgZ2VzdHVyZSAgCjxicj42ODM1MzogIENvbXBvbmVudHMgaW4gU1dUX0FXVCBhcmUgbm90IGRpc3BsYXllZCBvbiBTb2xhcmlzICAKPGJyPjcwMjE0OiAgWzY0XSBFY2xpcHNlIGRvZXMgbm90IHN0YXJ0IG9uIEFNRDY0LCBTdW4gSjJTRSAxLjQuMiwgU3VTRSBMaW51eCA5LjEgIAo8YnI+NzA5NjY6ICBObyBQb3B1cCBvbiBUaWdlciAgCjxicj43NDc0NDogIEVjbGlwc2UgMy4wLjAgY3Jhc2hlcyBzdWRkZW5seSAgCjxicj43NTQ1MDogIFNXVC1tb3ppbGxhIGlzc3VlICAKPGJyPjc2MDk0OiAgcmVxdWVzdCBmb3IgYXV0b21hdGljIGNoZXZyb24gc3VwcG9ydC4gaW4gY29vbGJhcnMvY29vbGl0ZW1zICAKPGJyPjc3MzIwOiAgSnVuaXQgcGVyZm9ybWFuY2UgW0pVbml0XSAgCjxicj43NzUzNTogIENvbnRyb2wgZXhhbXBsZSBjb29sYmFyIHRhYiB1c2VzIGltYWdlcyBpbiBkcm9wIGRvd24gIAo8YnI+Nzc4MTI6ICBNZW1vcnkgbGVha3MgYW5kIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGluIERpc3BsYXkgIAo8YnI+Nzc5ODM6ICBGdW5ueSBiZWhhdmlvdXIgb24gTGludXggR1RLIHdpdGggTWVzc2FnZUJveCB3aXRoICUgY2hhcmFjdGVyICAKPGJyPjc4MTUwOiAgZWNsaXBzZSAzLjF4IGNyYXNocyBvbiBzdGFydHVwICAKPGJyPjc4MjA0OiAgUmVmcmVzaCBwcm9ibGVtIGluIHByb2dyZXNzIHZpZXcgb3IgY29tcGFyZSB2aWV3ICAKPGJyPjc4MjI2OiAgW0pGYWNlXSBJbWFnZUNhY2hlLmdldEltYWdlIGZhaWxpbmcgdG8gcmV0dXJuIGFuIGltYWdlIGZvciBpY28gZmlsZSAocmVncmVzc2lvbikgIAo8YnI+NzgyMzk6ICBMYWJlbCBkb2VzIG5vdCBXcmFwIGNvcnJlY3RseSAgCjxicj43ODMwMTogIENhbid0IG9wZW4gZm9udCBjaG9vc2VyIGRpYWxvZyAgCjxicj43ODQwNzogIFBsYXRmb3JtIGRpZmZlcmVuY2VzIHNldHRpbmcgc2l6ZSB3aGlsZSBzaGVsbCBpcyBtYXhpbWl6ZWQgIAo8YnI+Nzg1NTQ6ICBbY29uc2lzdGVuY3ldIFNjYWxlIHJhcmVseSBmaXJlcyBNZW51RGV0ZWN0ICAKPGJyPjc4NTYyOiAgW3BvcnRhYmlsaXR5XSBTbGlkZXIgc2VsZWN0aW9uIGV2ZW50IGZpcmVzIGJlZm9yZSBNb3VzZURvd24gIAo8YnI+Nzg3MjU6ICBTZXBhcmF0b3IgVG9vbEl0ZW1zIHdpdGggQ29udHJvbHMgZG8gbm90IHdyYXAgc29vbiBlbm91Z2ggIAo8YnI+Nzg3Mjc6ICBUb29sSXRlbXMgb24gYSB3cmFwcGVkIFRvb2xCYXIgZG8gbm90ICJ1bndyYXAiIGNvcnJlY3RseSAgCjxicj43ODg3MzogIENvbWJvIGJveCBwZXJmb3JtYW5jZSBwcm9ibGVtICAKPGJyPjc5MDY0OiAgU3RyYW5nZSBOdWxsUEUgaW4gV2lkZ2V0LnNlbmRFdmVudChpbnQgZXZlbnRUeXBlLCBFdmVudCBldmVudCwgYm9vbGVhbiBzZW5kKSAgCjxicj43OTE5OTogIFVwZGF0ZSBTYXNoRm9ybSB0byByZWNvZ25pemUgU1dULlNNT09USCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTIgLSBUdWVzZGF5IE5vdmVtYmVyIDl0aCwgMjAwNCA8L2gyPgo8YnI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjQ4MTE6ICBkJ24nZCBzaG91bGQgbG9nIHJ1bnRpbWUgZXhjZXB0aW9ucyAoMUdKOVBDUSkgIAo8YnI+NDQwMDg6ICBbYnJvd3Nlcl0gQnJvd3NlciBjb21wb25lbnQgZ3JhYnMgZm9jdXMgd2hlbiBsb2FkZWQuICAKPGJyPjU5NzgzOiAgW1dvcmtiZW5jaF0gV29ya2JlbmNoUGFydHMgcmVzaXplZCB0byAoMCwwKSB3aGVuIFNoZWxsIG1pbmltaXplZCAgCjxicj42Njg2NjogIFticm93c2VyXSBKYXZhZG9jIHByZXZpZXcgdXBkYXRlIHZlcnkgc2xvdyAgCjxicj43MTEwNzogIFticm93c2VyXSBjYWxsaW5nIHNldFRleHQgZnJvbSB3aXRoaW4gTG9jYXRpb24uY2hhbmdpbmcgY2FsbGJhY2sgZmFpbHMgYW5kIHJhaXNlcyBhcHBsZSBleGNlcHRpb24gIAo8YnI+NzIyNDQ6ICBQb3N0aW5nIG1vdXNlIGV2ZW50cyBsb2NrcyB1cCBldmVudCBoYW5kbGluZyAgCjxicj43Njc1MDogIFhQIHNjcm9sbGJhcnMgYmVjb21lcyB0ZW1wb3JhbHkgdmlzaWJsZSAuLi4gIAo8YnI+NzY5MzM6ICBNZXNzYWdlQm94IGRvZXMgbm90IGRpc3BsYXkgZGVmYXVsdCB0aXRsZSB3aGVuIGljb24gaXMgc3BlY2lmaWVkICAKPGJyPjc3MTAyOiAgW2Jyb3dzZXJdIGNyYXNoIHdoZW4gdHJ5aW5nIHRvIHVzZSB1bnN1cHBvcnRlZCBNb3ppbGxhIEdUSzEuMiAgCjxicj43NzE5MTogIGJyb2tlbiBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eT8gbmV3IGVycm9yIGluIHBsdWdpbi54bWwgIAo8YnI+Nzc0MzM6ICB1bmRlciBjb25zdHJ1Y3Rpb24gc3Bpbm5lciBub3Qgd29ya2luZyBvbiBXaW5DRSAgCjxicj43NzQ5MDogIHNldHRpbmcgYmFja2dyb3VuZCBvbiBzaW5nbGUgVGFibGVJdGVtIGFsd2F5cyBzaG93cyBncmlkIGxpbmVzICAKPGJyPjc3NDkyOiAgVG9vbEJhciBleGFtcGxlIHRhYiBzaG91bGQgaGF2ZSBpbWFnZSt0ZXh0IGV4YW1wbGUgIAo8YnI+Nzc0OTM6ICBObyBtb3JlIGhhbmRsZXMgZXJyb3Igd2hlbiBydW5uaW5nIHRoZSBCcm93c2VyIGRlbW8gIAo8YnI+Nzc1MTE6ICBidXR0b25zIGRvIG5vdCByZXNpemUgIAo8YnI+Nzc1Mjc6ICBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGNvbG91ciBpbiBvbmUgd2lkZ2V0LCBzZXRzIGl0IGFzIHRoZSBkZWZhdWx0ICAKPGJyPjc3NTMwOiAgU2VsZWN0aW9uIGluIG9wZW4gdHlwZSBkaWFsb2cgZG9lcyBub3Qgd29yayAgCjxicj43NzUzMjogIFZlcnNpb24gbnVtYmVyIGNvZGUgZG9lc24ndCBhY2NvdW50IGZvciBkb3VibGUgZGlnaXRzICAKPGJyPjc3Njc2OiAgVGV4dExheW91dCBkb2Vzbid0IHByb2R1Y2UgcHJvcGVyIHJ1bnMgd2hlbiBuZXdsaW5lcyBwcmVzZW50ICAKPGJyPjc3ODY3OiAgU2V0dGluZyBsYXlvdXQgb24gVGFibGVUcmVlIGluc2lkZSBvZiBhIFNhc2hGb3JtIGNhdXNlcyBpbmNvcnJlY3QgbGF5b3V0ICAKPGJyPjc3OTI2OiAgQ2Fubm90IGNvbXBpbGUgU1dUIGZvciBHVEsgZnJvbSBDVlMgc291cmNlcyAgCjxicj43NzkzNjogIFBsYXRmb3JtIGluY29uc2lzdGVuY3k6IGRyYXdMaW5lKFgsWSxYLFkpIGRvZXMgbm90aGluZyBvbiB0aGUgTWFjICAKPGJyPjc3OTQ4OiAgTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gQ0xhYmVsLmZpbmRNbmVtb25pYyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTEgLSBUdWVzZGF5IE5vdmVtYmVyIDJuZCwgMjAwNCA8L2gyPgo8YnI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUyMzk6ICBDb29sYmFyIC0gd2hlbiBjaGV2cm9uIGFwcGVhcnMgaGlkZSB0b29sIGljb24gaWYgcGFydGlhbGx5IGRpc3BsYXllZCAgCjxicj4zNDUzNjogIERyb3AtZG93biBhcnJvd3MgKG9uIHRyZWUpIGFyZSBub3QgY2VudGVyZWQgIAo8YnI+NDcxNzg6ICBUcmVlIC0gQ2hhbmdlIGZvbnQgc2l6ZSBhbmQgY2FuIG5vdCBzZWxlY3QgaXRlbXMgIAo8YnI+NDk3MjI6ICBzdXBwb3J0IG1uZW1vbmljcyBvbiBDTGFiZWwgIAo8YnI+NTcwNjg6ICBbYnJvd3Nlcl0gQ3VyaW91cyBiZWhhdmlvdXIgb24gdGFyZ2V0PV9ibGFuayBsaW5rcyAgCjxicj42OTc4MTogIG1heCBTdHlsZWRUZXh0IHdpbmRvdywgZmlyZSBNb3VzZU1vdmUgZXZlbnQgIAo8YnI+NzYzOTE6ICBTV3QuVmlydHVhbCB0YWJsZXMgZG8gbm90IGNhbGxiYWNrIG9uIGdldEl0ZW1zICAKPGJyPjc2NDkwOiAgVk0gY3Jhc2ggcnVubmluZyBVSSB0ZXN0IHN1aXRlcyAgCjxicj43NjU5NjogIENvbXBhcmUgZWRpdG9yIGhhcyBkb3VibGUgc2Nyb2xsIGJhciAgCjxicj43NjYzNTogIEJyb3dzZXIuamF2YSB1c2VzIHByaXZhdGUgTW96aWxsYSBpbnRlcmZhY2VzIHdoZW4gYWx0ZXJuYXRpdmVzIGV4aXN0ICAKPGJyPjc2NzQ4OiAgW2Jyb3dzZXJdIHNldFRleHQgaXNzdWUgb24gTW96aWxsYSAgCjxicj43NjkwNDogIFBvb3IgQ2FudmFzIHNjcm9sbGluZyBwZXJmb3JtYW5jZSAgCjxicj43Njk2MzogIFticm93c2VyXSBCcm93c2VyLmphdmEgc2hvdWxkIG5vdCB1c2UgbnNJU2NyaXB0Q29udGV4dCAgCjxicj43Njk4MzogIFticm93c2VyXSBEb3dubG9hZC5qYXZhIHVzZXMgd3JvbmcgcG9pbnRlciAgCjxicj43Njk5NjogIGNvcnJ1cHRlZCBkaXNwbGF5IG9mIGltYWdlcyBpbiBTV1QgdGFibGUgKE1hY09TIFgpICAKPGJyPjc3MTUzOiAgU1dUIHNoZWxsIHNjcmlwdHMgb3ZlcnJpZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzICAKPGJyPjc3MzQyOiAgZ2V0T2Zmc2V0ICgpIGluIGVtdWxhdGVkIFRleHRMYXlvdXQuamF2YSB3cm9uZyBmb3IgcHJvcG9ydGlvbmFsIGZvbnRzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAxMCAtIFR1ZXNkYXkgT2N0b2JlciAyNnRoLCAyMDA0IDwvaDI+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTkzOiAgTmVlZCB0byBoYW5kbGUgUkdCIHRyYW5zcGFyZW50IHBpeGVsIHZhbHVlICgxRzdNODMzKSAgCjxicj40NjE2OiAgR0MuZHJhd0xpbmUoKSBpcyByZWFsbHkgc2xvdyAoMUdBVlNHUCkgIAo8YnI+MjAyNjk6ICBQbGVhc2UgYWRkIGphdmFkb2MgZm9yIENvbXBvc2l0ZSBnZXRDaGlsZHJlbigpIG9yZGVyaW5nICAKPGJyPjIyOTY0OiAgb3JnLmVjbGlwc2Uuc3d0Lm1vdGlmXzIuMC4xIG5vdCByZWFkeSBmb3IgS0RFIDMgIAo8YnI+MjMwMDY6ICBUcmVlIEV4cGFuZCBhbGwgIioiIHNlbmRzIGV4cGFuZCBldmVudCByZWdhcmRsZXNzIG9mIGN1cnJlbnQgc3RhdGUgIAo8YnI+MzEzNzI6ICBzZXRDb250cm9sICAKPGJyPjMzMzY3OiAgW0pVTklUXUxpc3QgZmFpbHMgIAo8YnI+MzQ5MTg6ICBSZXF1ZXN0IGZvciBwbGF0Zm9ybSBTV1QgamFyIGRvd25sb2FkICAKPGJyPjM4NzIxOiAgQ2FudCBzZXRQYXJlbnQoKSB0byBhIGNvbnRyb2wgaW4gR1RLICAKPGJyPjU1OTY0OiAgW1ZpZXdNZ210XSBzcGFjaW5nIGJldHdlZW4gYm9yZGVyIGFuZCB0ZXh0IG9mICJjbGFzc2ljIiB0YWIgc3R5bGUgIAo8YnI+NjM1Nzk6ICBSZW5hbWUgcmVmYWN0b3Jpbmcgd2l6YXJkIGJ1dGNoZXJzIGNsaXBib2FyZCAgCjxicj42ODczMjogIFJlbW92ZSBkZXBlbmRhbmN5IG9uIHBhbmdveGZ0IGxpYnJhcnkgIAo8YnI+NzMxMDA6ICBDcmFzaCB3aGlsZSBydW5uaW5nIGEgSlVuaXQgUGx1Zy1JbiB0ZXN0ICAKPGJyPjc0ODgyOiAgVGV4dExheW91dCBuZWVkcyB0b1N0cmluZygpIE1ldGhvZCAgCjxicj43NTIxODogIERpcmVjdG9yeURpYWxvZyB3aWRnZXQgaGFzIGEgZ3Jvd2luZyBsYWJlbCAgCjxicj43NTU3NzogIEtleWJvYXJkIGZvY3VzIG5vdCBnaXZlbiB0byBzZWxlY3RlZCBlbGVtZW50IGluIHRyZWUgIAo8YnI+NzY1OTU6ICBIYW5nIG9uIHNodXRkb3duICAKPGJyPjc2NjEyOiAgW0VkaXRvck1nbXRdIE9wZW4gV2l0aCA+IFN5c3RlbSBFZGl0b3IgZmFpbHMgYWZ0ZXIgc2V0dGluZyB1cCBGaWxlIEFzc29jaWF0aW9uICAKPGJyPjc2NzA3OiAgR0MgQmFja2dyb3VuZCBhbmQgRm9yZWdyb3VuZCBhcmUgYmxhY2sgIAo8YnI+NzY3MDk6ICBDUiBLZXkgZG93biBhcnJpdmVzIHR3aWNlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAwOSAtIFR1ZXNkYXkgT2N0b2JlciAxOXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CmJvb2xlYW4gQnJvd3Nlci5leGVjdXRlKFN0cmluZyBzY3JpcHQpIC0gZXhlY3V0ZSB0aGUgc3BlY2lmaWVkIGphdmFzY3JpcHQuIGUuZyB0byBtb2RpZnkgdGhlIERPTSBvZiB0aGUgY3VycmVudCBIVE1MIGRvY3VtZW50CjwvYmxvY2txdW90ZT4KPGJyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1Mjc6ICBJTUUgbW9kZSBvbiBKIGJveCBvdmVyd3JpdGVzIHNjcm9sbCBiYXIgKDFHOTFNQVApICAKPGJyPjQ3MzU6ICBEQ1I6IEFkZGl0aW9uYWwgUmVnaW9uIGZlYXR1cmVzICgxR0ZRTzRDKSAgCjxicj40Nzk1OiAgUGVyZm9ybWFuY2U6IFN5bmNocm9uaXplciBxdWV1ZSBjcmVhdGlvbiAoMUdJVERNMikgIAo8YnI+NDg0OTogIE11bHRpIFNlbGVjdCBUcmVlIC0gRGlzcG9zaW5nIGxhc3Qgc2VsZWN0ZWQgaXRlbSBzZWxlY3RzICJyYW5kb20iIGl0ZW0gKDFHS1g1VFcpIFtwb3J0YWJpbGl0eV0gIAo8YnI+NzcxODogIGhvcml6b250YWwgc2Nyb2xsOiBEZWVwbHkgbmVzdGVkIGVsZW1lbnRzIGluIGFuIFNXVCBUcmVlIHdpZGdldCBjYW5ub3QgYmUgZHJhZ2dlZCBhbnl3aGVyZSAgCjxicj43NzcyOiAgU1dUIFRyZWUgaW5jb25zaXN0ZW5jeSB3aGVuIGNvbGxhcHNpbmcgYSBtdWx0aS1zZWxlY3RlZCBub2RlICAKPGJyPjEwNzY2OiAgQ29tYm8ucmVtb3ZlQWxsKCkgYmVoYXZpb3VyIGRvZXMgbm90IG1hdGNoIEFQSSBkb2N1bWVudGF0aW9uICAKPGJyPjExNjU3OiAgaW5jb25zaXN0ZW50IFNXVC5OT19GT0NVUyBiZWhhdmlvdXIgIAo8YnI+MTI5ODk6ICBEYXRhIGlucHV0IGluIHRhYmxlcyAgCjxicj4zNTA2MDogIFRyZWUgZG9lcyBub3Qgc2hvdyBmb2N1cyBzZWxlY3Rpb24gIAo8YnI+NTM4ODU6ICBKYXZhIGNvcmUgKGFjY2VzcyB2aW9sYXRpb24pIGV4cGFuZGluZyBhIHRyZWUgIAo8YnI+NTQ2NjU6ICBbYnJvd3Nlcl0gTm8gbW9yZSBoYW5kbGVzIHdoZW4gY3JlYXRlZCBvbiBhIHNlY29uZCB0aHJlYWQgIAo8YnI+NTYwNDc6ICBTV1QgRXhhbXBsZSBMYXVuY2hlciBkb2VzIG5vdCBydW4gc3RhbmRhbG9uZSBhcHBzICAKPGJyPjU4NzMwOiAgdXRpbGl6ZSBuZXcgR3RrRmlsZUNob29zZXIgd2lkZ2V0IG9uY2UgcmVxdWlyZWQgZ3RrIGlzIDIuNC4wICAKPGJyPjYzMTg1OiAgW2Jyb3dzZXJdIEludHJvIGlzc3VlcyB1c2luZyBTYWZhcmkgdmVyc2lvbiBvZiB0aGUgYnJvd3NlciAgCjxicj42ODY0MzogIFticm93c2VyXSBjaGFyYWN0ZXJzIGFyZSBub3QgYWx3YXlzIHR5cGVkIGluIGluIHRleHQgZmllbGQgIAo8YnI+Njg4NzY6ICBTYXNoZXMgc2hvdWxkIHJlc2l6ZSBpbnRlcmFjdGl2ZWx5ICAKPGJyPjcwNzk1OiAgTG9jYXRpb25MaXN0ZW5lciBhbmQgY2hhbmdlZCBldmVudCBpc24ndCBhbHdheXMgY29ycmVjdCAgCjxicj43MDg4MzogIERCQ1M6IElNRSBwcmUtZWRpdCB0ZXh0IHNpemUgbG9va3MgbGlrZSAxMiBwb2ludHMgYWxsIHRoZSB0aW1lICAKPGJyPjcyMDc1OiAgTmF0aXZlIFRhYkZvbGRlciBvbiBQb2NrZXQgUEMgIAo8YnI+NzI0MDE6ICBXcm9uZyBUYWJsZUNvbHVtbiB3aWR0aCBzZXQgd2hlbiBmb250LXN0eWxlIGlzIGJvbGQgIAo8YnI+NzMwNTI6ICBFeGNlcHRpb24gd2hpbGUgY2FsbGluZyBDbGlwYm9hcmQgb2JqZWN0ICAKPGJyPjczMzQ1OiAgVGFibGVUcmVlSXRlbS5zZXRFeHBhbmRlZCBjYXVzZXMgcmVkcmF3IHdoaWNoIGNhdXNlcyBmbGlja2VyaW5nICAKPGJyPjczODcxOiAgW0tleUJpbmRpbmdzXSBOdWxsUG9pbnRlckV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIFVpVGVzdFN1aXRlICAKPGJyPjc0NjY2OiAgU3RyaW5nIGN1dCBvZmYgaW4gTmV3IEphdmEgSW50ZXJmYWNlIHdpemFyZCAgCjxicj43NTE2ODogIERlYWRsb2NrZWQgRWNsaXBzZSAgCjxicj43NTQ1MTogIHNldEJhY2tncm91bmQoaW5kZXgsIGNvbG9yKSBkb2VzIG5vdCBzZXQgY29sb3Igd2hlbiB0YWJsZWl0ZW0gaXMgaW4gYSBUYWJsZSAgCjxicj43NTY3NTogIFticm93c2VyXSBzZXRUZXh0L3NldFVybCBjcmFzaGVzIHdoZW4gY2FsbGVkIGZyb20gbG9jYXRpb24uY2hhbmdpbmcgIAo8YnI+NzU3Mzk6ICBWYXJpYW50IGhhcyBubyB0b1N0cmluZygpICAKPGJyPjc1NzUzOiAgU1dULk5PX0JBQ0tHUk9VTkQgbm90IHdvcmtpbmcgb24gTGludXggR1RLICAKPGJyPjc1OTA0OiAgQ2FuIG5vdCBjcmVhdGUgbGF1bmNoIGNvbmZpZ3VyYXRpb25zIGZyb20gdGhlIGRpYWxvZy4gIAo8YnI+NzU5MDY6ICBNdWx0aXBsZSBmaWxlIHR5cGUgZmlsdGVycyBicm9rZW4gaW4gZmlsZSBjaG9vc2VyICAKPGJyPjc1OTQ3OiAgSW5wdXRTdHJlYW1zIG5vdCBjbG9zZWQgaW4gU1dUIGV4YW1wbGVzICAKPGJyPjc2MDM0OiAgRXhjZXNzaXZlIEZsaWNrZXIgb24gcmVzaXppbmcgRnJhbWUgcmV0dXJuZWQgYnkgU1dUX0FXVCAgCjxicj43NjEwMjogIHBvY2tldCBwYyAtIGNoYW5nZSBvZiBiZWhhdmlvdXIgaW4gU2hlbGwgbGF5b3V0IHNpbmNlIDMuMC4xICAKPGJyPjc2MTg1OiAgW2Jyb3dzZXJdIGludmVzdGlnYXRlIHdheXMgdG8gY29tbXVuaWNhdGUgYmV0d2VlbiBqYXZhIGNvZGUgYW5kIGJyb3dzZXIgY29udGVudCAgCjxicj43NjE5NTogIFN5bmNocm9uaXplci5ydW5Bc3luY01lc3NhZ2VzIG9ubHkgcnVucyB0aGUgZmlyc3QgcnVubmFibGUgIAo8YnI+NzYzMjA6ICBydW5uaW5nIG91dCBvZiBtZW1vcnkgYW5kIFZNIGNyYXNoaW5nICAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDggLSBUdWVzZGF5IE9jdG9iZXIgNXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkdyaWREYXRhLm1pbmltdW1XaWR0aCAtIG1pbmltdW0gd2lkdGggZm9yIGR5bmFtaWNhbGx5IHNpemVkIGNvbnRyb2xzCjxicj5HcmlkRGF0YS5taW5pbXVtSGVpZ2h0IC0gbWluaW11bSBoZWlnaHQgZm9yIGR5bmFtaWNhbGx5IHNpemVkIGNvbnRyb2xzCjxicj5Db21iby5hZGRWZXJpZnlMaXN0ZW5lciAtIGFkZCB2ZXJpZnkgbGlzdGVuZXIKPGJyPkNvbWJvLnJlbW92ZVZlcmlmeUxpc3RlbmVyIC0gcmVtb3ZlIHZlcmlmeSBsaXN0ZW5lcgo8L2Jsb2NrcXVvdGU+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NzA0OiAgRm9jdXMgbm90IGdpdmVuIHRvIHByb2plY3QgbmFtZSBmaWVsZCBpbiB3aXphcmQgKDFHRVY4OEgpICAKPGJyPjQ4MDY6ICBzZXRSZWRyYXcoKSBuZXN0aW5nIGJlaGF2aW91ciBzaG91bGQgYmUgZG9jdW1lbnRlZCAoMUdKNFpXQikgIAo8YnI+MTA1MDU6ICBJbXBsZW1lbnQgVmVyaWZ5IGxpc3RlbmVyIGZvciBDb21ibyBvbiBQaG90b24gIAo8YnI+MzA4MDQ6ICBEQ1IgLSBHcmlkTGF5b3V0IHNob3VsZCBub3QgdHJlYXQgd2lkdGgvaGVpZ2h0IGhpbnQgYXMgbWludW11bSBzaXplIHdoZW4gZ3JhYi9maWxsIGlzIHNwZWNpZmllZCAgCjxicj40MzM5NjogIENvbWJvIGRvZXMgbm90IGZpcmUgU2VsZWN0aW9uTGlzdGVuZXIgIAo8YnI+NDgyNzI6ICBwb2NrZXQgcGMgLSBnZXN0dXJlIGVyYXNlcyBjdXJyZW50IHRleHQgc2VsZWN0aW9uICAKPGJyPjU4MTg1OiAgRWNsaXBzZSBmYWlscyB0byBsb2FkIG9sZHN0eWxlIEJNUCBmaWxlcyAgCjxicj42NDc3MDogIFticm93c2VyXSBMb3NlIE1vdXNlIE1vdmVzL0VudGVyL0V4aXRzICAKPGJyPjY0ODAxOiAgW2Jyb3dzZXJdIGJyb3dzZXIgc2hvd3MgZGlzYWJsZWQgIAo8YnI+NjY4NTM6ICBDVGFiRm9sZGVyIG5hdmlnYXRpb24tY29udHJvbCBpc3N1ZXMgIAo8YnI+NzQwMjU6ICBTV1QgQnJvd3NlciB3aXRoIG5vIFVSTCBzdG9wcyBhbnkgbW91c2UgbW92ZSBldmVudCAgCjxicj43NDI3NTogIFNXVC5PTl9UT1AgYW5kIFNXVC5NSU58U1dULk1BWCBhcmUgbXV0dWFsbHkgZWNsdXNpdmUgIAo8YnI+NzQ3MzY6ICBQbGVhc2UgcHJvdmlkZSBzb21lIHdheSB0byBkZXRlcm1pbmUgdGhlIHN0YXRlIG9mIGtleXMgaW4gdGhlIFRyYWNrZXIgZXZlbnQgbG9vcCBhbmQgcHJvdmlkZSBub3RpZmljYXRpb25zIHdoZW4gdGhleSBjaGFuZ2UgIAo8YnI+NzUxNjk6ICBbU3R5bGVkVGV4dF0gc2V0U3R5bGVSYW5nZXMoKSBzaG93cyBkaWZmZXJlbnQgcmVzdWx0IHdoZW4gU3R5bGVSYW5nZXMgYXJlIHNvcnRlZCBkaWZmZXJlbnRseSAgCjxicj43NTIxOTogIEZpbGUgb3BlbiBkaWFsb2cgZG9lcyBub3QgaGFuZGxlIGZpbHRlcnMgIAo8YnI+NzUyNjg6ICBzbmlwcGV0IDIgIAo8YnI+NzUzMTg6ICBbV29ya3NwYWNlTGF1bmNoZXJdIFdvcmtzcGFjZSBsb2NhdGlvbiBjb25maXJtYXRpb24gZGlhbG9nIGJveCB3b250IHRha2UgZm9jdXMgIAo8YnI+NzU0MDQ6ICBDb250cm9sRXhhbXBsZSBzbGlkZXIgdGFiIGdyYWJzIG1vdXNlICAKPGJyPjc1NTIxOiAgRWNsaXBzZSAzLjFNMiBjcmFzaGVzIHdoZW4gc29mdHdhcmUgdXBkYXRlIGlzIHJ1biAgCjxicj43NTU2OTogIE9wZW5HTCBTV1QgRXhhbXBsZXMgY29tcGlsZSBlcnJvciB3aXRoIHNldEN1cnJlbnQgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDA3IC0gVHVlc2RheSBTZXB0ZW1iZXIgMjh0aCwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExOTE1OiAgUmVkcmF3IHByb2JsZW0gIAo8YnI+MjA5Njg6ICBqYXZhZG9jIGJhc2hpbmcgZGlkIG5vdCBleHRlbmQgdG8gcHJvdGVjdGVkIG1ldGhvZHMgIAo8YnI+MjIyNjQ6ICBPTEUgd2ViIGJyb3dzZXIgZXhhbXBsZSBmb3Igc3d0IGhhcyBjb21waWxlciB3YXJuaW5ncyAgCjxicj4yNDQwMjogIE9MRSBwYXJ0IGhhdmUgYSBhY2Nlc3MgdmlvbGF0aW9uIGV4Y2VwdGlvbiAgCjxicj42MzIyNDogIENoZXZyb24gaW4gdGhlIGNvb2xiYXIgIAo8YnI+NjYzOTI6ICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaW4gVGFibGUgIAo8YnI+NjgyNjc6ICBEcmFnJkRyb3AgSFRNTFRyYW5zZmVyIGltcGxlbWVudGF0aW9uIHJlcXVlc3QgIAo8YnI+NjgzMDE6ICBDbG9zZSBidXR0b24gb24gQ3RhYmZvbGRlciBub3QgZHJhd24gcHJvcHJlbHkgIAo8YnI+NzIzOTk6ICBQcm9ncmFtIGludGVncmF0aW9uIHdpdGggS0RFICAKPGJyPjczODEyOiAgVGFibGVDb2x1bW4uZ2V0V2lkdGgoKSByZXR1cm5zIDAgb24gZ3RrICAKPGJyPjc0MDEwOiAgRGlzcGxheS5zZXRTeW5jaHJvbml6ZXIsIHJlYWRBbmREaXNwYXRjaCBtYXkgdGhyb3cgRVJST1JfRkFJTEVEX0VYRUMgIAo8YnI+NzQyNDE6ICBbRE5EXSBEcm9wIFRhcmdldCBUcmVlSXRlbSBub3Qgc2VsZWN0ZWQgd2hlbiBGb250IHdhcyBzZXQgIAo8YnI+NzQzOTk6ICBbQ1RhYkZvbGRlcl0gV2lkZ2V0IERpc3Bvc2VkIFNXVEV4Y2VwdGlvbiB3aGVuIGNsb3NpbmcgQXBwbGljYXRpb24gd2l0aCBvcGVuZWQgVGFiLUNob29zZXIgIAo8YnI+NzQ0MDg6ICBEaWFsb2dzIG9wZW4gYXQgYW4gaW5jcmVkaWJseSBzbWFsbCBzaXplICAKPGJyPjc0NjgyOiAgW1ByZWZlcmVuY2VzXSBXaWRnZXQgZGlzcG9zZWQgd2hpbGUgY2hhbmdpbmcgdGhlIHdvcmtiZW5jaCdzIGNvbG9ycyBhbmQgZm9udHMgIAo8YnI+NzUwOTQ6ICBXb3JrYXJvdW5kIHRvIGJyaW5nIHVwIGV4aXN0aW5nIGFwcGxpY2F0aW9uIGluc3RhbmNlIG9uIFBvY2tldCBQQyAKCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDYgLSBUdWVzZGF5IFNlcHRlbWJlciAyMXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDYwNjogIFRleHQuY29tcHV0ZVRyaW0gZG9lc24ndCB3b3JrICgxRzhXNVJOKSAgCjxicj4zNzAyOTogIERpc3BsYXkuZ2V0Rm9jdXNDb250cm9sKCkgc2hvdWxkIGFuc3dlciBuZXcgZm9jdXMgd2lkZ2V0IGluIGZvY3VzIG91dCBldmVudCAgCjxicj40MTMzOTogIG9yZy5lY2xpcHNlLnN3dC5sYXlvdXQuRm9ybURhdGEgbmVlZHMgdG9TdHJpbmcoKSAgCjxicj40Mjg2NzogIENvbWJvIC0gQ3VzdG9tIFBvcFVwIG5vdCBkaXNwbGF5ZWQgcHJvcGVybHkgIAo8YnI+NTI5NDc6ICBDaGVlc2Ugd2l0aCBUb29sYmFyIG9uIHBhcmVudCB3aXRoIFNXVC5OT19CQUNLR1JPVU5EICAKPGJyPjU4MTAzOiAgW2Jyb3dzZXJdIGV4cG9zZSBjaHJvbWUgcmVxdWlyZWQgZm9yIG5ldyBicm93c2VyICAKPGJyPjYwOTc1OiAgW2Jyb3dzZXJdIGNhbid0IGRvd25sb2FkIGZpbGVzIHdpdGggbW96aWxsYSAgCjxicj42Nzg5ODogIFZNIGNyYXNoIHdoZW4gcmVzdGFydGluZyBFY2xpcHNlICAKPGJyPjY4MjkyOiAgW0ltcG9ydC9FeHBvcnRdIEltcG9ydC9FeHBvcnQgZGlhbG9ncyBjb25mdXNlZCBieSAiU2VsZWN0IFR5cGVzLi4uIiAgCjxicj42ODQxODogIFNXVCBJbmNvbnNpc3RlbmNpZXMgd2l0aCBzdWJjbGFzc2luZyBiZXR3ZWVuIHBsYXRmb3JtcyAgCjxicj42ODU0NTogIENhcmV0IGJsaW5rIHJhdGUgaXMgbm90IG5hdGl2ZSAgCjxicj42ODg3NzogIFNwZWMgZm9yIE9sZUNsaWVudFNpdGUgbWVudGlvbnMgdGhlIHdyb25nIGVycm9yICAKPGJyPjY5NzIxOiAgQ29udHJvbCtiYWNrc3BhY2Uga2V5IGNvbWJpbmF0aW9uIGRvZXMgbm90IHdvcmsgaW4gVGV4dCB3aWRnZXRzICAKPGJyPjcxOTc1OiAgTmV3bHkgb3BlbiBzaGVsbCBkb2VzIG5vdCBkcmF3IGl0cyBjb250ZW50IHVudGlsIHJlc2l6ZWQgKFdpbmRvd3MgZ2l2ZXMgZXh0cmEgcmVzaXplIGNhbGxiYWNrKSAgCjxicj43MjIxNzogIENUYWJGb2xkZXIgc2hvdWxkIGhpZGUgdGFicyBpbiBMUlUgb3JkZXIgIAo8YnI+NzM3MTc6ICBCdXR0b24uY29tcHV0ZVNpemUgZ2l2ZXMgZGlmZmVyZW50IHJlc3VsdHMgb24gTGludXgtR1RLIGFuZCBMaW51eC1Nb3RpZiAgCjxicj43MzcyNTogIFtCcm93c2VyXSBTV1RFeGNlcHRpb24gd2hlbiByZXNpemluZyBDVGFiIGNvbnRhaW5pbmcgQnJvd3NlciAgCjxicj43MzczMDogIEJ1dHRvbi5jb21wdXRlU2l6ZSBkZWZpbml0aW9uIG9uIE1hYyBkb2VzIG5vdCBtYXRjaCBvdGhlciBwbGF0Zm9ybXMgIAo8YnI+NzM3MzQ6ICBMb3dlci9yaWdodCBlZGdlIG9mIENhcmJvbiBTY2FsZSB3aWRnZXQgbm90IHNlbGVjdGFibGUgd2l0aCBtb3VzZSAgCjxicj43Mzc1NzogIEVtcHR5IGJ1dHRvbiBoYXMgZGlmZmVyZW50IGhlaWdodCBmcm9tIG9uZSB3aXRoIHRleHQgIAo8YnI+NzQxMTE6ICBlbnVtIGlzIG5vIGxvbmdlciBhIHZhbGlkIHZhcmlhYmxlIG5hbWUgIAo8YnI+NzQxNjk6ICBEaXJlY3RvcnlEaWFsb2cgd2lkZ2V0IGRvZXMgbm90IGFsbG93IHJlc2l6ZSB0byBzbWFsbGVyIHdpZHRoICAKPGJyPjc0MjY4OiAgZGVwcmVjYXRlZCBtZXRob2RzIGluIFNXVCBzYW1wbGVzICAKCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDUgLSBUdWVzZGF5IFNlcHRlbWJlciAxNHRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkNUYWJGb2xkZXIuc2V0TVJVVmlzaWJsZShib29sZWFuKSAtIFNob3cgb25seSB0aGUgbW9zdCByZWNlbnRseSBzZWxlY3RlZCB0YWJzIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggcm9vbSB0byBzaG93IGFsbCB0YWJzCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTIxMTogIEdQIC0gVk0gY3Jhc2ggaW4gS0RFLktNaW1lVHlwZV9hbGxNaW1lVHlwZXMgIAo8YnI+OTg2NjogIEdyaWRMYXlvdXQgZG9lcyBub3QgaGFuZGxlIHdyYXBwZWQgTGFiZWwgcHJvcGVybHkgIAo8YnI+MzkyMDc6ICBDdXQgYW5kIHBhc3RlIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IChvbiBhIDIgcHJvY2Vzc29yIG0uLi4gIAo8YnI+NDcxODQ6ICBNUyBXb3JkIGNhbiBub3QgYmUgcGFzdGVkIG9uIGNsaXBib2FyZCBpbiBXaW5kb3dzIDk4ICAKPGJyPjQ5NzI2OiAgW1dvcmtiZW5jaF0gV2VpcmQgSmF2YSBwZXJzcGVjdGl2ZSBpY29uIGluIGFjdGlvbiBiYXIgIAo8YnI+NTc1MjU6ICBbS2V5QmluZGluZ3NdIGtleWJpbmRpbmcgZm9yIEN1dCBkb2Vzbid0IHdvcmsgIAo8YnI+NTkyMDU6ICBEQkNTOkNhbiBub3QgZHJvcCBhbmQgZHJhZyBEQkNTIG5hbWUgZmlsZSBmcm9tIG91dHNpZGUgZWMuLi4gIAo8YnI+NjE4Mjc6ICAoQkJBV1QpIGdldEltYWdlRGF0YSgpIHdvcmtzIGluY29ycmVjdGx5IG9uIFBob3RvbiAgCjxicj42NDYwNzogIEdDLmRyYXdSb3VuZFJlY3RhbmdsZS9HQy5maWxsUm91bmRSZWN0YW5nbGUgIAo8YnI+NjYyODU6ICBQcm9qZWN0aW9uVmlld2VyLmNvcHlUb0NsaXBib2FyZCBjcmFzaCB3aGlsZSBDdHJsK1gsIEN0cmwuLi4gIAo8YnI+NzAyOTk6ICBFY2xpcHNlIGRlYWQgc2xvdyBvbiBvbmUgc3lzdGVtLCBub3JtYWwgb24gb3RoZXIgIAo8YnI+NzA3ODA6ICBUYWJsZSBSZWRyYXcgZnJlZXplcyB0aGUgVGFibGUgSGVhZGVycyBvbiBDRSAgCjxicj43MTE0NjogIFtCcm93c2VyXSBCcm93c2VyIHdpZGdldCBzaG91bGQgYWxsb3cgdG8gaGlkZSAzRCBib3JkZXIgIAo8YnI+NzEzMDM6ICBCSURJIGlzc3VlIGluIFZhcmlhYmxlcyB2aWV3ICAKPGJyPjcxOTY2OiAgQ2xhcmlmeSBDb21iby9Db21wb3NpdGUvU2Nyb2xsYWJsZSBiZWhhdmlvciAgCjxicj43MjkyOTogIFRhYmxlQ29sdW1uIHdpZHRocyBpZ25vcmVkIGluIFRhYmxlIHdpZHRoIGNhbGN1bGF0aW9uICAKPGJyPjczMDQ2OiAgVW5zYXRpc2ZpZWRMaW5rRXJyb3IgamF3dC5kbGwgYWxyZWFkeSBsb2FkZWQgaW4gYW5vdGhlciBjLi4uICAKPGJyPjczNDMyOiAgVGV4dGxheW91dCBkb2VzIG5vdCByZW5kZXIgbXVsdGlsaW5lIHRleHQgY29ycmVjdGx5ICAKPGJyPjczNjk4OiAgQ29udHJvbC5pc1Zpc2libGUoKSByZXR1cm5zIGluY29ycmVjdCB2YWx1ZSBmb3IgY2hpbGQgU2hlbGwgIAo8YnI+NzM3MzU6ICBDYXJib24gdmVydGljYWwgU2NhbGUgd2lkZ2V0IGhhcyB0b3AvYm90dG9tIHJldmVyc2VkIGZyb20uLi4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDA0IC0gVHVlc2RheSBBdWd1c3QgMzEsIDIwMDQgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozOTkyNzogIE1hY09TWCBRdWFydHogZm9udCBzbW9vdGhpbmcgbm90IHdvcmtpbmcgcHJvcGVybHkgZm9yIExDRC4uLiAgCjxicj40NjI2ODogIFticm93c2VyXSBjYWxsaW5nIG11bHRpcGxlIHRpbWVzIHNldFRleHQgd2l0aG91dCBydW5uaW5nIC4uLiAgCjxicj40NzU0OTogIEdQRiBpbiBYdFNldFZhbHVlcyBvbiBNNSAgCjxicj40ODg4NDogIERpYWxvZyAob3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29sb3JEaWFsb2cgYW5kIG9yZy5lY2xpcC4uLiAgCjxicj41MTEwODogIHNldEFwcE5hbWUoKSBzaG91bGQgdXBkYXRlIGFwcGxpY2F0aW9uIG1lbnUgdGl0bGUuICAKPGJyPjUxNzQxOiAgU2hlbGwgbm90IGJlY29taW5nICJhY3RpdmUiICAKPGJyPjU3MTg4OiAgTGFiZWwgd2lkZ2V0IGNhbiBnZXQgZm9jdXMuICAKPGJyPjYxMzg0OiAgW2Jyb3dzZXJdIHN1cHBvcnQgbW96aWxsYSAxLjcgIAo8YnI+NjE4OTM6ICBjb250cm9sTW92ZWQgZXZlbnQgZmlyZWQgYnkgQ29udHJvbC5zZXRCb3VuZHMoKSBvbiBXaW5kb3cuLi4gIAo8YnI+NjQyMTU6ICBbRm9udHNdIENhbm5vdCBzZXQgZm9udHMgd2hpY2ggaGF2ZSBhIGJsYW5rIGluIHRoZWlyIG5hbWUgIAo8YnI+Njc1NTY6ICBbYnJvd3Nlcl0gVEVYVFJFTCBpbiBsaWJzd3QtbW96aWxsYS1ndGstMzA1OC5zbyAgCjxicj43MDA3NzogIFt0eXBpbmddIENvcHkvcGFzdGUgZG9lc24ndCB3b3JrIG9jY2FzaW9uYWxseSAgCjxicj43MTE4MDogIFByb2ZpbGluZyBsYXVuY2ggY29uZmlndXJhdGlvbjogTWluaW11bSB3aWR0aCBzaG91bGQgYmUgcy4uLiAgCjxicj43MjA0MDogIEFjdGl2ZVggQWNjZXNzaWJpbGl0eSAgCjxicj43MjIyMzogIEFkZCBvcmcuZWNsaXBzZS5zd3QuY3VzdG9tLlNULlNFTEVDVF9BTEwgIAo8YnI+NzI3NTA6ICAiUHJvZ3JhbS5maW5kUHJvZ3JhbSgpIiBkb2VzIG5vdCByZXR1cm4gbnVsbCBmb3IgYW4gZXh0ZW4uLi4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDAzIC0gVHVlc2RheSBBdWd1c3QgMjQsIDIwMDQgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NTI1NDg6ICBQb2NrZXRQQyBhbmQgZVNXVCBleGFtcGxlIHByb2JsZW1zICAKPGJyPjYzNzkzOiAgW2VuY29kaW5nXSBEQkNTOiBzb21lIERCQ1MgaXMgZGlzcGxheWVkIGFzIGRvdCBvbiBkZWZhdWx0Li4uICAKPGJyPjY3MDYxOiAgW0Jyb3dzZXJdIEJsYW5rIHBhZ2Ugd2hlbiBvcGVuaW5nIHBhZ2Ugd2l0aCBGbGFzaCAgCjxicj42Nzc0NjogIGludmVzdGlnYXRlIG1ha2luZyBlbXVsYXRlZCBUYWJsZSBhbmQgVHJlZSBhbHdheXMgcG9zdCBzZS4uLiAgCjxicj42OTQ5NTogIFNwbGFzaCBzY3JlZW4gYXBwZWFycyBncmVlbiBvbiBBSVggIAo8YnI+NzA3Nzk6ICBbYnJvd3Nlcl0gTW96aWxsYSAxLjYgQnJvd3NlciBwcm9ibGVtIDogW1Vua25vd24gbW96aWxsYSAuLi4gIAo8YnI+NzA5MjU6ICBMYXlvdXQgY2VsbHMgYXJlIGluZmluZXRseSBsYXJnZSAgCjxicj43MDk0OTogICdVbnN1cHBvcnRlZCBjb2xvciBkZXB0aCcgZXJyb3Igb24gTGludXggIAo8YnI+NzE3MTE6ICBHdGsgLSBDaGVja2JveC9SYWRpb2JveCBzZXRMb2NhdGlvbiBCdWcgIAo8YnI+NzIxMjM6ICBQYXRjaGVzIGZvciAzLjAgbGF1bmNoZXIgY3Jvc3MtYnVpbGRzICAKPGJyPjcyMjA2OiAgU3R5bGVkVGV4dCBKYXZhZG9jIG5lZWRzIGl0YWxpYyBkb2MuICAKPGJyPjcyMzQyOiAgTW91c2VMaXN0ZW5lciBiZWhhdmluZyBpbmNvcnJlY3RseSB3aGVuIGF0dGFjaGVkIHRvIEJ1dHRvbiAgCjxicj43MjM0MzogIFNoZWxsIGRvZXNuJ3QgbWF4aW1pemUgIAo8YnI+NzIzNDU6ICBUZXh0IHdpZGVyIHRoYW4gbm9ybWFsIGluIHRvb2xpdGVtIGlmIGFtcGVyc2FuZCAoJikgdXNlZCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDIgLSBUdWVzZGF5IEF1Z3VzdCAxNywgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpTaGVsbC5nZXRNaW5pbXVtU2l6ZSAtIFJldHVybnMgYSBwb2ludCBkZXNjcmliaW5nIHRoZSBtaW5pbXVtIHJlY2VpdmVyJ3Mgc2l6ZQo8YnI+U2hlbGwuc2V0TWluaW11bVNpemUoaW50LCBpbnQpIC0gU2V0cyB0aGUgcmVjZWl2ZXIncyBtaW5pbXVtIHNpemUKPGJyPlNoZWxsLnNldE1pbmltdW1TaXplKFBvaW50KSAtIFNldHMgdGhlIHJlY2VpdmVyJ3MgbWluaW11bSBzaXplCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQ3OTogIGdldEZvY3VzQ29udHJvbCBpbnNpZGUgRm9jdXNPdXQgZXZlbnQgaW5jb25zaXN0ZW50ICgxRk1JVElFKSAgCjxicj40NjA2OiAgIFRleHQuY29tcHV0ZVRyaW0gZG9lc24ndCB3b3JrICgxRzhXNVJOKSAgCjxicj41MDE2OiAgIENvbnRyb2xsaW5nIHNoZWxsIG1pbiBzaXplIGR1cmluZyByZXNpemUgIAo8YnI+MzY5OTc6ICBEQ1I6IEFjY2Vzc2liaWxpdHkgb24gR1RLICAKPGJyPjM5ODYzOiAgVGFibGVWaWV3ZXIgLyBjZWxsTW9kaWZpZXIgLyBDb21ib0JveENlbGxFZGl0b3I6IG5ldyB2YWx1Li4uICAKPGJyPjYyNDM1OiAgQ2hpbmVzZSBmb250IHN1YnN0aXR1dGlvbiBkZWZhdWx0cyB0byBLYWkgIAo8YnI+NjM1NzE6ICBUZXh0TGF5b3V0OiBmb250IHN1YnN0aXR1dGlvbiBzdXBwb3J0ICAKPGJyPjY0MjY2OiAgYWNjZXB0IGltYWdlZGF0YXMgb2YgZGVwdGggb3RoZXIgdGhhbiAxIGFzIGEgbWFzayAgCjxicj42NTc3MjogIFJlY2VpdmluZyBkdXBsaWNhdGUga2V5IGV2ZW50cyBwZXIgbm9uLXByaW50YWJsZSBrZXkgW0JCQVdUXSAgCjxicj42NjQzMzogIE5lZWQga2V5Ym9hcmQgc3VwcG9ydCBmb3IgTmVzdGVkIFRhYmZvbGRlciBUcmF2ZXJzYWwgIAo8YnI+NjgyNzM6ICB0YWJsZXRyZWUgcGx1cy9taW51cyBub3QgdmlzaWJsZSBpbiBIaWdoIENvbnRyYXN0IE1vZGUgIAo8YnI+Njk0MTA6ICBUVlQzLjA6IG1uZW1vbmljcyBkb2Vzbid0IHdvcmsgaWYgZm9jdXMgaXMgaW4gYSB0ZXh0IHdpZGdldCAgCjxicj42OTQ0MDogIEluc3BlY3QzMiBkb2VzIG5vdCBzaG93IG5hbWUgZm9yIENDb21ibyAgCjxicj43MDUxNjogIFByb3ZpZGUgc25pcHBldCBmb3IgY29udmVydGluZyBCdWZmZXJlZEltYWdlIDwtPiBTV1QgSW1hZ2UgIAo8YnI+NzA2MjA6ICBEaXNwbGF5LnNldE1vdXNlTG9jYXRpb24oKSBub3QgaW1wbGVtZW50ZWQgb24gR1RLICAKPGJyPjcwNjMwOiAgRm9udCBjb25zdHJ1Y3RvciBmYWlscyB0byB0aHJvdyBFUlJPUl9OVUxMX0FSR1VNRU5UICAKPGJyPjcwNzA3OiAgSW1hZ2VMb2FkZXIgY2xvc2VzIHRoZSBieXRlIHN0cmVhbSBhZnRlciBsb2FkaW5nIGFuIGltYWdlICAKPGJyPjcwODU0OiAgUmVncmVzc2lvbjogR3JpZExheW91dCBtaXNhcHBsaWVzIGhvcml6b250YWxTcGFjaW5nIHdoZW4gLi4uICAKPGJyPjcwODU3OiAgd2hlbiB0aGUgdG9vbEJhciBpcyB3cmFwcGVkIG9ubHkgYnkgYSBmZXcgcGl4ZWxzLCByZW1vdmluLi4uICAKPGJyPjcxMDEzOiAgU2hlbGwub3BlbigpIGJsb2NrcyB1bnRpbCB0aGUgd2luZG93IGlzIG1hcHBlZCAgCjxicj43MTAxOTogIFNldHRpbmcgYSBUb29sSXRlbSdzIGNvbnRyb2wgdG8gYSBCdXR0b24gZG9lc24ndCB3b3JrIGluIC4uLiAgCjxicj43MTE0MTogIFNXVCBTbmlwcGV0IDE0NSBoYXMgY29tcGlsZSBlcnJvcnMgIAo8YnI+NzEyMzE6ICBQcm9ncmFtLmlzR25vbWVEZXNrdG9wIGRvZXMgbm90IHdvcmsgZm9yIEZlZG9yYSAyICAKPGJyPjcxMjM3OiAgQ29udHJvbHMgcGxhY2VkIGluIGdyb3VwIGNvbXBvc2l0ZSB3LyB0ZXh0IHRpdGxlIGFyZSBpbmNvLi4uICAKPGJyPjcxMjc3OiAgUHJvZ3JhbS5leGVjdXRlIGRvZXMgbm90IHdvcmsgb24gTWFjIChwYXRjaCBhdmFpbGFibGUpICAKPGJyPjcxMjgyOiAgVGV4dCBjb250cm9sIGhhcyBiZWVuIGJyb2tlbiBzaW5jZSAzLjAgIAo8YnI+NzEzMzg6ICBVbnNhdGlzZmllZCBsaW5rIGVycm9yIHdpdGggQ29tYm8gIAo8YnI+NzEzODE6ICBndGsgYnVpbGQgY3Jhc2hpbmcgb24gbGludXggd2hpbGUgb3BlbmluZyBhIGZpbGUgIAo8YnI+NzE1NzA6ICBUb29sdGlwcyBhcmUgbm90IHNob3duIGlmIHNoZWxsJ3MgY2xpZW50IGFyZWEgaXMgbG9jYXRlZCAuLi4gIAo8YnI+NzE3NTc6ICBDdXJzb3IgWC9ZIGhvdHNwb3RzIGRvbid0IHdvcmsgd2l0aCBhbGwgY29uc3RydWN0b3JzICAKPGJyPjcxNzk5OiAgUmVhZG9ubHkgdGV4dCBmaWVsZHMgYXJlbid0IGFsd2F5cyByZWFkb25seSAgCjxicj43MTgwMzogIE5vIGxvd2VyIGJvcmRlciBvbiBzd3QgY29tYm8gYm94ZXMgIAo8YnI+NzE4Mjg6ICBMaXN0ZW5lciBpcyBub3Qgbm90aWZpZWQgd2hlbiB1c2luZyB0aGUgZGlzcGxheSdzICJhZGRGaWwuLi4gIAo8YnI+NzE4OTQ6ICBUb29sQmFyLmdldEl0ZW0oUG9pbnQgcG9pbnQpIGFsd2F5cyByZXR1cm5zIGZpcnN0IGl0ZW0uICAKPGJyPjcxOTA3OiAgVGhlICJEZXZpY2UjZ2V0Rm9udExpc3QiIG1ldGhvZCBkb2VzIG5vdCByZXR1cm4gYW4gYXJyYXkgLi4uICAKPGJyPjcxOTk5OiAgU3R5bGVUZXh0IGRpc3BsYXlzIFN0eWxlUmFuZ2VzIGluY29ycmVjdCBkZXBlbmRpbmcgb24gb3JkLi4uICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAwMSAtIFR1ZXNkYXkgSnVseSAyNiwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpDQmFubmVyLmdldFJpZ2h0TWluaW11bVNpemUgLSBSZXR1cm5zIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNvbnRyb2wgdGhhdCBhcHBlYXJzIG9uIHRoZSByaWdodCBvZiB0aGUgYmFubmVyCjxicj5DQmFubmVyLnNldFJpZ2h0TWluaW11bVNpemUgLSBTZXRzIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNvbnRyb2wgdGhhdCBhcHBlYXJzIG9uIHRoZSByaWdodCBvZiB0aGUgYmFubmVyCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDc3MDogQWNjZXNzaWJpbGl0eSBQcm9ibGVtcyAoMUdIUU1SOSkgIAo8YnI+NjcxNjU6IFtCcm93c2VyXSBIVE1MIG5vdCByZW5kZXJlZCB3L1hQIHN0eWxlIHVzaW5nIGphdmF3LmV4ZS5tYW5pZmVzdCBjb21jdGwgIAo8YnI+Njg2Mzk6IHBsYXRmb3JtIGNyYXNoZXMgb3BlbmluZyBoZWxwIChpbnRlcm5hbCBicm93c2VyKSAgCjxicj42ODc1OTogQ29uZmlybSBkaWFsb2cgZG9lc24ndCB3b3JrIGluIHRoZSBlbWJlZGRlZCBNb3ppbGxhIGJyb3dzZXIgd2lkZ2V0ICAKPGJyPjY5MjM5OiBbYnJvd3Nlcl0gTm8gbW9yZSBoYW5kbGVzIChqYXZhLmxhbmcuVW5zYXRpc2ZpZWRMaW5rRXJyb3I6ICAKPGJyPjY5NjA5OiBCcm93c2VyIHZpZXcgYnJva2VuIG9uIExpbnV4IChGZWRvcmEgQ29yZSAyKSAgCjxicj43MDE2MDogSW1hZ2UoRGV2aWNlLCBJbnB1dFN0cmVhbSkgdGhyb3dzIGluY29ycmVjdC91bnNwZWMnZCBleGNlcHRpb24gIAo8YnI+MTg4Njg6IFRlc3RDYXNlIGNhdXNlIE5QRSBvbiBUYWJGb2xkZXIgKEVtdWxhdGVkIFdpZGdldCkgIAo8YnI+MjAyMTc6IENvb2xiYXIgQnV0dG9ucyBmbGFzaCB3aXRoIGVuYWJsZW1lbnQvZGlzYWJsZW1lbnQgIAo8YnI+MjA4NDE6IEhvdmVyIGhlbHAgaGlkZXMgQ3RybCtGMSBoZWxwICAKPGJyPjI0OTU5OiBDb29sQmFyIHdpdGggU1dULkRST1BfRE9XTiBzdHlsZSAgCjxicj4zMTM4NTogUmVkcmF3IHByb2JsZW1zOiBzZWxlY3RpbmcgdGV4dCBiYWNrd2FyZHMgIAo8YnI+MzI4NTU6IFtDb29sYmFyXSBVbm5lY2Vzc2FyeSBmbGFzaCB3aGVuIHJlbW92ZS9hZGQgbGFzdCBpdGVtICAKPGJyPjM0OTQ1OiBDaGVlc2U6IFRyYWNrZXIgbGVhdmVzIGdhcmJhZ2UgIAo8YnI+MzUxNjE6IEVDOiBjaGVlc2UgYW5kIEdQICAKPGJyPjM3NzM1OiBUcmVlVmlld2VyJ3MgVHJlZSBnZXRzIHR3byBzZWxlY3Rpb25DaGFuZ2VkIGV2ZW50cyB3aGVuIGl0IGdldHMgZm9jdXMgIAo8YnI+Mzc5ODA6IENyYXNoIE1vdmluZyB0aHJvdyBGcmFtZXMgIAo8YnI+NDEwNTE6IFdpemFyZCBub3QgZ2FpbmluZyBmb2N1cyBhZnRlciBjbG9zaW5nIG9mIGRpYWxvZyBib3ggZnJvbSBXaXphcmRQYWdlIG9mIHRoaXMgV2l6YXJkLiAgCjxicj40MTIwNDogY29tYm8gZXZlbnQgbm90IGZpcmluZyBvbiBTV1QuRm9jdXNJbiAgCjxicj40MTUzNzoga2V5Ym9hcmQgc3RvcHMgcmVzcG9uZGluZywgY3Vyc29yIGRpc2FwcGVhcnMgKFdpbmRvd01ha2VyKSAgCjxicj40MzAwOTogQmFkIHBlcmZvcm1hbmNlIG9uIHpoX0NOLkdCMTgwMzAgIAo8YnI+NDU1NTU6IGNhbid0IHJ1biBhdCBmcmVlYnNkISAgCjxicj40OTU5ODogcGxhY2UgYXJiaXRyYXJ5IGNvbnRyb2xzIGluIGEgdGFibGUgaGFzIHdyb25nIHRhYiBvcmRlciAgCjxicj41MTA3ODogU3RhdGljIHRleHQgZG9lc24ndCBkaXNwbGF5IG9uIHRvb2xiYXIgaW4gTGludXggIAo8YnI+Njg5Njk6IEJ1dHRvbnMgaW4gZGlzYWJsZWQgZ3JvdXAgYXJlIG5vdCBkaXNhYmxlZCAgCjxicj42MjY5MDogW2xhdW5jaGVyXSBzcGxhc2ggc2NyZWVuIHNwYW5zIG11bHRpLW1vbml0b3JzICAKPGJyPjYzNjU5OiBTV1QgZGV2ZWxvcGVycyBwYWdlIG5vdCB1cCB0byBkYXRlPyAgCjxicj42ODQ4MjogSlZNIGR1bXAgZXJyb3Jjb2RlPTYgIAo8YnI+Njg2NjE6IFRyZWVzIGFyZSBlYWdlciB0byBleHBhbmQgIAo8YnI+Njg2Njc6IE5QRSBpbiBBZGRyZXNzQm9vayBleGFtcGxlICAKPGJyPjY4NzQ0OiBSZWFkbWUgbWVudGlvbnMgZHVwbGljYXRlIGJ1ZyAoMzU0NDMpICAKPGJyPjE0ODU2OiBbRWRpdG9yIE1nbXRdIEN0cmwrVGFiIGRvZXMgbm90IHdvcmsgaW4gZWRpdG9ycyB3aXRoIG11bHRpcGxlIHRhYnMgIAo8YnI+NTIxNjY6IGNsb3NlIGJ1dHRvbiBvbiB2aWV3L2VkaXRvcnMgdGFicyBuZWVkIHJlZmluZW1lbnQgIAo8YnI+NjgyOTY6IGJ1ZyB3aXRoIGVkaXRvciBpbiBFY2xpcHNlICAKPGJyPjE2MTcxOiBObyBNYXhpbWl6ZSAvIEZpcnN0IHJlc2l6ZSBnZXRzIHJldmVydGVkICAKPGJyPjI5NjQyOiBQZXJmb3JtYW5jZSBwcm9ibGVtcyBvbiBNYWMgIAo8YnI+MzA5ODM6IEFDQyAtIEkyMDAzMDIwNSAtIENhbid0IHN3aXRjaCB0YWJzIHVzaW5nIGtleWJvYXJkICAKPGJyPjY2NTA3OiBUb29sSXRlbS5nZXRCb3VuZHMoKSByZXBsaWVkIHstMSwtMSwxLDF9IGlzIHNoZWxsIGlzIG5vdCB2aXNpYmxlICAKPGJyPjY4NTY2OiBqYXZhdy5leGUgbm90IGZvdW5kIGF0IGxhdW5jaCAgCjxicj42ODU3MTogZHJhd1RleHQodGV4dCwgMCwgMCwgU1dULkRSQVdfREVMSU1JVEVSKSBpcyBub3cgcmlnaHQtanVzdGlmaWVkICAKPGJyPjY4ODU1OiBvcmcuZWNsaXBzZS5zd3QudG9vbHMuaW50ZXJuYWwuU3d0Sm5pR2VuIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5ICAKPGJyPjM3ODY4OiBTZXR0aW5nIGEgR3JpZExheW91dCBvbiBhIFRhYkZvbGRlciBnaXZlcyBzdHJhbmdlIGJlaGF2aW9yIHdoZW4gcmVzaXppbmcgIAo8YnI+NTk2MzA6IFtEaWFsb2dzXSBBY2Nlc3NpYmlsaXR5OiBbU2VhcmNoIGRpYWxvZ10gQ2Fubm90IHNlbGVjdCBDaG9vc2Ugd29ya2luZyBzZXQgdGV4dCB3aXRob3V0IG1vdXNlICAKPGJyPjY4OTUwOiBCdWcgaW4gTGlzdC5zaG93U2VsZWN0aW9uIG1ldGhvZCAgCjxicj42OTM5ODogVGFibGUuY2xlYXJBbGwoKSBkb2VzIG5vdCBmb3JjZSByZWRyYXcgIAo8YnI+Njk1MDk6IENvbWJvYm94IGNvbXB1dGVTaXplKCkgZG9lc24ndCB0YWtlIHRoZSBkb3duIGFycm93IGludG8gYWNjb3VudCAgCjxicj43MDQ2MTogTWlub3IgamF2YWRvYyBlcnJvciBpbiBEaXNwbGF5Lm1hcChDb250cm9sLENvbnRyb2wsUG9pbnQpICAKPGJyPjcwNjMzOiBQcm9ncmFtIGxhdW5jaCBhbmQgZXhlY3V0ZSBtZXRob2RzIGhhdmUgaW5jb3JyZWN0IGphdmFkb2MgIAo8YnI+NzA3Mjk6IFBsdWdpbjogTW9kYWwgZGlhbG9nIGJsb2NrcyBvdGhlciBkaWFsb2dzIGNsb3NpbmcgIAo8YnI+MjEwODk6IENUYWJGb2xkZXIgLSBjbG9zZSBidXR0b24gZG9lc24ndCBhcHBlYXIgd2hlbiB0YWIgbW92ZXMgdW5kZXIgbW91c2UgIAo8YnI+Mjk3NzI6IFtFZGl0b3IgTWdtdF0gTGFzdCBlZGl0b3IgdGFiIGdldHMgY3V0IG9mZiB3aGVuIHVubmVjZXNzYXJ5ICAKPGJyPjM2MjIwOiBleHBhbmQgU2FzaGZvcm0gQVBJIHRvIHN1cHBvcnQgc2V0QmFja2dyb3VuZCAgCjxicj41MjA1OTogU2FzaEZvcm0gcmlnaHQvYm90dG9tIGNvbnN0cmFpbnQgaXMgbm90IGNvbXB1dGVkIGNvcnJlY3RseSAgCjxicj41Mjg0OTogTGlnaHR3ZWlnaHQgY2xvc2UgYnV0dG9ucyBvbiBDVGFiRm9sZGVyIGFyZSBwcm9ibGVtYXRpYyAgCjxicj42NDYxMDogaG92ZXIgb3ZlciBjaGV2cm9uIGZvciBDdGFiZm9sZGVyIG5vdCBiaWcgZW5vdWdoIGZvciBsYXJnZSBmb250cyAgCjxicj42NTU5ODogQ2hldnJvbiBzaG93cyAnMCcgd2hlbiB0aGVyZSBhcmUgYXQgbGVhc3Qgb25lIGl0ZW1zIHRhYnMgbm90IHNob3dpbmcgIAo8YnI+NjcwNzg6IENoZXZyb24gYW5kIFRleHQgdG91Y2hpbmcgb24gTW90aWYgIAo8YnI+Njc0ODk6IENMYWJlbCBkb2VzIG5vdCBzYXZlIGFsaWdubWVudCBpbiBzdHlsZSBiaXRzICAKPGJyPjY4MDcwOiBMYWJlbCBkb2VzIG5vdCBkcmF3IGJhY2tncm91bmQgY29ycmVjdGx5ICAKPGJyPjY4MDc0OiBDb3VwbGUgb2YgYmFkIHBpeGVscyBpbiBTV1QuRkxBVCB8IFNXVC5CT1JERVIgc3R5bGUgIAo8YnI+Njg5NzI6IEdyaWRMYXlvdXQgYWRqdXN0cyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBhbHJlYWR5IGFkanVzdGVkICAKPGJyPjY5ODgxOiBJbiBTY3JvbGxlZENvbXBvc2l0ZSwgdmVydGljYWwgc2Nyb2xsYmFyIGRvZXMgbm90IGFwcGVhciAgCjxicj43MDUzNjogaWYgR3JpZExheW91dC5udW1Db2x1bW5zID09IDAgYSBTdGFja092ZXJmbG93RXJyb3IgZ2V0cyB0aHJvd24gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDYyIC0gVGh1cnNkYXkgSnVuZSAyNCwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0MTA6ICBBV1QvU1dUIC0gQXBwbGV0IEludGVyb3AgKDFQUThRRzEpICAKPGJyPjMwMTA0OiAgRHJhZyAmIERyb3Agbm90IGltcGxlbWVudGVkIG9uIHRoZSBNYWMgIAo8YnI+MzI0MzQ6ICBKYXZhZG9jIHR5cG8gIAo8YnI+NjU0Mzk6ICBDQmFubmVyL0NUYWJGb2xkZXIgY29tbWVudHMuICAKPGJyPjY2MDk1OiAgQ29tYm8uc2V0VmlzaWJsZUl0ZW1Db3VudCBkb2VzIG5vdGhpbmcgdW50aWwgcmVzaXplL2xheW91dCAgCjxicj42NzMxOTogIENCYW5uZXIgamF2YWRvYyBpbmNvbXBsZXRlICAKPGJyPjY3OTc5OiAgZWRpdG9yIGZvY3VzIGlzc3VlICAKPGJyPjY4MDk2OiAgU1dUIGV4Y2VwdGlvbiBkb2NraW5nIGEgZGV0YWNoZWQgdmlldyAgCjxicj42ODE2MDogIENhbm5vdCB1c2UgJ2VjbGlwc2UnIGNvbW1hbmQgbGluZSBsYXVuY2hlciB0byBsYXVuY2ggZWNsaXBzZSBhcHAgd2hlbiBubyB3b3Jrc3BhY2Ugc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDYxYyAtIFR1ZXNkYXkgSnVuZSAyMiwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY4MDU2OiBHVEs2NCAtIENDb21ibyBkb2VzIG5vdCB3b3JrIAo8YnI+Njc5Mjg6IFtCcm93c2VyXSBFbnRlciBwYXRoIHRvIG5vbi1leGlzdGluZyBmaWxlIGJyaW5ncyBOdWxsUEUgCjxicj42NzkzNTogVHlwbyBpbiBTV1RfQVdULm5ld19GcmFtZSBqYXZhZG9jIAo8YnI+NjgxMDI6IE5vIG1vdXNlIHVwIHdoZW4gdHJlZSBleHBhbnNpb24gaW5kaWNhdG9yIHNlbGVjdGVkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNjEgLSBGcmlkYXkgSnVuZSAxOCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0ODQ5MjogIEVjbGlwc2UgY3Jhc2hlcyBvbiBHVEsgKGxpbnV4KSB3aGlsZSBDZWxsIEVkaXRvciBpbiBQcm9wZXJ0eSBWaWV3IGxvb3NpbmcgZm9jdXMgIAo8YnI+NjA3Njg6ICBDQmFubmVyIGF0IHRvcCBkb2VzIHZlcnRpY2FsIHNpemluZyBiYXNlZCBvbiBsZWZ0IGNvbXBvbmVudHMKPGJyPjY2OTYyOiAgVGFiYmluZyBmcm9tIGxpc3QgaW4gUHJvcGVydHkvUHJlZmVyZW5jZSBkaWFsb2cgdGFrZXMgeW91IHRvIHNhc2ggaW5zdGVhZCBvZiBwYWdlICAKPGJyPjY3NDU4OiAgUmVzaXplIGlzIHRvbyBzbG93IGZvciBtb3VzZSBldmVudHMgb24gR1RLICAKPGJyPjY3NjcwOiAgY2FuY2VsbGluZyBPcGVuIFR5cGUgZGlhbG9nIG1vdmVzIGZvY3VzIHRvIE9wZW4gUGVyc3BlY3RpdmUgYnV0dG9uICAKPGJyPjY3ODI1OiAgW2Jyb3dzZXJdIGJyb3dzZXIgY3Jhc2hlcyBvbiBqZGsgMS41IGJldGEgYXBwbGV0cyAgCgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDYwIC0gVGh1cnNkYXkgSnVuZSAxNywgMjAwNCwgODowMHBtIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY2ODEzOiAgQnJvd3NlciBkb2VzIG5vdCBoYW5kbGUgc2V0VGV4dCB0d2ljZSAgCjxicj42NzE4NTogIEJ1ZyBpbiBlbXVsYXRlZCBUZXh0TGF5b3V0LnNldEZvbnQoRm9udCkgIAo8YnI+NjcxOTU6ICBQb3NzaWJsZSBOUEUgaW4gVGV4dExheW91dCAobW90aWYvZW11bGF0ZWQpICAKPGJyPjY3MjE5OiAgU2VnbWVudGF0aW9uIGZhdWx0IGluIE9TLmd0a19tYWluX2RvX2V2ZW50ICAKPGJyPjY3MzAxOiAgRGxsIGluZm9zIGFyZSBib2d1cyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNTkgLSBUaHVyc2RheSBKdW5lIDE3LCAyMDA0LCA0OjI1cG0gPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQzOTk6ICBTV1RFcnJvciB3aGVuIHRyeWluZyB0byBjb3B5IGVudHJ5IGZyb20gRXJyb3IgTG9nIFZpZXcgIAo8YnI+NTM5MjA6ICBTbG93IHBlcmZvcm1hbmNlIHVwZGF0aW5nIHRhcmdldCAgCjxicj41NTk0ODogIEJJREk6IHByb2JsZW1zIGluIHJ0bC1vcmllbnRlZCBDVGFiRm9sZGVyICAKPGJyPjU4NjQyOiAgW21pc2NdIGNhcmV0IGRpc2FwcGVhcnMgZnJvbSBqYXZhIGVkaXRvciAgCjxicj42NTA1MzogIFtLZXlCaW5kaW5nc10gS2V5IGJpbmRpbmdzIHN0b3Agd29ya2luZyAgCjxicj42NTk3NTogIEN0cmwrQyBicm9rZW4gaW4gSmF2YSBlZGl0b3IgIAo8YnI+NjY3MTc6ICBTSEFET1dfSU4gc3R5bGUgaGlkZXMgR3JvdXAgdGl0bGUgIAo8YnI+Njc0ODM6ICBObyBjaGV2cm9uIHdoZW4gbm90IGVub3VnaCBzcGFjZSB0byBzaG93IGFsbCB0aGUgdGFicyBpbiBDVGFiRm9sZGVyICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1OGQgLSBXZWRuZXNkYXkgSnVuZSAxNiwgMjAwNCwgODowMHBtIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY2MDAxOiAgcGFja2FnZS5odG1sIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gYmluYXJ5IHBsdWctaW4gSkFScyAgCjxicj42NzEzMjogIFN0eWxlZCB0ZXh0IGV4YW1wbGUgbG9zZXMgdGhlIHRleHQgc3R5bGUgd2hlbiBjaGFuZ2luZyBhbnkgc3R5bGUgZmxhZyAgCjxicj42NzM0NjogIERpc3BsYXkuZ2RrRXZlbnRXaWRnZXRzIGxlYWtzIHdpZGdldHMgIAo8YnI+NjczNTU6ICBTZXR0aW5nIGZvbnQgYmFjayB0byBpdHMgZGVmYXVsdCB2YWx1ZSBpbiBhIHRhYmxlIHRyZWUgd2lkZ2V0IGNhdXNlcyBhbiBpbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDU4YyAtIFdlZG5lc2RheSBKdW5lIDE2LCAyMDA0LCA0OjAwcG0gPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjU5ODU6ICBEaXNhYmxlZCBjb250cm9scyBzdGlsbCBnZXQga2V5c3Ryb2tlcyBbd2FzIFtQcm9ncmVzc10gTlBFIGluIGxvZyB3aGlsZSByZWZhY3RvcmluZ10gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDU4YiAtIFR1ZXNkYXkgSnVuZSAxNSwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNDUxNTogIEdUSzogQ2FzY2FkZSBNZW51SXRlbSBkb2Vzbid0IHN1cHBvcnQgaW1hZ2UgIAo8YnI+NDAwMDM6ICBQcm9kdWN0aXplIGphdmFfc3d0ICAKPGJyPjU5MzQ0OiAgSW5zcGVjdCBQb3B1cHMgZGlzYXBwZWFyIG9uIE1hYyAgCjxicj42MDY1NzogIERlZmF1bHQgc2l6ZSBvZiBTaGVsbCBpcyB0b28gYmlnIGluIG11bHRpLW1vbml0b3JzICAKPGJyPjYyNTY1OiAgTlBFIGluIFdNX0tFWURPV04gIAo8YnI+NjYyOTM6ICBFZGl0b3IgYmxhbmsgb24gc3RhcnR1cCAgCjxicj42NjYzMzogIFtXb3JrYmVuY2hdIG1pc3NpbmcgdG9vbGJhciBpdGVtcyAgCjxicj42NjY1MzogIE5QRSBvbiB3aW5kb3cgY2xvc2UgIAo8YnI+NjY5NDE6ICBTV1QgcHJpbnRpbmcgc25pcHBldCBub3Qgd29ya2luZyBvbiBNYWNPUyBYICAKPGJyPjY2OTQyOiAgW2Jyb3dzZXJdIEY1IGJsYW5rcyBvdXQgdGhlIEJyb3dzZXIgd2lkZ2V0IHdoZW4gc2V0VGV4dCB1c2VkICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1OCAtIFRodXJzZGF5IEp1bmUgMTAsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjA0NzogIHNldEZvY3VzIGZhaWxzIGlmIHNldFJlZHJhdyB0dXJuZWQgb2ZmICAKPGJyPjYzMjU6ICBObyBidXN5IGN1cnNvciBmb3IgT3BlbiBvbiBTZWxlY3Rpb24gIAo8YnI+OTg0NzogIEVtYmVkZGVkIFN3aW5nIGhhbmdzIGVjbGlwc2Ugd2hlbiBlZGl0b3IgY2xvc2VzICAKPGJyPjM1MTAzOiAgT1MgWCBFZGl0b3IgaGFzIGN1cnNvciBwcm9ibGVtcyAgCjxicj4zODQwODogIENhcmV0LmRyYXdDYXJldCBpZ25vcmVzIGltYWdlIGNvbnRlbnQgIAo8YnI+NDI1NjI6ICBWYXJpb3VzIGltcHJvdmVtZW50cyBmb3IgdGhlIE9zIFggSW50ZXJmYWNlOiAgCjxicj41MDIxNjogIE5QRSBpbiBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLmhhc0ZvY3VzKENvbnRyb2wuamF2YTo5MzQpICAKPGJyPjUxMTA3OiAgQ29udHJvbEVkaXRvciBzaXppbmcgb24gdGhlIE1hY2ludG9zaCAgCjxicj41MTY5NzogIEN1c3RvbUNvbnRyb2xFeGFtcGxlOiBtaXNzaW5nIGV2ZW50IGxpc3RlbmVyIHBhcnQgb24gQ0NvbWJvIHRhYiAgCjxicj42NDQwMDogIE9OX1RPUCBzaGVsbCAtIGNhbid0IHNldEZvY3VzIHRvIGNvbnRlbnQgIAo8YnI+NjUzNTA6ICBTdHlsZWRUZXh0IGxlYXZlcyBzZWNvbmQgY2FyZXQgYmVoaW5kICAKPGJyPjY1Njk1OiAgVHJheUl0ZW0gbm90IGNvbWluZyBiYWNrIGFmdGVyIGFuIGV4cGxvcmVyIGNyYXNoICAKPGJyPjY1Njk3OiAgQ0NvbWJvIGRvZXMgbm90IHJlc3BvbmQgdG8ga2V5Ym9hcmQgb3IgbW91c2UgYWN0aW9ucyB3aGVuIGl0IGl0IGRyb3BwZWQgZG93biAgCjxicj42NjMzMTogIGV4Y2VwdGlvbiBpbiBNZW1iZXJzIHBhbmVsIG9mIGphdmEgYnJvd3NpbmcgcGVyc3BlY3RpdmUgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDU3IC0gV2VkbmVzZGF5IEp1bmUgOSwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNTM0NjogIEVjbGlwc2UgY3Jhc2ggb3BlbmluZyBwcmVmZXJlbmNlcyBvZiB0aGlyZCBwYXJ0eSBwbHVnaW4gIAo8YnI+NjQzNDk6ICBTV1Qgb2YgdGhlIGVjbGlwc2UgMy4wIHZlcnNpb25zIGNyYXNoZXMgb24gc3RhcnQgKG1vdXNlLXByb2JsZW0pICAKPGJyPjY0NDI5OiAgUHJvZ3Jlc3MgYmFycyB1c2UgZGVwcmVjYXRlZCBzdHlsZSAgCjxicj42NTI2OTogIFtFZGl0b3JNZ210XSBTbG93IHJlZHJhdy9yZWxheW91dCB3aGVuIG1heGltaXppbmcvdW5tYXhpbWl6aW5nIGFuIGVkaXRvciAgCjxicj42NTUzNzogIFtLZXlCaW5kaW5nc10gQ29udHJvbCAoY3RybCkga2V5IGhvdGtleXMgbm90IHdvcmtpbmcgZWcgQ3RybCtGNCAgCjxicj42NTc5MjogIEJsYW5rIGxpbmVzIGluIHRhYmxlIFtXQVM6IFRhYmxlLnNob3dJdGVtKCkgd29ya3Mgd3JvbmcgaW4gV2luMzJdICAKPGJyPjY2MTUxOiAgQWx0LWNsaWNraW5nIHRvIGV4cGFuZCBhIHRyZWUgbm9kZSBkb2Vzbid0IHdvcmsgcHJvcGVybHkgIAo8YnI+NjYzNTY6ICBETkQgLSBtb3ZlIHJlcG9ydGVkIHRvIGRyYWcgc291cmNlIGV2ZW4gdGhvdWdoIGNhbmNlbGxlZCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNTYgLSBUdWVzZGF5IEp1bmUgOCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMTI0NTogIGRpZmZlcmVudCBkaXNhYmxlZCB0b29sYmFyIGljb25zIG9uIEdUSyAgCjxicj4zMjg1MjogIENyYXNoIHdoZW4gdXNpbmcgc3ViLXBpeGVsIHJlbmRlcmluZyBpbiBYZnQgMi4wICAKPGJyPjMyOTc4OiAgRXhwb3J0IEphdmFkb2M6IGVsZW1lbnQgbm90IHNlbGVjdGVkICAKPGJyPjM3MTYzOiAgQ3Jhc2ggb24gc3RhcnR1cDogIkNhbm5vdCBvcGVuIGZvbnQgZmlsZSBmb3IgZm9udCBWZXJkYW5hIDEwIiAgCjxicj40MzI3MDogIE5vbi1BbnRpYWxpYXNlZCBGb250cyBoYXZlIHdyb25nIHNwYWNpbmcgIAo8YnI+NDc0NjQ6ICBTZWNvbmQgdW51c2VkIGltcG9ydCBtZXNzYWdlIG1pc3NpbmcgaW4gcHJvYmxlbSBkaXNwbGF5IGxpc3QgdmlldyBhZnRlciByZWJ1aWxkICAKPGJyPjUyMjc2OiAgQmx1cnJlZCBmb250IHJlbmRlcmluZyBpbiBlZGl0b3IgdW5kZXIgTWFjT1MgWCAgCjxicj41NTYwMDogIENWUyBwZXJzcGVjdGl2ZSBoYXMgYnVzeSBjdXJzb3IgIAo8YnI+NTY1MDg6ICBFZGl0b3I6IHNvbWUgdGFiIGNoYXJhY3RlcnMgYXJlIG5vdCByZW5kZXJlZCBtaXNzaW5nIGluIGZpZWxkIGRlY2xhdGlvbnMgIAo8YnI+NTY3NjU6ICBTdHlsZWRUZXh0IC0gRml4IGNhbGN1bGF0aW5nIG9mIGN1cnNvciBsZXZlbCAgCjxicj41NzQwODogIERCQ1M6IEFmdGVyIHByZXNzaW5nICJUYWIiLCBhbnl0aGluZyBjYW4gbm90IGJlIGlucHV0ZWQgIAo8YnI+NTg2MTU6ICBTZXR0aW5nIGl0YWxpYyBmb250IGZvciB0cmVlIGl0ZW1zIGRvZXMgbm90IHdvcmsgb24gTWFjICAKPGJyPjYwNjU5OiAgR1Agd2hlbiBhc3luY0V4ZWMgcnVucyBmcm9tIERpcmVjdG9yeURpYWxvZyBtb2RhbCBsb29wICh3YXMgQ3Jhc2ggcmVsYXRlZCB0byBuZXcgUHJvZ3Jlc3MgVmlld2VyKSAgCjxicj42MjMzNjogIFVJIGhhbmdzIHdoaWxlIGF0dGVtcHRpbmcgdG8gYWRkIG1pc3NpbmcgbWV0aG9kcy4gIAo8YnI+NjQ3NTk6ICBDb2xvciBidXR0b25zIGxvb2sgYmFkIG9uIE1hYyAgCjxicj42NDc5MzogIE9uZSBsaW5lIG9mIGNoZWVzZSBpbiBDVGFiRm9sZGVyIHNlbGVjdGVkIHRhYiAgCjxicj42NTM4NzogIFNXVCBkZXBlbmRzIG9uIFN3aW5nIChBV1Qgbm90IGEgcHJvYmxlbSkgIAo8YnI+NjU1OTk6ICBTaGVsbCBsb2NhdGlvbiBpcyBub3QgcHJvcGVybHkgdXNlZCAgCjxicj42NTc1OTogIFRhYmxlSXRlbSBkb2VzIG5vdCByZWRyYXcgY29ycmVjdGx5IG9uIHNldFRleHQoaW50LCBTdHJpbmcpICAKPGJyPjY1OTA1OiAgUG9zc2libGUgTWVtb3J5IExlYWtzICAKPGJyPjY1OTQ3OiAgU1dUIENhcmJvbiBtYWtlZmlsZSBzdGlsbCB1c2VzIEpOSSAxLjMuMSBoZWFkZXJzICAKPGJyPjY2MDM5OiAgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29udHJvbCBoYXMgZnVua3kgY29sb3IgaXNzdWVzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1NSAtIFRodXJzZGF5IEp1bmUgMywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNDUzNiAgU3R5bGVkVGV4dCAtIGJpZGkgLSBjaGFuZ2UgY3RybC1hcnJvdyBiZWhhdmlvciAgCjxicj4zOTQ5MzogIEdUSyBDb21ibzsgZmlyc3QgaXRlbSBpcyBzZWxlY3RlZCB3aGVuIERyb3Bkb3duIGxpc3QgaXMgc2hvd24gIAo8YnI+NDI0ODA6ICBKT0dMIG1ldGhvZCBwb3B1cHMgZXh0cmVtZWx5IHNsb3c7IGxpa2VseSBub3cgU1dUIGlzc3VlICAKPGJyPjQzMzEyOiAgU3dpdGNoaW5nIHBlcnNwZWN0aXZlcyB3aGlsZSBkZWJ1Z2dpbmcgY2F1c2VzIHNlZ2ZhdWx0ICAKPGJyPjQ0MDAzOiAgTWVudUl0ZW0uc2V0QWNjZWxlcmF0b3JUZXh0IGRvZXMgbm90IHdvcmsgcHJvcGVybHkgb24gTWFjT1MgWCAgCjxicj40Nzk3MjogIFtLZXlCaW5kaW5nc10gSW5jb3JyZWN0IGRyYXdpbmcgb2YgYWNjZWxlcmF0b3IgdGV4dCBvbiBtYWMgb3MgeCAgCjxicj41NjUwOTogIERldGFpbHMgcGFuZSBpbiBEZWJ1ZyBwZXJzcGVjdGl2ZSBkb2Vzbid0IHJlbmRlciBpdCdzIGNvbnRlbnRzIHByb3Blcmx5IChyZXBlYXRzIGNoYXJhY3RlcnMpICAKPGJyPjU4MTc2OiAgU2NyZWVuIHNjcmliYmxlcyB3aGVuIHNjcm9sbGluZyB1cCBpbiBKYXZhIGVkaXRvciAgCjxicj42MjExOTogIHNldEN1cnNvcigpIGRvZXNuJ3Qgd29yayBmb3IgVGV4dCBvYmplY3RzICAKPGJyPjYzOTMxOiAgW2Jyb3dzZXJdIHNldFZpc2libGUodHJ1ZSkgZG9lcyBub3Qgd29yayAgCjxicj42Mzk5MTogIGhhbmcgaW4gZ3RrX2NsaXBib2FyZF93YWl0X2Zvcl9jb250ZW50cygpICAKPGJyPjY0MjM3OiAgW01lbnVzXSBtZW51IGl0ZW1zIG1pc3Npbmcgb24gZmlyc3QgY2xpY2sgIAo8YnI+NjQyOTE6ICBtb3VzZSB1bnVzYWJsZSBvdmVyIHJlZ2lvbnMgcHJldmlvdXNseSBjb3ZlcmVkIGJ5IGZhc3R2aWV3ICAKPGJyPjY0MzY1OiAgRW1iZWRkZWQgQVdUIHdpbmRvd3MgdXNlIHdyb25nIGxvY2F0aW9uICAKPGJyPjY0NjQ1OiAgamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBHVEsgVGFibGUuamF2YSAgCjxicj42NDcwNTogIEV4cGFuZGluZyBhIFRyZWUgd2l0aCBsZWZ0IGFuZCByaWdodCBhcnJvd3MgZG9lcyBub3QgdHJpZ2dlciBUcmVlRXhwYW5kZWQgb3IgVHJlZUNvbGxhcHNlZCBldmVudHMuICAKPGJyPjY0NzA5OiAgVHJlZSB2aWV3cyBkb24ndCB1cGRhdGUgY29ycmVjdGx5IHVzaW5nIGtleWJvYXJkIHNob3J0Y3V0cyAgCjxicj42NDc1MjogIFRhYmxlQ3Vyc2VyLnNldFNlbGVjdGlvbiBkb2VzIG5vdCBmdW5jdGlvbiBwcm9wZXJseSBhZnRlciBjb2x1bW5zIGFyZSBkaXNwb3NlZCAgCjxicj42NDc2MDogIGFkZCBTSU5HTEUvTVVMVEkgcmFkaW9zIHRvIENvbnRyb2xFeGFtcGxlIC0gRGlhbG9nIHRhYiAtIEZpbGUgRGlhbG9nIFN0eWxlcyAgCjxicj42NDc5MTogIFtLZXlCaW5kaW5nc10gYWNjZWxlcmF0b3Igc3RyaW5ncyBkaXNwbGF5ZWQgaW5jb3JyZWN0bHkuICAKPGJyPjY0OTM4OiAgW2Jyb3dzZXJdIE5QRSBpbiB0ZXN0IGNhc2UgIAo8YnI+NjQ5ODA6ICBzaG91bGQgdXNlIGNvcnJlY3QgU0laRV9BTEwgY3Vyc29yIG9uIG1vdGlmcyAgCjxicj42NTE2OTogIFticm93c2VyXSBVUkxzIHdpdGggc3BhY2UgZG9uJ3Qgc2hvdyB1cCBvbiBTYWZhcmkgIAo8YnI+NjUyMTQ6ICBSZWdyZXNzaW9uOiBUcmVlLnNldFJlZHJhdyhmYWxzZSkgbm90IHJlbGlhYmxlICAKPGJyPjY1MjM5OiAgbmV3IFNXVCBNYWMgcHJvcGVydGllcyBhcmVuJ3QgYm9vbGVhbiAgCjxicj42NTM1OTogIExhYmVsLnNldFRleHQoKSBjYXVzZXMgYSByZWRyYXcgd2hlbiB0aGUgc3RyaW5nIGRpZCBub3QgY2hhbmdlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1NCAtIEZyaWRheSBNYXkgMjgsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+ClN0eWxlZFRleHQuZ2V0QmFzZWxpbmUoKQo8YnI+Q29tYm8uZ2V0VmlzaWJsZUl0ZW1Db3VudCgpCjxicj5Db21iby5zZXRWaXNpYmxlSXRlbUNvdW50KGludCkKPGJyPkNDb21iby5nZXRWaXNpYmxlSXRlbUNvdW50KCkKPGJyPkNDb21iby5zZXRWaXNpYmxlSXRlbUNvdW50KGludCkKPGJyPkNCYW5uZXIuZ2V0U2ltcGxlKCkKPGJyPkNCYW5uZXIuc2V0U2ltcGxlKGJvb2xlYW4pCjxicj5DVGFiRm9sZGVyLmdldFNpbXBsZVRhYigpIC0+IENUYWJGb2xkZXIuZ2V0U2ltcGxlKCkKPGJyPkNUYWJGb2xkZXIuc2V0U2ltcGxlVGFiKGJvb2xlYW4pIC0+IENUYWJGb2xkZXIuc2V0U2ltcGxlKGJvb2xlYW4pCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjQ1MTg6ICBOUEUgaW4gU3R5bGVkVGV4dCB1c2VkIGJ5ICdDaGFuZ2UgbWV0aG9kIHNpZ25hdHVyZScgcmVmYWN0b3JpbmcgIAo8YnI+NjQ2MzMgICBOUEUgY2F1c2VkIGJ5IHNtYWxsIGZvbnQgc3VwcG9ydAo8YnI+NjQ2NTIgICBTdHlsZWRUZXh0IC0gQ2xpY2tpbmcgYXQgdGhlIGVuZCBvZiBhIGxpbmUgcGxhY2UgdGhlIGNhcmUuLi4KPGJyPjYyNzIzOiAgamF2YWRvYyBjb25zb2xlIG91dHB1dDogaHlwZXJsaW5rIG5vdCBjbGlja2FibGUsIG5vIGhhbmQgLi4uCjxicj41MzM1ODogIEdDIGNvcHlBcmVhKGltYWdlLCB4LCB5KSBub3QgaW1wbGVtZW50ZWQgb24gTWFjICAKPGJyPjc4NDU6ICBBUEkgbmVlZGVkIGluIENvbWJvIGNsYXNzIHRvIHNwZWNpZnkgIyBvZiBpdGVtcyB2aXNpYmxlICAKPGJyPjE3MzQ2OiAgTWlzc2luZyBidXN5IGN1cnNvciBpbiBTZWFyY2ggZGlhbG9nIHVuZGVyIEdUSyAgCjxicj4yMjAxODogIEdUSzogVGV4dC5zZXRDdXJzb3IoKSBkb2VzIG5vdCBmdW5jdGlvbi4gIAo8YnI+MzEwMjM6ICBHUCAtIHVzaW5nIEYzIHRvIG9wZW4gbmV3IGVkaXQgd2luZG93ICAKPGJyPjM4MjYwOiAgQ0NvbWJvIHdpdGggRGlhbG9nICAKPGJyPjQ0NjQ4OiAgU3VwcG9ydCBKREsxLjEgIAo8YnI+NDU1NzQ6ICBQYW50aGVyOiBSdW4uLi4gYW5kIFByb3BlcnRpZXMgZGlhbG9ncyBsYXkgb3V0IGluY29ycmVjdGx5LiAgCjxicj40ODAwNjogIFtTV1RdIGxheW91dCBwcm9ibGVtcyBvbiBtYWMgIAo8YnI+NTAxODM6ICBWZXJ0aWNhbCBzY3JvbGxiYXIgaXMgbm90IGNyZWF0ZWQgYXMgZXhwZWN0ZWQgIAo8YnI+NTQ0MTQ6ICBbdHlwaW5nXSBEZWxldGUgTmV4dCBXb3JkIGFuZCBvdGhlcnMgZG9uJ3Qgd29yayBxdWl0ZSByaWdodCAgCjxicj41ODgwNDogIE1hYyBPU1ggOiBUYWJsZUNvbHVtbiBBbGlnbm1lbnQgIAo8YnI+NjA0NTI6ICBbTWFjXSBCdXR0b24gUGxhY2VkIG9uIEdyb3VwIGRvZXMgbm90IGdldCBEaWFsb2cgRm9udCAgCjxicj42MDgxNjogIERlZmVycmVkIGV2ZW50cyB3aWxsIG5vdCBydW4gZHVyaW5nIG1vdXNlZHJhZyAgCjxicj42MTcyODogIE5lZWQgYWNjZXNzIHRvIFRleHRMYXlvdXQgc3R5bGVzIGFuZCBmb250cyAgCjxicj42MjMyOTogIENUYWJGb2xkZXIgbGVhdmVzIGEgbGl0dGxlIGNoZWVzZSB3aGVuIHJlc2l6aW5nICAKPGJyPjYyNTU4OiAgTnVsbCBQb2ludGVyIHdoZW4gb3BlbmluZyBGb2xkZXIgaW4gRmlsZT5PcGVuIEV4dGVybmFsIEZpbGUgIAo8YnI+NjI5ODI6ICBUYWJsZUNvbHVtbiBkb2VzIG5vdCBmaXJlIHJlc2l6ZSBldmVudCAgCjxicj42MzAwMzogIEN0cmwrIENsaWNraW5nIG9uIFBhY2thZ2VFeHBsb3JlciBleHBhbmRzIGl0ZW1zICAKPGJyPjYzMDcwOiAgc29tZSBtZW51cyBkbyBub3Qgc2hvdyB0aGVpciBpdGVtIHRleHRzICAKPGJyPjYzNzAxOiAgRGlzcGxheSB2YXIgaW4gZGVidWdnZXIgZXhpdHMgZWNsaXBzZSBKVk0gIAo8YnI+NjM3MTY6ICBUcmVlIGl0ZW1zIGRvIG5vdCBkaXNwbGF5IHRoZWlyIGNoaWxkcmVuIHdoZW4gdW5mb2xkZWQgYnkga2V5Ym9hcmQgIAo8YnI+NjM5MDM6ICBzZXRTaW1wbGUgIAo8YnI+NjQyMTY6ICBUYWJsZUl0ZW0uZ2V0VGV4dCAtIHdyb25nIGZvciBmaXJzdCBjb2x1bW4gIAo8YnI+NjQyMjA6ICBXcm9uZyBjdXJzb3IgdXNlZCBmb3IgU1dULkNVUlNPUl9TSVpFQUxMICAKPGJyPjY0Mjk0OiAgVGl0bGUgYW5kIG1heGltaXNhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFBvY2tldCBQQyAgCjxicj42NDQ1NzogIGNhbGxpbmcgQ1RhYkl0ZW0uc2V0Rm9udCAoYW5kIHNldEltYWdlKSByZXBlYXRlZGx5IHdpdGggbnVsbCBjYXVzZXMgcmVwYWludHMgIAo8YnI+NjQ1MTI6ICBBZGQgc21hbGxGb250IGFuZCBub0ZvY3VzQm9yZGVyIHByb3BlcnRpZXMgdG8gSW5mby5wbGlzdCBmaWxlICAKPGJyPjIwOTAzOiAgQUNDOiBDaGVja2JveGVzIG5vdCBpZGVudGlmaWVkIGNvcnJlY3RseSAgCjxicj4yNjYzMjogIFRhYmxlIGNsb3VtbiBoZWFkZXJzIG5vdCBkcmF3biBpbiBHVEsyICAKPGJyPjI4OTkwOiAgR1RLOiBQYWludHMgbm90IGZsdXNoZWQgYWZ0ZXIgb3BlbigpICAKPGJyPjM1NzUzOiAgbWlzc2luZyBBUEk6IFRhYmxlQ3Vyc29yLnJlbW92ZVNlbGVjdGlvbkxpc3RlbmVyKFNlbGVjdGlvbkxpc3RlbmVyKSAgCjxicj4zNzk1NjogIENyYXNoIGluIE9TLmdka19waXhidWZfc2NhbGVfc2ltcGxlICgpICAKPGJyPjM4ODA5OiAgRENSIC0gbmVlZCBEaXNwbGF5LmdldFN5c3RlbUN1cnNvcigpICAKPGJyPjM4ODI4OiAgRWNsaXBzZSBDcmFjaCBDbG9zaW5nIFNlc3Npb24gIAo8YnI+Mzg4NzU6ICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIG9uIHN0YXJ0dXAgIAo8YnI+NDA1NDA6ICBFY2xpcHNlIEpWTSBjcmFzaGVzIHJhbmRvbWx5IGluIEdUSyBuYXRpdmUgY29kZS4gIAo8YnI+NDI0MjI6ICBlY2xpcHNlIGNyYXNoZXMgb24gc3RhcnR1cCB3aXRoIFJlZEhhdCA5LjAgc3lzdGVtICAKPGJyPjQ3MjY2OiAgW2Jyb3dzZXJdIGhvdyBjYW4gd2UgZm9ybWF0IFVSTCBsaW5rcyB0byBwYXNzIG9uIGluZm9ybWF0aW9uIHRvIHRoZSBTV1QgYXBwICAKPGJyPjQ4ODUwOiAgU1dUIEV4YW1wbGUgcHJvamVjdHMgYnVpbGQgZXJyb3IgIAo8YnI+NTIxMDk6ICBkcmF3VGV4dCgpIHRyZWF0cyAiXG4iIGRpZmZlcmVudGx5IGlmIGFudGlhbGlhc2luZyBpcyBvbiBvciBvZmYgIAo8YnI+NTYwNjM6ICBbQ29sb3JzXSBQZXJzcGVjdGl2ZSB0b29sYmFyIGl0ZW1zIGhhdmUgd3JvbmcgYmFja2dyb3VuZCAgCjxicj41Njk4MTogIFticm93c2VyXSBuZWVkIHRvIHN1cHBvcnQgQWxlcnRzIG9uIE1vemlsbGEgIAo8YnI+NTc4NDM6ICBGYXRhbCBFcnJvciBpbiBTV1QgY2F1c2luZyBFY2xpcHNlIHRvIGNyYXNoLiAgCjxicj41ODE5MzogIFtCcm93c2VyXSBjb250ZW50IGVtYmVkZGVkIHVzaW5nIHRoZSBIVE1MIE9CSkVDVCBlbGVtZW50IGRvZXNuJ3Qgc2hvdyB1cCBpbiBzd3QgYnJvd3NlciAgCjxicj41OTYxNDogIENsaWNraW5nIHRoZSBDVGFiRm9sZGVyIGNoZXZyb24gdHdpY2UgZG9lcyBub3QgbWFrZSB0aGUgZHJvcCBkb3duIGdvIGF3YXkgIAo8YnI+NTk2OTg6ICBbYnJvd3Nlcl0gaW52ZXN0aWdhdGUgc3VwcG9ydCBmb3IgY3VzdG9tIHBvcHVwIG1lbnUgIAo8YnI+NjAwMzc6ICBBY2Nlc3NpYmlsaXR5OiBKdW5pdCBQcmVmZXJlbmNlIFBhZ2UgY2hlY2tib3hlcyBpbiBsaXN0IHZpZXcgbm90IHJlYWRhYmxlICAKPGJyPjYwMTAyOiAgU2hlbGwgb3BlbmVkIG9uIEtERTMuMi54IGRvZXMgbm90IHBhaW50ICAKPGJyPjYwMjM3OiAgW2Jyb3dzZXJdIEJyb3dzZXJFeGFtcGxlIHJ1bm5pbmcgaW5zaWRlIEVjbGlwc2UgZG9lcyBub3QgZ2V0IGtleS9tb3VzZSBldmVudHMgIAo8YnI+NjA0NTc6ICBbYnJvd3Nlcl0gc2FmYXJpIC0gZG9lcyBub3QgZmlyZSBsb2NhdGlvbiBldmVudCBmb3IgaW5uZXIgZnJhbWUgIAo8YnI+NjA3Mjc6ICBCSURJOiBTdHlsZWRUZXh0IC0gV3JvbmcgY3Vyc29yIHBvc2l0aW9uaW5nIG9uIGJpZGkgYm91bmRhcnkgIAo8YnI+NjA4MTk6ICBQaG90b246IFRyZWUuamF2YSByZWZlcmVuY2VzIGphdmEudXRpbC5TdGFjayAobm90IGluIEpESyAxLjEpICAKPGJyPjYxMzE2OiAgU1dUIGVycm9yIG9jY3VycmVkIG9uIEVjbGlwc2UgMjAwNDA1MDYwMjAwICAKPGJyPjYyNTIzOiAgbGF1bmNoIGVjbGlwc2Ugd2l0aCAtRE1CQ1MgYXMgYSB2bWFyZyBhbmQgY29weS1wYXN0ZSB3b3JrcyBpbmNvcnJlY3RseSAvIGN0cmwgZjYgc2hvd3MgdW5kaXNwbGF5YWJsZSBjaGFyYWN0ZXJzICAKPGJyPjYyNTI4OiAgVHJhY2tlciBkb2VzIG5vdCBrZWVwIHVwIHdpdGggbW91c2UgbW92ZW1lbnQgIAo8YnI+NjI3NjE6ICBTV1Qgc2hvdWxkIG5vdCBncmFiIGZvY3VzIG9uIHRyYXZlcnNhbCBldmVudHMgIAo8YnI+NjI3OTA6ICBwYWNraW5nIGEgc2hlbGwgaGFzIHRoZSBlZmZlY3Qgb2YgY3JlYXRpbmcgYW4gdW51c2FibGUgc2hlbGwgb24gcG9ja2V0cGMgIAo8YnI+NjMwMDY6ICBUeXBvIGluIFNXVCBkb2MgZm9yIE9OX1RPUCAgCjxicj42MzEwMjogIFtJY29uc10gSXQgaXMgaGFyZCB0byBkaXN0aW5ndWlzaCBwcmVzc2VkL25vbiBwcmVzc2VkIGljb25zIG9uIE1hYyBPUyAxMC4zLjMgIAo8YnI+NjMxMDU6ICBUYWJsZUl0ZW0uZ2V0SW1hZ2VCb3VuZHMoKSByZXR1cm5zIGluY29ycmVjdCB2YWx1ZSBmb3IgQ29sdW1uIDAgIAo8YnI+NjMxNDM6ICBtYWxmb3JtZWQgTUFOSUZFU1QuTUYgaW4gZ3RrL21vdGlmL2d0azY0IGZyYWdtZW50cyAgCjxicj42MzI5NjogIFticm93c2VyXSBGMSBjcmFzaGVzIHdvcmtiZW5jaCAgCjxicj42MzY2MTogIFZNIHRlcm1pbmF0ZXMgYWJub3JtYWxseSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNTIgLSBUdWVzZGF5IE1heSAxOCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjYyMDogCUdDLmRyYXdMaW5lIGFuZCBHQy5kcmF3UG9seWxpbmUgYXJlbid0IGNvbnNpc3RlbnQgW3BvcnRhYmlsaXR5XQo8YnI+MTk4Mjg6IAlDVGFiRm9sZGVyIHBvcHVwcyBzaG91bGQgbm90IHNwYW4gbW9uaXRvcnMuCjxicj4yMTU3NDogCUNvbG9yIHNlbGVjdGlvbiBmb3IgaW5kaXZpZHVhbCB0YWJsZSBjZWxscwo8YnI+MjczMzE6IAlDVGFiRm9sZGVyIHJpZ2h0IGNvbnRyb2wgcmVxdWVzdAo8YnI+Mjg3NjY6IAlQcmludGluZyBJbWFnZXMgZG9lcyBub3QgcmVzcGVjdCB0cmFuc3BhcmVuY3kKPGJyPjM2NzMyOiAJUGVyZm9ybWFuY2UgcHJvYmxlbXMgb24gTWFjIC0gc2xvdyBhcHBlYXJhbmNlIG9mIGNtZC1zcGFjZSByZXN1bHRzCjxicj4zOTMyMDogCVNXVC5OT19CQUNLR1JPVU5EIHN0eWxlIGRvZXMgbm90IHdvcmsgaW4gTGludXgtR1RLCjxicj4zOTg4MTogCUJJREk6IERDUiAtIE5lZWQgdG8gaW1wbGVtZW50IGEgVGV4dCBMYXlvdXQgY2xhc3MKPGJyPjQ0OTE1OiAJQ2xpcGJvYXJkIGdldEF2YWlsYWJsZVR5cGVzIHJ1bnMgdGhlIGV2ZW50IGxvb3Agb24gR1RLCjxicj40NTA5MzogCUVkaXRvciB0YWIgdG9vbHRpcCBwb3NpdGlvbiB3cm9uZyBmb3IgZHVhbCBtb25pdG9yIHNldHVwCjxicj41MjQ1ODogCVtXb3JrYmVuY2hdIHdyb25nIGJhY2tncm91bmQgY29sb3IgaW4gdGFiIGNvcm5lcnMKPGJyPjUyNTc0OiAJUmVuZGVyaW5nIG9mIENCYW5uZXIgd2l0aCBvbmx5IG9uZSBjaGlsZAo8YnI+NTI1OTU6IAlDVGFiRm9sZGVyIGZsYXNoaW5nIGR1cmluZyByZXNpemUKPGJyPjUzNzkxOiAJSW1wbGVtZW50IENvbnRyb2wuc2V0UmVkcmF3KCkgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gV2luZG93cwo8YnI+NTQyNjQ6IAlbRWRpdG9yTWdtdF0gRWRpdG9yIGNsb3NlIGJ1dHRvbgo8YnI+NTQ0OTk6IAlUcmVlLmdldEl0ZW0oUG9pbnQpIHJldHVybnMgZWxlbWVudCBldmVuIGlmIHBvaW50IGlzIG92ZXIgKy8tIGFyZWEKPGJyPjU1MzkyOiAJQ3JpdGljYWwgR1RLIEVycm9yIGluIGd0a3NlbGVjdGlvbi5jCjxicj41NTc0ODogCVticm93c2VyXSBmYWlsIHRvIGxhdW5jaCB1bmRlciBSSCBFTDMKPGJyPjU2MTcwOiAJU1dUX0FXVCBwcm9ibGVtcwo8YnI+NTY2OTQ6IAlUeXBpbmcgc2xvdyBiZWNhdXNlIHRvbyBtdWNoIGRhdGEgc2VudCBvdmVyIHRoZSB3aXJlICh3YXM6IFtXb3JrYmVuY2hdIHNpbmNlIDMuME04IHR5cGluZyBpcyB0ZXJyaWJseSBzbG93KQo8YnI+NTc3Nzc6IAlbdHlwaW5nXSBXcm9uZyBiZWhhdmlvciBmb3IgYXBwZW5kIG5leHQgIndvcmQiIHRvIHNlbGVjdGlvbiBhY3Rpb24KPGJyPjU3OTY1OiAJR1RLOiBDb250cm9sLnNldEJhY2tncm91bmQoKSB3aXRoIHNhbWUgY29sb3IgY2F1c2VzIE9TIHBhaW50IGV2ZW50IChCQkFXVCkKPGJyPjU5MzI5OiAJW0Jyb3dzZXJdIGJyb3dzZXIgY29kZSBmYWlscyBpZiBncmUuY29uZiBjb250YWlucyBhIGJsYW5rIGxpbmUgYmVmb3JlIHZlcnNpb24gbnVtYmVyCjxicj41OTMzMzogCVtCcm93c2VyXSBFeGNlcHRpb24gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCB2ZXJ5IG1lYW5pbmdmdWwKPGJyPjU5OTk4OiAJW2Jyb3dzZXJdIGhvdmVyIHRvb2x0aXBzIGF0IHdyb25nIHBvc2l0aW9uCjxicj42MDA2ODogCVRhYmxlQ3Vyc29yIGNyYXNoZXMgd2hlbiBzY3JvbGxpbmcgdmVydGljYWxseSBhbiBlbXB0eSB0YWJsZQo8YnI+NjA2NjI6IAl2ZXJzaW9uLW1hdGNoIGRlcHJlY2F0ZWQgaW4gU1dUIGZyYWdtZW50IG1hbmlmZXN0cwo8YnI+NjA5MzQ6IAlbaW50ZXJvcF0gdGFiIGZvY3VzIHByb2JsZW0KPGJyPjYxMjA3OiAJY2Fubm90IHVzZSBpY29ucyB3aXRoID4gOCBiaXQgY29sb3IgZGVwdGgKPGJyPjYxMzk3OiAJVUkgc2VlbXMgdG8gYmVjb21lICJkaXNjb25uZWN0ZWQiIGZyb20gdGhlIGFwcGxpY2F0aW9uCjxicj42MTQ5NjogCVtFZGl0b3JNZ210XSBFZGl0b3IgdGFicyBzaG91bGQgYWRqdXN0IHRoZW1zZWx2ZXMgb24gd2luZG93IHJlc2l6ZQo8YnI+NjE3ODk6IAlbQnJvd3Nlcl0gYnJvd3NlciBjb2RlIHVzZXMgYSBoYXJkY29kZWQgY29uZmlnIGZpbGUgbmFtZSAvZXRjL2dyZS5jb25mCjxicj42MTgxODogCUNoZWVzZSBpbiBWaWV3Rm9ybQo8YnI+NjE5NzA6IAlOUEUgaW4gVGFibGVJdGVtIGNsYXNzIGluIGdldEltYWdlQm91bmRzIChpbnQgaW5kZXgpCjxicj42MjAxMDogCU5QRSBQcmVzc2luZyBDVFJMLU8gaW4gamF2YSBlZGl0b3IKPGJyPjYyMDkwOiAJUHJlc3NpbmcgZW50ZXIgaW4gY29tYm8gdHJpZ2dlcnMgZGlhbG9nIHRyYXZlcnNhbAo8YnI+NjIxOTU6IAlFcnJvciBpbiBTV1QjU0NST0xMX0xPQ0sgSmF2YURvYwo8YnI+NjIzOTM6IAlTV1RfQVdUIGVudGVyIGtleSBtaXNiZWhhdmVzIHdpdGggSlRleHRBcmVhIGluIGEgd2l6YXJkCjxicj42MjQ3NzogCUNsaWNraW5nIG9uIHNoZWxsIHRpdGxlIGJhciBjYXVzZXMgYWN0aXZhdGlvbiBldmVudHMgd2l0aCBudWxsIGFjdGl2ZSBzaGVsbHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1MSAtIFR1ZXNkYXkgTWF5IDExLCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpUZXh0TGF5b3V0LmdldEFzY2VudCgpIGFkZGVkCjxicj5UZXh0TGF5b3V0LmdldERlc2NlbnQoKSBhZGRlZAo8YnI+VGV4dExheW91dC5zZXRBc2NlbnQoaW50KSBhZGRlZAo8YnI+VGV4dExheW91dC5zZXREZXNjZW50KGludCkgYWRkZWQKPGJyPkRpc3BsYXkuZ2V0U3lzdGVtSW1hZ2UoaW50KSBhZGRlZAo8YnI+RGlzcGxheS5nZXRTeXN0ZW1DdXJzb3IoaW50KSBhZGRlZAo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNjI1OiAgTWVudSBpdGVtcyBzdGlsbCBncmFiIGFjY2VsZXJhdG9ycyB3aGVuIGRpc2FibGVkICAKPGJyPjI1NzAzOiAgR2V0dGluZyBzeXN0ZW0gaWNvbnMgZm9yIGRpYWxvZ3MgIAo8YnI+Mjg4NTg6ICBDdXJzb3IgYXBwZWFycyBiZWhpbmQgY2hhcmFjdGVyIGFsdGhvdWdoIGl0J3MgaW4gZnJvbnQgb2YgIAo8YnI+NDA1MjM6ICBbbGF1bmNoZXJdIEFsbG93IGxhdW5jaGVyIGJ1aWxkIHVzaW5nIE1pbkdXICAKPGJyPjQzOTIxOiAgZ3JhZGllbnQgZmlsbCBkb2VzIG5vdCBwcmludCBpdHMgY29sb3IgcHJvcGVybHkgIAo8YnI+NDY4MjQ6ICBDb250cm9sRXhhbXBsZTogc2Nyb2xsaW5nIENhbnZhcyBsZWF2ZXMgc2NyZWVuY2hlZXNlICAKPGJyPjQ3NTExOiAgU2hlbGwuc2V0VmlzaWJsZSBydW5zIGV2ZW50IGxvb3AgIAo8YnI+NTMwMzQ6ICBzaG93SXRlbSgpIG5vdCB3b3JraW5nIHdoZW4gc2V0UmVkcmF3KGZhbHNlKSAgCjxicj41NTYxNjogIFticm93c2VyXSBTV1QuQnJvd3NlciAoTW96aWxsYSkgZG9lcyBub3QgbGlrZSBodHRwcyBsaW5rcyAoaW1nIHNyYz0iaHR0cHM6Ly8uLi4iIG9yIGhyZWY9Imh0dHBzOi8vLi4uIikgIAo8YnI+NTc1MDY6ICBQcmVzc2luZyBUQUIga2V5IGNyZWF0ZXMganVuayBpbiBlZGl0b3IgIAo8YnI+NTkzNTI6ICBbYnJvd3Nlcl0gR1RLIGNyYXNoZXMgb24gYXR0YWNobWVudHMgIAo8YnI+NjA0MjA6ICBsb3RzIG9mIGNyYXNoZXMgc2luY2UgTTggIAo8YnI+NjA0NTQ6ICBbYnJvd3Nlcl0gQnJvd3NlciBjcmFzaGVzIG9uIEphZ3VhciAgCjxicj42MDQ3MTogIEVjbGlwc2Ugc3RvcHMgcmVzcG9uZGluZyB0byBtb3VzZSwgTnVsbFBvaW50ZXJFeGNlcHRpb24gb24gc2h1dGRvd24gIAo8YnI+NjA1Njg6ICBUYWJsZSBUcmVlSXRlbSBzZWxlY3Rpb24gZmFpbHMgd2l0aCBNb3VzZUV2ZW50IHBvc2l0aW9uICAKPGJyPjYwNjA3OiAgaW5jb25zaXN0ZW50IEFQSSBpbiBGb250RGF0YSAgCjxicj42MDcwNDogIExvbmcgbWVudSBpdGVtIGxhYmVscyBjdXQgb2ZmICAKPGJyPjYwODkzOiAgWzY0XSBOUEUgb24gc3RhcnR1cCAgCjxicj42MDkxMzogIFN0eWxlZFRleHQgc2hvd3MgbGluZXMgd2hlbiBtdWxpdHBsZSBsaW5lcyBhcmUgc2VsZWN0ZWQgIAo8YnI+NjA5Mzc6ICBIaXR0aW5nIEVudGVyIHdoZW4gYSBjb21ib2JveCBpcyBvcGVuIGNhbiBpbnZva2UgZGVmYXVsdCBidXR0b24gIAo8YnI+NjA5Njk6ICBbYnJvd3Nlcl0gY2xpY2tpbmcgbGluayB0byBQREYgY3Jhc2hlcyBWTSAgCjxicj42MTEwOTogIFdpZGdldCBpcyBkaXNwb3NlZCBlcnJvciBkaXNwb3Npbmcgc2hlbGwgIAo8YnI+NjEyMzk6ICBUYWJsZUl0ZW0gTlBFICAKPGJyPjYxMzM3OiAgRGlhbG9ncyByZXNpemUgd2hlbiBtb3ZlZCBvbiBTb2xhcmlzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1MCAtIFR1ZXNkYXkgTWF5IDQsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+Ck5ldyBhY2Nlc3NpYmlsaXR5IHN0YXRlIGFuZCByb2xlIGNvbnN0YW50cyBBQ0MuU1RBVEVfTElOS0VEIGFuZCBST0xFX0xJTksuCjxicj5TdHlsZVJhbmdlIG5vdyBhY2NlcHRzIFNXVC5JVEFMSUMuCjxicj5DVGFiRm9sZGVyLk1JTl9UQUJfV0lEVEggaXMgZGVwcmVjYXRlZCBhbmQgcmVwbGFjZWQgYnkgQ1RhYkZvbGRlci5zZXRNaW5pbXVtQ2hhcmFjdGVycwo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1ODc6ICBTdHlsZWRUZXh0IC0gc3VwcG9ydCBpdGFsaWMgZm9udHMgYW5kIGl0YWxpYyBmb250IHN0eWxlICgxRzYwQzRYKSAgCjxicj4xMDg0NjogIFRhYiB0aXRsZXMgbm90IHJlYWQgYnkgSkFXUyAgCjxicj4yMTc3MTogIEFjY2Vzc2liaWxpdHkgZm9yIEJ1dHRvbnMgaWdub3JlZCBpbiBKQVdTICAKPGJyPjI1NjI5OiAgTmVlZCBTVEFURV9TWVNURU1fTElOS0VEIG1hcHBlZCB0byBvbmUgb2YgdGhlIHN0YXRlcyBpbiBBQ0MuICAKPGJyPjQxODg3OiAgW2Jyb3dzZXJdIE1hYyAtIEhUTUwgQnJvd3NlciB3aWRnZXQgLSBpbnZlc3RpZ2F0ZSBTYWZhcmkgYnJvd3NlciAgCjxicj40MjI2NDogIFtPdXRsaW5lXSBTaG93IE91dGxpbmUgcG9wdXAgdmVyeSBzbG93ICAKPGJyPjQ0MDA4OiAgW2Jyb3dzZXJdIEJyb3dzZXIgY29tcG9uZW50IGdyYWJzIGZvY3VzIHdoZW4gbG9hZGVkLiAgCjxicj41MDUyNDogIFJDUDogQ1RhYkZvbGRlciB0cnVuY2F0ZWQgdGFicyBzaG91bGQgYXBwZWFyIGFzIHRvb2x0aXAgIAo8YnI+NTE2NzY6ICBOZXcgTG9vayBDVGFiRm9sZGVyIG1lbnUgZG9lcyBub3Qgc3RheSBvcGVuICAKPGJyPjUyMDg3OiAgbm90IHNob3dpbmcgY2xvc2UgYnV0dG9uIG1ha2VzIGl0IGVhc3kgdG8gY2xvc2UgdGFicyBhY2NpZGVudGFsbHkgIAo8YnI+NTI0ODI6ICBbTmV3IExvb2tdIGJsYWNrIGJveCBhcm91bmQgdmlldyB0YWIgbGFiZWxzICAKPGJyPjUyNDg5OiAgQ1RhYkZvbGRlciBzZWxlY3RlZCB0YWIgbm90IHByb3Blcmx5IHJlbmRlcmVkICAKPGJyPjUyNTkzOiAgQ1RhYkZvbGRlci5zZXRUYWJIZWlnaHQgYW5kIHBhaW50IHByb2JsZW0gIAo8YnI+NTI4Mzc6ICBbRWRpdG9yIE1nbXRdIENsb3NpbmcgYW4gZWRpdG9yIHdoZW4gdXNpbmcgbXVsdGkgdGFicyBkb2VzIG5vdCBhbHdheXMgcmVkcmF3IHByb3Blcmx5ICAKPGJyPjUyOTU4OiAgVGFiRm9sZGVyLCBuZXcgbG9vayBkcmF3cyBkb3R0ZWQgc2VsZWN0ZWQgIAo8YnI+NTQ1NzU6IENUYWJGb2xkZXI6IFNlbGVjdGluZyB0YWJzIHNob3VsZCBub3QgYWZmZWN0IHdoZXRoZXIgY2hldnJvbiBpcyBzaG93biAoc2hvdWxkIHVzZSBjb25zdGFudCBzcGFjZSkKPGJyPjU0NTkxOiAgQ1RhYkZvbGRlcjogc2NyZWVuIGNoZWVzZSAgCjxicj41NTI0NTogIENUYWJGb2xkZXIgZG9lcyBub3QgZ2l2ZSBhdmFpbGFibGUgc3BhY2UgdG8gdGFiIGVhcmx5IGVub3VnaCAgCjxicj41NjQ3MjogIFtGb250L0NvbG91cl0gQWN0aXZlIHBhcnQgZm9yZWdyb3VuZCBvbiB3aGl0ZSBwb3Zva2VzIG5hc3R5IGxvb2tpbmcgY2xvc2Ugd2lkZ2V0cyAgCjxicj41NjUzNTogIFtXb3JrYmVuY2hdIE5vIHNlcGFyYXRvciBiZXR3ZWVuIHBhcnQgdHJpbSBhbmQgaXRzIGNvbnRlbnQgaXMgZGlmZmljdWx0IG9uIHRoZSBleWVzICAKPGJyPjU4MjcyOiAgQklESTogVGhlIEMvIEMrKyBlZGl0b3IgZG9lc24ndCBwcmVzZXJ2ZSB0aGUga2V5Ym9hcmQgbGFuZ3VhZ2UgYWZ0ZXIgcHJlc3Npbmcgc2FwY2UgYmFyICAKPGJyPjU4NzA0OiAgQ0Jhbm5lciBjb21wdXRlc2l6ZSBzZWVtcyB3cm9uZyB3aGVuIG5vIGNvbnRyb2wgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSAgCjxicj41ODg0MzogIFRhYmxlQ3Vyc29yIGV4YW1wbGUgaW4gSmF2YWRvYyBkb2Vzbid0IHdvcmsgb24gR1RLISAgCjxicj41OTUyNDogIEV2YWx1YXRpb24gcG9wLXVwIGtleWJpbmRpbmdzIGFyZSBicm9rZW4gIAo8YnI+NTk4NjE6ICBhc3luY0V4ZWMgcnVubmFibGVzIG5vdCBydW4gdW50aWwgZHJhZyBjb21wbGV0ZSBpbiBXaW5kb3dzICAKPGJyPjYwMTI3OiAgW1Byb3BlcnRpZXNWaWV3XSBnYXJiYWdlIGluIHRoZSBwcm9wZXJ0aWVzIHZpZXcgIAo8YnI+NjAzMzQ6ICBDYW4ndCBmb3JjZSBmb2N1cyB0byBhIHNoZWxsIChCQkFXVCkgIAo8YnI+NjA0OTI6ICBbYnJvd3Nlcl0gc2FmYXJpIC0gMiBicm93c2VycyBvbiBkaWZmZXJlbnQgdGFiIGl0ZW1zIGluIHNhbWUgdGFiIGZvbGRlciBvdmVybGFwICAKPGJyPjYwNjg2OiAgUHJvZ3JhbS5oYXNoQ29kZSgpIHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiB1bmRlciBsaW51eCB3aXRoIGdub21lICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0OSAtIFR1ZXNkYXkgQXByaWwgMjcsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzI1MjQ6ICBDb29sQmFyIENsaXBzICdydW4nIGljb24gIAo8YnI+Mzc3ODU6ICBjdHJsK2RlbGV0ZSBudWtlcyBub24tYWxwaGFudW0gY2hhcnMgIAo8YnI+NDM3Njk6ICBFY2xpcHNlIGNyYXNoZXMgd2hlbiBsb2FkaW5nIHdlYiBwYWdlIHdpdGggYXBwbGV0IGluIE9MRSBCcm93c2VyIHZpZXcgIAo8YnI+NDc5Mzk6ICBbYnJvd3Nlcl0gRXhwb3NlIG5hdGl2ZSBtZW51cyBpbiBXZWJCcm93c2VyICAKPGJyPjUxNjgyOiAgdXBkYXRlIChjdXN0b20pY29udHJvbCBleGFtcGxlIHRvIHBlcm1pdCBzZXR0aW5nIGZvbnQgb24gc2luZ2xlIGl0ZW0gIAo8YnI+NTE3Mjc6ICBTV1RfQVdUJ3MgdXNlIG9mIGVtYmVkZGVkRnJhbWUgZG9lcyBub3QgYWxsb3cgcmVxdWlyZWQgc3ViY2xhc3Npbmcgb2YgdGhlIGVtYmVkZGVkIEZyYW1lICAKPGJyPjUzNTA2OiAgUHJvZ3JhbS5nZXRQcm9ncmFtKCkgRG9lcyBOb3QgR2V0IERlZmF1bHQgQ29tbWFuZCAgCjxicj41NTYyNTogIENvbXBpbGluZyBTV1Qgb24gdG9wIG9mIEdUSyAyLjQuMCAgCjxicj41NTk1NjogIFtEeW5hbWljVUldIFBlcnNwZWN0aXZlIGRlbGV0ZWQgb25seSBhZnRlciBXb3JrYmVuY2ggcmVzdGFydCAgCjxicj41NjEyNjogIFN0eWxlZFRleHQgYmFja2dyb3VuZCBoaWdobGlnaHRpbmcgZG9lc24ndCB3b3JrICAKPGJyPjU2Mzc2OiAgW0VkaXRvck1nbXRdIEltbW9ydGFsIGVkaXRvciB0YWIgdG9vbHRpcHMgIAo8YnI+NTcwNzk6ICBbaW50ZXJvcF0gU1dUX0FXVCBjYXVzZXMgSlZNIGNyYXNoICAKPGJyPjU3MTQzOiAgRmFzdCB2aWV3IGFuaW1hdGUgdHJhbnNpdGlvbiBiYWQgb24gTGludXggIAo8YnI+NTcyMjU6ICBbYnJvd3Nlcl0gU1dUIEJyb3dzZXIgV2lkZ2V0IENyYXNoZXMgV29ya2JlbmNoIG9uIFhQIHdoZW4gbG9hZGluZyB0aGUgU2hvY2t3YXZlIFBsdWctaW4gIAo8YnI+NTczODA6ICBFeGNlc3MgY2xpcHBpbmcvZGlydHkgYXJlYSBmb3IgVGFibGUgUGFpbnRMaXN0ZW5lcidzIHBhaW50Q29udHJvbChQYWludEV2ZW50KSAgCjxicj41NzU2MjogIFtXb3JrYmVuY2hdIERCQ1M6IFdpbmRvdyByZXNpemluZyBkb2VzIG5vdCB3b3JrIHByb3Blcmx5ICAKPGJyPjU4MDczOiAgVGFibGUuamF2YSBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uOiAgCjxicj41ODMwODogIFNXVF9BV1QgLSBFbWJlZGRlZCBKU3BsaXRQYW5lIHJlc2l6YWJsZSBhcnJvd3MgIAo8YnI+NTg1NzU6ICBkcmF3UmVjdGFuZ2xlcyBpbiBUcmFja2VyIGNhdXNlcyBtaXNzZWQgbW91c2UgZXZlbnRzICAKPGJyPjU4NjM4OiAgUGVybWl0IHRvIGhhdmUgc3luY2hyb25vdXMgZGlzcGxheSB0byBoZWxwIGRlYnVnZ2luZyAgCjxicj41ODczMjogIENvb2xiYXIgb24gTGludXgtR1RLIHNob3VsZCBkcmF3IG5hdGl2ZSBoYW5kbGVzICAKPGJyPjU4ODUxOiAgV2hlbiBzaGVsbCBpcyBjcmVhdGVkIHdpdGggU1dULk5PX1RSSU0sIHdpbmRvd3MgZG9lcyBub3Qgc2hvdyBpdCBvbiB0YXNrIGJhciAgCjxicj41OTA1MTogIGZpbGxHcmFkaWVudFJlY3RhbmdsZSBkb2Vzbid0IHdvcmsgd2l0aCBYT1JNb2RlIG9uIFdpbmRvd3MgIAo8YnI+NTkyNzk6ICBJdGVtLnNldFRleHQoKSBpbXBsLiBkb2Vzbid0IGZvbGxvdyBKYXZhRG9jICAKPGJyPjU5NDI0OiAgQklESTogbGV2ZWwgb2YgdGhlIGZpcnN0IGRpcmVjdGlvbmFsIHJ1biBpcyBuZXZlciBkZXRlY3RlZCAgCjxicj41OTQ3MjogIEVjbGlwc2Ugc3BsYXNoIHNjcmVlbiBsYWJlbCBpcyAiU2lsZW5pbyIgIAo8YnI+NTk2MTU6ICBFbXB0eSBzcGFjZSBiZWZvcmUgaGFuZGxlIGluIGEgY29vbGJhciAgCjxicj41OTcwNzogIFN0eWxlZFRleHQgaXMgbm90IHNldHRpbmcgdGhlIE9TIGJhY2tncm91bmQgIAo8YnI+NTk4NzI6ICBEb2N1bWVudGF0aW9uIGZpeCBmb3IgUm93TGF5b3V0ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0OCAtIFR1ZXNkYXkgQXByaWwgMjAsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkNvb2xCYXIgbm93IGhhcyBTV1QuRkxBVCBzdHlsZS4KPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IkJyZWFraW5nIENoYW5nZXMiPjwvYT5CcmVha2luZyBDaGFuZ2VzPC9oMz4KPGJsb2NrcXVvdGU+CkNUYWJJdGVtIG5vIGxvbmdlciBzdXBwb3J0cyBzZXQvZ2V0Rm9yZWdyb3VuZCBhbmQgc2V0L2dldEJhY2tncm91bmQuCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjAxODY6ICBDb3B5cmlnaHQgZGF0ZXMgc3RpbGwgYXJlIDIwMDEgIAo8YnI+MjI1ODk6ICBHVEs6IFN0eWxlZFRleHQgd2lkZ2V0IGlzIHNsb3cgIAo8YnI+MjM1NjY6ICBBY2Nlc3NpYmlsaXR5IC0gdG9vbGJhciBub3QgYWNjZXNzaWJsZSBieSBrZXlib2FyZCAgCjxicj40MTA5MDogIFRIQUkvVklFVDogVGhlIGJlaGF2aW9yIG9mIHRleHQgZWRpdGluZyBmdW5jdGlvbnMgYXJlIG5vdCBjb3JyZWN0LiAgCjxicj40OTEzMzogIFNXVF9BV1QgQVBJIGNsYXNzIHVuZG9jdW1lbnRlZCAgCjxicj41MzEwNzogIFNsaWRlciBjcmFzaGVzIHdoZW4gaG9va2luZyByZXNpemUgY2FsbGJhY2sgIAo8YnI+NTM4MTQ6ICB2aWV3cyBhcmUgYmxhbmsgd2hlbiBkZXRhY2hlZCBhdXRvbWF0aWNseSBieSBzd2l0Y2hpbmcgcGVyc3BlY3RpdmUgIAo8YnI+NTQwNTE6ICBGb250IGJhc2VsaW5lcyBkb24ndCBsaW5lIHVwIGluIEphdmEgZWRpdG9yICAKPGJyPjU0MjI1OiAgQ2hlY2tib3ggVGFibGVJdGVtcyBkb24ndCBob25vciBiYWNrZ3JvdW5kIGNvbG9yIG5lYXIgY2hlY2tib3ggIAo8YnI+NTQ5ODk6ICBbQ2VsbEVkaXRvcnNdIFtyZWdyZXNzaW9uXSBDb21ib0JveENlbGxFZGl0b3IgZG9lcyBub3QgZmlyZSB2YWx1ZSBhcHBsaWVkICAKPGJyPjU3MDAzOiAgREJDUzpDb3B5L1Bhc3RlIG9yIGlucHV0IERCQ1MgZGlzcGxheSBpbmNvcnJlY3RseSBpbiBwcm9qZWN0IGZpbGUgIAo8YnI+NTcwMDQ6ICBEQkNTOkNhbiBub3QgY29weS9QYXN0ZSBvciBpbnB1dCBEQkNTIGRhdGEgaW4gcHJvamVjdCBmaWxlICAKPGJyPjU3NDI2OiAgQ2xpcHBlZCBpdGVtcyB3aGVuIHNldHRpbmcgYSB0cmVlIGl0ZW0gdG8gdXNlIGEgYm9sZCBmb250ICAKPGJyPjU3NjI3OiAgQ2FuJ3QgY2xpY2sgaW4gQ29udGVudCBBc3Npc3Qgd2luZG93IG9mIE5ldyBDbGFzcyB3aXphcmQgIAo8YnI+NTc5NDg6ICBbYnJvd3Nlcl0gaG93IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYSBjYWxsIHRvIHNldFRleHQgYW5kIGEgaHlwZXJsaW5rIGFjdGl2YXRpb24gIAo8YnI+NTgwNzE6ICBJQ08gaW1hZ2VzIHBhaW50ZWQgbm90IGNvcnJlY3RseSB3aGVuIHNtYWxsZXIgdGhhbiAxN3gxNyBwaXhlbHMgIAo8YnI+NTgwOTM6ICBzd3QtZ3RrOiB1c2VzIH4xMDAlIENQVSB3aGlsZSBkcmF3aW5nIHVzaW5nIGZpbGxHcmFkaWVudFJlY3RhbmdsZSgpICAKPGJyPjU4MjQzOiAgW2Jyb3dzZXJdIGhvdmVyIG1lc3NhZ2VzIGRvbid0IHNob3cgdXAgaW4gbW96aWxsYSAgCjxicj41ODM0NjogIFticm93c2VyXSBCcm93c2VyIG5vdCB3b3JraW5nIHdpdGggZGVmYXVsdCBSSCBFTDMgdXBkYXRlIDEgIAo8YnI+NTg1Njk6ICBSZWdyZXNzaW9uOiBTdHlsZWRUZXh0IGRvZXMgbm90IHdyYXAgY29ycmVjdGx5ICAKPGJyPjU4NzU2OiAgVGFibGVzICYgSW1hZ2VzIHJlZnJlc2ggcHJvYmxlbSAgCjxicj41OTEwNjogIFNXVCBTbmlwcGV0IDEzOSBmYWlscyB0byBjb21waWxlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0NyAtIFR1ZXNkYXkgQXByaWwgMTMsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQyNTogIExpc3QoU0lOR0xFKSAtIHNldFNlbGVjdGlvbihpbnQsIGludCkgZG9lc24ndCBkZXNlbGVjdCB3aGVuIHN0YXJ0PmVuZCAoMUZDSEpNUSkgIAo8YnI+NDg4NDk6ICBLZXlib2FyZCBldmVudHMgaWdub3JlZCBpbiBJbXBvcnQgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBkaWFsb2cgIAo8YnI+NTA2NTc6ICBDYW4ndCBpbnB1dCAyIGJ5dGVzIGNoYXJhY3RlciBUbyBjb21ibyBib3ggIAo8YnI+NTYzOTA6ICBFWENFUFRJT05fQUNDRVNTX1ZJT0xBVElPTiAgCjxicj41NjgyOTogIENCYW5uZXIgbm90IHNpemVkIGNvcnJlY3RseSBhZnRlciBjb29sYmFyIHdyYXBzICAKPGJyPjU2OTE1OiAgQ2hpbmVzZSBjaGFyYWN0ZXJzIG5vdCByZW5kZXJlZCBpbiBTdHlsZWRUZXh0ICAKPGJyPjU3MDk5OiAgR1RLOiBUZXh0IHdpZGdldCBvZiBzdHlsZSBNVUxUSSBkb2VzIG5vdCBzZW5kIG1vdXNlIHRyYWNrIGV2ZW50cyBpZiBhZGRlZCB0byByZWFsaXplZCBTaGVsbCAoQkJBV1QpICAKPGJyPjU3MTgyOiAgW2Jyb3dzZXJdIEJyb3dzZXIgZGlzcGxheXMgYSBibGFuayBwYWdlIGlmIGNoYXJhY3RlciBlbmNvZGluZyBpcyBzcGVjaWZpZWQgKExpbnV4IEdUSykgIAo8YnI+NTc2NDc6ICBlcnJhbnQgT05fVE9QIHwgU1lTVEVNX01PREFMIFNoZWxsIGJlaGF2aW91ciBpZiB0b29sdGlwdGV4dCBpcyBzZXQgb24gYW55IGNvbnRyb2wgIAo8YnI+NTc4NzY6ICBDb25zdHJ1Y3RvciBmb3IgRm9udCBoYXMgd3JvbmctbmFtZWQgYXJndW1lbnQ7IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHVzZWQgIAo8YnI+NTc4ODQ6ICBKYXZhZG9jIG9uIFRleHQgbWlzc2luZyBwb3NzaWJsZSBzdHlsZSAgCjxicj41ODE1NjogIFVuaGFuZGxlZCBldmVudCBsb29wIGV4Y2VwdGlvbiAoV2lkZ2V0IGlzIGRpc3Bvc2VkKSB3aGVuIHVzaW5nICJPcGVuIFR5cGUgSGllcmFyY2h5IiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDYgLSBUdWVzZGF5IEFwcmlsIDYsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjU2NDY6ICBbbGF1bmNoZXJdIEFmdGVyIHJlYnJhbmRpbmcsICJFY2xpcHNlIiBzaG93cyB1cCBpbiBXaW5kb3dzIHRvb2xiYXIgZHVyaW5nIGxhdW5jaC4gIAo8YnI+Mjc2OTY6ICBEQ1IgLSBuZWVkIHRvIHNldCBmb250IGFuZCBjb2xvciBmb3IgYSBUYWJsZUl0ZW0ncyBpbmRpdmlkdWFsIGNlbGxzICAKPGJyPjM3MDUyOiAgU2hlbGxzIGFzc3VtaW5nIFNXVC5SRVNJWkUgb24gR1RLIGFuZCBNb3RpZiAoQkJBV1QpICAKPGJyPjQwNTIxOiAgW2xhdW5jaGVyXSBMYXVuY2hlciBlcnJvciBtZXNzYWdlcyBjYW5ub3QgYmUgcmVicmFuZGVkICAKPGJyPjQyMDMyOiAgW2Jyb3dzZXJdIEJyb3dzZXIgTW96aWxsYSBiaW5kaW5nIC0gcHJvYmxlbSBzdWJtaXR0aW5nIGZvcm0gIAo8YnI+NDIzMTM6ICBTV1QuQ0VOVEVSIGFuZCBTV1QuUklHSFQgZG9uJ3Qgd29yayB3aXRoIFRleHQgIAo8YnI+NTQzNDE6ICBbYnJvd3Nlcl0gc3d0LmJyb3dzZXIuQnJvd3NlcjsgYnV0dG9ucyBpbiBodG1sIGRvZXMgbm90IHdvcmsgb24gbGludXgvZ3RrICAKPGJyPjU1NTQxOiAgU3R5bGVkVGV4dCAtIEJpZGkgc2VnbWVudHMgTGlzdGVuZXIgaXMgYnJva2VuICAKPGJyPjU1NzAyOiAgW2Jyb3dzZXJdIEludHJvIHBhZ2UgZG9lcyBub3Qgc2hvdyBpbWFnZXMgb24gTGludXggIAo8YnI+NTU4MDY6ICBbNjRdIGNyYXNoIG9uIHN0YXJ0dXAgd2hlbiB1c2luZyBqaXQgb24gQU1ENjQgIAo8YnI+NTU5MjY6ICBbNjRdIFtNOF0gQU1ENjQgSTIwMDQwMzI0IGJ1aWxkIGNhbm5vdCB3b3JrICh1bnNhdGlzZmllZCBsaW5rIGVycnJvKSAgCjxicj41NjA4OTogIFttaXNjXSBFeHRlbmQgc2VsZWN0aW9uIGNhdXNpbmcgaG9yaXpvbnRhbCBzY3JvbGwgaXMgc2xvdyAgCjxicj41NjE0OTogIGNvb2xiYXIgZG9lcyBub3QgZmlsbCB2ZXJ0aWNhbCBzcGFjZSAgCjxicj41NjMxNTogIHBlcmZvcm1hbmNlIGJhZCB3aGVuIG1vdmluZyBsaW5lcyAgCjxicj41NjY2NzogIE1pbmltaXphdGlvbiBvZiB0b3AgU2hlbGwgd2lkZ2V0cyBpbXBvc3NpYmxlIChTV1QuTUlOICYgU1dULk5PTkUpIG9uIFBvY2tldFBDIChCQkFXVCkgIAo8YnI+NTY3OTU6ICBOUEUgb3BlbmluZyBxdWljayBvdXRsaW5lL2hpZXJhcmNoeSAgCjxicj41Njc5OTogIE5QRSBpbiBXTV9LRVlET1dOICAKPGJyPjU2OTE4OiAgUHJvYmxlbXMgZGlzcG9zaW5nIFRyYXlJdGVtICAKPGJyPjU2OTk5OiAgW0tleUJpbmRpbmdzXSBSZWdyZXNzaW9uOiBBbHQrTnVtcGFkIGtleXN0cm9rZXMgYnJva2VuICAKPGJyPjU3MTY1OiAgZWNsaXBzZSBkb2VzIG5vdCBzdGFydCB3aGVuIHVzaW5nIGxlc3N0aWYsIEZBUSBpcyB3cm9uZyAgCjxicj41NzI5NjogIEJpZGlVdGlsIHN0YXRpYyB2YXIgcmV0YWlucyByZWZlcmVuY2VzIHRvIHJ1bm5hYmxlcyBmcm9tIFN0eWxlZFRleHQgIAo8YnI+NTczOTU6ICBiYWNrc3BhY2UgaW4gdGV4dGVkaXRvcnMgLT4gZG91YmxlIGJhY2tzcGFjZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDUgLSBUdWVzZGF5IE1hcmNoIDMwLCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1MDI1OiAgaW1wbGVtZW50IGphdmEuYXd0LlJvYm90IGZvciBTV1QgIAo8YnI+NTE3MTk6ICBOZWVkIHRvIHN1cHByZXNzICJ1bnRpdGxlZCB3aW5kb3ciIG9uIEdUSyAgCjxicj41MzI3NDogIFtTV1QgRXhhbXBsZXNdIEltYWdlIEFuYWx5emVyIGNyYXNoZWQgd2hlbiB0cmllZCB0byBzYXZlIGltYWdlcyBhcyBQTkdzIGFuZCBJQ09zICAKPGJyPjUzOTc4OiAgbWFuaWZlc3QubWYgb2Ygb3JnLmVjbGlwc2Uuc3d0IGlzIG5vdCBjb25zaXN0ZW50IHdpdGggcGx1Z2luLnhtbCAgCjxicj41NTUyMjogIERpc3BsYXkucG9zdCAtIHN1cHBvcnQvaW52ZXN0aWdhdGUgbW91c2UgYnV0dG9uIDIgYW5kIDMgIAo8YnI+NTU1MjU6ICBEaXNwbGF5LnBvc3QgLSBkb24ndCBzZW5kIG1vdXNlIGRvd24vdXAgd2hlbiBkb2luZyBtb3VzZW1vdmUgIAo8YnI+NTU1NTY6ICBNYWNPUyAxMC4yLnggKEphZ3VhcikgaGFzIG5vIHN0cmNhc2VzdHIgZnVuY3Rpb24gIAo8YnI+NTU1NjE6ICBEaXNwbGF5LnBvc3QgLSBoYW5nIHdoZW4gZG9pbmcgYSBtb3VzZWRvd24gIAo8YnI+NTU3Mzg6ICBuZXh0IHdvcmQgYWN0aW9uIGJyb2tlbiBvbiB3aW4yMDAwICAKPGJyPjU1NzU2OiAgRG91YmxlIGNsaWNrIGlzIGlnbm9yZWQgb24gcHJvZ3Jlc3MgaW5kaWNhdG9ycyAgCjxicj41NTg0OTogIEtleWJvYXJkIHNob3J0Y3V0cyBkb24ndCB3b3JrIGluIG9sZCB3b3Jrc3BhY2UgIAo8YnI+NTU4OTc6ICBTdHlsZWRUZXh0IGRvZXNuJ3QgY29tcHV0ZSBwcmVmZXJyZWQgc2l6ZSBwcm9wZXJseSAgCjxicj41NTkxMzogIFN0eWxlZCBUZXh0IGRyYXdzIG9uIHRvcCBvZiBpdHNlbGYgIAo8YnI+NTU5MTc6ICBFeHRyYSBsaWJyYXJ5IGRlcGVuZGVuY3kgaW4gRWNsaXBzZSAyLjEuMiBHVEsgbGF1bmNoZXIgIAo8YnI+NTU5MjA6ICBWaWV3IHByZXNlbnRhdGlvbiB2aXN1YWwgcHJvYmxlbXMgIAo8YnI+NTU5Mzc6ICBJbnRyb2R1Y3Rpb24gcGFnZSB3aXphcmQgbm90IHByb3Blcmx5IGluc3RhbGxpbmcgU1dUIGV4YW1wbGVzICAKPGJyPjU1OTY3OiAgU1dUIHNob3VsZCBiZSBhIHNpbmdsZXRvbiBidW5kbGUgIAo8YnI+NTU5ODA6ICBkaXNwbGF5LnBvc3QoKSBkb2VzIG5vdCBoYW5kbGUgdXBwZXJjYXNlIGNoYXJhY3RlcnMgIAo8YnI+NTYyNDU6ICBzdWJ0aXRsZSB0ZXh0IGRvZXMgbm90IGZpbGwgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UgIAo8YnI+NTYzNjY6ICBUb29sdGlwIGZvciBDVGFiRm9sZGVyIHNob3dzIHVwIG9uIHdyb25nIG1vbml0b3IgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDQ0IC0gVHVlc2RheSBNYXJjaCAyMywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KRm9yIG5ldyBBUEkgcmVsZWFzZWQgaW4gdGhlIGxhc3QgZmV3IGJ1aWxkcywgc2VlIHRoZSAiTmV3ICYgTm90ZXdvcnRoeSIgbGluawpvbiB0aGUgRG93bmxvYWRzIHBhZ2UgZm9yIDMuME04IGFmdGVyIE1hcmNoIDI2dGgsIDIwMDQuCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUwNTQ6ICBPd25lckRhdGEgb3IgInZpcnR1YWwiIFRhYmxlIHN1cHBvcnQgIAo8YnI+MjE2NTk6ICBGcmFtZXMgZHJhd24gaW4gaW5hcHByb3ByaWF0ZSBwbGFjZXMgIAo8YnI+MjMzMzU6ICBPZGQgbGluZXMgYXJvdW5kIGJ1dHRvbnMgIAo8YnI+MzA4NDg6ICBBUEkgZm9yIFRhYmxlI3Nob3dDb2x1bW4oKSBsaWtlIFRhYmxlI3Nob3dJdGVtKCkgIAo8YnI+NDA0MjA6ICBTaGVsbCB3aXRoIHN0eWxlIE5PX1RSSU0gc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIFdpbmRvdyBNYW5hZ2VyIHRhc2sgYmFyICAKPGJyPjQwNjYzOiAgRHJhZ2dpbmcgdmlld3MgaXMgbm90IHN5bmNocm9uaXNlZCB3aXRoIG1vdXNlIHBvc2l0aW9uICAKPGJyPjQ3NjM4OiAgTlBFIGluIGdldFBhcmVudEJhY2tncm91bmQuICAKPGJyPjUwMzU5OiAgUHJvYmxlbSB3aXRoIHZlcnRpY2FsIHRvb2xiYXJzIGFuZCBHVEsrIDIuMy54ICAKPGJyPjUxNTgyOiAgTmVlZCB0aGUgYWJpbGl0eSB0byBkZXRlcm1pbmUgIkhpZ2ggQ29udHJhc3QiIG1vZGUgIAo8YnI+NTQyMzE6ICBDVGFiRm9sZGVyIG5vdyBhZGRzIG1hcmdpbiBhcm91bmQgcGFnZSBjb250cm9scyAgCjxicj41NDI5MTogIG5ldyBUYXNrVHJheSB3aWRnZXQgZG9lcyBub3QgY29tcGlsZSBvbiBXaW5kb3dzIENFIGFuZCBHVEs2NCAgCjxicj41NDM4NjogIFN0cmF5IHBpeGVsIGluIFNXVCB0YWJsZSAgCjxicj41NDg3ODogIERyb3AgZG93biBjb29sYmFyL3Rvb2xiYXIgbWVudXMgYW5kIGNvbWJvIGJveGVzIHRha2UgdG9vIG1hbnkgY2xpY2tzICAKPGJyPjU0OTkwOiAgQUxUK0RPV04gZG9lcyBub3QgZHJvcCBkb3duIENDb21ibyBsaXN0ICAKPGJyPjU1MTEzOiAgSG92ZXIgdGV4dCBzdHVjayBhZnRlciBkcmFnIGluIENUYWJGb2xkZXIgIAo8YnI+NTUxMzM6ICBUYWJsZS5qYXZhOiBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHdpdGggU1dULlZJUlRVQUwgIAo8YnI+NTUxODc6ICBzd3QgdjMwNDNiIGRvZXMgbm90IHdvcmsgdW5kZXIgZ3RrIDIuMC42ICAKPGJyPjU1MzAwOiAgU3R5bGVkVGV4dCAtIHNpbmdsZSBhbmQgYm9yZGVyIGNhdXNlIGNoZWVzZSB3aGVuIHJlc2l6ZSAgCjxicj41NTMwNzogIFZpZXdGb3JtJ3MgdGl0bGUgYXJlYSBjb250cm9scyBhcmUgb2ZmIGJ5IG9uZSBwaXhlbCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDMgLSBUdWVzZGF5IE1hcmNoIDE2LCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ4MDk6ICBTV1QgQ3Vyc29yIFNvdXJjZSBhbmQgbWFzayBhcmUgZmxpcC1mbG9wcGVkICgxR0o4MEZaKSAgCjxicj42NTkzOiAgRG9jOiBrbm93aW5nIHRoZSBjb29yZGluYXRlIHNwYWNlIGZvciBTV1QgIAo8YnI+MjUzMzY6ICBDb29sQmFyIC0gY29tcHV0ZVNpemUgZG8gbm90IHJlc3BlY3QgYXV0b2JyZWFrcyBbRW11bGF0ZWRdICAKPGJyPjMwODM0OiAgTWluaW1pemUgdG8gc3lzdGVtIHRyYXkgIAo8YnI+NDM4OTM6ICBTY3JvbGxpbmcgY29waWVzIHdyb25nIGJpdHMgIAo8YnI+NDk3Nzg6ICBJbWFnZXMgb24gTWVudUJhciBhcmUgbm90IGxpbmluZyB1cCB3aXRoIHRoaWVyIEhvdHN0b3AgIAo8YnI+NTAxNTE6ICBVc2luZyBTV1QuUklHSFQgb24gYSBUb29sQmFyIGxlYXZlcyBibGFuayBzcGFjZSAgCjxicj41Mjc4NTogIEVjbGlwc2UgMy4wTTcgZG9lc24ndCBydW4gb24gRmVkb3JhIENvcmUgMiB0ZXN0MSByZWxlYXNlLiAgCjxicj41MzQwMTogIFs2NF0ganVuaXQgdGVzdHMgZG9uJ3QgY29tcGlsZSAtIGNyYXNoZXMgIAo8YnI+NTM4Mzc6ICBXb3JrYmVuY2ggaGFuZ3MgdXAgd2hlbiBoaXR0aW5nIHNwYWNlIGtleSBvbiByZWFkb25seSBjb21iby4gIAo8YnI+NTQzNTg6ICBTaGVsbHMgZG9uJ3QgZmlyZSBtb3ZlIGV2ZW50IHdoZW4gbm90IHZpc2libGUgKEJCQVdUKSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDIgLSBUdWVzZGF5IE1hcmNoIDksIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTk2NTQ6ICBDb29sYmFyIC0gcmVzaXppbmcgd2luZG93IGNhbiBhZGQgcm93cyB0byBjb29sYmFycyAgCjxicj4zMjUzNzogIE1lbnUgdGV4dCBhbmQgYWNjZWxlcmF0b3IgdGV4dCBvdmVybGFwcGluZyAgCjxicj40MjAyMjogIE1uZW1vbmljIHRyYXZlcnNhbCBjYW5ub3QgYmUgc3VwcHJlc3NlZCAgCjxicj40NjM2OTogIGphdmFkb2Mgc2hvdWxkIGJlIHVwZGF0ZWQgZm9yIGJlaGF2aW9yIG9mIHNlbGVjdGluZyBtdWx0aXBsZSBpdGVtcyBpbiBhIHNpbmdsZSBzZWxlY3QgbGlzdCAgCjxicj41MTQ2NDogIGVjbGlwc2UuZXhlIHJldmlldy91cGRhdGVzICAKPGJyPjUxNTM3OiAgbmVlZCBhIHdheSB0byBwYXNzIGEgc3RyaW5nIHRvIHRoZSBsYXVuY2hlciAgCjxicj41MjUzNjogIFtTV1QgRXhhbXBsZXNdIFNldHRpbmcgdGhlIHN0eWxlIHRvIFNXVC5GTEFUIGhhcyBubyBlZmZlY3Qgb24gQnV0dG9ucyAgCjxicj41MjkzNTogIEVtdWxhdGVkIENvb2xiYXIgZG9lcyBub3Qgc3VwcG9ydCB3cmFwcGluZyAgCjxicj41Mjk1OTogIHNldEZvbnQoKSBpbiBUYWJsZVRyZWVJdGVtICAKPGJyPjUzMDE0OiAgTWVzc2FnZUJveCBvcGVucyBtb2RhbCBidXQgdW5wYXJlbnRlZCAgCjxicj41MzA0NTogIG5vIG1vcmUgaGFuZGxlcyEgIAo8YnI+NTMwNTc6ICBCcm93c2VyIHdpZGdldCBhbmQgZGlzcGxheSBvZiBzcGVjaWFsIGNoYXJzICAKPGJyPjUzMTQxOiAgSlZNIGNyYXNoIGF0IGVjbGlwc2UgZXhpdCAgCjxicj41MzIyMTogIFtTV1QgRXhhbXBsZXNdID8/P1NhdmUgQXM/Pz8/Pz8/IERpYWxvZyBvZiBJbWFnZSBBbmFseXplciBkb2VzIG5vdCBwcm92aWRlIHRoZSBjb3JyZWN0IGZpbGUgcGF0aCAgCjxicj41MzIzNjogIFNldHRpbmcgZm9udC9jb2xvciBvbiBhbiBpdGVtIHdoZW4gdGhlcmUgaXMgbm8gY2hhbmdlIHNob3VsZCBub3QgcmVkcmF3ICAKPGJyPjUzMzYxOiAgW0VkaXRvck1nbXRdIE5ldyBsb29rOiBlZGl0b3IgY2xvc2UgYnV0dG9uICh4KSBkb2VzIG5vdGhpbmcgc29tZXRpbWVzICAKPGJyPjUzMzg4OiAgWzY0XSBDcmFzaCBpbiBnX3NpZ25hbF9sb29rdXAgIAo8YnI+NTMzOTQ6ICBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gQ29sb3JEaWFsb2cgIAo8YnI+NTM0MTk6ICB2aWV3aW5nIHByZWZlcmVuY2UgcGFnZSBtYWtlcyBwcmVmZXJlbmNlcyB0cmVlIHVucmVzcG9uc2l2ZSAgCjxicj41MzQzMDogIEFkZGl0aW9uYWwgZml4ZXMgZm9yIHBvcnRpbmcgU1dUIHRvIDY0LWJpdCAgCjxicj41MzQ4NzogIFticm93c2VyXSBTdXplIDkgaW5zdGFsbHMgTW96aWxsYSBpbnRvIGRpZmZlcmVudCBmb2xkZXIgdGhhbiBSSCAgCjxicj41MzUxOTogIENoZWNrYm94VGFibGVWaWV3ZXIgZG9lcyBub3QgcmVjZWl2ZSBzZWxlY3Rpb24gZXZlbnRzICAKPGJyPjUzNTQ0OiAgW1ZpZXdlcnNdIENoZWNrYm94IFRhYmxlIFZpZXdlciBkb2VzIG5vdCBwcm92aWRlIHNlbGVjdGlvbiBjYWxsYmFja3Mgb24gYSBjaGVjayAgCjxicj41MzU0OTogIHJlbW92ZSBjdXN0b20gY29kZSBpbiBQcm9ncmFtIEdub21lICAKPGJyPjUzNTU2OiAgSW5kZXggb3V0IG9mIGJvdW5kcyByZXNpemluZyBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+NTM1NzA6ICBPcGVuaW5nIHRoZSBmaWxlIHR5cGUgYXNzb2NpYXRpb24gZGlhbG9nIHRvIHRoZSBleHRlcm5hbCBlZGl0b3JzIHZpZXcgY2F1c2VzIEVjbGlwc2UgdG8gY3Jhc2ggIAo8YnI+NTM2Mzg6ICBlY2xpcHNlIHN0YXJ0dXAgcHJvYmxlbSAgCjxicj41MzcyMzogIFByb2JsZW1zIHdpdGggc2V0Rm9udCgpIG9uIFRyZWVJdGVtICAKPGJyPjUzODMyOiAgVk0gQ3Jhc2ggcmVsZWF0ZWQgdG8gZm9jdXMgb3Igc2V0IGZvbnQgIAo8YnI+NTM4NTM6ICBTZWxlY3Rpb24gZXZlbnQgZm9yIGNoZWNrYm94IFRhYmxlIGlzIGJyb2tlbiAgCjxicj41Mzk5NTogIGphdmFfc3d0IGNyYXNoZXMgaWYgYXBwbGljYXRpb24gYnVuZGxlIGlzIG5hbWVkIC5BUFAgaW5zdGVhZCBvZiAuYXBwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0MSAtIFR1ZXNkYXkgTWFyY2ggMiwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KVGFibGUuc2V0SXRlbUNvdW50KCksIFNXVC5WSVJUVUFMIGFuZCBTV1QuU2V0RGF0YSBoYXZlIGJlZW4gYWRkZWQgYW5kCmltcGxlbWVudGVkIG9uIGFsbCBwbGF0Zm9ybXMgdG8gc3VwcG9ydCB0aGUgdmlydHVhbCBUYWJsZS4gIFRoaXMgZmVhdHVyZQppcyAidW5kZXIgY29uc3RydWN0aW9uIi4gIFVzZSBhdCB5b3VyIG93biByaXNrLgo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1NzU6ICBkZXNpcmUgZXhjZXB0aW9uIGNoZWNrcyBmb3IgaW5wdXRQcm9jL3dpbmRvd0NhbGxiYWNrICgxRzU1TzdQKSAgCjxicj4xNzY1OTogIEVjbGlwc2UgY3Jhc2hlcyB3aGVuIHN3aXRjaGluZyBFbmNvZGluZyB0byBVVEYtMTYgKGxpdHRsZSBlbmRpYW4pICAKPGJyPjIwMzY0OiAgU2xpZGVyIGNvbnRyb2wgZG9lcyBub3QgdGFrZSBmb2N1cyAgCjxicj4zOTg5MjogIFNXVCBlcnJvciB0aHJvd24gd2hlbiByZWZyZXNoaW5nIHRoZSBwcm9wZXJ0aWVzIHBhZ2UgIAo8YnI+NDU4NDU6ICBzY3JvbGxiYXJzIG9uIFNjcm9sbGluZ0dyYXBoaWNhbFZpZXdlciBzb21ldGltZXMgZG9lcyBub3Qgd29yayAgCjxicj40NTk0NTogIERyYXdpbmcgaXNzdWVzIHdpdGggU1dUIDIuMS4xIHVuZGVyIFBvY2tldFBDIDIwMDIgIAo8YnI+NDYxNTY6ICBFY2xpcHNlIGNyYXNoIHdpdGggS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgd2hlbiBjdXN0b21pemluZyBwZXJzcGVjdGl2ZSAgCjxicj40OTA4MjogIFVuc3VwcG9ydGVkIGNvbG9yIGRlcHRoIGRvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBpbiBMaW51eCBHVEsgIAo8YnI+NTIyOTU6ICBNb25vY2hyb21lIGJtcCBhbmQgaWNvIGltYWdlIGRhdGEsIGFuZCBpY29uIG1hc2tzIGFyZSBub3QgYWx3YXlzIGhhbmRsZSBjb3JyZWN0bHkgIAo8YnI+NTI3MzM6ICBEZWFkbG9jayBleHBhbmQgb2YgSEVBRCAgCjxicj41Mjg2MjogIFNQQUNFIGdldHMgaW5zZXJ0ZWQgaW50byBzdHlsZWR0ZXh0IHVzaW5nIHN5c3RlbSBtZW51ICAKPGJyPjUzMDYzOiAgQ2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEgTGFiZWwgZnJvbSBTV1QuU0hBRE9XX0lOIHRvIFNXVC5TSEFET1dfTk9ORSBkb2VzIG5vdCBtYWtlIGEgZGlmZmVyZW5jZSBpbiB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgTGFiZWwgIAo8YnI+NTMxMjg6ICBTaGVsbC5zZXRSZWdpb24oKSBzaG91bGQgY2hlY2sgaWYgcmVnaW9uIGlzIGRpc3Bvc2VkLi4uICAKPGJyPjUzNDQwOiAgY3JpdGljYWwgd2FybmluZ3Mgd2hlbiBydW5uaW5nIGpuaWdlbiB0b29sICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0MCAtIFR1ZXNkYXkgRmVicnVhcnkgMjQsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+ClBvaW50IE1lbnUuZ2V0U2l6ZSgpIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc4MTogIENhbm5vdCBkcmF3IHVuaWNvZGUgc3RyaW5nICAKPGJyPjM4NjQzOiAgVG9vbGJhciBjb21wdXRlU2l6ZSBzdG9wIHdvcmtpbmcgYWZ0ZXIgV01fU0VURk9OVCAgCjxicj4zODcxNDogIFRhYmxlIGFuZCB0YWJsZSBjdXJzb3IgYnVnZ3kgc2Nyb2xsaW5nLiBJdCBpcyBpbXBvc3NpYmxlIHRvIHVzZSBwcm9wZXJseSB0aGUgdGFibGUgd2lkZ2V0IHdoZW4gdGhlIHRhYmxlIGN1cnNvciBpcyBpbnZvbHZlZC4gIAo8YnI+NDI1NTQ6ICBEb3VibGUgaWNvbiBpbiB0aGUgZG9jayBvbiBPU1ggIAo8YnI+NDgzNDE6ICBDYW5ub3QgZ2V0IGhlaWdodCBvZiBNZW51IGFuZCBubyBjYXBhYmlsaXRpZXMgZm9yIHdvcmsgYXJvdW5kICAKPGJyPjUwMTA3OiAgU1dUIGRvZXMgbm90IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFnYWluc3QgQ0xEQyAoaS5lLiBqMm1lKSAgCjxicj41MTM3NDogIE5lZWQgTWVudUJhciB0byBzdXBwb3J0IEltYWdlcyBvbiBQb2NrZXRQQyAgCjxicj41MTY0NTogIEphdmEgY29yZSB3aGVuIHJ1bm5pbmcgZXZlbnQgbG9vcCBvbiB0aGUgU3VuICAKPGJyPjUxNjcxOiAgVGV4dCBub3QgcmVkcmF3biBvbiBuZXcgbG9vayBDVGFiRm9sZGVyICAKPGJyPjUxNzc3OiAgVGFibGVJdGVtLmdldEJvdW5kcyhpbnQpIHJldHVybnMgdGhlIHdyb25nIHZhbHVlcyB3aGVuIHRhYmxlIHNjcm9sbGVkICAKPGJyPjUyMDI0OiAgW05ld0xvb2tdIGN1cnZ5IGxpbmVzIGhhdmUgaW5jb25zaXN0ZW50IGxpbmUgd2lkdGggIAo8YnI+NTIyNDI6ICBOZXcgTG9vazogd2hpdGUgYmFuZGluZyBpbiB2aWV3IGFuZCBlZGl0b3IgdGFicyAgCjxicj41MjI1NTogIEZvdW5kIHNtYWxsIHByb2JsZW0gaW4gc25pcGV0cyBjb2RlICAKPGJyPjUyMzM1OiAgU25pcHBldDEwOC5odG1sIG1pc3NpbmcgY29kZSAgCjxicj41MjMzNzogIExaV0NvZGVjI21hc2tUYWJsZSBzaG91bGQgYmUgYSBzdGF0aWMgZmluYWwgZmllbGQgIAo8YnI+NTI1NDE6ICBbU1dUIEV4YW1wbGVzXSBDb29sQmFyIEJ1dHRvbnMgd2l0aCBhIGRyb3Bkb3duIG1lbnUgZG8gbm90IGJlaGF2ZSBjb3JyZWN0bHkgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDM5IC0gVHVlc2RheSBGZWJydWFyeSAxNywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8cD5DVGFiRm9sZGVyIGhhcyBiZWVuIG1vZGlmaWVkIHRvIGRpc3BsYXkgdGhlIG5ldyBsb29rIGZvciAzLjAuICAKUGxlYXNlIG5vdGUgdGhhdCB0aGUgbmV3IDMuMCBBUEkgaW4gQ1RhYkZvbGRlciBoYXMgbm90IGJlZW4gZmluYWxpemVkIGFuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS48L3A+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIxNDMwOiAgQWNjZXNzaWJpbGl0eTpKQVdTIGNhbiBub3QgcmVhZCBsYWJlbCBmb3IgbXVsdGktbGluZXMgVGV4dCAgCjxicj4zODE5NDogIFNXVCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBKQVdTIDQuNSAgCjxicj4zODU2NDogIFtJbXBvcnQvRXhwb3J0XSBPbiBNYWNPUyBYIFNXVCBCdXR0b25zIGVhc2lseSBnZXQgd3JvbmcgaGVpZ2h0ICAKPGJyPjQzMjU3OiAgb3JnLmVjbGlwc2Uuc3d0LmN1c3RvbS5TdHlsZWRUZXh0IGlzIG5vdCBhY2Nlc3NpYmxlICAKPGJyPjQ0MjM2OiAgSmF3cyBkb2Vzbid0IHJlYWQgZWNsaXBzZSdzIG1haW4gbWVudXMgIAo8YnI+NDQ5NDY6ICBUYWJsZUN1cnNvciBhbHdheXMgcGFpbnRzIGxlZnQtYWxpZ25lZCB0ZXh0ICAKPGJyPjQ3MjY0OiAgSS1CZWFtIGRpc3BsYXllZCBpbiB3cm9uZyBjb250cm9sIChSdW4uLi4gZGlhbG9nKSAgCjxicj40ODI3MzogIFt3bTIwMDNdIHBvY2tldCBwYyAtIGlzc3VlcyB3aXRoIHBvcHVwIG1lbnUgIAo8YnI+NDgzMjc6ICBbV00yMDAzXSBQcm9ibGVtIHdpdGggUGFpbnRMaXN0ZW5lciBvbiBQb2NrZXRQQyBXTTIwMDMgIAo8YnI+NDk3OTc6ICBbV00yMDAzXSBHQyBjYW5ub3QgaW5zdGFudGlhdGUgb24gUFBDIDIwMDMgIAo8YnI+NTEwMzE6ICBCcm9rZW4gYXJyb3dzIG9uIG11bHRpIHBhZ2UgIAo8YnI+NTEwMzY6ICBUcmVlIFdpZGdldCBvcGVucyB0aGVuIGNsb3NlcyBvbiBSRVRVUk4vRU5URVIgIAo8YnI+NTEwODg6ICBQYXRjaChlcykgdG8gZml4IHJlZHJhdyBidWcgYWZ0ZXIgQ29udHJvbEVkaXRvcnMgY2xvc2UuICAKPGJyPjUxMjQ4OiAgR1VJIHRocmVhZCBkb2VzIG5vdCBwcm9jZXNzIHRoZSBHVUkgdXBkYXRlIHJlcXVlc3RzIHRpbWVseSwgY2F1c2luZyB0aGUgZGlzcGxheSB0byBiZSB1bnJlc3BvbnNpdmUgIAo8YnI+NTE0MDE6ICBjYW4ndCBmaW5kIGphdmEuYXd0LiogcGFja2FnZXMgdXNpbmcgSUJNcyAxLjQuMSBWTSBvbiBsaW51eCAgCjxicj41MTQ3MjogIEVycm9yIGxhdW5jaGluZyBCcm93c2VyIHBsdWdpbiBpbiBwcmUtTTcgYnVpbGQgIAo8YnI+NTE0OTI6ICBjaGFuZ2luZyBUYWJGb2xkZXIgZm9yZWdyb3VuZCBjb2xvdXIgaXMgbm90IGltbWVkaWF0ZWx5IHJlZmxlY3RlZCAgCjxicj41MTgzMTogIFN0eWxlZFRleHQgZG9lc24ndCBzcGVjaWZ5IGNvbnRlbnRzIG9mIGl0cyBTZWxlY3Rpb25FdmVudHMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDM4IC0gVHVlc2RheSBGZWJydWFyeSAxMCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KQUNDLlJPTEVfVFJFRUlURU0gYWRkZWQKPGJyPkFDQy5ST0xFX1RBQkxFQ0VMTCBhZGRlZAo8YnI+QUNDLlJPTEVfVEFCTEVDT0xVTU5IRUFERVIgYWRkZWQKPGJyPkFDQy5ST0xFX1RBQkxFUk9XSEVBREVSIGFkZGVkCjxicj5UYWJsZUl0ZW0uc2V0Rm9udChGb250KSBhbmQgVGFibGVJdGVtLnNldEZvbnQoaW50LCBGb250KSBhZGRlZAo8YnI+VGFibGVJdGVtLmdldEZvbnQoKSBhbmQgVGFibGVJdGVtLmdldEZvbnQoaW50KSBhZGRlZAo8YnI+VGFibGUuc2hvd0NvbHVtbihUYWJsZUNvbHVtbikgYWRkZWQKPGJyPkxvY2F0aW9uRXZlbnQudG9wIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxibG9ja3F1b3RlPgpBQ0MuUk9MRV9UQUJMRUNPTFVNTiBkZXByZWNhdGVkIC0gdXNlIFJPTEVfVEFCTEVDT0xVTU5IRUFERVIgaW5zdGVhZC4KPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNzc0MjogIEFDQzogbWlzc2luZyBhbiBpdGVtIGNvcnJlc3BvbmRlbnQgd2l0aCBST0xFX1NZU1RFTV9PVVRMSU5FSVRFTSBkZWZpbmVkIGJ5IE1TQUEgIAo8YnI+NDMwOTE6ICBbYnJvd3Nlcl0gQnJvd3NlciAtIExvY2F0aW9uRXZlbnQgYmVoYXZpb3IgIAo8YnI+NDQwNjM6ICBDbGlwYm9hcmQgb2YgR1RLIG9uIEtERSA6IEVjbGlwc2UgY3Jhc2ggIAo8YnI+NDQ5NDM6ICBUYWJsZUN1cnNvciBjb2xvciBzZXQgaW5jb3JyZWN0bHkgIAo8YnI+NTA1MjI6ICBbaW50ZXJvcF0gQ29tcG9uZW50cyBpbiBTV1RfQVdUIGRvbid0IHNob3cgaW4gV29ya2JlbmNoLiAgCjxicj41MDkwNzogIEpQRUcgbG9hZGVyIGZhaWxzIHRvIGxvYWQgaW1hZ2UgIAo8YnI+NTEwODE6ICBUcmFja2VyIGZsaWNrZXJzIHdoZW4gdXNpbmcgc2V0UmVjdGFuZ2xlcyB0byBob2xkIGl0IGluIHBsYWNlICAKPGJyPjUxMzI1OiAgU1dUX0FXVDpUaGUgY29sb3IgZGVwdGggb2YgdGhlIGRpc3BsYXkgY2hhbmdlZCBjYXVzZSBOdWxsUG9pbnRlckV4Y2VwdGlvbiAgCjxicj41MTM3MjogIFticm93c2VyXSBjZXJ0YWluIGV2ZW50IHN0cmluZ3MgY29udGFpbiBhbiBleHRyYSBudWxsIGNoYXIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAzNyAtIFR1ZXNkYXkgRmVicnVhcnkgMywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1MDYzOTogIERlYWRsb2NrIGNyZWF0aW5nIGltYWdlIG91dHNpZGUgVUkgdGhyZWFkICAKPGJyPjUwNzE4OiAgZ2V0IGRvYyB0aXRsZSBmcm9tIEJyb3dzZXIgIAo8YnI+NTAxMzA6ICBndGsgYW5kIG1vdGlmIGRvbid0IGNvbXBpbGUgYWdhaW5zdCBDTERDICAKPGJyPjUwNzc4OiAgSmF2YSBkb2MgcHJvYmxlbXMgIAo8YnI+NTA1NDc6ICBNZXNzYWdlQm94IGxvY2tzIG91dCBhcHBsaWNhdGlvbiAgCjxicj41MDUyMDogIFJDUDogTmVlZCBhYmlsaXR5IHRvIHNldCBjbG9zZSBidXR0b24gcGVyIGl0ZW0gb24gQ1RhYkZvbGRlciAgCjxicj41MDcwOTogIFJpZ2h0IEFsaWduZWQgVGFibGUgQ29sdW1uIEhlYWRlcnMgZG8gbm90IGFwcGVhciB1bnRpbCBhZnRlciBhIHJlc2l6ZSAgCjxicj40OTgyODogIFticm93c2VyXSBCcm93c2VyIGNvbnRyb2wgZG9lcyBub3QgYWx3YXlzIHNlbmQgY29tcGxldGVkIHByb2dyZXNzIGV2ZW50ICAKPGJyPjQ4ODk5OiAgW2Jyb3dzZXJdIGJyb3dzZXIgcGx1Z2luIG5vdCBpbmNsdWRlZCBpbnRvIHRoZSBlY2xpcHNlIGV4YW1wbGUgemlwIGZpbGUgIAo8YnI+NTA5OTE6ICBbYnJvd3Nlcl0gbW96aWxsYSAtIG11c3Qgc3VwcG9ydCBvbGRlciB2ZXJzaW9uIG1vemlsbGEgMS40ICAKPGJyPjUwNzc3OiAgW2Jyb3dzZXJdIG1vemlsbGEgZGVwZW5kZW5jaWVzIG9uIHVuZnJvemVuIGFwaSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMzZkIC0gVHVlc2RheSBKYW51YXJ5IDI3LCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpCcm93c2VyLmJhY2tFbmFibGVkKCkgYWRkZWQKPGJyPkJyb3dzZXIuZm9yd2FyZEVuYWJsZWQoKSBhZGRlZCAKPGJyPkJyb3dzZXIuYWRkVGl0bGVMaXN0ZW5lcihUaXRsZUxpc3RlbmVyKSBhZGRlZCAKPGJyPkJyb3dzZXIucmVtb3ZlVGl0bGVMaXN0ZW5lcihUaXRsZUxpc3RlbmVyKSBhZGRlZCAKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjIyNTogIDMuME00IGRvZXNuJ3Qgd29yayB3aXRoIGd0azIuMy4wICAKPGJyPjUwMzAxOiAgQ2hhcmFjdGVycyB0eXBlZCBhcmUgZGlzcGxheWVkIGJhY2t3YXJkcy4gIAo8YnI+NTA1MTg6ICBDTGFiZWwgc2hvdWxkIHN1cHBvcnQgYSB2ZXJ0aWNhbCBncmFkaWVudAo8YnI+NDk5NzE6ICBOUEUgd2hlbiBjbG9zaW5nIHdvcmtiZW5jaCAgCjxicj41MDM3NzogIFN3dCBNQU5JRkVTVC5NRiBub3QgYWRqdXN0ZWQgdG8gcmVwYWNrYWdpbmcgb2YgU1dUX0FXVC4gIAo8YnI+NTAyNTY6ICBUZXh0I2dldENhcmV0TG9jYXRpb24oKSBzZW5kcyBlcnJvbmVvdXMgTW9kaWZ5IGV2ZW50ICAKPGJyPjQ1NDE5OiAgW2Jyb3dzZXJdIGFkZCBhcGkgdG8gcmVhZCBodG1sIGZyb20gbWVtb3J5IG9uIFBob3RvbiBCcm93c2VyICAKPGJyPjQ3OTM2OiAgW2Jyb3dzZXJdIEJhY2svTmV4dCBldmVudCBzdXBwb3J0IGluIFdlYkJyb3dzZXIgIAo8YnI+NDg4MDk6ICBbYnJvd3Nlcl0gYnJlYWtpbmcgY2hhbmdlIC0gcmVuYW1lIExvY2F0aW9uRXZlbnQuY2FuY2VsIHRvIExvY2F0aW9uRXZlbnQuZG9pdCBhbmQgcmV2ZXJzZSBib29sZWFuIG1lYW5pbmcgIAo8YnI+NTA0MDU6ICBbYnJvd3Nlcl0gTGludXg6IHN3aXRjaCB0byBNb3ppbGxhIDEuNiAgCjxicj41MDQzNzogIFticm93c2VyXSBzZW5kIHRpdGxlIGV2ZW50ICAKPGJyPjUwMDM0OiAgW2ludGVyb3BdIHN3aW5nIG1vdXNlIGV2ZW50cyBub3QgcmVjZWl2ZWQgaW4gUkNQIHBsdWdpbiAgCjxicj41MDQ4MzogIFtpbnRlcm9wXSBzd3QgU1dUX0FXVCAmIHVpIFZpZXdQYXJ0ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAzNiAtIFR1ZXNkYXkgSmFudWFyeSAyMCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KRGlzcGxheS5nZXRJY29uU2l6ZXMoKSBhZGRlZAo8YnI+RGlzcGxheS5nZXRDdXJzb3JTaXplcygpIGFkZGVkIAo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjUwMTUzOiBBUEkgLSBCcmVha2luZyBjaGFuZ2UgLSByZXBsYWNlIERpc3BsYXkuZ2V0Q3Vyc29yU2l6ZSB3aXRoIERpc3BsYXkuZ2V0Q3Vyc29yU2l6ZXMgIAo8YnI+NTAxNjE6IE5FVyBBUEkgLSBEaXNwbGF5LmdldEljb25TaXplcwo8YnI+NDk5NDI6IE5QRSBpbiBTdHlsZWRUZXh0LmdldFNlbGVjdGlvblJhbmdlIChsaW5lIDQyNzUpCjxicj40ODY1MzogTlBFIGluIFN0eWxlZFRleHQucGVyZm9ybVBhaW50IChsaW5lIDYwODQpCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMzUgLSBUdWVzZGF5IEphbnVhcnkgMTMsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gCjQ2ODAwOiAgQXJyb3cgYnV0dG9uIGRvZXNuJ3QgcmVjZWl2ZSBmb2N1cyAgCjxicj40OTE1NDogIENvbWJvIGJlaGF2aW9yIG5vdCB2ZXJ5IHVzZXItZnJpZW5kbHkgICAKPGJyPjQ5NTM0OiAgSmF2YWRvYyBvZiAnQ29udHJvbCcgc2hvdWxkIG1lbnRpb24gJ1RyYXZlcnNlJyBldmVudCAgCjxicj4zMjgyODogIExvc3Mgb2YgdGhlIG1vZGFsIGNvbnRleHQgIAo8YnI+NDk0NzE6ICBNNiBpbWFnZSBsZWFrICAgCjxicj40NzI3OTogIE9TLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncyBjcmFzaGVzIG9uIHplcm8tbGVuZ3RoIHN0cmluZyAgCjxicj40OTUwMjogIFNuaXBwZXQgOTAgbWlzcyBjbGFzcyBzcGVjaWZpY2F0aW9uICAKPGJyPjQ5NTAzOiAgU25pcHBldCA5OCBtaXNzaW5nIGltcG9ydCBzdGF0ZW1lbnRzICAKPGJyPjQ5NzIzOiAgU3R5bGVkVGV4dCBpcyBsZWFraW5nIFN0eWxlUmFuZ2Ugb2JqZWN0cyBhZ2FpbiAgCjxicj40OTQwMTogIFNXVCBNNiBvdXRkYXRlZCBNYW5pZmVzdCBGaWxlIHByZXZlbnRzIHVzZSBvZiBTV1RfQVdUIGZyb20gd2l0aGluIEVjbGlwc2UgIAo8YnI+NDkzODE6ICBTV1QuUklHSFQgZG9lcyBub3Qgd29yayBpbiBUZXh0ICAKPGJyPjQ5NDg4OiAgc3d0X2F3dC5jIGFuZCBzd3RfYXd0LnJjIGZpbGVzIG5vdCBpbiBzb3VyY2UgYnVuZGxlICAKPGJyPjQ1MTQ5OiAgVGhlIHBvc2l0aW9uIG9mIElNRSBpbnB1dCBmaWVsZCBpcyB3cm9uZy4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDM0IC0gTW9uZGF5IERlY2VtYmVyIDE1LCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM5NjA2OiAgSkFXUyA0LjUgbm90IHJlYWRpbmcgdGFicyAgICAKPGJyPjQ4MjYzOiBFQzogZ3RrIGFsbG93cyBUYWJJdGVtLnNldENvbnRyb2woLi4uKSB2YWx1ZSB0byBiZSBub24tY2hpbGQgb2YgVGFiRm9sZGVyLiAgICAKPGJyPjQ4MzQzOiAgRENSOiBQcm92aWRlIG1lYW5zIHRvIGdldCBwcmVmZXJyZWQgY3Vyc29yIHNpemUKPGJyPjQ3OTI4OiAgb3Zlcmx5IHN0cmluZ2VudCBib3VuZHMgdGVzdHMgaW4gVGV4dC5nZXRUZXh0Cjxicj40ODIzMzogIFtLZXlCaW5kaW5nc10gc2hvcnRjdXQgQ29tbWFuZCtTcGFjZSBub3Qgd29ya2luZwo8YnI+MjIyMjg6ICBbV29ya2JlbmNoXSBwcm9ncmFtIGljb24gaW4gQUxUK1RBQiB3aW5kb3cgbG9va3MgdWdseQo8YnI+NDgyNzE6ICBFQzogQ29udHJvbC5zZXRWaXNpYmxlIGRvZXNuJ3QgZG8gaXNEaXNwb3NlZCgpIGNoZWNrCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMzMgLSBUdWVzZGF5IERlY2VtYmVyIDksIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxibG9ja3F1b3RlPgo8Y29kZT5TbGlkZXIuc2V0VGh1bWIoaW50KSwgU2xpZGVyLnNldFZhbHVlcyguLi4pLCBTY3JvbGxCYXIuc2V0VGh1bWIoaW50KTwvY29kZT4gYW5kCjxjb2RlPlNjcm9sbEJhci5zZXRWYWx1ZXMoLi4uKTwvY29kZT4gbm93IGNsYW1wcyB0aGUgcGFzc2VkIHRodW1iIHZhbHVlIGlmIGl0IGV4Y2VlZHMKdGhlIHJlY2VpdmVyJ3MgcmFuZ2UuCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDgwMzY6ICBbYnJvd3Nlcl0gY3Jhc2ggb24gSUUgd2hlbiB1c2luZyBqYXZhc2NyaXB0IHRvIGNsb3NlIG1vcmUuLi4KPGJyPjQ4MDIyOiAgMyBtb3VzZSBjbGlja3MgY2F1c2UgNCBtb3VzZURvd24gZXZlbnRzCjxicj40Nzg5NDogIENvbWJvIGxheW91dCBwcm9ibGVtcwo8YnI+NDc5MTY6ICBbYnJvd3Nlcl0gY3Jhc2ggb24gSUUgd2hlbiBzZXR0aW5nIHRleHQgbXVsdGlwbGUgdGltZSB3aXQuLi4KPGJyPjQ3ODg1OiAgW2Jyb3dzZXJdIHByb3ZpZGUgYSByZXNpemUgZXZlbnQKPGJyPjQ4MTY4OiAgW2Jyb3dzZXJdIGJyZWFraW5nIGNoYW5nZSAtIGNoYW5naW5nIG5hbWVzIG9mIFdpbmRvd0V2ZW50cwo8YnI+NDU5ODk6ICBTbGlkZXIvU2Nyb2xsYmFyIEFQSSBkb2MKPGJyPjQ3ODk4OiAgU3R5bGVkVGV4dCBsZWFraW5nIFN0eWxlUmFuZ2VzCjxicj40NzE5MDogIERvY3VtZW50YXRpb24gbWlzc2luZwo8YnI+NDgyOTc6ICBbYnJvd3Nlcl0gaW52ZXN0aWdhdGUgc3VwcG9ydCBmb3IgTW96aWxsYSBGaXJlYmlyZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDMyIC0gVHVlc2RheSBEZWNlbWJlciAyLCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpvcmcuZWNsaXBzZS5zd3QuYXd0LlNXVF9BV1QgY2xhc3MgYWRkZWQgZm9yIFdpbmRvd3MsIEdUSyBhbmQgTW90aWYgLSB0aGUgY2xhc3MgaXMgbm90IGludGVybmFsIGFueW1vcmUKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozMzY4NzogIENvbWJvIHdpZGdldCBkb2VzIG5vdCBzaXplIGl0c2VsZiB0byBoYW5kbGUgbGFyZ2VzdCBlbnRyeQo8YnI+NDcxNzA6ICBjaGVlc2Ugd2hlbiByZXNpemUgd2l0aCBmb2N1cyByaW5nCjxicj40NzU1NzogIE5vIGltYWdlcyByZXR1cm5lZCBieSBQcm9ncmFtLmdldEltYWdlRGF0YSgpCjxicj40NzI0NTogIHNldEVkaXRhYmxlKCkgbWV0aG9kIGZvciBDb21ibyBvciBDQ29tYm8KPGJyPjQ3NDY4OiAgU3VwcG9ydCAiZnVsbCBrZXlib2FyZCBhY2Nlc3MiIG1vZGUuCjxicj4zODE0OTogIFNISUZUICsgc3BhY2ViYXIgZG9lc24ndCB3b3JrCjxicj40NjgxMDogIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZm9yIFRhYmxlSXRlbS5zZXRCYWNrZ3JvdW5kKCkgd2hlbiBjby4uLgo8YnI+NDY2NDE6ICBCcm93c2VyIHdpZGdldDogZm9vdHByaW50IGFuZCBndWlkZWxpbmVzIHF1ZXN0aW9uCjxicj40NjcwNzogIE5QRSB3aGVuIGNsb3NpbmcgZWNsaXBzZS4KPGJyPjQ3MzY2OiAgW05ldyBMb29rXSBBcmVhIG5vdCBwYWludGVkIHdoZW4gdGFiIGluIHRoZSBiYWNrZ3JvdW5kCjxicj40Njc1MTogIFticm93c2VyXSBKYXZhc2NyaXB0IHdpbmRvdy5jbG9zZSgpIGRvZXMgbm90IHdvcmsgaW4gdGhlIC4uLgo8YnI+NDY4OTY6ICBDQ29tYm8gc2V0RW5hYmxlZAo8YnI+NDcxMDk6ICBSZXNpemUgYnV0dG9ucyBob3Jpem9udGFsbHkgbGVhdmVzIGNoZWVzZQo8YnI+NDc1MzA6ICBbTmV3IExvb2tdIENoZWVzZSB3aGVuIGFkZGluZyB0byBhIGJhbm5lcgo8YnI+NDcxNDM6ICBMaXN0LmFkZCgpICE9IExpc3QuZ2V0SXRlbXMoKSBpZiBzdHJpbmcgY29udGFpbnMgJ1xuJwo8YnI+MzQ3OTc6ICBBUEk6IENsaXBib2FyZDppc0Rpc3Bvc2VkCjxicj40NzQyNjogIFticm93c2VyXSBicmVha2luZyBjaGFuZ2UgLSBSZXBsYWNlIE5ld1dpbmRvd0V2ZW50IHdpdGggTy4uLgo8YnI+MjkzOTY6ICBVbmFibGUgdG8gZ2V0IHNlc3Npb24gZGF0YSB3aGVuIHVzaW5nIGludGVybmFsIGJyb3dzZXIKPGJyPjQ3MDM5OiAgSW5jb25zaXN0ZW50IHNodXRkb3duCjxicj40NzM5MTogIENvbWJvLmRlc2VsZWN0KGludCkgYW5kIGRlc2VsZWN0QWxsKCkgZG9lc24ndCB3b3JrCjxicj40NDU2NzogIENsaXBib2FyZC5kaXNwb3NlIHRocm93cyBOUEUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAzMSAtIFR1ZXNkYXkgTm92ZW1iZXIgMjUsIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDY4NDg6ICBDaXJjdW1mbGV4IGFjY2VudCBmb3IgY2hhcmFjdGVycyBkb2VzIG5vdCB3b3JrCjxicj40Njg1OTogIENvbWJvIEFQSSBkb2MvcHJvYmxlbXMKPGJyPjE2MDExOiAgQ29weSBub3Qgd29ya2luZy4KPGJyPjQ3MTQ2OiAgR3JvdXAgbGFiZWwgc2hvdWxkIGhhdmUgc2FtZSBmb3JlZ3JvdW5kL2JhY2tncm91bmQgYXMgR3JvdXAKPGJyPjQ3MDg0OiAgTm8gbW91c2VVcCBldmVudHMgZm9yIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbgo8YnI+NDYwNjg6ICBbYnJvd3Nlcl0gbGludXggbW90aWYgQnJvd3NlciBzaG93cyB1cCBub24gZW1iZWRkZWQgaWYgcHJldmlvdXMgaW5zdGFuY2UgZGlzcG9zZWQKPGJyPjQwNDYwOiAgW0tleSBCaW5kaW5nc10gU29tZSBzaG9ydGN1dCBrZXlzIGJyb2tlbgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDMwIC0gVHVlc2RheSBOb3ZlbWJlciAxOCwgMjAwMyA8L2gyPgoKPGgzPjxhIE5BTUU9IkJyZWFraW5nIENoYW5nZXMiPjwvYT5CcmVha2luZyBDaGFuZ2VzPC9oMz4KPGJsb2NrcXVvdGU+Cjx1bD4KPGxpPjxjb2RlPkRpcmVjdG9yeURpYWxvZy5zZXRNZXNzYWdlKFN0cmluZyBzdHJpbmcpPC9jb2RlPiBub3cgdGhyb3dzIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaWYKPGNvZGU+c3RyaW5nPC9jb2RlPiBpcyA8Y29kZT5udWxsPC9jb2RlPgo8bGk+PGNvZGU+TWVzc2FnZUJveC5zZXRNZXNzYWdlKFN0cmluZyBzdHJpbmcpPC9jb2RlPiBub3cgdGhyb3dzIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaWYKPGNvZGU+c3RyaW5nPC9jb2RlPiBpcyA8Y29kZT5udWxsPC9jb2RlPgo8bGk+PGNvZGU+VGV4dC5nZXRUZXh0KGludCBzdGFydCwgaW50IGVuZCk8L2NvZGU+IG5vdyB0aHJvd3MgYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpZgo8Y29kZT5zdGFydDwvY29kZT4gaXMgbmVnYXRpdmUsIGlmIDxjb2RlPmVuZDwvY29kZT4gaXMgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YKdGhlIHJlY2VpdmVyJ3MgdGV4dCwgb3IgaWYgPGNvZGU+c3RhcnQ8L2NvZGU+IGlzIGdyZWF0ZXIgdGhhbiA8Y29kZT5lbmQ8L2NvZGU+Lgo8L3VsPgo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM0MTI4OiAgY2xhc3NwYXRoIGluY29tcGxldGUgIAo8YnI+NDY2ODg6ICBlY2xpcHNlIDMuME00IGxlZnQgb3V0IGEgY2hhciBzeW1ib2wgYmVoaW5kCjxicj40NjcyMjogIENyYXNoIG9uIG9wZW4gb2YgYW55IGphdmEgc291cmNlICAKPGJyPjM4OTgxOiAgRGVjb3JhdGlvbnMuZ2V0TWF4aW1pemVkKCkgYWx3YXlzIHJldHVybnMgZmFsc2UgIAo8YnI+NDY1ODI6ICBndGsgc2V0U2VsZWN0aW9uKCopIGRvZXMgbm90IHNldCBmb2N1cyBwcm9wZXJseSAgCjxicj4yMjAxMDogIEdUSzogQ29tYm8uc2V0Rm9yZWdyb3VuZCgpIGFuZCBDb21iby5zZXRGb250KCkgZG9udCBjaGFuZ2UgdGhlIGRyb3AtZG93biBsaXN0ICAKPGJyPjQ2NzAyOiAgTGlzdC5nZXRGb2N1c0luZGV4KCkgZG9lcyBub3QgYW5zd2VyIC0xICAKPGJyPjQ2NTAwOiAgTWVzc2FnZUJveC5zZXRNZXNzYWdlKG51bGwpIGhhcyB0byBiZSBzcGVjJ2QgIAo8YnI+NDU3ODc6ICBQYW50aGVyOiBpbnRpdGlhbCBUZXh0ZmllbGQgY29udGVudHMgb25seSBwYXJ0aWFsbHkgdmlzaWJsZSAgCjxicj40NjQxOTogIFRleHQuZ2V0VGV4dChpbnQsaW50KSBuZWVkcyB0byBzcGVjIGJlaGF2aW91ciBmb3IgaW52YWxpZCByYW5nZSAKPGJyPjQyNDA4OiAgW2Jyb3dzZXJdIEphdmFzY3JpcHQgd2luZG93Lm9wZW4oKSBkb2VzIG5vdCB3b3JrIGluIHRoZSBCcm93c2VyIHdpZGdldCAgCjxicj4yMzA4NDogIFtTdHlsZWRUZXh0IE1vdGlmIDIuMC4xXSBDdXJzb3IgZGlzYXBwZWFycyB3aGlsZSBtb3ZpbmcgYnkgd29yZHMgKGZvcndhcmRzL2JhY2t3YXJkcykgIAo8YnI+MzYwMTA6ICBbVmlldyBNZ210XSBWaWV3IG1lbnUgIk1vdmUiIGFuZCAiU2l6ZSIgY29tbWFuZHMgaGF2ZSBubyBlZmZlY3QuICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyOSAtIFR1ZXNkYXkgTm92ZW1iZXIgMTEsIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkdDLmRyYXdQb2ludChpbnQgeCwgaW50IHkpIGFkZGVkCjxicj48Y29kZT5EcmFnRGV0ZWN0PC9jb2RlPiBldmVudCBvYmplY3RzIG5vdyBoYXZlIHRoZWlyIDxjb2RlPng8L2NvZGU+IGFuZCA8Y29kZT55PC9jb2RlPiBmaWVsZHMKc2V0IHRvIHRoZSBjb250cm9sLXJlbGF0aXZlIHggYW5kIHkgY29vcmRpbmF0ZXMgb2YgdGhlIGRyYWcgc3RhcnQKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjM1NDogIGFkZCB0byBqYXZhZG9jIGZvciBMaXN0LnJlbW92ZShpbnQgc3RhcnQsIGludCBlbmQpICAKPGJyPjQyNDI2OiAgQmFja3BvcnQgQmlEaSBNaXJyb3JpbmcgRml4ZXMgZnJvbSAzLjAgYW5kIDIuMS54ICAKPGJyPjQ2MDI5OiAgYmFkIGFsaWdubWVudCBpbiBJbXBvcnQgcGx1Z2lucyB3aXphcmQgIAo8YnI+MzI3NzI6ICBDYW5ub3QgaG9sZCBkb3duIHN0ZXBwaW5nIGtleXMgb24gT1NYICAKPGJyPjQ0MzkwOiAgY29sdW1uIHNlcGFyYXRvciBkaXNhcHBlYXJlcyBhZnRlciByZXNpemluZyB0aGUgZmlyc3QgY29sdW1uIHRvIHplcm8gd2lkdGggIAo8YnI+NDYzMDY6ICBDb250cm9sRXhhbXBsZTogbXVsdGlwbGUgU2VsZWN0IExpc3RlbmVycyBkaWFsb2dzIGlzIGNvbmZ1c2luZyAgCjxicj4zMzYzNzogIERDUiAtIG5vIHByaW50aW5nIG9uIE1hYyBbd2FzIFByaW50IG9uIE9TWCAxMC4yLjRdICAKPGJyPjQzMjUxOiAgRHJhZ0RldGVjdCBldmVudCBzaG91bGQgaGF2ZSB4IGFuZCB5IGNvb3JkaW5hdGVzICAKPGJyPjI4Njg0OiAgRHJvcC1Eb3duIGFycm93cyBoYXJkIHRvIGhpdCAgCjxicj4yMTA3NTogIEltcG9ydCB0byBmaWxlc3lzdGVtIGNhbiBvbmx5IGJyb3dzZSB3aGVuIGVtcHR5ICAKPGJyPjQ1ODc3OiAgbWFueSBHZXJtYW4gc3RyaW5ncyBhcmUgbm90IGRpc3BsYXllZCAgCjxicj4zODUyMTogIE1vdXNlIGV2ZW50cyBkZWxpdmVyZWQgdG8gd3JvbmcgQ29udHJvbCAgCjxicj40NTk0NjogIE5lZWQgYW4gZWZmaWNpZW50IEdDLnNldFBpeGVsKCB4LHkgKSBtZXRob2QuICAKPGJyPjQxNDY1OiAgUGFudGhlcjogVG9vbEl0ZW0oRFJPUF9ET1dOKSBhcnJvdyBoYXMgd3JvbmcgYmFja2dyb3VuZCAgCjxicj40NTQ1MzogIHBvY2tldHBjIC0gUG9wLVVwIG1lbnVzIGRvIG5vdCB3b3JrIG9uIFRhYmxlcyAgCjxicj40NTQyMjogIFB1bGwtZG93biBtZW51IG9ubHkgc2hvd3MgdXAgb24gbW91c2UtdXAsIHJhdGhlciB0aGFuIG1vdXNlIGRvd24gIAo8YnI+NDMxMDg6ICBTdHlsZWRUZXh0IC0gU2Nyb2xsd2hlZWwgZXZlbnQgaW50ZXJmZXJlcyB3aXRoIGxhc3QgY2FyZXQgcGxhY2VtZW50ICAKPGJyPjQ2MzY4OiAgVGFibGUgYXJyYXkgZXhjZXB0aW9uIHdoZW4gcmVtb3ZpbmcgaW52YWxpZCBsb3dlciByYW5nZSAgCjxicj40NjAzNzogIHRleHQgZWRpdG9yIC0gPGhvbWU+IHBvc2l0aW9ucyBlZGl0b3IgaW4gZmlyc3QgcGFnZSAgCjxicj40NTc4OTogIFRvb2xiYXIgZHJvcGRvd24gaXRlbXMgZG9uJ3QgZmlyZSBpbW1lZGlhdGVseSAgCjxicj40NTk0MDogIFZvdGVzIG9uIGNsb3NlZCBidWdzPyAgCjxicj40NjAyODogIFticm93c2VyXSBJRSBicm93c2VyIHN0aWxsIHNob3dzIGRlZmF1bHQgcG9wdXAgbWVudSAgCjxicj40NTk5NzogIFticm93c2VyXSBzdXBwb3J0IGFuZCByZXF1aXJlIE1vemlsbGEgMS41ICAKPGJyPjQ2MTQ3OiAgW2Jyb3dzZXJdIFNXVCBhY2NlbGVyYXRvcnMgZ2V0IG92ZXJyaWRlbiBieSBJRSAgCjxicj40NDkxOTogIFtLZXlCaW5kaW5nc10gZGlhbG9nIGtleWJvYXJkIHNob3J0Y3V0cyBnb25lICAKPGJyPjQ1MzYyOiAgW0tleUJpbmRpbmdzXSBGcmVuY2ggS2V5Ym9hcmQgaXNzdWUgd2l0aCAwIGtleSAoU0hJRlQgKyA/Pz8/Pz8/KSAgCjxicj4zNzc0MDogIFtLZXlCaW5kaW5nc10gVGV4dCB0b29sIGl0ZW0gb24gdGhlIFZpZXdwYXJ0IFRpdGxlIHRha2VzIG1lbnUncyBhY2NlbGVyYXRvciBrZXkgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDI4IC0gVHVlc2RheSBOb3ZlbWJlciA0LCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgo8YmxvY2txdW90ZT4KPGNvZGU+RmlsZURpYWxvZy5nZXRGaWxlTmFtZXMoKTwvY29kZT4gbm93IHJldHVybnMgYW4gZW1wdHkgPGNvZGU+U3RyaW5nPC9jb2RlPiBhcnJheSBpbnN0ZWFkIG9mIDxjb2RlPm51bGw8L2NvZGU+CndoZW4gdGhlcmUgYXJlIG5vIGZpbGUgbmFtZXMgdG8gYW5zd2VyLgo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgCjM2MDgzOiBOUEUgaW4gQ3Vyc29yLmRpc3Bvc2UKPGJyPjUwOTY6IEZpbGVEaWFsb2cgZG9lc24ndCBhbGxvdyB0byBzZXQgZmlsZSBuYW1lCjxicj4yMjc4NTogRmlsZURpYWxvZzogRmlsZSBwYXRocyBpbmNvcnJlY3QKPGJyPjI2NzcxOiBtb3RpZiB0ZXN0IGNhc2UgZmFpbHVyZXMKPGJyPjI2OTEzOiBBbGwgcGxhdGZvcm1zIHNob3VsZCBjbGVhciBtb3VzZSBjYXB0dXJlIHdoZW4gbW9kYWwgZGlhbG9nIGlzIG9wZW5lZAo8YnI+MzQ0MDg6IFNoaWZ0IFRhYiBkb2VzIG5vdCB3b3JrIGluIGphdmEgZWRpdG9yCjxicj40NDg3ODogU3R5bGVkVGV4dCAtIEFycm93X0Rvd24gaW4gdGV4dCBlZGl0b3IgZG9lc24ndCByZXRhaW4gY29sdW1uIHdoZW4gaXQgc2Nyb2xscwo8YnI+NDUzMjM6IEVycm9yIG9jY3VycmVkIHVzaW5nIEYzIHRvIG9wZW4gY2xhc3MKPGJyPjQ1NjI4OiBjYW5ub3QgdHJhdmVyc2UgdG8gVG9vbEJhciBpdGVtcwo8YnI+NDU4MDA6IFRyYWNrZXIgKFJFU0laRSkgd2l0aCBtdWx0aXBsZSBSZWN0YW5nbGVzIGxvc2luZyBwcmVjaXNpb24KPGJyPjQ1ODM0OiBGaWxlRGlhbG9nIEFQSSBzcGVjIHByb2JsZW1zCjxicj44NTA3OiBTV1RFcnJvciB0aHJvd24gaW5zdGVhZCBvZiBTV1RFeGNlcHRpb24KPGJyPjExNjYzOiB1bm5lY2Vzc2FyeSBmb2N1cyBldmVudHMgb24gbGludXgtbW90aWYKPGJyPjI0MzE5OiBLZXkgZXZlbnRzIGRvbid0IHNlbmQgdG8gY29kZSBjb21wbGV0aW9uIGRpYWxvZwo8YnI+MjU0OTQ6IE1uZW1vbmljIGtleXMgaW4gZWRpdG9yIG1lbnUgZG9uJ3Qgd29yayBvbiBndGsuCjxicj4yNjEwMTogU3RyYW5nZSBiZWhhdmlvdXIgaW4gVmVyaWZ5TGlzdGVuZXIgdW5kZXIgR1RLCjxicj4yNjE3MDogU1dUIHdpZGdldCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5MYWJlbCBkb2VzIG5vdCBwcm9wZXJseSBkaXNwbGF5IGl0cyB0ZXh0IHVuZGVyIExpbnV4IEd0ayB3aGVuIGdpdmVuIGEgU1dULldSQVAgc3R5bGUuCjxicj4zNTgxMTogUmVzaXplIHdvcmtiZW5jaCBzaGVsbCBjYXVzZXMgZmFzdHZpZXcgei1vcmRlciBjaGVlc2UKPGJyPjM2MTUzOiBObyBGMSBoZWxwIGluIEphdmEgZWRpdG9yCjxicj4zNzUxMDogU2hpZnQgKyBGMTAgZG9lcyBub3Qgd29yayBpbiBHRUYgb24gTGludXgKPGJyPjQzNjgzOiBbU1dUXSByZXF1ZXN0IGZ1bmN0aW9uIGtleXMgRjEzLCBGMTQsIGFuZCBGMTUgYmUgc3VwcG9ydGVkCjxicj40NTQ1NzogW1ZpZXdNZ210XSBWaWV3IGNvbnRlbnRzIHJlbmRlcmVkIG9uIHRvcCBvZiBmYXN0IHZpZXcKPGJyPjQ1NTUyOiBDcmFzaCB3aGVuIHZpZXdpbmcgTWljcm9BbmFseXplciB0cmFjZSBvbiBMaW51eAo8YnI+MjEwMzU6IFtLZXkgQmluZGluZ3NdIEFiaWxpdHkgdG8gbWFwIGtleXBhZCBrZXkgZXZlbnRzCjxicj4yNDE3ODogKEJCQVdUKSBDZXJ0YWluIGtleXMgZG8gbm90IGdlbmVyYXRlIEtleUV2ZW50cwo8YnI+NDM4NzE6IEN0cmwrQnJlYWsgaXMgaW50ZXJwcmV0ZWQgYXMgQ3RybCtDIEN0cmwrQwo8YnI+NDU2NDA6IFBFTnMgYXJlIGJlaW5nIGxlYWtlZCBkdXJpbmcgcGFpbnRpbmcKPGJyPjQ2MjI6IERDUjogTm8gYXV0byB0YWIgc2VsZWN0IG9uIGZpcnN0IHRhYiBjcmVhdGVkICgxR0NFREk0KQo8YnI+MzExMDc6IENUYWJGb2xkZXIgYW5kIENDb21ibyAtIHRvbyBtYW55IHNoZWVscyBmcm9tIHRvb2x0aXAgc2hlbGwKPGJyPjMzOTM0OiBDVGFiRm9sZGVyJ3MgY2xvc2VJbWFnZSBpbnZpc2libGUgaW4gSGlnaCBDb250cmFzdCBtb2RlCjxicj4zMzk0NTogQ1RhYkZvbGRlciB0b29sdGlwcyBvdmVybGFwIGN1cnNvcgo8YnI+Mzg4MDU6IFN3aXRjaGluZyBwZXJzcGVjdGl2ZXMgb24gTGludXggR1RLIHNlZW1zIHRvIGJlIHNsb3cgZHVlIHRvIGxhcmdlIG51bWJlciBvZiB0b29sYmFyIGNyZWF0aW9ucwo8YnI+NDIyNzg6IENUYWJGb2xkZXIgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIGNsb3NpbmcgYSB0YWIKPC9ibG9ja3F1b3RlPiAKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMjcgLSBUdWVzZGF5IE9jdG9iZXIgMjgsIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAKNDUyNjc6ICBCSURJOiBNaXJyb3JlZCB0ZXh0IGFwcGVhcnMgb24gZXZlcnkgZWRpdG9yICAKPGJyPjM4NTg1OiAgQ29udHJvbEV4YW1wbGUgLSBDaGVja2JveCBUcmVlIHByZWZlcnJlZCBzaXplIGEgdGFkIHRvbyBzbWFsbCAgCjxicj4zNTQ5NDogIENvbnRyb2xFeGFtcGxlIC0gVGFibGUgcHJlZmVycmVkIHNpemUgZG9lcyBub3QgYWRqdXN0IHdpZHRoICAKPGJyPjIyMjg3OiAgQ3Jhc2ggd2hlbiBjYWxsaW5nIFNXVCBDb21iby5zZXRUZXh0KCkgIAo8YnI+NDE0MjA6ICBEZWxldGluZyB0aGUgZmlyc3QgY29sdW1uIG9mIGEgVGFibGUgbWF5IHRocm93IGFuIGV4Y2VwdGlvbiAgCjxicj40NTQzOTogIERvdWJsZSBjbGlja2luZyB0aGUgbGVmdCB1cHBlciBjb3JuZXIgb2YgdGhlIG5lc3RlZCBEZWNvcmF0aW9uIGNsb3NlcyB0aGUgcGFyZW50IFNoZWxsICAKPGJyPjQ1MzQxOiAgRmlsZURpYWxvZyBjcmFzaGVzIFZNIG9uIGludmFsaWQgZHJpdmUgIAo8YnI+MzQzNjI6ICBHQjE4MDMwLU1vdGlmOiBDcmFzaCB3aGVuIHR5cGluZyBDTiBpbiB0aGUgSmF2YUVkaXRvciAgCjxicj40MzUwMDogIEludmFsaWRUaHJlYWRBY2Nlc3Mgd2hlbiBydW5uaW5nIGEgc3Vic2V0IG9mIEpVbml0IHRlc3RzICAKPGJyPjQ1MzA2OiAgTW91c2UgZXZlbnRzIGxvc3QgaW4gc2hlbGwgbGF1bmNoZWQgZnJvbSBzZWNvbmRhcnkgYXBwbGljYXRpb24gbW9kYWwgc2hlbGwgIAo8YnI+NDUzMzc6ICBwb2NrZXRwYyAtIGNhbid0IHNob3cgcG9wdXAgbWVudSBpbiBUcmVlICAKPGJyPjQxMDYwOiAgcHJlZmVyZW5jZXMgZGlhbG9nIGFuZCBlZGl0aW5nIHBhc3RlIGZ1bmN0aW9ucyB3ZWRnZWQgIAo8YnI+NDIzNjc6ICBTdHlsZWRUZXh0IC0gU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0UmVuZGVyZXIgIAo8YnI+NDQ0NzQ6ICBTdHlsZWRUZXh0IGRvZXMgbm90IGhhbmRsZSBjYXNlIHdoZXJlIHByaW50aW5nIG5vdCBzdXBwb3J0ZWQgIAo8YnI+NDQwNTA6ICBTV1QuQk9SREVSIFRleHQgc2hvdWxkIGRpc3BsYXkgdGhpbiBibGFjayBib3JkZXIgb24gUG9ja2V0UEMgIAo8L2Jsb2NrcXVvdGU+IAoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyNiAtIFdlZG5lc2RheSBPY3RvYmVyIDIxLCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgCjQ0ODk2OiAyIGp1bml0IHRlc3RzIGhhdmUgYmVlbiBpbnRlcm1pdHRlbnRseSBmYWlsaW5nIGluIG5pZ2h0bHkgYnVpbGQgIAo8YnI+NDM4MTE6IDMuME0zIGZhaWxzIHN0YXJ0dXAgIAo8YnI+NDI0MTA6IEEgd2F5IHRvIGNoZWNrIGlmIFNXVCBCcm93c2VyIGlzIGltcGxlbWVudGVkIGFuZCB3b3JraW5nIGlzIG5lZWRlZC4gIAo8YnI+NDQxNzQ6IEVjbGlwc2UgY3Jhc2hlcyB1c2luZyBTV1QgRGVzaWduZXIgcGx1Z2luIAo8YnI+NDQyMzI6IEltYWdlRGF0YSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3duIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3Igc2NhbmxpbmVQYWQgPT0gMCAgCjxicj40NDgzMjogT3BlbmluZyBhIFBSSU1BUllfTU9EQUwgZGlhbG9nIG9uIHRvcCBvbiBhbm90aGVyIFBSSU1BUllfTU9EQUwgZGlhbG9nIHNob3VkIG5vdCBlbmFibGUgdGhlIHBhcmVudCBvZiB0aGUgZmlyc3QuICAKPGJyPjQ0MzAxOiBTYXNoRm9ybSAtIFNhc2hlcyBoYXZlIG5vIGJvcmRlcnMgIAo8YnI+NDUxNDU6IFNlY29uZCB3aW5kb3cgY29tZXMgdG8gZnJvbnQgd2hlbiB1c2luZyBmaXJzdCAgCjxicj40MDg3MzogU3BsYXNoIFNjcmVlbiBIYXMgV3JvbmcgQ29sb3JzIG9uIExpbnV4ICAKPGJyPjQyOTQ3OiBTdHlsZWRUZXh0IC0gcmVkcmF3IHByb2JsZW0gb24gbGFzdCBsaW5lIHdpdGggd29yZCB3cmFwICAgCjxicj40MzgzNzogW2Jyb3dzZXJdIEJyb3dzZXIgLSBsaW51eCBjYW4ndCBkaXNwb3NlIGEgYnJvd3NlciBhbmQgb3BlbiBhIG5ldyBvbmUgIAo8YnI+NDUxMjI6IFticm93c2VyXSBNb3ppbGxhIGJyb3dzZXIgZm9yd2FyZCgpIGJhY2soKSBhbHdheXMgcmV0dXJuIHRydWUgIAo8YnI+NDUxMTg6IFticm93c2VyXSBtb3ppbGxhIGJyb3dzZXIgdGhyb3dzIGV4Y2VwdGlvbiBhZnRlciByZWxvYWQgaW4gc29tZSBjYXNlcyAgCjxicj4zOTEwNjogW0RCQ1NdIENhbm5vdCBpbnB1dCBKYXBhbmVzZSBjaGFyYWN0ZXJzIGludG8gVGV4dCB3aWRnZXQgd2l0aCBHVEsrMiwga2lucHV0MiBhbmQgY2FubmEgIAo8L2Jsb2NrcXVvdGU+IAoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyNSAtIFdlZG5lc2RheSBPY3RvYmVyIDE1LCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpUYWJGb2xkZXIgc3R5bGUgYml0cyBTV1QuVE9QIGFuZCBTV1QuQk9UVE9NIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAKNDQyMTI6IEZvY3VzRXZlbnRzL0tleUV2ZW50cyBmcm9tIFNjYWxlIG5vdCBkZWxpdmVyZWQgIAo8YnI+NDM3Mjk6IEdDLmRyYXdUZXh0KCkgZG9lcyBub3Qgd29yayBvbiBsYXJnZSBpbWFnZXMgIAo8YnI+NDQ1MDg6IEdDLmdldENoYXJXaWR0aCBKVW5pdCB0ZXN0IGZhaWx1cmUgb24gV2luOTggIAo8YnI+NDQ2MDA6IGdub21lIFByb2dyYW0gZG9lcyBub3QgcmV0dXJuIGljb24gIAo8YnI+NDQ0NzY6IEdQIG9uIHNodXRkb3duICAKPGJyPjQ0MjIzOiBHcm91cCB3aWRnZXQgZG9lc24ndCBwYXNzIGZvY3VzIHdoZW4gcHJlc3NpbmcgbW5lbW9uaWMgIAo8YnI+NDQ2MDc6IEd0ayBjcml0aWNhbCB3YXJuaW5nIHdoZW4gcnVubmluZyBzd3QgYXBwICAKPGJyPjQ0MzcyOiBOUEUgb24gaGl0dGluZyBFc2MgdG8gZGlzbWlzcyBpbmxpbmUgdGFibGUgZWRpdCAgCjxicj40NDUxNjogUmVtb3ZlIHByaW50bG4ncyBmcm9tIEZvbnREYXRhIEpVbml0IHRlc3QgIAo8YnI+NDM4Nzg6IFNXVCBIVE1MIFdpZGdldCAvIEJyb3dzZXIgZW1iZWRkaW5nIHByb2JsZW0gb24gTGludXggIAo8YnI+MjI5ODM6IFRhYmxlLnNob3dJdGVtKCkgaWdub3JlZCBiZWZvcmUgYm91bmRzIGFyZSBzZXQgIAo8YnI+NDQ3Nzg6IFRhYmxlSXRlbS5nZXRJbWFnZSBwZXJpb2RpY2FsbHkgdGhyb3dzIEFycmF5T3V0T2ZCb3VuZHNFeGNlcHRpb24gIAo8YnI+NDMyODE6IFRleHQgZmllbGQgdGhyb3dzIFN0YWNrT3ZlcmZsb3dFcnJvciB3aGVuIGZ1bGwgIAo8YnI+NDQ1MDk6IFRleHQuc2V0VGV4dExpbWl0IEpVbml0IHRlc3QgZmFpbHVyZSBvbiBXaW45OCAgIAo8L2Jsb2NrcXVvdGU+IAoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMjQgLSBUdWVzZGF5IE9jdG9iZXIgNywgMjAwMyA8L2gyPgoKPGgzPjxhIE5BTUU9IkJyZWFraW5nIENoYW5nZXMiPjwvYT5CcmVha2luZyBDaGFuZ2VzPC9oMz4KCjxwPk1ldGhvZHMgPGNvZGU+SW1hZ2VMb2FkZXIuYWRkSW1hZ2VMb2FkZXJMaXN0ZW5lcihJbWFnZUxvYWRlckxpc3RlbmVyKTwvY29kZT4gYW5kCjxjb2RlPkltYWdlTG9hZGVyLnJlbW92ZUltYWdlTG9hZGVyTGlzdGVuZXIoSW1hZ2VMb2FkZXJMaXN0ZW5lcik8L2NvZGU+IG5vdyB0aHJvdyBhbiBTV1QgRXJyb3IKaWYgPGNvZGU+bnVsbDwvY29kZT4gaXMgcGFzc2VkIGFzIHRoZSBhcmd1bWVudC4KPC9wPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KUmVnaW9uLmFkZChpbnRbXSBwb2x5Z29uKSBhZGRlZAo8YnI+UmVnaW9uLnN1YnRyYWN0KGludFtdIHBvbHlnb24pIGFkZGVkCjxicj5TaGVsbC5nZXRSZWdpb24oKSBhZGRlZAo8YnI+U2hlbGwuc2V0UmVnaW9uKFJlZ2lvbikgYWRkZWQKPGJyPkFDQy5URVhUX0lOU0VSVCBhZGRlZAo8YnI+QUNDLlRFWFRfREVMRVRFIGFkZGVkCjxicj5BY2Nlc3NpYmxlLmFkZEFjY2Vzc2libGVUZXh0TGlzdGVuZXIoQWNjZXNzaWJsZVRleHRMaXN0ZW5lcikgYWRkZWQKPGJyPkFjY2Vzc2libGUucmVtb3ZlQWNjZXNzaWJsZVRleHRMaXN0ZW5lcihBY2Nlc3NpYmxlVGV4dExpc3RlbmVyIGxpc3RlbmVyKSBhZGRlZAo8YnI+QWNjZXNzaWJsZS5zZWxlY3Rpb25DaGFuZ2UoKSBhZGRlZAo8YnI+QWNjZXNzaWJsZS50ZXh0Q2FyZXRNb3ZlZChpbnQpIGFkZGVkCjxicj5BY2Nlc3NpYmxlLnRleHRDaGFuZ2VkKGludCxpbnQsaW50KSBhZGRlZAo8YnI+QWNjZXNzaWJsZS50ZXh0U2VsZWN0aW9uQ2hhbmdlZCgpIGFkZGVkCjxicj5vcmcuZWNsaXBzZS5zd3QuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmxlVGV4dEFkYXB0ZXIgYWRkZWQKPGJyPm9yZy5lY2xpcHNlLnN3dC5hY2Nlc3NpYmlsaXR5LkFjY2Vzc2libGVUZXh0RXZlbnQgYWRkZWQKPGJyPm9yZy5lY2xpcHNlLnN3dC5hY2Nlc3NpYmlsaXR5LkFjY2Vzc2libGVUZXh0TGlzdGVuZXIgYWRkZWQKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgCjQ0MTYxOiAgYWRkSW1hZ2VMb2FkTGlzdGVuZXIgc2hvdWxkIGNoZWNrIGZvciBudWxsIAo8YnI+NDM5NzE6ICBEb3VibGUgY2xpY2tpbmcgbm8gbG9uZ2VyIHdvcmtzICAKPGJyPjQyNTU5OiAgRWNsaXBzZSAzLjAgTTMgLSBjYW4ndCBzdGFydCBFY2xpcHNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSAgCjxicj40MzcwNjogIFBhbGV0dGUgZGVzYyBzYXlpbmcgJ25vIGl0ZW1zIGZvciB0aGlzIGVkaXRvcicgZG9lc250IHdyYXAgb24gbGludXggIAo8YnI+NDA5NDA6ICBQcmludGluZyBkaXNhYmxlZCBpbiBTb2xhcmlzICAKPGJyPjQzOTE4OiAgU29tZSBtb3VzZSBjbGlja3MgZG9uJ3Qgd29yayAgCjxicj40NDE2NDogIHVwZGF0ZSBuZWVkZWQgaW4gamF2YWRvYyBmb3IgY29uc3RydWN0b3IgSW1hZ2UoRGV2aWNlICwgSW1hZ2VEYXRhKSAgCjxicj40NDE2NTogIHVwZGF0ZSBuZWVkZWQgaW4gamF2YWRvYyBmb3IgY29uc3RydWN0b3JzIEltYWdlRGF0YSBzcGVjaWZ5aW5nIGNvbG9yRGVwdGggIAo8L2Jsb2NrcXVvdGU+IAoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMjMgLSBUdWVzZGF5IFNlcHRlbWJlciAzMCwgMjAwMyA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgCjQzNjEwOiAgJ1NoaWZ0K0FsdCsnIGdpdmVzIDB4MDAgYXMga2V5IGNvZGUgYW5kIGNoYXJhY3RlciAgCjxicj40MzUzODogIEN0cmwrU3BhY2UgZ2l2ZXMgdHdvIGtleSBkb3duIGV2ZW50cyAgCjxicj40MjIyNTogIENhbid0IGFzc2lnbiBjb21tYW5kIHRvIEN0cmwrQmFja3NwYWNlICAKPGJyPjQzNTk3OiAgW1NXVF0gVGV4dC5zZXRUZXh0KC4uKSBjYW4gY2hhbmdlIGZvbnQgaW5hcHByb3ByaWF0ZWx5IG9uIE1hYyBPU1ggIAo8YnI+NDM1OTk6ICBbS2V5QmluZGluZ3NdIGFjY2VsZXJhdG9ycyBvbiBNYWMgT1MgWCAnYXBwbGljYXRpb24gbWVudScgc2hvdWxkIG5vdCBhbHdheXMgYmUgYWN0aXZlICAKPGJyPjM0NzkwOiAgU2VhcmNoIHZpZXcgZG9lc24ndCByZXBvc2l0aW9uIHNjcm9sbGJhciAgCjxicj4zODc1NzogIEJJREkgLSBvbiBhIDEwMiBrZXlib2FyZCwgRW5nbGlzaCBMYXllciwgdGhlcmUgaXMgYSBrZXkgY29uZmxpY3QgIAo8YnI+NDAwODU6ICBDdXJzb3Iga2V5IHNjcm9sbGluZyBpbiBjb2RlIGFzc2lzdCB0YWJsZSBkb2Vzbid0IHVwZGF0ZSBzY3JvbGxiYXJzIAo8YnI+NDMzMTE6ICBLZXlSZWxlYXNlZCBldmVudCBpcyBub3QgZmlyZWQgd2hlbiB0aGUgJzQnIGtleSBpcyByZWxlYXNlZCBvbiBzcGFuaXNoIGtleWJvYXJkcyAgCjxicj40MzM5NDogIEltYWdlQW5hbHl6ZXIgZXhhbXBsZSBmYWlsZWQgdG8gcmVhZCBQTkcgZmlsZS4gIAo8YnI+NDM1NzY6ICAiQWx0K1NwYWNlIiB0cmF2ZXJzYWwgY2Fubm90IGJlIGJsb2NrZWQgIAo8YnI+NDM2MTM6ICBJbnRlZ3JhdGUgaXNDb21wbGV0ZSgpIHdvcmsgYW5kIG1lcmdlIHdpdGggcGF0Y2hlcyAgCjxicj40MzY2NzogIE5ldyBTeW5jaCBWaWV3IGxheW91dCAgCjxicj40Mzc1NzogIFRhYmxlIGFuc3dlcnMgaXRzIEhlYWRlciBhcyBhIGNoaWxkICAKPGJyPjQzNzc4OiAgQnJvd3NlciAtIG1vemlsbGEgR1RLIGludG8gTW90aWYgYXBwZWFycyBpbiB0b3AgbGV2ZWwgd2luZG93ICAKPGJyPjQzNzc5OiAgQnJvd3NlciAtIG1vemlsbGEgR1RLIGludG8gTW90aWYgZ2V0cyBoaWRkZW4gYnkgc2hlbGwgcHJveHkgZm9jdXMgIAo8YnI+NDM3ODA6ICBJbXBsZW1lbnQgQnJvd3NlciBvbiBMaW51eCBNb3RpZiAgCjxicj40MzE3NzogIFRleHQuc2V0VGV4dCgpIHRyaWdnZXJzIHR3byBNb2RpZnlFdmVudHMgIAo8YnI+NDM4MDg6ICBTdHlsZWRUZXh0IGRlbGV0ZXMgdG9vIG1hbnkgY2hhcmFjdGVycyBpbiBzb21lIHNpdHVhdGlvbnMgIAo8YnI+NDMwOTQ6ICBQcm92aWRlIGEgaG93LXRvIG9uIHJ1bm5pbmcgU1dUIHNuaXBwZXRzICAKPC9ibG9ja3F1b3RlPiAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDIyIC0gVHVlc2RheSBTZXB0ZW1iZXIgMjMsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgoKPHA+VGhlIEV2ZW50LmtleUNvZGUgZmllbGQgbm93IGNvbnRhaW5zIHRoZSB1bmFmZmVjdGVkIGtleWNvZGUgdmFsdWUuICBGb3IgZXhhbXBsZSwKd2hlbiB0aGUgdXNlciB0eXBlcyBDdHJsK1NoaWZ0KydhJywgdGhlIGtleUNvZGUgZmllbGQgY29udGFpbnMgJ2EnLiAgVGhlIGNoYXJhY3RlcgpmaWVsZCBpcyB1bmFmZmVjdGVkIGFuZCBjb250YWlucyB0aGUgc2FtZSB2YWx1ZSBhcyBiZWZvcmUgKDB4MDEpLgo8L3A+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpDb21iby5nZXRPcmllbnRhdGlvbigpIGFkZGVkCjxicj5Db21iby5zZXRPcmllbnRhdGlvbihpbnQpIGFkZGVkCjxicj5TdHlsZWRUZXh0LmdldE9yaWVudGF0aW9uKCkgYWRkZWQKPGJyPlN0eWxlZFRleHQuc2V0T3JpZW50YXRpb24oaW50KSBhZGRlZAo8YnI+VGV4dC5nZXRPcmllbnRhdGlvbigpIGFkZGVkCjxicj5UZXh0LnNldE9yaWVudGF0aW9uKGludCkgYWRkZWQKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgCjM4MDk0OiAgW0VudGVyXSBrZXkgZG9lc24ndCB3b3JrIGluIHRleHQgZWRpdG9ycyAgCjxicj4zMDI3MzogIFtLZXkgQmluZGluZ3NdIERCQ1M6ICJGMSIgZnVudGlvbiBrZXkgZG9lcyBOT1Qgd29yayBvbiBMaW51eF9HVEsuICAKPGJyPjE1NTM4OiAgTGFiZWwgcmVxdWlyZXMgYm9yZGVyIHRvIGRyYXcgY29ycmVjdGx5ICAKPGJyPjIxNTU1OiAgVmlldyBtZW51IHJlbWFpbnMgb3BlbiBvbiBHVEsgIAo8YnI+MzMxOTg6ICBbV2l6YXJkc10gRXJyb3IgbWVzc2FnZSBpbiBXaXphcmQgY2xpcHBlZCAgCjxicj4zNzYwODogIFtCaWRpXSBTdHlsZWRUZXh0IC0gc3VwcG9ydCBkeW5hbWljIGNoYW5naW5nIG9mIG9yaWVudGF0aW9uICAKPGJyPjQyNDY3OiAgUGhvdG9uIC0gaW1wbGVtZW50IHRoZSBTV1QgYnJvd3NlciB3aWRnZXQgIAo8YnI+NDMxMjU6ICBCaWRpOiBEQ1Igc2V0T3JpZW50YXRpb24gQVBJIGZvciBUZXh0IGFuZCBDb21ibyB3aWRnZXQgIAo8YnI+NDMyNjI6ICBYbVRleHRQYXN0ZSBuYXRpdmUgZGVjbGFyZXMgamJvb2xlYW4gcmV0dXJuLCBkb2VzIG5vdCBkbyBzbyAgCjwvYmxvY2txdW90ZT4gCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDIxIC0gVHVlc2RheSBTZXB0ZW1iZXIgMTYsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgoKPHA+Q2FudmFzZXMgbm93IHNlZSBDdHJsK1RhYiwgU2hpZnQrVGFiLCBDdHJsK1BnVXAgYW5kIEN0cmwrUGdEbiBieSBkZWZhdWx0IGluc3RlYWQgb2YgdHJhdmVyc2luZy4KVGhpcyBjaGFuZ2Ugd2FzIG1hZGUgZm9yIHRoZSBFY2xpcHNlIGtleSBiaW5kaW5nIHdvcmsuICBUaGUgcnVsZSB0aGF0IENhbnZhc2VzIHNlZSBldmVyeSBrZXkgd2FzCmJyb2tlbiBpbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiBTV1QgZHVlIHRvIGEgbGFzdCBtaW51dGUgYWNjZXNzaWJpbGl0eSB3b3JrIGFyb3VuZCBmb3IgMi4wLgo8L3A+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAKNDI4OTc6ICBCSURJOiBDSEVDSyBzdHlsZSBkb2Vzbid0IHdvcmsgd2l0aCBSVEwgVHJlZSBvciBUYWJsZSAgCjxicj40Mjc4NzogIENoZWNrYm94VGFibGVWaWV3ZXIgZG9lcyBub3QgY2xlYXIgc2VsZWN0aW9uICAgCjxicj40MjIwMjogIEpEVFVJIHRlc3RzIGRvbid0IGZpbmlzaCAgICAKPGJyPjE1MzA3OiAgRENSIC0gQWJpbGl0eSB0byBmb3JiaWQgU1dUIGJ1dHRvbiAoUFVTSCBzdHlsZSkgdG8gYmVjb21lIGRlZmF1bHQgbmVlZGVkICAKPGJyPjMyNzkwOiAgQnJlYWtwb2ludCBob3ZlciBpcyBmbGFreSBvbiBPUyBYICAKPGJyPjM3ODYzOiAgVGV4dCdzIGZvY3VzIGJvcmRlciBoYXMgd3JvbmcgYmFja2dyb3VuZCAKPGJyPjM5OTg3OiAgQklESTogTUlSUk9SRUQgYml0IGNhbid0IGJlIHN3aXRjaGVkIG9uIGluIHRoZSBzdHlsZSdzIGJpdG1hcCBvZiBhbnkgU1dUIHdpZGdldC4gIAo8YnI+NDAwMDY6ICBCSURJOiBydGwtb3JpZW50ZWQgU3R5bGVkVGV4dCBoYXMgb3ZlcmxhcHBpbmcgc2VnbWVudHMgcHJvYmxlbSAgCjxicj40MTAzOTogIEhpdHRpbmcgdGhlIEVudGVyL1JldHVybiBrZXkgaW4gdGhlIEZpbmQvUmVwbGFjZSBkaWFsb2cgZG9lc24ndCBkbyBhbnl0aGluZyBvbiBNYWMgT1MgWCAgCjxicj40MjM0OTogIEJvZ3VzIGltcGxlbWVudGF0aW9uIGZvciBHQy5kcmF3VGV4dCAoU3RyaW5nIHN0cmluZywgaW50IHgsIGludCB5LCBpbnQgZmxhZ3MpIG9uIE1hYyAgCjxicj40MjM1MzogIGRyYXdTdHJpbmcvZHJhd1RleHQgZG8gbm90IHdvcmsgcHJvcGVybHkgb24gR1RLLiAgCjxicj40MjUxMjogIE1lbnVCYXIgb24gRGVjb3JhdGlvbnMgYXJlIG5vdCByZWZyZXNoZWQgIAo8YnI+NDI3MjQ6ICBTdHlsZWRUZXh0IC0gc2VsZWN0aW9uIHJlbmRlcmVkIGluY29ycmVjdGx5IG9uIGJpZGkgcGxhdGZvcm1zICAKPGJyPjQyODE4OiAgRGlyZWN0b3J5RGlhbG9nIGRvZXMgbm90IHNob3cgaXRzIHNldCBtZXNzYWdlICAKPGJyPjQyODgyOiAgcmVtb3ZlIHBsYXRmb3JtIGNvZGUgdGhyb3dpbmcgQ2xhc3NOb3RGb3VuZCBleGNlcHRpb24gIAo8YnI+NDMwMTE6ICAiQWx0KyIga2V5IHN0cm9rZXMgbm90IGFsd2F5cyByZWNlaXZlZCBvbiAiemhfQ04uR0IxODAzMCIgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyMCAtIFR1ZXNkYXkgU2VwdGVtYmVyIDksIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+IAo0Nzc2OiAgU3R5bGVkVGV4dCAtIEdDLnN0cmluZ0V4dGVudCByZXR1cm5zIGluY29ycmVjdCB2YWx1ZSAoMUdJN0FMQSkgIAo8YnI+MzU1ODk6ICBTdHlsZWRUZXh0IC0gYWRkIGdldFN0eWxlUmFuZ2VzKHN0YXJ0LCBvZmZzZXQpIEFQSSAgCjxicj4zNTgyNjogIEdQcyBvbiBleGl0ICAKPGJyPjM4OTgzOiAgU3R5bGVkVGV4dCAtIGlnbm9yZSBXUkFQIHdoZW4gU0lOR0xFIHN0eWxlIGlzIHNwZWNpZmllZCAgCjxicj40MDAxOTogIEJJREk6IFN0eWxlZFRleHQgaGFzIHByb2JsZW0gd2l0aCBkcmF3aW5nIG9mIHNlbGVjdGlvbiBpbiBib3RoIGx0ciBhbmQgcnRsIG9yaWVudGF0aW9uIG9mIHRoaXMgd2lkZ2V0IGluIHRoZSBiaWRpIGxvY2FsZS4gIAo8YnI+NDA0MDY6ICBDbGlja2luZyBpbiB0cmVlIGRvZXMgbm90IGJyaW5nIHdpbmRvdyB0byB0aGUgZnJvbnQuICAKPGJyPjQwNjkzOiAgVGV4dCAtIE5vIFZlcmlmeS9Nb2RpZnkgd2hlbiBhIG1vZGlmaWVyIGtleSBpcyBkb3duICAKPGJyPjQwODAwOiAgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVGV4dCwgbWV0aG9kIGFwcGVuZCgpLCBib3R0b20gZm9jdXNpbmcgZXJyb3IgIAo8YnI+NDE3NDg6ICBbS2V5YmluZGluZ3NdIEtleWJvYXJkIFNob3J0Y3V0cyBub3Qgd29ya2luZyAgCjxicj40MTc3MzogIHVuZGVyc2NvcmUgZGlzc2FwZWFycyBpbiBlZGl0b3IgaWYgZm9udCBpcyBib2xkIENvdXJpZXIgTmV3IHNpemUgOSAgCjxicj40MTg5OTogIE9kZCBmb250IG5hbWVzIHJldHVybmVkIGJ5IGdldEZvbnRMaXN0IG9uIE1hYyAgCjxicj40MjI1OTogIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gRm9udERhdGEuZ2V0TG9jYWxlKCkgIAo8YnI+NDIyNjY6ICBOUEUgd2hlbiBvcGVuaW5nIENvbXBpbGVyIHByZWZlcmVuY2UgcGFnZSAgCjxicj40MjI3NTogIERldmljZS5nZXRGb250TGlzdCgpIGlzIGluY29uc2lzdGVudCBhY3Jvc3MgcGxhdGZvcm1zLiAgCjxicj40MjI5MzogIE1lbnUgaXRlbSB0b28gbGFyZ2UgIAo8YnI+NDIzMjM6ICBFY2xpcHNlIHdvbid0IHN0YXJ0IGFmdGVyIHJlbmFtaW5nIEVjbGlwc2UuYXBwICAKPGJyPjQyNDYwOiAgQnJvd3NlciAtIHJlcG9ydCBsb2NhdGlvbiBiZWZvcmUgaXQgaXMgY2hhbmdlZCAgCjxicj40MjQ2NTogIFN0YWNrT3ZlcmZsb3cgb24gS2V5cyBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+NDI2OTc6ICBtdWx0aXNlbGVjdCBpbiBwb2NrZXQgcGMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxOWMgLSBUdWVzZGF5IFNlcHRlbWJlciAyLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozOTc4MTogIFNlbGVjdGlvbiBldmVudHMgbm90IGZpcmVkIGZyb20gQ29tYm8gIAo8YnI+NDA1NjA6ICBMYWJlbCB3aXRoIHRleHQgYW5kIGltYWdlIHNldCB0cmllcyB0byBkaXNwbGF5IGJvdGggIAo8YnI+NDEzMzA6ICBJbXBvcnR8ZmlsZXN5c3RlbSBGb3JtIERpcmVjdG9yeSBpbnB1dCBhY3RzIHN0cmFuZ2UgIAo8YnI+NDE2MTk6ICBTV1QgZG9lcyBub3QgcmVuZGVyIFVuaWNvZGUgZ2x5cGhzID4gMjU1ICAKPGJyPjQxNzA3OiAgRXhjZXB0aW9uIGNhdXNlcyBNZW1iZXJzIHZpZXcgdG8gYmVjb21lIGVtcHR5ICAKPGJyPjQxOTY4OiAgU29tZSBtZW51IGl0ZW0gdGV4dHMgYXBwZWFyIGJsYW5rIG9uIFNvbGFyaXMgOSB4ODYgIAo8YnI+NDE5ODA6ICBHUCBzaG93aW5nIFdvcmtiZW5jaCAtIEFwcGVhcmFuY2UgcHJlZmVyZW5jZSBwYWdlICAKPGJyPjQyMDA4OiAgQ29ycnVwdCBUcmVlIHZpZXctbW9kZWwgYWZ0ZXIgZGlzcG9zaW5nIGxhc3QgdHJlZUl0ZW0gIAo8YnI+NDIxNTA6ICBCcm93c2VyIHBsdWdpbiBub3Qgd29ya2luZyBvbiBHVEsgIAo8YnI+NDIxODI6ICBFeHRlcm5hbGl6ZSBzdHJpbmdzIHdpemFyZCBpcyBicm9rZW4gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxOSAtIE1vbmRheSBBdWd1c3QgMjUsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgoKPHA+S2V5ZG93biBldmVudHMgbm93IHJ1biBiZWZvcmUgdGhlIHdvcmsgaXMgZG9uZSBpbiB0aGUgT3BlcmF0aW5nIFN5c3RlbS4gIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCAKdGhhdCBpZiB5b3UgaG9vayBhIGtleSBkb3duIGV2ZW50IGluIGEgdGV4dCB3aWRnZXQgYW5kIGluc2lkZSB0aGUga2V5IGRvd24gZXZlbnQsIGdldCB0aGUgY29udGVudCBvZiAKdGhlIHRleHQgd2lkZ2V0IChUZXh0LmdldFRleHQoKSksIHRoZSBjb250ZW50IHdpbGwgbm90IGNvbnRhaW4gdGhlIGtleSB0aGF0IHdhcyBqdXN0IHR5cGVkLiAgClRvIGdldCB0aGUgY29udGVudCB3aXRoIHRoZSBsYXRlc3QgY2hhcmFjdGVyIHlvdSBjYW4gdXNlIERpc3BsYXkuYXN5bmNFeGVjIC0gdGhpcyB3aWxsIHJ1biBhZnRlciAKdGhlIE9wZXJhdGluZyBTeXN0ZW0gaGFzIHByb2Nlc3NlZCB0aGUga2V5IGRvd24uICBOb3RlOiBpbiB0aGlzIGNhc2UgeW91IHByb2JhYmx5IHNob3VsZCAKaGF2ZSBiZWVuIHVzaW5nIHRoZSBTV1QuTW9kaWZ5IG9yIFNXVC5WZXJpZnkgZXZlbnQuPC9wPgoKPHA+VGhpcyBjaGFuZ2Ugd2FzIG1hZGUgdG8gc3VwcG9ydCBrZXkgYmluZGluZ3MgaW4gRWNsaXBzZSBzbyB0aGF0IHRoZXkgY291bGQgaW50ZXJjZXB0CmtleSBldmVudHMgYmVmb3JlIGFueSB3aWRnZXQgaGFkIGEgY2hhbmNlIHRvIHByb2Nlc3MgdGhlIGNoYXJhY3Rlci48L3A+Cgo8aDM+CjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KUmVnaW9uKERldmljZSkgYWRkZWQKPGJyPlJlZ2lvbi5pbnRlcnNlY3QoUmVjdGFuZ2xlKSBhZGRlZAo8YnI+UmVnaW9uLmludGVyc2VjdChSZWdpb24pIGFkZGVkCjxicj5SZWdpb24uc3VidHJhY3QoUmVjdGFuZ2xlKSBhZGRlZAo8YnI+UmVnaW9uLnN1YnRyYWN0KFJlZ2lvbikgYWRkZWQKPGJyPlJlY3RhbmdsZS5pbnRlcnNlY3QoUmVjdGFuZ2xlKSBhZGRlZAo8YnI+UmVjdGFuZ2xlLmludGVyc2VjdHMoaW50LCBpbnQsIGludCwgaW50KSBhZGRlZAo8YnI+VGFibGVJdGVtLnNldEJhY2tncm91bmQoaW50LCBDb2xvcikgYWRkZWQKPGJyPlRhYmxlSXRlbS5zZXRGb3JlZ3JvdW5kKGludCwgQ29sb3IpIGFkZGVkCjxicj5UYWJsZUl0ZW0uZ2V0QmFja2dyb3VuZChpbnQpIGFkZGVkCjxicj5UYWJsZUl0ZW0uZ2V0Rm9yZWdyb3VuZChpbnQpIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIwNTM2OiBTV1QgZXJyb3IgZHVyaW5nIFRyYWNrZXIgaW5zdGFudGlhdGlvbiBpbiBHVEsgIAo8YnI+NDA1Mjk6IFNXVCBleGFtcGxlczogc2V0dXAgZG9jIGJ1ZyAgICAKPGJyPjQxODQwOiBXaW5kb3dzIG9ubHkgLSBCcm93c2VyIHdpZGdldCB3aXRoIE1vemlsbGEgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxOCAtIFdlZG5lc2RheSBBdWd1c3QgMjAsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cgo8cD5Ccm93c2VyIGNsYXNzIGFkZGVkIGZvciBXaW5kb3dzIGFuZCBMaW51eCBHVEs8L3A+CjxwPjM2OTUyOglbUGxhbiBJdGVtXSBEaXNwbGF5IEhUTUwgaW4gYSB3aWRnZXQ8L3A+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgICAKNDEyMDE6ICBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gTGFiZWwKPGJyPjQxMzYyOiAgR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIEdyb3VwCjwvYmxvY2txdW90ZT4gICAgCgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxN2EgLSBUdWVzZGF5IEF1Z3VzdCAxOSwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAgCjIyMzIyOiBBV1QgQ29udGFpbmVyIGlzIGEgU1dUIGNvbnRhaW5lciBkb2VzIG5vdCBnZXQgaXRzIGJhY2tncm91bmQgcGFpbnRlZCBpbiBKREsgMS40LjAgIAo8YnI+Mzk3NTI6IFNXVF9BV1Qgc3VwcG9ydCBmb3IgSmF2YSAxLjQgIAo8YnI+NDA4Mjg6IFZlcnRpY2FsIHRvb2xiYXIgc3RyYW5nZSBiZWhhdmlvciAgICAgICAKPGJyPjQxNDE4OiBGb3JtTGF5b3V0IGNhdXNpbmcgaW5maW5hdGUgbG9vcC4gIAo8YnI+NDE0MjQ6IEphdmFkb2MgaXMgYm9ndXMgZm9yIEdDLmRyYXdBcmMgIAo8YnI+NDE0NTU6IFRhYmxlQ29sdW1uI3NldFdpZHRoKGludCB3aWR0aCkgYWxsb3cgd2lkdGg9MCBidXQgR1RLIGRvZXNuJ3QgbGlrZSBpdCAgCjxicj40MTYyMDogZWNsaXBzZS5leGUgb24gTWFjIHRydW5jYXRlcyBlcnJvciBtZXNzYWdlcyBsb25nZXIgdGhhbiAyNTUgY2hhcnMgIAo8YnI+NDE2Mjc6IEVkaXRhYmxlIENvbWJvIGluY29ycmVjdCB3aWR0aCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDE3IC0gVHVlc2RheSBBdWd1c3QgMTIsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgIAo0NjA4OiBDYW52YXMuc2V0UmVkcmF3KHRydWUpIG1ha2VzIHdpZGdldCB2aXNpYmxlICgxRzk3NVZHKSAgCjxicj42MjIwOiBXb3JrYmVuY2ggaXMgYXV0b21hdGljYWxseSBicm91Z2h0IHRvIGZyb250IGluIGZvY3VzIGZvbGxvd3MgbW91c2UgbW9kZSAgCjxicj4zODYwNTogQ1RhYkl0ZW0gY2Fubm90IGJlIGNyZWF0ZWQgaW4gTGludXgtR1RLICAKPGJyPjM5MTczOiBUaHJlYWQgcHJvY2Vzc2luZyBpcyBleHRyZW1lbHkgc2xvdyBvbiBHVEsuIChCQkFXVCkgIAo8YnI+NDAxMDI6IFtWaWV3ZXJzXSBJVHJlZVZpZXdlckxpc3RlbmVyLnRyZWVFeHBhbmRlZCgpIGlzIGNhbGxlZCB0d2ljZSAgCjxicj40MDE1NjogQ1RhYkZvbGRlcidzIGNsaWVudCBhcmVhIGlzIG9mZiBieSBhIGZldyBwaXhlbHMgd2hlbiB0aGVyZSBhcmUgbm8gdGFicyAgCjxicj40MDYyNDogSlZNIGNyYXNoIGNhdXNlZCBieSBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwubW90aWYuT1MuWG1JbVNldFZhbHVlcyhOYXRpdmUgTWV0aG9kKSAgCjxicj40MDg4NDogRWNsaXBzZSBjcmFzaGVzIHdpdGggU3VuIGpkayAxLjQuMiAgCjxicj40MDg5OTogRWNsaXBzZSAyLjEuMSBkb2VzIG5vdCBjb21lIHVwIG9uIEhQIHdoZW4gcmVtb3RlbHkgYXR0YWNoaW5nIGZyb20gYSBsaW51eCBib3ggIAo8YnI+NDEwNjc6IE9MRSByZWYgY291bnQgcHJvYmxlbSB3aGVuIG9wZW5pbmcgZmlsZSBmb3IgcmVhZCAgCjxicj40MTExMTogW3BvcnRhYmlsaXR5XSBEaXJlY3RFZGl0IGVkaXRvciBtaXNwbGFjZWQgYWZ0ZXIgdXNpbmcgc2Nyb2xsIHdoZWVsICAKPGJyPjQxMTg4OiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gQnV0dG9uICAKPGJyPjQxMjAwOiBHVEstIGNvbnRlbnRzIG9mIGNoZWNrIGFuZCByYWRpbyBidXR0b25zIGNhbid0IGJlIGFsaWduZWQgdG8gY2VudGVyIGFuZCB0byB0aGUgdHJhaWxpbmcgZWRnZSBvZiB3aWRnZXQuICAKPGJyPjQxMjMzOiBDb250cm9sIGFkZGVkIGFmdGVyIG9wZW4oKSBkb2Vzbid0IGdldCBwYWludGVkIHVubGVzcyB0aGUgd2luZG93IGlzIHJlc2l6ZWQuICAKPGJyPjQxMzI0OiBQcmVmZXJlbmNlcy0+V29ya2JlbmNoLT5BcHBlYXJhbmNlIGNyYXNoZXMgSlZNIFtNb3RpZl0gIAo8YnI+NDEzNDc6IENDb21ibyBzaG91bGRuJ3QgZmlyZSBkZWZhdWx0U2VsZWN0aW9uIG9uIG1vdXNlIGxpc3Qgc2VsZWN0aW9uICAKPGJyPjQxMzY2OiBXaWRnZXQgaXMgZGlzcG9zZWQgZXhjZXB0aW9uIHdoaWxlIGxheW91dCAgCjxicj40MTM3NTogRm9ybUxheW91dC5sYXlvdXQgdGFrZXMgdG9vIGxvbmcgZm9yIG1vcmUgY29udHJvbHMgIAo8L2Jsb2NrcXVvdGU+ICAgCgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxNSAtIFR1ZXNkYXkgSnVseSAyOSwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAgCjM2OTI3OiBVSSBkb2VzIG5vdCBnZXQgZm9jdXMgb24gbXVsdGlzY3JlZW4gU3VzZSA4LjIgIAo8YnI+MzcwOTU6IEJJREkgLSBXaGVuIHN0YXJ0aW5nIEVjbGlwc2UgZnJvbSBBcmFiaWMgbG9jYWxlIGl0IGlzIGFsd2F5cyBSVEwgb3JpZW50ZWQgIAo8YnI+MzgzNDk6IHdpemFyZCBkZXNjcmlwdGlvbiBzaG93aW5nIGJvcmRlciBhbmQgY2FyZXQgIAo8L2Jsb2NrcXVvdGU+ICAgCgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxNSAtIFR1ZXNkYXkgSnVseSAyOSwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxwPgo8Yj5Nb3RpZiBhbmQgUGhvdG9uOiBDaGFuZ2Ugb2YgZXZlbnQgb3JkZXJpbmcgaW4gVGFibGUgYW5kIFRyZWU8L2I+CjxwPgpUaGUgb3JkZXJpbmcgb2Ygc2VsZWN0aW9uIGV2ZW50cyBoYXMgY2hhbmdlZCBvbiB0aGVzZSBwbGF0Zm9ybXMgdG8gYmVjb21lIGNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIHdpbjMyOgo8dWw+CjxsaT5UaGUgcHJldmlvdXMgb3JkZXJpbmcgb2YgU2VsZWN0aW9uLU1vdXNlRG93bi1Nb3VzZVVwIGhhcyBiZWVuIGNoYW5nZWQgdG8gTW91c2VEb3duLVNlbGVjdGlvbi1Nb3VzZVVwIGZvciBtb3VzZSAoZGUpc2VsZWN0aW9uczwvbGk+CjxsaT5UaGUgcHJldmlvdXMgb3JkZXJpbmcgb2YgU2VsZWN0aW9uLUtleURvd24tS2V5VXAgaGFzIGJlZW4gY2hhbmdlZCB0byBLZXlEb3duLVNlbGVjdGlvbi1LZXlVcCBmb3Iga2V5Ym9hcmQgKGRlKXNlbGVjdGlvbnM8L2xpPgo8L3VsPgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgICAKMzMzNzA6ICBldmVudCBmaXJpbmcgZGlmZmVyZW5jZXMgKHdpbjMyL21vdGlmKSAgIAo8YnI+Mzc1Nzg6ICBUYWJsZUNvbHVtbiBkb2VzIG5vdCBub3RpZnkgb2YgUmVzaXplIGV2ZW50ICAKPGJyPjM4NzEyOiAgJ0d0ayBDUklUSUNBTCcgZXJyb3IgYmVpbmcgcm9wb3J0ZWQgYnkgU1dUIGluIExpbnV4LUdUSy4gKEJCQVdUKSAgCjxicj4zOTQwMTogIFN3aW5nIGludGVyb3BlcmFiaWxpdHkgLSBzb2x1dGlvbiBwcm9wb3NhbCAgCjxicj4zOTczMDogIGNvZGUgYXNzaXN0IHBvcHVwIGRvZXMgbm90IHRha2UgZm9jdXMgIAo8YnI+NDA2NTI6ICBHVEsgTGludXggLSBNZW1vcnkgTGVhayAgCjwvYmxvY2txdW90ZT4gICAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDE0ZiAtIFR1ZXNkYXkgSnVseSAyMiwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxwPgo8Yj5DbGlwYm9hcmQgQVBJIG11c3QgYmUgY2FsbGVkIGZyb20gVUkgVGhyZWFkPC9iPgo8cD4KT24gR1RLLCBDbGlwYm9hcmQgaW50ZXJhY3Rpb25zIHJ1biBhbiBldmVudCBsb29wIHdoaWNoIG11c3QgCmJlIGV4ZWN1dGVkIGluIHRoZSBVSSBUaHJlYWQuICBBcyBhIHJlc3VsdCwgb24gYWxsIHBsYXRmb3JtcywKaW52b2tpbmcgdGhlIENsaXBib2FyZCBBUEkgZnJvbSBhIG5vbiBVSSB0aHJlYWQgd2lsbCByZXN1bHQgCmluIGFuIFNXVCBFeGNlcHRpb24gb2YgRVJST1JfVEhSRUFEX0lOVkFMSURfQUNDRVNTLgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAKMzMzNTU6IEJ1dHRvbiB3aXRoIEFSUk9XIHN0eWxlIGFuc3dlcnMgZ2V0VGV4dCgpIGRpZmZlcmVudGx5ICAKPGJyPjM1NzYxOiBDb250cm9sRXhhbXBsZSAtIExhYmVsIC0gSW1hZ2UgbGFiZWxzIGlzc3VlIHdpdGggU1dULldSQVAgIAo8YnI+MzU4NjE6IGNyYXNoIGluIGd0a19lZGl0YWJsZV9kZWxldGVfc2VsZWN0aW9uIG9uIEdUSyAyLjIuMS9SZWRoYXQgNy4xICAKPGJyPjM2NjExOiBUcmFja2VyIHJlc2l6ZSBldmVudHMgYXJlIG5vdCBzZW50IGNvcnJlY3RseSAgCjxicj4zODIyNDogVHJhY2tlciBpbXBsZW1lbnRhdGlvbiBvbiBHVEsgaW5jb21wbGV0ZSAgCjxicj4zODc3NzogT3V0IG9mIGJvdW5kIGV4Y2VwdGlvbiBpbiBDb2xvckRpYWxvZyAgCjxicj4zODg1NTogVGFibGUuZ2V0SW1hZ2VCb3VuZHMgcmV0dXJucyBpbmNvcnJlY3QgdmFsdWUgIAo8YnI+MzkwMTE6IE11bHRpbW9uaXRvciAtIGFkZCBhcGkgdG8gZ2V0IG1vbml0b3Igd2hpY2ggJ293bnMnIGEgd2lkZ2V0ICAKPGJyPjM5ODQwOiBObyBjb250ZXh0IG1lbnUgb24gdGhlIGZhc3QgdmlldyBpY29ucyBhbmQgcGVyc3BlY3RpdmUgaWNvbnMgIAo8YnI+Mzk5NjU6IGd0ayBoYXMgdHJvdWJsZSBwcm9jZXNzaW5nIGV2ZW50cyB1bnRpbCB3aW5kb3cgcG9wICAKPGJyPjM5OTg3OiBCSURJOiBNSVJST1JFRCBiaXQgY2FuJ3QgYmUgc3dpdGNoZWQgb24gaW4gdGhlIHN0eWxlJ3MgYml0bWFwIG9mIGFueSBTV1Qgd2lkZ2V0LiAgCjxicj40MDEzMDogU3R5bGVkVGV4dCAtIGFkZCBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgdG8gU3R5bGVkVGV4dCAgCjxicj40MDE1NTogRm9udC5kaXNwb3NlKCkgdGhyb3dzIE5QRSAgCjxicj40MDE1ODogUmlnaHQgY2xpY2sgb24gYSB0cmVlIGRvZXNuJ3Qgc2VsZWN0IHRoZSBlbGVtZW50ICAKPGJyPjQwMTU5OiBDb21ibyB0aHJvd3MgZXhjZXB0aW9uIGluIGp1bml0IHRlc3QgIAo8YnI+NDAyMTY6IFJpZ2h0IENUUkwrU0hJRlQgcmlnaHQganVzdGlmaWVzIHRleHQgYW5kIHJldmVyc2VzIHNjcm9sbCBiYXJzICAKPGJyPjQwMjQyOiBUZXh0IGJlaW5nIHJldmVyc2VkIHdoaWxlIGhpdHRpbmcgQ3RybCtTaGlmdCAgCjwvYmxvY2txdW90ZT4gICAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDE0IC0gVHVlc2RheSBKdWx5IDE0LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgIAozMDAyMTogRm9udCBhbmQgQ29sb3IgZGlhbG9ncyBoYW5nIG9uIEpWTSAxLjQuMSAgCjxicj4zNzAzMDogTm8gZm9jdXMgbGlzdGVuZXIgY29udHJvbCBpbiBTV1QgY29tYm8gb24gTGludXggcGxhdGZvcm0gIAo8YnI+Mzc0Mjg6IEV4dHJhIHBvcCB1cCBtZW51IG9uIHRleHQgd2lkZ2V0IHdpdGggc2V0TWVudSAgCjxicj4zOTAzMjogU3R5bGVkVGV4dCAtIGV4Y2VwdGlvbiBpbiBhdXRvc2Nyb2xsIGluIGJpZGkgIAo8YnI+MzkxNjY6IGNyYXNoICAKPGJyPjM5MjM2OiBDb21wbGV0ZWx5IGRpZmZlcmVudCBiZWhhdmlvdXIgZm9yIGNyZWF0aW5nIGEgc2hlbGwgd2l0aCBhIHBhcmVudCB2ZXJzdXMgY2FsbGluZyBzZXRQYXJlbnQKPGJyPjQwMDMwOiBTdHlsZWRUZXh0IC0gYXV0byBzY3JvbGwgbmV4dCBpbiBTSU5HTEUgbW9kZSBkb2VzIG5vdCBzdG9wICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMTMgLSBUaHVyc2RheSBKdWx5IDEwLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgIAozNzQ5MDogQklESTogdGV4dCBpbiB0aGUgcnRsLW9yaWVudGVkIFRleHQgY29udHJvbCBjYW4ndCBiZSBhbGlnbmVkIHRvIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoaXMgY29udHJvbC4gIAo8YnI+MzkwMTM6IHNjcm9sbGluZyBkb3duIGluIGVkaXRvciBjb3JydXB0cyBjb250ZW50cyAgCjxicj4zOTM4MDogVGFiRm9sZGVyIG5vdCB3b3JraW5nIGluIFFOWCA2LjIuMSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDEyIC0gVHVlc2RheSBKdWx5IDgsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgCjM5NDQzOiBHVEsgRXJyb3IgY2FsbGluZyBUcmVlSXRlbS5nZXRFeHBhbmRlZCgpIG9uIGEgdHJlZSBpdGVtIGJlaW5nIGRpc3Bvc2VkLiAgCjxicj4zOTA4NDogQ29tYm8uYWRkIGZpcmluZyB1bm5lY2Vzc2FyeSBldmVudHMgKEJCQVdUKSAgCjxicj4yMTIxMjogR1RLOlNlbGVjdGluZyBhIENoZWNrYm94IGZyb20gd2l0aGluIHRoZSBzZWxlY3Rpb24gY2FsbGJhY2sgY2F1c2VzIGluZmluaXRlIGxvb3AoQkJBV1QpICAKPGJyPjE5NjE0OiBOT19SQURJT19HUk9VUCBkb2VzIG5vdCB3b3JrIG9uIEdUSyAgCjxicj4zOTExOTogVGV4dC5Db21wdXRlU2l6ZSgwKSByZXR1cm5pbmcgMCBvbiBHVEsgKEJCQVdUKSAgCjxicj4zNDM4NjogVHJhdmVyc2luZyBvdXQgb2YgVGFibGUgaGVhZGVyIGNhbiBsZWFkIHRvIHdhcm5pbmcgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxMSAtIFR1ZXNkYXkgSnVseSAxLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgIAozODk3NTogUHJvcGVydHlTaGVldFZpZXdlciBnZXRzIElsbGVnYWxBcmd1ZW1lbnRFeGNlcHRpb24gaWYgUm9vdEVsZW1lbnQgc2V0IGJlZm9yZSB2aXNpYmxlICAKPGJyPjM5MzE5OiBFY2xpcHNlIG9mdGVuIGhhbmdzLiBSaWdodCBjbGlja2luZyBoZWxwcyBzb21ldGltZXMgIAo8YnI+MzkxMDU6IEVjbGlwc2UgQ3Jhc2ggaW5zZXJ0aW5nIGEgTmV3IFByb2plY3Qgb24gQ1ZTICAKPGJyPjE5MTUzOiBDb21ibyBmaXJlcyB0b28gbWFueSBTZWxlY3Rpb25FdmVudHMgaW4gR1RLMiAgICAKPGJyPjEyMjIwOiBTV1QgTW91c2UgRW50ZXIgY29tZXMgYmVmb3JlIE1vdXNlIEV4aXQgW3BvcnRhYmlsaXR5XSAgCjxicj4zODYwNjogTGlzdCBjb25zdHJ1Y3RvciB3aXRoIFNXVC5TSU1QTEUgfCBTV1QuTVVMVEkgc3R5bGUgcGFyYW1ldGVycyBiZWhhdmVzIGluY29ycmVjdGx5IChCQkFXVCkgIAo8YnI+MzkxNDA6IFNXVC5WRVJUSUNBTCBpZ25vcmVkIGluIFRvb2xCYXIgICAKPGJyPjIwMDgzOiBDQ29tYm8gbWV0aG9kIHJlZHJhdygpIGRvZXMgbm90IHdvcmsgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxMCAtIFR1ZXNkYXkgSnVuZSAyNCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTc2NTY6IEluY29uc2lzdGVudCBjb21ibyBib3ggZGlzcGxheSBiZWhhdmlvdXIgIAo8YnI+MzA4NzE6IFtDZWxsIEVkaXRvcnNdIFN1cHBvcnQgZm9yIG11bHRpbGluZSB0ZXh0IGNlbGwgZWRpdG9yICAKPGJyPjMzOTY2OiBDQ29tYm8gaXMgcGFkZGluZyBpdCdzIGRyb3AtZG93biBpdGVtcyBsaXN0IHdpdGggYmxhbmsgZW50cmllcyAgCjxicj4zNDM2NTogRGlzcGxheSBwcm9ibGVtIGluIHRoZSBlZGl0b3IgIAo8YnI+MzU4NTI6IENyYXNoIG9uIGZpcnN0IHN0YXJ0dXAgaW4gTWFuZHJha2UgOS4xICAgIAo8YnI+Mzg1OTY6IENvbnRyb2xFeGFtcGxlIC0gJ3JldHVybicgaW5zaWRlIHRleHQgd2lkZ2V0IGdvZXMgdG8gYnV0dG9uIHdpZGdldCAgCjxicj4zODYyNjogRGlyZWN0b3J5RGlhbG9nIGdldEZpbHRlclBhdGgoKSBhbHdheXMgcmV0dXJucyBudWxsICAKPGJyPjM4NjI3OiBbQ29udHJpYnV0aW9uc10gQ2FzY2FkaW5nIG1lbnUgZG9lcyBub3Qgc2hvdyBhbiBhcnJvdyAgCjxicj4zODkxNDogQ2xpY2tpbmcgaW4gdGhlIHdyb25nIHNlcXVlbmNlIGNyYXNoZXMgSmF2YSBWTSAgCjxicj4zODk4NzogUG9ja2V0UEM6IE1VTFRJIFRleHQgY29udHJvbCBFU19XQU5UUkVUVVJOL19UQUJfTkVYVCBwcm9ibGVtICAKPGJyPjM5MDQ5OiBGb3JtTGF5b3V0IHBlcmZvcm1hbmNlICAKPGJyPjM5MDc4OiBGb3JtRGF0YSB0aHJvd3MgIldpZGdldCBpcyBkaXNwb3NlZCIgd2hlbiBpdCdzIHdpZGdldCBpcyBkaXNwb3NlKClkICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDkgLSBUdWVzZGF5IEp1bmUgMTcsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM4MzUzOiAgY3Jhc2ggaW4gT1MuZ3RrX21haW5faXRlcmF0aW9uKCkgd2hlbiBkb3VibGUtY2xpY2sgZGlzYWJsZWQgdGV4dCB3aWRnZXQgIAo8YnI+Mzg5MTI6ICBEQkNTOiBpbnB1dCBzcGVjaWFsIHN5bWJvbCBicmVha3MgaW5wdXQgbWV0aG9kIG9uIGphX0pQICAgCjxicj4zODM0NDogIFN0eWxlZFRleHQgLSBleGNlcHRpb24gd2hlbiBzZWxlY3RpbmcgbGluZXMgaW4gV1JBUCBtb2RlICAKPGJyPjMxMTk1OiAgU3R5bGVkVGV4dCAtIFNXVC5XUkFQIGRpc3BsYXkgU3R5bGVkVGV4dCBpbmNvcnJlY3RseSAgCjxicj4zODM3NjogIFNXVCAzMDA3IG9uIExpbnV4IEdUSyBpcyBub3QgaGFuZGxpbmcgdGhyZWFkcyBwcm9wZXJseSAoQkJBV1QpICAKPGJyPjM1MTgzOiAgREJDUzogU2V0IHRleHQgZ2VuZXJhdGVzIEluZGV4IG9mIEJvdW5kcyBleGNlcHRpb24gdXNpbmcgMi4wIE5MUyBsYW5ndWFnZSBwYWNrICAKPGJyPjM4ODQxOiAgTlBFIGluIFdpZGdldC5maWx0ZXJzICAKPGJyPjM3NzgyOiAgU2hlbGwgc2V0TWluaW1pemVkKHRydWUpIGRvZXNuJ3QgZGVhY3RpdmF0ZSBTaGVsbCAgCjxicj4zODM4MjogIERORCBpbiBQYWNrYWdlcyBWaWV3IHJlc3VsdHMgaW4gaW5jb3JyZWN0IHRhcmdldCBlbGVtZW50ICAKPGJyPjc5NDY6ICBMaXN0IHBvcnRpb24gb2YgQ0NvbWJvIGdvZXMgb2ZmIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiAgCjwvYmxvY2txdW90ZT4gIAoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDggLSBUdWVzZGF5IEp1bmUgMTAsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAKMzgzODU6ICBKYXBhbmVzZSBJbnB1dCAoSU1FKSBub3QgZG9lc24ndCBjb21lIHVwICAKPGJyPjM4Mzg4OiAgZWNsaXBzZSBjcmFzaCBvbiByZWRoYXQgOS8gamFfSlAgICAKPGJyPjM4MjEzOiAgW1dpemFyZHNdIERpYWxvZ3MgcmVxdWlyZSBhIHJlc2l6ZSB0byBkcmF3ICAKPGJyPjM2NTQxOiAgUHJpbnRpbmcgb2YgamF2YSBwcm9ncmFtIGNhdXNlcyBmYWlsdXJlICAKPGJyPjM4MzMxOiAgSW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIEltYWdlIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgIAo8YnI+Mzg0MzM6ICBFZGl0b3IgdGl0bGViYXJzIGFyZSBub3QgcGFpbnRlZCAgCjxicj4yMTU2NzogIEdUSzI6IFRleHQgd2lkZ2V0IHBhY2tpbmcgZXJyb3Igd2l0aCBTV1QuTVVMVEkgICAKPGJyPjI5NTM0OiAgT3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBvZiAnRjEwJyBrZXkgIAo8YnI+MzU0OTM6ICBPbGVDbGllbnRTaXRlIGhhbmcgIAo8L2Jsb2NrcXVvdGU+ICAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDA3IC0gVHVlc2RheSBKdW5lIDMsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAKMzA4MTA6ICBVbWxhdXRzICAKPGJyPjM4MjQyOiAgQm9yZGVyIHdpZHRoIG9uIFRhYmxlIGluY29ycmVjdCAtIGNyZWF0ZXMgdW53YW50ZWQgc2Nyb2xsYmFycyAgCjxicj4zNjYzNjogIFN0eWxlZFRleHQgLSBQcmludGluZyBjb3VsZCBlbmQgcGFnZXMgdHdpY2UgIAo8YnI+MzgyNDY6ICBzd3RleGFtcGVzc3JjLnppcCBpcyBtaXNzaW5nIGZyb20gZGlzdHJpYnV0aW9uLiAgCjxicj4zODMzNzogIEdDLmRyYXdSb3VuZGVkUmVjdGFuZ2xlKC4uLikgbWV0aG9kIGRvZXNuJ3QgaW5jbHVkZSB0aGUgcmlnaHQgYW5kIGJvdHRvbSBlZGdlICAKPGJyPjM4MzMxOiAgSW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIEltYWdlIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgIAo8YnI+MzY2MTA6ICBUcmFja2VyIGJlaGF2aW91ciB3cm9uZyB3aGVuIHJlc2l6aW5nICAKPGJyPjIxMTkxOiAgRGVjb3JhdGlvbnMuc2V0SW1hZ2UoKSBjb3VsZCBkbyBhIGJldHRlciBqb2Igd2l0aCBtYXNrZWQgaW1hZ2VzICAKPGJyPjM4MjIxOiAgSW5kZXggb3V0IG9mIGJvdW5kcyBmcm9tIENvbWJvLnNlbGVjdCgpICAKPGJyPjMzMzU5OiAgW0pVTklUXSBTY3JvbGxiYXIgdGVzdHMgZmFpbCAgCjxicj4zMzE2MjogIFtKVU5JVF1TbGlkZXIgc2V0TWluaW11bSBzZXRtYXhpbXVtIGFuZCBzZXRUaHVtYiBmYWlsICAKPGJyPjM4MDc2OiAgQ29tYm8gZG9lc24ndCBjYWxjdWxhdGUgaXRzIHNpemUgcHJvcGVybHkgd2hlbiBvbmx5IHRleHQgaXMgc2V0LiAgCjxicj4yMjIyMjogIEVjbGlwc2Ugbm90IHByb3Blcmx5IHJlZHJhd2luZyBNREkgc2hlbGwgdGl0bGViYXIgdGV4dCAgCjxicj4zMTgzOTogIEZsYXNoaW5nIHJlc2l6ZSBvbiBHVEsgIAo8YnI+MzgwNzc6ICBKdW5rIGxlZnQgb24gdGhlIHNjcmVlbiBhZnRlciBjbG9zaW5nIGEgZHJhd2VyIGluIExvZ2ljIEV4YW1wbGUgIAo8YnI+MzU3Mzg6ICBwcm9ibGVtIHdpdGggc3d0IGNvbXBvbmVudCBiaW5kaW5ncyBhbmQgWEZyZWU4Ni00LjMuMCAgCjxicj4zNTMxNTogIFJlc2V0IGltYWdlSGVpZ2h0IG9uIFRhYmxlcyB3aGlsZSByZWZyZXNoaW5nIGl0ZW1zICAKPGJyPjE3MjAyOiAgaW5jb25zaXN0ZW50IGhlbHAgaG92ZXIgcGxhY2VtZW50ICAKPGJyPjIzNzg3OiAgW1Byb3BlcnRpZXMgZGlhbG9nXSBQcm9qZWN0IFByb3BlcnRpZXMgLT4gSW5mbyBwYWdlIHNob3VsZCBub3QgdXNlIHRleHQgZmllbGRzICAKPGJyPjQ1NTM6ICBNb3RpZiBvbiBLREUyOiBUaGluZ3MgZG9uJ3QgcmVkcmF3ICgxR0E0SDdaKSAgCjxicj40NDU1OiAgRENSIC0gVHJlZSAtIG5lZWQgaXRlbSBwb3NpdGlvbmluZyAoMUZHUFZBRikgIAo8YnI+NDUwMDogIFRleHQgd2lkZ2V0IGhhcyAzRCBlZmZlY3QgYWx0aG91Z2ggU1dULkJPUkRFUiBpc24ndCBzcGVjaWZpZWQgKDFGUlNRWEgpICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDYgLSBUdWVzZGF5IE1heSAyNywgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjQ4Nzc6IENhbm5vdCBnZXQgZmlsZSBleHRlbnNpb24gZnJvbSBzd3QgRmlsZURpYWxvZyAgCjxicj4zNzg3NDogIkp1bXBpbmciIGxheW91dCAgCjxicj4zNDYzNDogIlNlbGVjdCBhIHR5cGUiIGhpZXJhcmNoeSB2aWV3IG1lc3NhZ2UgY3V0IG9mZiAgCjxicj4zNzk0MTogQ29vbGJhciBzZXRNaW5pbXVtU2l6ZSBpbnRyb2R1Y2VzIGNoZXZyb25zIG9uIExpbnV4ICAKPGJyPjM4MDE1OiBFY2xpcHNlIGNyYXNoZXMgd2hlbiB1c2luZyBpbmxpbmUgb3V0bGluZSAoQ3RybCtPKSAgCjxicj4zNzYyMzogZmlsbFJvdW5kUmVjdGFuZ2xlIGRvZXNuJ3QgY29tcGxldGVseSBmaWxsICAKPGJyPjI4NTM1OiByZWN0YW5nbGVzIHdpdGggcGVuc2l6ZSA+IDEgZHJhdyBhdCB3cm9uZyBwb3NpdGlvbiAgCjxicj4zODA1NTogU2hlbGwgVGl0bGUgYmFyIGRpc3BsYXllZCB3aGVuIG9ubHkgU1dULlJFWklTRS4gIAo8YnI+Mzc4NTg6IFNvbWUgU1dUIExhYmVscyBkcmF3IHRleHQgaW4gd2hpdGUgIAo8YnI+MjQ3MDA6IFRleHQ6IENvbXB1dGUgU2l6ZSBlcnJvciAgCjxicj4zNzk1MDogVW5hYmxlIHRvIGxhdW5jaCBFY2xpcHNlIG9uIFN1biBTb2xhcmlzIDIuOCAgCjxicj4zMzE2NDogW0pVTklUXSBTY2FsZSBzZXRNaW5pbXVtIGFuZCBzZXRNYXhpbXVtIGZhaWwgIAo8YnI+MzMxNjY6IFtKVU5JVF1Db21ibyBzZXRMb2NhdGlvbiBmYWlscyAgCjxicj4zMzE1ODogW0pVTklUXVByb2dyZXNzQmFyIHNldE1pbmltdW0gYW5kIHNldE1heGltdW0gZmFpbCAgCjxicj4zMzA4MDogW0pVTklUXVNoZWxsLmlzTWluaW1pemVkKCkgcmV0dXJucyBmYWxzZSBhZnRlciBzaGVsbC5zZXRNaW5pemVkKHRydWUpICAKPGJyPjMzMDc5OiBbSlVOSVRdU2hlbGwuaXNWaXNpYmxlIHJldHVybnMgZmFsc2UgYWZ0ZXIgc2hlbGwuc2V0VmlzaWJsZSh0cnVlKSBjYWxsZWQgIAo8YnI+MzMwODg6IFtKVU5JVF1UYWJGb2xkZXIuc2V0TG9jYXRpb24gb3IgVGFiRm9sZGVyLmdldExvY2F0aW9uIG5vdCB3b3JraW5nICAKPGJyPjI1Mjc4OiBjb250ZXh0IG1lbnUgY2xpY2sgZG9lcyBub3QgY2hhbmdlIHNlbGVjdGlvbiAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDUgLSBUdWVzZGF5IE1heSAyMCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzA0MzQ6ICBCSURJOiBTdHlsZWRUZXh0IHRvIHN1cHBvcnQgUklHSFRfVE9fTEVGVCBvcmllbnRhdGlvbiAgCjxicj4zNTY1NzogIEVjbGlwc2UgY3Jhc2hlcyBhbmQgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHN0YXJ0aW5nIHVwIGluIENoaW5lc2UgbG9jYWxlcyAgCjxicj4zNzUwNTogIEdDLnNldFhPUk1vZGUoKSBub3QgYXBwbHlpbmcgdG8gZHJhd1N0cmluZy9UZXh0IChCQkFXVCkgIAo8YnI+MzY5MzQ6ICBJbnZhbGlkIHRocmVhZCBhY2Nlc3MgZXJyb3Igb24gY3JlYXRpbmcgYSBmb250IGluIE1vdGlmIChCQkFXVCkgIAo8YnI+MzQ2NDg6ICBbRE5EXSBmaWxlIGRlbGV0ZWQgd2hlbiBkcm9wcGVkIGluIGVkaXRvciBvbiBTb2xhcmlzICAKPGJyPjM3NDc5OiAgQklESTogRHJvcC1kb3duIGxpc3Qgb2YgQ0NvbWJvIGRvZXNuJ3QgaW5oZXJpdCBpdCdzIG9yaWVudGF0aW9uIGZyb20gQ0NvbWJvLiAgCjxicj4zNzQ5ODogIEJJREk6IHJ0bC1vcmllbnRlZCBUYWJsZUN1cnNvciBzZXQgbmV4dCBjb2x1bW4gaW5zdGVhZCBvZiBwcmV2aW9zIGFuZCB2aWNlIHZlcnNhLCB3aGVuIGl0IHVzZXMgcmlnaHQgYW5kIGxlZnQgYXJyb3cga2V5cy4gIAo8YnI+Mzc1MTk6ICBCdWcgaW4gRGVjb3JhdGlvbnMuc2V0UGxhY2VtZW50IG1ldGhvZCAgCjxicj4zNTgwNDogIENoZWVzZSBpbiBUZXh0ICAKPGJyPjM3MTY0OiAgQ3Jhc2ggd2hlbiBvcGVuaW5nIGEgTWVzc2FnZUJveCBvbiBhIFRleHQgZm9jdXNMb3N0IGV2ZW50ICAKPGJyPjM3NDk3OiAgQ3JlYXRpbmcgb2YgbmV3IEltYWdlIGlzIGZhaWxlZCBpbiBzb21lIGNhc2VzLiAgCjxicj4yODUyNTogIERyYWdEZXRlY3QgcmVxdWlyZWQgIAo8YnI+NDczNDogIGRyYXdUZXh0KCkgZG9lcyBub3QgcmVzcGVjdCBzZXRYT1JNb2RlKHRydWUpICgxR0ZRSTE1KSAgCjxicj4zNzEzODogIEdDLmRyYXdJbWFnZSB0aHJvd3MgRXhjZXB0aW9uIHdpdGggYm91bmRhcnkgY29uZGl0aW9ucyAoQkJBV1QpICAKPGJyPjM3MTQwOiAgR0MuZHJhd0ltYWdlIHRocm93cyBTV1RFcnJvciB3aXRoIGJvdW5kYXJ5IGNvbmRpdGlvbnMgKEJCQVdUKSAgCjxicj4zNzE5ODogIGd0azIgaW0gLSBpbWhhbmd1bCAoa29yZWFuIElNKSB3b3JrIGJhZCBpbiBFY2xpcHNlICAKPGJyPjIxMzg0OiAgR1RLOiBSYW5kb20gWCBXaW5kb3cgU3lzdGVtICJCYWQgSW1wbGVtZW50YXRpb24iIGVycm9yKEJCQVdUKSAgCjxicj4zNzU5MTogIEltYWdlTG9hZGVyLnNhdmUgZm9yIEdJRiBzYXZlcyBpbiBjb21wcmVzcyBHSUYgZm9ybWF0ICAKPGJyPjMzNDk2OiAgTXVsdGktbGluZSB0ZXh0IGlzc3VlcyB0b28gbWFueSBtb3VzZSB0cmFjayBldmVudHMgb24gUGhvdG9uIChCQkFXVCkgIAo8YnI+MzQxODU6ICBOYXRpdmUgVHJlZTogQ2xpY2tpbmcgaW50byBzZWxlY3Rpb24gZG9lc24ndCByZXNlbGVjdCAgCjxicj4yODUyOTogIFByb2dyZXNzQmFyIGRpcmVjdGlvbiB3cm9uZyArIGNoZWVzZSAgCjxicj4zNzU2NDogIFJlbW92ZSBkZXBlbmRlbmN5IG9uIFgxMSBpbiBQcm9ncmFtICAKPGJyPjM3MzAzOiAgUmVtb3ZlIFggZGVwZW5kZW5jeSAgCjxicj4zNzg4MTogIFN0eWxlZFRleHQgLSBOUEUgd2hlbiB1c2luZyBSSUdIVF9UT19MRUZUIHN0eWxlIHdpdGggU3R5bGVkVGV4dCBvbiBMaW51eCAgCjxicj4zNjQ1MDogIFtLZXkgQmluZGluZ3NdIE9ubHkgS2V5VXAgZXZlbnQgZm9yIEFsdCtbU2hpZnRdKzxjaGFyPiBvbiBXaW5kb3dzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDQgLSBUdWVzZGF5IE1heSAxMywgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjk3ODM6ICBCSURJOiBkcm9wLWRvd24gbGlzdCBvZiBydGwtb3JpZW50ZWQgQ0NvbWJvIGlzIGRpc3BsYXllZCBpbiB0aGUgd3JvbmcgcGxhY2UuICAKPGJyPjM3Mjk5OiAgQklESTpDYXJldCBjaGVlc2Ugd2hlbiByZXNpemluZyBSSUdIVF9UT19MRUZUIFN0eWxlZFRleHQgIAo8YnI+MzcyOTM6ICBCSURJOkdDLmRyYXdJbWFnZSgwLCAuLi4gZHJhd3MgYXQgMSwgLi4uIHdoZW4gdXNpbmcgUklHSFRfVE9fTEVGVAo8YnI+MzcyODU6ICBBZGQgVGlmZiBzdXBwb3J0ICAKPGJyPjM0NTE2OiAgQ2hlZXNlIGluIFByb2dyZXNzQmFyICAKPGJyPjMyMzUyOiAgRGlzcGxheSBvZiBTV1QgdGFiYmVkIHBhbmVzIGRvIG5vdCByZWRyYXcgZHVyaW5nIGNoYW5nZXMgIAo8YnI+MzY2NDk6ICBFcnJvciBJY29ucyBEcmF3IFRocm91Z2ggIAo8YnI+MzMwODM6ICBKVW5pdCBWaWV3IG5vdCBiZWluZyB1cGRhdGVkIGVhcmx5IGVub3VnaCAgCjxicj4yOTMzMjogIG5ldyBHQyh0aGlzKSBwcm9kdWNlcyBhIEdDIHRoYXQgZG9lcyBub3RoaW5nICAKPGJyPjMxMDExOiAgUGFpbnQgZXhhbXBsZSBkb2VzIG5vdCBkcmF3IGNvcnJlY3RseSAgCjxicj4yNzQ3NDogIFByb3ZpZGUgYSBTV1QgSmF2YSBXZWIgU3RhcnQgZXh0ZW5zaW9uICAKPGJyPjM3MTcyOiAgVGFibGVDb2x1bW4gYWxpZ24gc3R5bGUgaGFzIG5vIGVmZmVjdCBvbiBHVEsgIAo8YnI+MzE3ODM6ICBUZXh0IGRvZXNuJ3QgaG9ub3IgdmlzaWJpbHR5ICAKPGJyPjI5MzgzOiAgVHJlZSBhbmQgVGFibGUgLSBubyBncmF5IGNoZWNrIGJveGVzIG9uIEdUSyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDAzIC0gVHVlc2RheSBBcHJpbCA2LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNjk5MzogIFRyYWNpbmcgb3B0aW9ucyBub3QgZGlzcGxheWVkIGluIFJ1bi10aW1lIFdvcmtiZW5jaCBydW4gY29uZmlndXJhdGlvbiAgCjxicj4yOTc4MTogIEJJREk6IExhY2sgb2YgbGVhZGluZyBhbmQgdHJhaWxpZyBzdHlsZXMgZm9yIGFsaWdubWVudCBvZiB3aWRnZXQncyBjb250ZW50cy4gIAo8YnI+MjU2MjM6ICBjYW4ndCBzZWxlY3QgaXRlbXMgaW4gVHJlZSB3aWRnZXQgb2YgbG9jYWwgaGlzdG9yeSAgCjxicj4yNzc3NzogIENvbWJvIGJveCBwaXhlbCBjb3JydXB0aW9ucyAgCjxicj4zNzEwMjogIEVjbGlwc2UgZG9lc24ndCBzdGFydCAgCjxicj4zNzA3NjogIEd0ayBDUklUSUNBTCB3YXJuaW5nIGd0a3RyZWV2aWV3LmMgIAo8YnI+MzcyMDI6ICBHVEsgRXhjZXB0aW9uIG9uIGd0a19wcm9ncmVzc19iYXJfc2V0X2ZyYWN0aW9uICAKPGJyPjMxOTQxOiAgZ3RrX3Byb2dyZXNzX2Jhcl9zZXRfZnJhY3Rpb24gLSBjcmFzaCB3aGVuIGNyZWF0aW5nIGEgY2xhc3MgdW5kZXIgbGF0ZXN0IERlYmlhbiBHVEsgMi4yIC8gQ3J1eCBUaGVtZSAgCjxicj4zNzA3NTogIEkyMDAzMDQyOTogbm8gc3d0LWNhcmJvbi0zMDAyIGluIGphdmEubGlicmFyeS5wYXRoICAKPGJyPjE4NzAxOiAgaW1hZ2UgY2hlY2sgYm94IGJ1dHRvbnMgYXJlIGNsaXBwZWQgIAo8YnI+MTY4MTQ6ICBKMk1FIFNXVCAtIDMgY2xhc3NlcyBub3QgQ0xEQyBjb21wbGlhbnQgIAo8YnI+MTk4MjQ6ICBOZWVkZWQgbXVsdGktbW9uaXRvciBtZXRob2RzLiAgCjxicj4zNzIxMjogIE9yZGVyIHNlcGVuZGVuY2llcyBpbiBzZXR0aW5nIHVwIG1lbnVzICAKPGJyPjI4NTg5OiAgUmVkSGF0IDguMCAtIERlZmF1bHRJbmZvcm1hdGlvbkNvbnRyb2wgaGFuZ3Mgd29ya2JlbmNoICAKPGJyPjI3MjAyOiAgUnVubmluZyBDb250cm9sZUV4YW1wbGUgd2l0aCBEZXZpY2UuREVCVUcgZmxhZyBvbiAgCjxicj4zNzA2NTogIFNwYWNpbmcgYnVnIGluIFJvd0xheW91dCAgCjxicj4zMTkwNjogIFRoZSBmaWxlIGRpYWxvZyB3aWRnZXQgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0byBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZSB0aGUgdHlwZSBmaWx0ZXIuICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDIgLSBUdWVzZGF5IEFwcmlsIDI4LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNjkxMDogIFNldHRpbmcgZm9udCBiZWZvcmUgc2V0dGluZyB0ZXh0IG9uIE1vdGlmIGNhdXNlcyBYIGVycm9yIChCQkFXVCkgIAo8YnI+Mjk3NjU6ICBCSURJOiBUb29sVGlwdGV4dCBkbyBub3QgaGF2ZSBSaWdodCB0byBsZWZ0IFJlYWRpbmcgb3JkZXIgIAo8YnI+MzQzNjU6ICBEaXNwbGF5IHByb2JsZW0gaW4gdGhlIGVkaXRvciAgCjxicj4zNTMxOTogIFRWVDIxOiBDYW5ub3QgaW5wdXQgY2hhcmFjdGVycyBpbiBHZXJtYW4gZm9yIG1vdGlmICAgCjxicj4zNjQzMzogIEFsbG93IEN1cnNvcnMgdG8gYmUgY3JlYXRlZCB3aXRoIEltYWdlcyB0aGF0IGhhdmUgYSBkZXB0aCA+MSAgCjxicj4zNjc0NjogIEFuIG92ZXJsb2FkZWQgZ2xDYWxsTGlzdHMoKSB3b3VsZCBiZSB1c2VmdWwgICAgCjxicj4yOTc4NjogIEJJREk6IGtleWJvcmFkJ3MgbGVmdCBhbmQgcmlnaHQgYXJyb3dzIG1vdmUgZm9jdXMgYmV0d2VlbiB0YWJzIG9mIHJ0bC1vcmllbnRlZCBDVGFiRm9sZGVyIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uICAKPGJyPjM2Njg0OiAgQklESTogTFRSLW9yaWVudGVkIE1lc3NhZ2VCb3ggY2FuJ3QgYmUgY3JlYXRlZCwgaWYgaXQncyBwYXJlbnQgaGFzIFJUTCBvcmllbnRhdGlvbi4gIAo8YnI+MzY2Nzk6ICBCSURJOiBQb3B1cExpc3QgY2FuJ3QgYmUgY3JlYXRlZCB3aXRoIGV4cGxpY2l0bHkgYXNzaWduZWQgb3JpZW50YXRpb24uICAKPGJyPjI5Nzg3OiAgQklESTogcHJvYmxlbSB3aXRoIGtleWJvYXJkJ3MgbGVmdCBhbmQgcmlnaHQgYXJyb3dzLCB3aGVuIHRoZW0gdXNlZCB0byBleHBhbmQgb3IgdG8gY29sbGFwc2UgcnRsLW9yaWVudGVkIFRhYmxlVHJlZS4gIAo8YnI+MzYyNzY6ICBCSURJOiBXaGVuIFVwRG93biBjb250cm9sIG9mIHJ0bC1vcmllbnRlZCBUYWJGb2xkZXIgaXMgdXNlZCBmb3Igc2Nyb2xsaW5nIHRhYnMsIHRoZXkgYXJlIHNjcm9sbGVkIGluIHRoZSB3cm9uZyBkaXJlY3Rpb24uICAKPGJyPjM2NzI3OiAgQ2FuJ3QgdXNlIE9wZW5HTCBpbiBhIHBsdWdpbiAgCjxicj4yMjk0MzogIENhbm5vdCBjbGVhbmx5IGtpbGwgYW4gc3d0IHRhc2sgIAo8YnI+MzYyMDk6ICBDb3BpZWQgdGV4dCB0byBvbiB0aGUgY2xpcGJvYXJkIGlzIG9jY2FzaW9uYWxseSBudWxsIHRlcm1pbmF0ZWQgIAo8YnI+MzQ5ODI6ICBDdXN0b20gQnVzeUluZGljYXRvciAtIG5vIGhvdXJnbGFzcyBjdXJzb3IgIAo8YnI+MzY5Mjg6ICBDdXN0b20gY3Vyc29ycyBhcmUgbm90IHdvcmtpbmcgIAo8YnI+MzYzODY6ICBFY2xpcHNlIGNyYXNoZXMgb24gZXhpdCAgCjxicj43NDQwOiAgR2xpdGNoIG9uIE5hdmlnYXRpb24gQmFyIG9uIFBvY2tldFBDIHdoaWxlIGNsb3NpbmcgajkgcnVubmluZyBTV1QgYXBwICAKPGJyPjM2OTE1OiAgamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3Igd2hlbiBjcmVhdGluZyBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuSW1hZ2UgIAo8YnI+MzY4Mzg6ICBPcGVuR0w6IEdMWVBITUVUUklDU0ZMT0FUIGNhbm5vdCBiZSBpbnRlcm5hbCAgCjxicj4zNjk1NTogIFNjcm9sbGVkQ29tcG9zaXRlIHVudXNlZCBiYWNrZ3JvdW5kIGlzIHBhaW50ZWQgd3JvbmcuICAKPGJyPjM2NTYyOiAgW0NWU10gY29tbWl0IGxvZyBkaWFsb2cgZG9lc24ndCBzZXQgZm9jdXMgY29ycmVjdGx5ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDEgLSBUdWVzZGF5IEFwcmlsIDIyLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+Nzc1NyBQYWNrYWdlcyB2aWV3OiB0aXRsZSBhbmQgdG9vbHRpcCBzaG91bGQgbm90IHVzZWQgY29tcHJlc3MuLi4gIAo8YnI+OTM2NiBXb3JrYmVuY2ggYXBwZWFycyB3aXRoIDFzdCB0b29sYmFyIGl0ZW0gc2hvd2luZyBob3Zlci1vdmUuLi4gIAo8YnI+MTkyMjggVHJ5IHRvIGNvbnRyb2wgbW90aWYgZm9jdXMgcmVhc3NpZ25tZW50cyAgCjxicj4xOTcwOCB3aWRnZXRJc0Rpc3Bvc2VkIGZvciB0b290aXAgdGV4dCAgCjxicj4yMDI3OSBEaXZpc2lvbiBieSB6ZXJvIHdoZW4gc2hvd2luZyBhIHplcm8tc2l6ZWQgdHJhY2tlciAgCjxicj4yMTI4MyBDdHJsKy8gcGVyZm9ybXMgdW5kbywgbm90IGNvbW1lbnQsIGluIGVtYWNzIGJpbmRpbmdzICAKPGJyPjIzODQ3IEtleWJvYXJkIG5hdmlnYXRpb24gZG9lc24ndCB3b3JrIG9uIE1hYyAgCjxicj4yNDU2MyBEQkNTIFN1cHBvcnQgZm9yIE1vdGlmIGFuZCBHVEsgIAo8YnI+Mjg1MzAgQ2hlZXNlIHdoZW4gbW92aW5nIFNhc2ggIAo8YnI+Mjg1MzcgVGFzayB2aWV3IGhlbHAgaXMgd3JvbmcgaWYgcHJldmlvdXMgZm9jdXMgd2FzIGVkaXRvciAgCjxicj4yODU2MSBDYW4ndCBhcnJvdyBhcm91bmQgdGFibGUgIAo8YnI+Mjg4MDAgU3dpdGNoaW5nIHRvIGEgbm90IHlldCBhY3RpdmF0ZWQgcGVyc3BlY3RpdmUgZG9lc24ndCBzZXQgLi4uICAKPGJyPjI4ODUwIHNldEZvbnQoKSBvbiBUZXh0IGNvbnRyb2wgaGFzIG5vICh2aXN1YWwpIGVmZmVjdCAgCjxicj4yOTc4NCBrZXlib2FyZCdzIGxlZnQgYW5kIHJpZ2h0IGFycm93cyBjaGFuZ2UgdmFsdWUgb2YgcnQuLi4gIAo8YnI+Mjk3ODggcnRsLW9yaWVudGVkIFRyYWNrZXIgaGFzIHdyb25nIGJlaGF2aW9yLiAgCjxicj4zMjYwMiBBZnRlciBwcmVzc2luZyBDbWQtRjgsIGNsaWNraW5nIHdpbGwga2lsbCBFY2xpcHNlICAKPGJyPjMyOTY1IE1vdmUgZGlhbG9nOiB0cmVlIGRvZXNuJ3QgaGF2ZSBmb2N1cyAgCjxicj4zMzA2OCBbSlVOSVRdTGFiZWwuc2V0QWxpZ25tZW50IG5vdCBpbXBsZW1lbnRlZCAgCjxicj4zMzEwMCBbSlVOSVRdVGFibGUuZ2V0Q2hpbGRyZW4gZG9lcyBub3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5ICAKPGJyPjMzMzE2IEZvbnREaWFsb2cgbmVlZHMgRm9udERhdGFbXSBBUEkgIAo8YnI+MzMzMzYgUG9wdXAgbWVudXMgZG9udCB3b3JrIG9uIFBvY2tldFBDIChiYkFXVCkgIAo8YnI+MzM0OTIgQWRkaXRpb24gb2YgdGFza3MgdG8gdGFzayB3aW5kb3cgaXMgdG9vIHNsb3cgIAo8YnI+MzM4MDkgUmVxdWVzdDogYWRkIG5ldyBldmVudCBTV1QuTWVudURldGVjdCAgCjxicj4zMzkwMyBbU1dUIEV4YW1wbGVzXSBPTEUgV2ViIGJyb3dzZXIgdmlldyBkb2VzIG5vdCBvcGVuICAKPGJyPjM0MTIyIENvbnRyb2wgRXhhbXBsZSAgCjxicj4zNDI3MCBTaW5nbGUtY2xpY2sgaW4gcG9wdXBzIGRpc21pc3NlcyB0aGVtICh3YXM6IFF1aWNrIEYuLi4gIAo8YnI+MzQyODMgTWFjOiBObyB0YXNrIGRlc2NyaXB0aW9uIGZvciBwcm9ncmVzcyBtb25pdG9yIGluIHdpemFyZHMgIAo8YnI+MzQ0NDUgUmV2ZXJzZSBzb3J0IGZvciBBZGRyZXNzQm9vayBleGFtcGxlICAKPGJyPjM0NDQ2IFtUYXNrc10gRm9jdXMgbG9zdCB3aGVuIHN3aXRjaGluZyBmb3JtIGVkaXRvciB0byBUYXNrcyBWaWV3ICAKPGJyPjM0NjE4IE1pc3Npbmcga2V5Ym9hcmQgZm9jdXMgIAo8YnI+MzQ5OTYgVGFiIEV2ZW50IHdlaXJkbHkgaGFuZGxlZCBpbiBtb3RpZiAgCjxicj4zNTAxMiBTZXR0aW5nIHRoZSB0b29sYmFyJ3MgYmFja2dyb3VuZCBvbiBSQzIgZG9lc24ndCB3b3JrLiAgCjxicj4zNTA5MCBPdXRsaW5lIFBvcHVwOiBFbnRlciBkb2Vzbid0IHdvcmsgaW4gdHJlZSAgCjxicj4zNTIxMCBLZXlMaXN0ZW5lciBkb2Vzbid0IHVuZGVyc3RhbmQgQ1RSTCBhbmQgQUxUIGFzIGEgc3RhdGVNYXNrICAKPGJyPjM1MjQ0IFtBY3Rpb24gU2V0c10gSGllcmFyY2h5IGZhc3QgdmlldyBjYXVzZXMgdW5oYW5kbGVkIGV4Y2VwdC4uLiAgCjxicj4zNTI1NCBVbmhhbmRsZWQgZXhjZXB0aW9uIGNhdWdodCBpbiBldmVudCBsb29wLiBSZWFzb246V2lkZ2V0IGkuLi4gIAo8YnI+MzU2MDcgU2FzaCBtaXNzaW5nIGN1cnNvciBpbiBTdHJ1Y3R1cmUgQ29tcGFyZSBvZiB0aGUgU3luYyB2aWV3ICAKPGJyPjM1Nzc0IFVuZXhwZWN0ZWQgRXhpdDogRXJyb3I6IE9iamVjdCAiIiBkb2VzIG5vdCBoYXZlIHdpbmRvd2VkIC4uLiAgCjxicj4zNTgzNyBbRGlyZWN0b3J5RGlhbG9nXSBUaGVyZSBpcyBubyBkaXNrIGluIHRoZSBkcml2ZS4gUGxlYXNlIGkuLi4gIAo8YnI+MzU4NDIgT3V0bGluZSB2aWV3IGNyYXNoZXMgb24gV2luWFAgJiBXaW4ySyAgCjxicj4zNjAwMCBbU3R5bGVkVGV4dF0gQ29udGVudFdpZHRoQ2FjaGUgaW5pdGlhbGl6YXRpb24gIAo8YnI+MzYxOTIgTmF0aXZlIGNyYXNoIHdoZW4gY2xvc2luZyB0cmVlIG5vZGVzICAKPGJyPjM2MjcwIEJJREk6IFNvbWUgY3VzdG9tIHdpZGdldHMgY2FuJ3QgYmUgY3JlYXRlZCB3aXRoIGV4cGxpY2l0bC4uLiAgCjxicj4zNjYxMiBBZnRlciBpbnN0YWxsL3VwZGF0ZTogbm8gaWNvbiBpbiBkb2NrIC0gbm8gZm9jdXMgIAo8YnI+MzY2NDQgQ2FuIG5vdCBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIFRvb2xCYXIgIAo8YnI+MzY3MjIgTW5lbW9uaWMga2V5cyBhcmUgbm90IHdvcmtpbmcgZm9yIFRvb2xJdGVtcyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDMzZCAtIE1vbmRheSBNYXJjaCAyNCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODQ0MjogTnVsbFBvaW50ZXJFeGNlcHRpb24gYW5kIGhhbmcgb24gc3RhcnR1cCBpbiBHVEsgRWNsaXBzZSAgCjxicj4xNzM1OTogTkxTOiBObyBHcm91cDIgaW5wdXQgIAo8YnI+MjYwNzg6IFRhYkZvbGRlci5nZXRDbGllbnRBcmVhKCkgbm90IGNvcnJlY3QKPGJyPjM0OTQwOiBFY2xpcHNlIGxhdW5jaGVyIGNyYXNoZXMgb24gU3VuIEoyU0RLIDEuNC4yLWJldGEgYnVpbGQxOCAgCjxicj4zNTQzNDogW01vdGlmXSBHQy5nZXRGb250TWV0cmljcygpIGNhdXNlcyBWTSB0byBjcmFzaCB3aGVuIGZvbnQgaXMgcmVhbGx5IHNtYWxsCjxicj4zNTU5NjogRXZlbnQgUHJvY2Vzc2luZyBpc3N1ZXMgdW5kZXIgUGhvdG9uCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDMzIC0gVHVlc2RheSBNYXJjaCAxOCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzA3Njg6ICBQZXJmb3JtYW5jZSAtIFR5cGluZyBpbiBKYXZhIEVkaXRvciBpcyB1bmFjY2VwdGFibHkgc2xvdy4gIAo8YnI+MzIyMDQ6IFNpZ25hbCAxMSBhdCBhdCBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwuZ3RrLk9TLmd0a19wcm9ncmVzc19iYXJfcHVsc2UoTmF0aXZlIE1ldGhvZCkgIAo8YnI+MzI2MDI6IEFmdGVyIHByZXNzaW5nIENtZC1GOCwgY2xpY2tpbmcgd2lsbCBraWxsIEVjbGlwc2UgIAo8YnI+MzMwMTc6IFZNIGNyYXNoIHdoZW4gcHJlc3NpbmcgZW50ZXIgaW4gdGFibGUgY2VsbCBlZGl0b3IgIAo8YnI+MzMzNDM6IE5ldyBmaWxlIHdpemFyZCBmcmVlemVzIEVjbGlwc2UgVUkgIAo8YnI+MzQxNjY6IERpc2FibGluZywgdGhlbiBlbmFibGluZyBDVlMgZGVjb3JhdG9ycyBwcm9kdWNlZCBOUEUgIAo8YnI+MzQxODM6IFRoZSBsYXlvdXQgb2YgdGhlIHBhY2thZ2UgZXhwbG9yZXIgY2Fubm90IGJlIGNoYW5nZWQgIAo8YnI+MzQyNDg6IERCQ1M6IHNob3duIHVwIEdub21lVkZTLVdBUk5JTkcgbWVzc2FnZXMgIAo8YnI+MzQ0MTg6IENyYXNoIHdoZW4gcnVubmluZyBETkRFeGFtcGxlICAKPGJyPjM0NDYzOiBjb25maXJtIGV4aXQgY2hlY2tib3ggY2Fubm90IGJlIHNlbGVjdGVkICAKPGJyPjM1MDIyOiBNb3RpZiBkb2VzIG5vdCBzZW5kIGRyYWdGaW5pc2hlZCBldmVudCBvbiBhYm9ydGVkIGRyYWdzICAKPGJyPjI2Mzg4OiBQYWNrYWdlIEV4cGxvcmVyIGRvZXMgbm90IHBvc2l0aW9uIG9uIGZpbGVzICAKPGJyPjMwMDczOiBHcmFwaGljYWwgRWRpdG9yIGlzIG5vdCByZWZyZXNoZWQgcHJvcGVybHkgd2hlbiBzY3JvbGxiYXJzIGRpc2FwcGVhciAgCjxicj4zMTAyNjogSGFuZyBvbiBMaW51eCAgCjxicj4zMjg1MTogQ2FuJ3QgcmVtb3ZlIGV4dGVybmFsIHRvb2wgYnVpbGRlciBhZnRlciBkZWxldGluZyBsYXVuY2ggY29uZmlnICAKPGJyPjMzMDk5OiBDb250ZXh0IG1lbnUgJ0Rpc3BsYXknIGRvZXNuJ3Qgd29yayAgCjxicj4zMzcxMzogSlJFIHBvcHVwIG1lbnUgaW4gUnVuIGNvbmZpZ3VyYXRpb24gZGlhbG9nIG5vdCByZWxpYWJsZSAgCjxicj4zNDA5MzogTWVudSBtaXNzaW5nIGl0ZW1zICAKPGJyPjM0NDI4OiBbTW90aWZdIFRyZWUgYW5kIFRhYmxlIHZpZXdzIG5vdCBnZXR0aW5nIHByb3BlciBzZWxlY3Rpb24gIAo8YnI+MzQ2MzM6IFRhYmxlIHdpdGggQ0hFQ0sgZmxhc2hlcyBjaGVlc2UgIAo8YnI+MzQ4MTU6IENoZWVzZSBpbiBDVGFiRm9sZGVyIHdpZGdldCAgCjxicj4zNDg3OTogQ2FsbGluZyBTY3JvbGxCYXIuc2V0VmlzaWJsZSgpIHdoZW4gYSB0ZXh0IHdpZGdldCBoYXMgZm9jdXMgY2F1c2VzIGEgZm9jdXMgbG9zdCBldmVudCBvbiB0aGUgdGV4dCB3aWRnZXQKPGJyPjI1NjcxOiBKYXZhZG9jIGZvciBjbGFzcyBzd3Qvd2lkZ2V0cy9EaWFsb2cgbWlzc2luZyAmbHQ7cHJlJmd0Owo8YnI+Mjg2NDQ6IEJvbGQgZm9udCBpbiBsYWJlbCByZXN1bHRzIGluIG1pc3NpbmcgY2hhcmFjdGVyICAKPGJyPjI5NDg2OiBLZXlzIG5lZWQgc3Ryb25nZXIgZmlsdGVyaW5nLiAgCjxicj4zMjQyNDogW1BST0dSQU1TfSBHbm9tZSAtIFByb2dyYW0uZ2V0UHJvZ3JhbXMgbmVlZHMgdG8gYmUgdXBkYXRlZCAgCjxicj4zMjk0NzogQ2hhbmdlIG1ldGhvZCBzaWduYXR1cmUgZGlhbG9nIHRvbyBiaWcgIAo8YnI+MzM0ODA6IFRleHQgY3V0IG9mZiBpbiBNYWMgaW4gbGFiZWxzLiAgCjxicj4zMzcwMDogUnVubmluZyBvdXQgb2YgaGFuZGxlcyBvbiBXaW5kb3dzIFhQICAKPGJyPjMzODIyOiBTdHJhbmdlIHNjcm9sbGluZyBvZiBuYXRpdmUgdGFibGUgIAo8YnI+MzQwMzY6IE5hdGl2ZSBjcmFzaCBvbiBkaXNtaXNzaW5nIGhlbHAgd2luZG93ICAKPGJyPjM0NTEyOiBDb21wdXRlU2l6ZSBvZiB0YWJsZSBhbmQgdHJlZSB0b28gc21hbGwgIAo8YnI+MzQ1Njk6IEJJREk6IFN0eWxlZCB0ZXh0IGNoYW5nZSB0aGUgY2hhcmFjdGVycyB3aXRoIExhcmdlIGZvbnRzICAKPGJyPjM0NjQ5OiBUYWJGb2xkZXIgdGl0bGUgZG9lcyBub3QgaGFuZGxlIG1uZW1vbmljcyBwcm9wZXJseSAgCjxicj4zNDcyNDogQ29udHJvbEV4YW1wbGUgIAo8YnI+MzQ4MzU6IFdpZGdldCAiZGVmYXVsdCIgc3R5bGVzIHNob3VsZCBiZSByZWZsZWN0ZWQgaW4gc3R5bGUgYml0cyAgCjxicj4zNDkzNTogTWlzc2luZyBib3JkZXIgb24gdG9vbGJhciAgCjxicj4zNDk4MzogTmF0aXZlIGRyYWcgYW5kIGRyb3AgZG9lc24ndCB3b3JrIHVuZGVyIGxpbnV4ICAKPGJyPjM1MDM4OiBSZWZhY3RvcmluZyBkaWFsb2cgKEV4dHJhY3QgTG9jYWwgVmFyaWFibGUpIHRvIGJpZyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDMyYyAtIFR1ZXNkYXkgTWFyY2ggMTEsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0MzQ6ICBHUEYgd2hlbiBydW5uaW5nIFNXVCBUcmVlIGNvZGUgKDFGTkkyNVYpICAKPGJyPjIzMzg1OiAgVGFibGUgdmVydGljYWwgY29sdW1uIHNlcGFyYXRvcnMgcmVkcmF3IGluY29ycmVjdGx5IG9uIE1hY09TWCAgCjxicj4zMTY4NTogIEVudGlyZSBFY2xpcHNlIFBsYXRmb3JtIGxvc2VzIGZvY3VzIGFuZCBnb2VzIGludG8gdGhlIGJhY2tncm91bmQuLi4gIAo8YnI+MzM4MzQ6ICBbVmlld2Vyc10gTlBFIGluIFRyZWVWaWV3ZXIgIAo8YnI+MzQxODE6ICBDdHJsLUNsaWNrIGRvZXNuJ3Qgc2VsZWN0IHVuZGVybHlpbmcgaXRlbSBiZWZvcmUgYnJpbmdpbmcgdXAgY29udGV4dCBtZW51ICAKPGJyPjM0MTg4OiAgUHJvZ3Jlc3MgYmFyIGluIGRpYWxvZ3MgZG9lc24ndCBzaG93IHRhc2sgaW5mb3JtYXRpb24gIAo8YnI+MzQ2MTQ6ICBNb3VzZSBwb2ludGVyIGRvZXMgbm90IGNoYW5nZSBpbiB0YWJsZSBoZWFkZXIgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAzMiAtIFRodXJzZGF5IE1hcmNoIDA2LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTkyOiBtdWx0aSBzZWxlY3QgYmVoYXZpb3IgZm9yIGZpbGUgZGlhbG9nICgxRzdIWjJRKSAgCjxicj40NjU5OiBEb3VibGUtY2xpY2tpbmcgb24gZml4ZWQgc2l6ZSBjb2x1bW4gaGVhZGVyIHJlc2l6ZXMgaXQgKDFHRTNXTjYpIAo8YnI+NDg0MzogRUMgRENSOiBBZGQga2V5Ym9hcmQgc3VwcG9ydCBmb3IgbXVsdGktc2VsZWN0IHRvIFRyZWUgKDFHS01IUzUpICAKPGJyPjQ4NDc6IFByb3BlcnR5IGRpYWxvZyBwdXQgYmVoaW5kIHdvcmtiZW5jaCB3aW5kb3cgKDFHS1JOOVopICAKPGJyPjcxNTk6IE1pc3NpbmcgSmF2YWRvYyBmb3IgRXZlbnQgZmllbGRzICAKPGJyPjc3MTI6IE5vIHNjcm9sbCBiYXJzIGluIE1pY3Jvc29mdCBXb3JkIGRvY3VtZW50cyBvcGVuZWQgZnJvbSB0aGUgd29ya2JlbmNoICAKPGJyPjEyNTk3OiBDYW5ub3QgY2hhbmdlIE9MRSBFdmVudCdzIFZBUklBTlQgYXJndW1lbnQgd2hpY2ggaGFzIFtvdXRdIGRpcmVjdGlvbmFsIGF0dHJpYnV0ZSBpbiBJREwgIAo8YnI+MTQzMjk6IE1vZGFsIGRpYWxvZyBkb2Vzbid0IGRpc2FibGUgY29sdW1uIHJlc2l6aW5nICAKPGJyPjE2ODg2OiBBZGRyZXNzIEJvb2sgYnVnIGluIHRoZSBvcGVuIGEgRmlsZSBkaWFsb2cgIAo8YnI+MTY5MDE6IE5QRSByZW1vdmluZyBleHByZXNzaW9uIGZyb20gZXhwcmVzc2lvbiB2aWV3ICAKPGJyPjE4MDU5OiBSSDcuMyBjbGlwYm9hcmQgcHJvYmxlbSAgCjxicj4xODgxMDogRXh0cmEgdW5wcmludGFibGUgY2hhcmFjdGVyIGluIGNvcHkgYnVmZmVyICAKPGJyPjE5ODk2OiBLZXkgdXAgZXZlbnQgc2F5cyBDdHJsIGlzIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgIAo8YnI+MTk5MjI6IE1lbnUgYmFyIGl0ZW1zIGdldCBhZGRlZCBvbmUgYXQgYSB0aW1lIHdoZW4gZWRpdG9ycyBhcmUgc3dpdGNoZWQgIAo8YnI+MjI0MTY6IE5UNDogTmVlZCBjb250ZXh0IG1lbnUgb24gd2luZG93IHNjcm9sbCBiYXIgdG8ga2VlcCBpdHMgY29uc2lzdGVuY3kgb24gV2luMmsgIAo8YnI+MjM0MTk6IFtPTEVdIERvIG5vdCBnZXQgc2Nyb2xsYmFycyBpbiBFeGNlbCAgCjxicj4yMzg0MTogRWNsaXBzZSBVSSBkb2VzIG5vdCBmb2xsb3cgTWFjIEwmRiBndWlkZWxpbmVzICAKPGJyPjIzOTU5OiBVc2UgbmF0aXZlIFRhYmxlIGFuZCBUcmVlICAKPGJyPjI0MzkzOiBEQ1IgLSBOZWVkIHRvIHN1cHBvcnQgTWFjIGNvbW1hbmQga2V5IGluIFNXVCAgCjxicj4yNDQzMTogRWNsaXBzZSBNMSBVbmRlciBPU1ggY3Jhc2hlcyB3aGVuIHVzaW5nIFZpcnR1YWxEZXNrdG9wcyAgCjxicj4yNTM4MzogVmFyaWFudCBuZWVkcyBhIGRpc3Bvc2UgbWV0aG9kICAKPGJyPjI1NjA0OiBRdWljayByZWxlYXNlIHVwb24gc3RhcnQgb2YgZHJhZyBoYW5ncyBlY2xpcHNlIHdpdGggcG9pbnRlciBncmFiICAKPGJyPjI2MDUxOiBbV29ya2JlbmNoXSBNYWluIEVjbGlwc2Ugd2luZG93IGFjdGl2YXRlcyBpdHNlbGYgdmVyeSBvZnRlbiAgCjxicj4yODUxNDogQ2hhcmFjdGVyIHBvc2l0aW9ucyBkaWZmZXIgYmV0d2VlbiBzZWxlY3RlZCBhbmQgdW5zZWxlY3RlZCB0ZXh0IAo8YnI+Mjg5ODI6IFRvb2xiYXIgY29sb3IgcHJvYmxlbSB3aGVuIHVzaW5nIHRoZSBtYW5pZmVzdCBpbiBYUCAgCjxicj4yOTAyNzogQWRkICJkZWxldGUgcHJldmlvdXMgd29yZCIgYW5kICJkZWxldGUgbmV4dCB3b3JkIiBhY3Rpb25zIHRvIGVjbGlwc2UgZWRpdG9yICAKPGJyPjI5MzMwOiBKYXZhRG9jIGRvZXMgbm90IG1hdGNoIFdpbmRvd3MgLSBGSVggTEVGVFRPUklHSFRkb2MgIAo8YnI+MjkzODc6IG5vIGxpbmVzIGluIFRhYmxlIG9uIEdUSyAgCjxicj4yOTQ3MTogR1AgLSBYdERlc3Ryb3lBcHBsaWNhdGlvbkNvbnRleHQgLSBDbG9zaW5nIE00IHdpbGwgc29tZXRpbWVzIGNyYXNoIHRoZSBWTSAgCjxicj4yOTcxNzogW1BFUkZPUk1BTkNFXVNXVCBNb3RpZiBleHRlcmVtZWx5IHNsb3cgd2l0aCBMQU5HIGVuX1VTLlVURi04ICAKPGJyPjI5ODE0OiBHUCAtIE5vIGNvcmUgYXZhaWxhYmxlIC0gR1BGIG9uIHdpbjJrICAKPGJyPjI5OTExOiBUYWJsZUVkaXRvcnMgbm90IGRpc3BsYXllZCB3aGlsZSBzY3JvbGxpbmcuICAKPGJyPjMwNDI3OiBIQU5HL0dQIC0gWHREaXNwYXRjaEV2ZW50IC0gRWNsaXBzZSBrZWVwcyBsb2NraW5nIHVwICAKPGJyPjMwNjE4OiBjdHJsLW8gbm90IHdvcmtpbmcgIAo8YnI+MzE1MjU6IGVjbGlwc2UgdXNlcyAxMDAlIENQVSB3aXRoIGd0ayAyLjIuMSAgCjxicj4zMTY4NDogVW5hYmxlIHRvIGRyYWcgdmlld3MuICAKPGJyPjMxNzE3OiBVbnJlcHJvZHVjaWJsZSBHUC9IYW5nICAKPGJyPjMxODM0OiBMYWJlbCBhbmQgQ29tYm8gZG9uJ3QgYWxpZ24gd2VsbCAgCjxicj4zMjEyMjogQ2Fubm90IGluc2VydCBsaW5lcyBpbnRvIG5ldyBmaWxlIGNvZGUgdGVtcGxhdGUgKHJlZ3Jlc3Npb24gZmFpbHVyZSkgCjxicj4zMjI4NjogQ29udHJvbEV4YW1wbGUgQnV0dG9uIFRhYiAtIGNoYW5naW5nIHN0eWxlcyByZXNldHMgYnV0dG9uIG9yaWVudGF0aW9uICAKPGJyPjMyMzU5OiBObyBQYXJlbnQgKyBTV1QuQVBQTElDQVRJT05fTU9EQUwgc2hlbGwgbm90IG1vZGFsICAKPGJyPjMyNDA4OiBJMjAwMzAyMjAgb24gTWFjT1MgWCBoYXMgZ2VuZXJpYyBhcHBsaWNhdGlvbiBpY29uICAKPGJyPjMyNDgyOiBObyBGMSBoZWxwIG9uIE1hY09TIFggIAo8YnI+MzI3MzQ6IE5QRSB3aGlsZSB2aWV3aW5nIHZhcmlhYmxlcyBmcm9tIGRlYnVnZ2VyICAKPGJyPjMyODU2OiBbQ2VsbCBFZGl0b3JzXSBDYW4gbm90IHNlZSB3aGF0IHZhbHVlIEkgYW0gdHlwaW5nIGluIHRoZSBQcm9wZXJ0aWVzIAo8YnI+MzI5NTQ6IFtLREVdIFByb2dyYW1zIC0gZml4IGxpYnJhcnkgYnVpbGQgIAo8YnI+MzMwNDY6IERCQ1M6IENhbiB0eXBlIGludG8gcmVhZC1vbmx5IFRleHQgIAo8YnI+MzMwNTc6IFJDMSBObyBjYXJldCBpbiBlZGl0b3IgIAo8YnI+MzMzNDg6IENvbnRyb2xFeGFtcGxlOiB3aWRlciB0aGFuIHNjcmVlbiwgdG9vIG1hbnkgdGFicyAgCjxicj4zMzU4MDogU2Nyb2xsYWJsZS5XTV9NT1VTRVdIRUVMIHVzZXMgd3JvbmcgdmFyaWFibGUgZm9yIGhvcml6b250YWwgc2Nyb2xsICAKPGJyPjMzNTkwOiBSQzE6ICJBcHBsaWNhdGlvbiBNb2RhbCIgc2hlbGwgc3R5bGUgYmVoYXZlcyBpbmNvcnJlY3RseSAgCjxicj4zMzU5MjogRml4IHNwZWNpZmljYXRpb24gZm9yIGV2ZW50LmNoYXJhY3RlciAgCjxicj4zMzU5MzogUkMxOiBUb29sYmFyIGZvcmVncm91bmQgY29sb3IgY2hhbmdlcyBpZ25vcmVkICAKPGJyPjMzNzQ3OiBOT19UUklNIHdpbmRvdyBnaXZlcyBubyByZXNpemUgZmVlZGJhY2sgIAo8YnI+MzM3NzY6IFJlc2lzdGVyaW5nIFRyYXZlcnNlTGlzdGVudGVyIHdpdGggU2hlbGwgY2hhbmdlcyB0YWJiaW5nIGJlaGF2aW9yLiAgCjxicj4zMzgxMzogTGlzdCBkb2Vzbid0IHNlbmQgb3V0IHNlbGVjdGlvbiBldmVudHMgZm9yIGFycm93IGtleXMgIAo8YnI+MzM4NTU6IFRleHQgQ3Vyc29yIEludmlzaWJsZSBpbiBSQzEgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAzMSAtIFRodXJzZGF5IEZlYnJ1YXJ5IDI3LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjgwODogSWNvbiBpbiBXaW5kb3dzIHRhc2tiYXIgaW5jb3JyZWN0ICAKPGJyPjI0NDk0OiBJbmNvcnJlY3QgaTE4biBjaGFyIGVuY29kaW5nIGluIHRleHQgYXJlYXMgIAo8YnI+MjY1NDE6IEV4aXQgdGhlIFdvcmtiZW5jaDogY3Jhc2ggYWZ0ZXIgc2F2aW5nIHRoZSB3b3Jrc3BhY2UgIAo8YnI+Mjg2NDM6IFNldHRpbmcgbGFiZWwncyBiYWNrZ3JvdW5kIGNvbG9yIGhhcyBubyBlZmZlY3QgIAo8YnI+Mjg4NDU6IFJlZnJlc2ggdGFiIGxheW91dCBpbmNvcnJlY3QgZm9yIGxvd2VyIGNvbXBvc2l0ZSAgCjxicj4yOTE5ODogRGlmZmljdWx0IHRvIGNoYW5nZSBjaGFyYWN0ZXIgY2FzZSBvZiBjYWNoZWQgaW5wdXQgdmFsdWVzICAKPGJyPjI5ODM3OiBbQ29udHJpYnV0aW9uc10gQ29tYm8gY29udHJvbCBkb2VzIG5vdCBzaG93IG9uIEdUSyB0b29sYmFyLCB3b3JrcyBmaW5lIG9uIFdpbiBhbmQgTW90aWYgIAo8YnI+MzAzNzc6IE5vIGNhcmV0IGluIEphdmEgRWRpdG9yICAKPGJyPjMwOTA1OiBBZGQgTWVudS5zZXRSZWRyYXcoYm9vbGVhbikgQVBJICAKPGJyPjMwOTI0OiBTdHlsZWRUZXh0IC0gU3R5bGVSYW5nZSBoYXNoQ29kZSB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gIAo8YnI+MzEwMzk6IEVjbGlwc2UgZG9lcyBub3QgcmVzcG9uZGUgd2hlbiBkaWFsb2cgaXMgb3BlbmVkLiAgCjxicj4zMTE4NzogU2VsZWN0aW9uIGJ5IG1vdXNlIGRyYWcgaXMgb3V0IG9mIGtpbHRlciAgCjxicj4zMTM4MjogTmV3IEZvbGRlciBhbmQgTmV3IEZpbGUgZGlhbG9ncyBVSSBwcm9ibGVtICAKPGJyPjMxODMzOiB3cm9uZyBiYWNrZ3JvdW5kIGZvciBzZXBhcmF0b3IgbGFiZWwgb24gTWFjT1MgWCAgCjxicj4zMTg1NzogTm8gaWNvbnMgaW4gTGFiZWxzICAKPGJyPjMxODY2OiBTY3JvbGxpbmcgaW4gUmVhZG1lIGVkaXRvciBpcyBkZWxheWVkICAKPGJyPjMxOTQ2OiBNb3ZpbmcgQ29vbEJhckl0ZW1zIGxlYXZlcyB0ZW1wb3JhcnkgY2hlZXNlICAKPGJyPjMxOTUwOiBTdHlsZWRUZXh0IC0gU2hpZnQrVVAgYnJva2VuIGluIFN0eWxlZFRleHQgY29udHJvbCAgCjxicj4zMTk3MzogR0IxODAzMDogQWZ0ZXIgY3JlYXRlZCBhIEdCMTgwMzAgbmFtZWQgY2xhc3MsIEVjbGlwc2UgZm9yIE1vdGlmIGNyYXNoZWQgd2hlbiBleGl0aW5nLiAgCjxicj4zMjM2MDogRW1iZWRkZWQgZGlzcGxheSBub3Qgd2FraW5nIG9uIG5ldyBQaG90b24gZXZlbnRzIChCQkFXVCkgIAo8YnI+MzMwMjI6IE5QRSBpbiBGb250RGlhbG9nICAKPGJyPjMzMDMwOiBBcmd1bWVudHMgdGFiICdzaG93cyB0aHJvdWdoJyBNYWluIHRhYiBvbiBPUyBYICAKPGJyPjMzMDYzOiBbSlVOSVRdIENhcmV0LnNldEZvbnQgIAo8YnI+MzMxMTk6IG51bGxwb2ludGVyIGRpc3Bvc2UgdGFibGUgY29sdW1uICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMzAgLSBUdWVzZGF5IEZlYnJ1YXJ5IDE4LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNzA1NzogT3V0bGluZXI6IGZvY3VzIGNhdXNlcyBzZWxlY3QgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsICAKPGJyPjIxNDY5OiBBY2Nlc3NpYmlsaXR5IC0gVGFiYmluZyBjYXVzZXMgYSBidXR0b24gdG8gYmVjb21lIHRoZSBkZWZhdWx0Cjxicj4yMjc2NzogdG9vbGJhciBsb29rcyB2ZXJ5IHVnbHkgd2l0aCBXaW4gWFAncyBsbmYgKHVzaW5nIG1hbmlmZXN0IGZpbGUpCjxicj4yMzM3MDogQ0xhYmVsIG5lZWRzIHRvIGFsbG93IHRyYW5zcGFyZW50IGJhY2tncm91bmQgZm9yIE1hYyBPUyBYICAKPGJyPjI4ODMxOiBEaXNwbGF5cyBsaWdhdHVyZSBmb3IgZmkgJiBmbCAgCjxicj4yOTEwMDogTW91c2Ugd2hlZWwgc2Nyb2xsaW5nIG5vdCB3b3JraW5nIGluIGVkaXRvcnMgIAo8YnI+Mjk4Nzk6IEhBTkcgLSBndGtfbWFpbl9pdGVyYXRpb24gLSBFY2xpcHNlIEZyZWV6ZXMgbW92aW5nIGJldHdlZW4gcGVyc3BlY3RpdmVzCjxicj4zMDA1NTogREJDUzogZm9udCByZW5kZXJpbmcgcXVhbGl0eSBpc3N1ZSBvbiBtb3RpZiAgCjxicj4zMDU3MDogREJDUyAtIEdCMTgwMzA6IElucHV0IEdCMTgwMzAgY2hhcmFjdGVycyBhcyBydW4gYXJndW1lbnRzIGNhdXNlIGVjbGlwc2UgZm9yIG1vdGlmIGNyYXNoCjxicj4zMTU2ODogVGFibGVMYXlvdXRDb21wb3NpdGUgYW5kIFRhYmxlLnNob3dJdGVtIGRvbid0IG1peCAgCjxicj4zMTY4NjogV3JvbmcgbWFyZ2luIGNvcnJlY3Rpb24gaW4gd2lkZ2V0cy5UZXh0LmNvbXB1dGVTaXplKGludCwgaW50LCBib29sZWFuKQo8YnI+MzE4MjM6IENsaWNraW5nIG9uIHBhcnRpYWxseSBvYnNjdXJlZCB0YWIgc2hvdWxkIHNjcm9sbCBpdCBpbnRvIHZpZXcKPGJyPjMxODU1OiBbRWRpdG9yIE1nbXRdIENsb3NlIGJ1dHRvbnMgaW4gZWRpdG9yIGdldCBjdXQgb2ZmICAKPGJyPjMxODgwOiBMYXlvdXQgYnVnIGluIGNvbW1pdCBtZW51ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMjkgLSBUaHVyc2RheSBGZWJydWFyeSAxMywgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjIzMDogSW1hZ2VMb2FkZXI6IDMyLWJpdCBjb2xvdXIgZGVwdGggdW5zdXBwb3J0ZWQgIAo8YnI+MjM0NzI6IFhsaWI6IHVuZXhwZWN0ZWQgYXN5bmMgcmVwbHkgKHNlcXVlbmNlIDB4OTIyZDIpISAgCjxicj4yMzg0MjogImJhbmRlZCIgZGVmYXVsdCBiYWNrZ3JvdW5kIGxvb2sgc2hvd3MgdGhyb3VnaCB3aGVyZSBpdCBzaG91bGRuJ3QKPGJyPjI1NDQ2OiBUcmVlIFNoaWZ0LUNsaWNrIG5vdCB3b3JraW5nIHdoZW4gaXRlbSBjb2xsYXBzZSBjaGFuZ2VzIHNlbGVjdGlvbgo8YnI+MjYzODE6IE9wZW5UeXBlOiBLZXkgTmF2aWdhdGlvbiAgCjxicj4yOTQ1NjogR1AgLSBYbURTSUdldENoaWxkUG9zaXRpb24gLSBQcm9ibGVtIGluIFNodXRkb3duICAKPGJyPjI5NjA3OiBbQ2VsbCBFZGl0b3JzXSB1c2FiaWxpdHk6IENvbWJvQm94Q2VsbEVkaXRvciB1bnVzYWJsZSBvbiBHVEsgIAo8YnI+MzEwMDk6IEFDQyAtIEkyMDAzMDIwNSBhY2NlbGVyYXRvcnMgaXNzdWVzICAKPGJyPjMxMDE3OiBIQU5HIC0gSGFuZyBvbiBpbXBvcnQgZXh0ZXJuYWwgcGx1Z2lucyAgCjxicj4zMTI2NzogTGFiZWwgYW5kIHRleHQgYm94IGdldCB0aGUgd3Jvbmcgb3JkZXIgIAo8YnI+MzE0NDg6IEJJREkgLSBCaWRpIGVuYWJsZW1lbnQgZm9yIFN0eWxlZFRleHQgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hlbiBoaWdobGlnaHRpbmcgYSBibGFuayBsaW5lCjxicj4zMTUxMzogQ1RhYkZvbGRlcidzIGNsb3NlIGJveCBoaWdobGlnaHQgZ2V0cyBjbGlwcGVkIGF0IGJvdHRvbSAgCjxicj4zMTU2NjogRm9udERhdGEgImVxdWFscygpIiBhbmQgImhhc2hjb2RlKCkiIG1ldGhvZHMgZG8gbm90IGNvbnNpZGVyIGhlaWdodCBvZiB0aGUgdGhlIGZvbnRkYXRhCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDI4IC0gVGh1cnNkYXkgRmVicnVhcnkgNiwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjMyNjI6IFdlYkJyb3dzZXIgY3Jhc2hlcyB3aGVuIHZpZXdpbmcgU2hvY2t3YXZlICAKPGJyPjI1NzM2OiBNZW1vcnkgbGVhayB3aGlsZSB1c2luZyBPTEUgYXV0b21hdGlvbiAgCjxicj4yOTI2NTogQ29udHJvbC5zZXRFbmFibGVkKCkgbm90IGltcGxlbWVudGVkIHByb3Blcmx5IG9uIEdUSyAgCjxicj4yOTU5MzogQ29udGV4dHVhbCBtZW51IHRvbyBzaG9ydCBuZWFyIGJvdHRvbSBvZiBtZW51ICAKPGJyPjI5OTMxOiBNb3VzZSBjbGlja3MgYXJlIHVucmVsaWFibGUgIAo8YnI+MzA0MDM6IENUYWJJdGVtIGNsb3NlIGJveCBzaGlmdHMgYnkgMiBwaXhlbHMgd2hlbiB0YWIgc2VsZWN0ZWQgIAo8YnI+MzA0NDM6IE1lbnViYXIgb2YgU1dUIHN0YW5kYWxvbmUgYXBwbGljYXRpb25zIGlzIGVtcHR5ICAKPGJyPjMwOTQ1OiBDaGFuZ2UgaW4gbW91c2UgY2xpY2tpbmcgYmVoYXZpb3VyIG1ha2VzIEZhc3RWaWV3cyB1bnVzYWJsZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDI3IC0gV2VkbmVzZGF5IEZlYnJ1YXJ5IDUsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIwNzU1OiBUVlQyOiAgdHJ1bmNhdGVkIHRleHQgaW4gZHJvcGRvd24gZm9yIERlcGVuZGVuY2llcyB0YWIgaW4gbWFuaWZlc3QgZWRpdG9yCjxicj4yMjc1OTogSW5wdXQgbWV0aG9kIGRvZXMgbm90IHdvcmsgb24gR1RLL0dUSzIgIAo8YnI+MjcxODA6IFVuYWJsZSB0byBjb3B5IGFuZCBwYXN0ZSBpbiBlZGl0aW5nIGphdmEgZmlsZSAgCjxicj4yNzE4MzogTW91c2UgZHJhZyBzZWxlY3QgcHJvZHVjZXMgY3Jhc2ggIAo8YnI+Mjg0MTk6IENyYXNoIHdoZW4gY2xvc2luZyBzaGVsbHMgIAo8YnI+Mjk3Nzc6IERCQ1M6IENhbid0IGRyYWcgYSBmaWxlIGludG8gUnVuLXRpbWUgd29ya2JlbmNoICAKPGJyPjMwMjEyOiBSZWFkIG9ubHkgdGV4dCB3aWRnZXQgOiBjYW4ndCBjb3B5IHNlbGVjdGlvbiAgCjxicj4zMDQwMTogU1dUIHN0YW5kYWxvbmUgZXhhbXBsZXMgY2FuJ3QgY29tZSB0byBmb3JlZ3JvdW5kICAKPGJyPjMwNDUyOiBNb3VzZSBnZXRzIHdhcnBlZCB0byB1cHBlciBsZWZ0IGNvcm5lciBvZiB3b3JrYmVuY2ggd2luZG93IG9uIGFjdGlvbnMKPGJyPjMwNTAwOiAicm9hbWluZyIgZm9jdXMgIAo8YnI+MzA1Mzc6IHNldFNlbGVjdGlvbihhbGxJdGVtcykgbm90IHdvcmtpbmcgb24gR1RLICAKPC9ibG9ja3F1b3RlPgoKCgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAyNiAtIFR1ZXNkYXkgSmFudWFyeSAyOCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQ4MTQ6IEJ1dHRvbiBtbmVtb25pY3MgYXJlIG5vdCBzaG93biBwcm9wZXJseSBvbiBXaW5kb3dzIFhQICAKPGJyPjI0MzMzOiBEQ1IgLSBUcmVlLmdldFRvcEl0ZW0vc2V0VG9wSXRlbSAgCjxicj4yNDQ4OTogVGFiIGNhbm5vdCBnZXQgZm9jdXMgd2hlbiBjaGlsZC1jb21wb3NpdGUgaGFzIHNjcm9sbGJhciAgCjxicj4yNDgxNTogQ2Fubm90IGxhdW5jaCBlY2xpcHNlOiBqYXZhY29yZSBkdW1wICAKPGJyPjI5MTQyOiBIeXBlcmxpbmtpbmcgZnJvbSBzdGFja2R1bXAgbG9ja3MgdXAgRWNsaXBzZSAgCjxicj4yOTE5MTogVHJlZSAtIG5vIGdyYXkgY2hlY2sgYm94ZXMgb24gTUFDIChjYXJib24yKSAgCjxicj4yOTQyNjogREJDUzpDb3B5L1Bhc3RlIERCQ1MgZmFpbGVkIGJldHdlZW4gZWNsaXBzZSBhbmQgZ2VkaXQgIAo8YnI+Mjk0Mjg6IERCQ1M6IFBhc3RlZCBzdHJpbmcgY2FuJ3QgYmUgc2hvd24gY29ycmVjdGx5IGluIFNlYXJjaCBkaWFsb2cKPGJyPjI5OTEwOiBDaGVja2JveCBub3QgZGlzcGxheWVkIHVudGlsIHRhYmxlIHNjcm9sbGVkICAKPGJyPjI5OTY2OiBObyBtb3JlIGhhbmRsZXMgb24gc3RhcnR1cCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDI1IC0gVHVlc2RheSBKYW51YXJ5IDIxLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyNTAzMDogKEJCQVdUKSBJbWFnZSBBbmFseXplciBmYWlscyB0byBsb2FkIGEgLnBuZyBmaWxlICAKPGJyPjI1MzU5OiBSdW50aW1lRXhjZXB0aW9ucyB0aHJvd24gZnJvbSBPbGVMaXN0ZW5lci5oYW5kbGVFdmVudCBjcmFzaCBWTQo8YnI+MjcwOTk6IFN0eWxlZFRleHQgLSBDaGFuZ2UgQ1RSTCBrZXkgYmluZGluZ3MgdG8gTU9EMSAgCjxicj4yNzM2OTogTm8gbW9yZSBoYW5kbGVzIGVycm9yICAKPGJyPjI3ODIyOiBQYWNrYWdlIEV4cGxvcmVyIGFsbHdheXMgY2VudGVycyBvcGVuZWQgZmlsZSAgCjxicj4yODA2MjogVGV4dCBmaWVsZCBpbiBkaWFsb2cgZG9lc24ndCBnZXQgZm9jdXMgIAo8YnI+Mjg3NDM6IFRyeWluZyB0byBzZWUgdGVzdCBoaWVhcmNoeSBmcmVlemVzIGVjbGlwc2UgW0pVbml0XSAgCjxicj4yODc0NTogRXNjIGRvZXMgbm90IGNhbmNlbCB0cmFja2VyICAKPGJyPjI4OTY3OiBbRWRpdG9yIE1nbXRdIG5vIGNsb3NlIGJ1dHRvbiBvbiBsYXN0IGVkaXRvciB3aGVuIGVkaXRvcnMgZHJvcC1kb3duIGlzIGFjdGl2ZQo8YnI+Mjk0Mjc6IERCQ1M6IENhbid0IGlucHV0IERCQ1MgY2hhcmFjdGVycyBpbiBTZWFyY2ggZGlhbG9nICAKPGJyPjI5NDk2OiBDdXQgJiBwYXN0ZSBkb2VzIG5vdCB3b3JrIGluIGRpYWxvZyB0ZXh0IGZpZWxkcyAgCjxicj4yOTUwMzogREJDUzpDYW4ndCBzb3J0IGJ5IGNsaWNraW5nICJEZXNjcmlwdGlvbiIgb24gIlRhc2sgVmlldyIgIAo8YnI+Mjk1OTk6IERCQ1M6IHVwcGVyIGJhciBjaGFyYWN0ZXIgd2lsbCBiZSBwYWRkZWQgIAo8YnI+Mjk2MDg6IERCQ1M6IFNlbGVjdGVkIERCQ1MgQ2xhc3NwYXRoIGNhbid0IGJlIHNob3duICAKPGJyPjI5NjExOiBEQkNTOkNhbiBub3QgaW5wdXQgSGFuZ3VsKEtvcmVhIGZvbnQpICAKPGJyPjI5NjEyOiBEQkNTOkJyb3dzZSBmdW5jdGlvbiBvZiAiRXhwb3J0IiBkb2Vzbid0IHdvcmsgIAo8YnI+Mjk2MTQ6IERCQ1M6IFVuYWJsZSB0byBnZXQgIkltcG9ydCIgY29udGVudHMgbG9jYXRpb24gd2l0aCAiQnJvd3NlIiBidXR0b24KPGJyPjI5NjY0OiBTV1QgU3R5bGVkIFRleHQgV3JhcHBpbmcgRG9lc24ndCBVc2UgRm9udCBTaXplIENvcnJlY3RseSAgCjxicj4yOTY4NTogREJDUzogQ2FuZGlkYXRlIFNlbGVjdGlvbiBXaW5kb3cgd2lsbCBiZSBkaXNhcHBlYXJlZCBhdCBEQkNTIGNvbXBvc2l0aW9uCjxicj4yOTczMDogUm93TGF5b3V0LmNvbXB1dGVTaXplIHByb3ZpZGVzIHdyb25nIHBhcmFtZXRlciB0byBsYXlvdXRWZXJ0aWNhbAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAyNCAtIFR1ZXNkYXkgSmFudWFyeSAxNCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjEwNjM6IENhbid0IGRyb3Agdmlld3Mgb3ZlciBzb21lIHdpZGdldHMgIAo8YnI+MjE1NjE6IEtleWJvYXJkIG5hdmlnYXRpb24gaW4gdHJlZSB3aWRnZXRzIG9uIExpbnV4ICAKPGJyPjI1NjE5OiBPbGVDb250cm9sU2l0ZSBldmVudCBsaXN0ZW5lciBwcm9ibGVtICAKPGJyPjI1ODQzOiBJbmZvIHBvcHMgZG8gbm90IHdvcmsgZm9yIFJlZCBIYXQgOC4wLgo8YnI+Mjc2Nzc6IFtLZXkgQmluZGluZ3NdIGN0cmwtZjcgbm90IHdvcmtpbmcgIAo8YnI+Mjg4Nzk6IFtOYXZpZ2F0b3JdIHJpZ2h0LWNsaWNraW5nIGEgZmlsZSBkb2Vzbid0IGFsbG93IG1lIHRvIG9wZW4gaXQKPGJyPjI5MjA4OiBHdGsgZGlyZWN0b3J5IGRpYWxvZyBiZWhhdmVzIGxpa2UgYSBmaWxlIGRpYWxvZyAgCjxicj4yOTI1MjogQWNjZWxlcmF0b3JzIGFyZSBub3QgZGlzYWJsZWQgd2hlbiB0aGUgdG9vbGJhcnMgYW5kIG1lbnVzIGFyZSBvbiBHVEsKPGJyPjI5MzAyOiBTbGlkZXIgYW5kIFNjcm9sbGJhciBoYW5kbGUgbWFueSBib3VuZGFyeSBjYXNlcyB3cm9uZyBpbiBzZXQqIG1ldGhvZHMKPGJyPjI5MzM0OiBNYWtlIGphdmFkb2MgYXZhaWxhYmxlIGZvciBkb3dubG9hZCAgCjxicj4yOTQwODogSW52b2tpbmcgTGlzdC5zZWxlY3QoKikgYmVmb3JlIG9wZW4oKSBkb2VzIG5vdCBzZWxlY3QgY29ycmVjdCBpdGVtCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDIzIC0gVHVlc2RheSBKYW51YXJ5IDcsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0MjgzOiBEZWZhdWx0IGJ1dHRvbiBpbiB0aGUgZGlhbG9nIGdldCB0aGUgZW50ZXIgd2hlbiB0eXBpbmcgaW4gamFwYW5lc2UKPGJyPjI1NDg2OiBFY2xpcHNlIGZhaWxzIHdpdGggJ25vIGZyZWUgY2FsbGJhY2sgc2xvdCcgIAo8YnI+MjYwNTc6IFN0eWxlZFRleHQgLSBjbGVhbnVwIHBhc3NpbmcgYXJvdW5kIG9mIGZvbnRkYXRhICAKPGJyPjI2MDc5OiBVc2UgUGZMb2FkTWV0cmljcygpIHRvIHNwZWVkIHVwIHRleHQgZXh0ZW50aW5nCjxicj4yNzg2OTogU3R5bGVkVGV4dCBvdmVydXNlIG9mIEZvbnQuZ2V0Rm9udERhdGEgIAo8YnI+MjgyODY6IEJCQVdUOiBJbmNvcnJlY3QgcGFsZXR0ZS9jb2xvciByZXR1cm5lZCBvbiAzMi1iaXQgdHJ1ZSBjb2xvciBkaXNwbGF5Cjxicj4yODM4MjogRXh0cmEgc2VwYXJhdG9yIGxpbmUgZHJhd24gaW4gZW11bGF0ZWQgQ29vbEJhciAgCjxicj4yODQ5ODogSGVscCBtZW51IGlzIGNvbmZ1c2VkICAKPGJyPjI4NjA3OiBQcm9ncmVzcyBiYXIgZG9lc24ndCBmaW5pc2ggaW4gUERFIGltcG9ydCB3aXphcmQgIAo8YnI+Mjg2NTg6IE5vIGNvbnRleHQgbWVudSBpbiBwZXJzcGVjdGl2ZSBiYXIgIAo8YnI+Mjg2ODM6IEN0cmwtQ2xpY2sgaW4gVHJlZVZpZXcgbG9zZXMgc2VsZWN0aW9uICAKPGJyPjI4NzAxOiBNZXRob2QgImFzc2VydCIgZGVjbGFyZWQgaW4gb3JnLmVjbGlwc2Uuc3d0LnRlc3RzLmp1bml0LlN0eWxlZFRleHRDb250ZW50U3BlYwo8YnI+Mjg3MTk6IFNjcm9sbGluZyBpbiBXZWxjb21lIGVkaXRvciBpcyBub3QgJ2xpdmUnICAKPGJyPjI4ODEyOiBNb3VzZSBjdXJzb3IgY2hhbmdlcyB0byBhcnJvdyBhZnRlciBob3ZlcmluZyBhIGh5cGVybGlua2VkIGluZGVudGlmaWVyCjxicj4yODgzMzogRWNsaXBzZSBubyBsb25nZXIgcmVzcG9uZHMgdG8gJ1F1aXQnIEFwcGxlRXZlbnQgIAo8YnI+Mjg4MzU6IEN1cnNvciBkb2Vzbid0IGNoYW5nZSB0byBhcnJvdyBzaGFwZSB3aGVuIG92ZXIgdGV4dCBzY3JvbGxiYXJzCjxicj4yODk5MTogVGFiRm9sZGVyLmNvbXB1dGVTaXplIGlzIGdyb3dzIGVhY2ggdGltZSBpcyBpdCBjYWxsZWQgIAo8YnI+MjkwMTc6IFNjcm9sbGVkQ29tcG9zaXRlIGFsd2F5cyBtYWtlcyBpdCdzIGNvbnRlbnQgIGJpZ2dlciBvbiByZXNpemUKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMjIgLSBUdWVzZGF5IERlY2VtYmVyIDE3LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMTQwOTogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gZWRpdGluZyBKYXZhIHNvdXJjZSAgCjxicj4yMTk5MzogQ2FuJ3QgY2hhbmdlIGZvbnQgc2l6ZXMgIAo8YnI+MjIzMDU6IExhdW5jaCBjb25maWd1cmF0aW9uIHBhbmUgZ2V0cyB2aXN1YWxseSBtZXNzZWQgdXAgYW5kIHJlZi4uLiAgCjxicj4yMzgzMDogT3V0LW9mLWJveCBleHBlcmllbmNlIHdpdGggdGhlIE1hYy4gIAo8YnI+MjM4NDM6IENoZXZyb25zIHNob3cgdXAgaW4gZGVmYXVsdCBsYXlvdXQgb2YgSmF2YSBwZXJzcGVjdGl2ZSAgCjxicj4yMzg0NDogTGFiZWwgZG9lc24ndCB3cmFwIHRleHQgaW5pdGlhbGxseSAgCjxicj4yMzg1MDogTWlzc2luZyBzY3JvbGxiYXIgaW4gTGlzdCAgCjxicj4yNDQzNzogS2V5TGlzdGVuZXJzIGRvbid0IGdldCBjYWxsZWQgIAo8YnI+MjYzMjI6IE5QRSBpbiBGb250IERpYWxvZyAgCjxicj4yNjMzMTogV3JhcHBlZCBMYWJlbHMgLSBzZWNvbmQgbGluZSBjdXQgb2ZmICAKPGJyPjI2NTg3OiBOYXZpZ2F0ZSAtPiBHbyBUbyBUeXBlIGdvZXMgdG8gd3Jvbmcgc2hlbGwgb24gTWFjICAKPGJyPjI3OTk3OiBDb2xvciBkaWFsb2cgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjI4Mjg4OiBbRWRpdG9yIE1nbXRdIEVkaXRvciBwYW5lIG91dCBvZiBzeW5jIHdpdGggdmlld3MgYW5kIHRhYnMgIAo8YnI+MjgzNjE6IFRvb2xJdGVtIGxlYWtzIEltYWdlcyAoPykgIAo8YnI+Mjg1MjQ6IEluY29uc2lzdGVudCBiZWhhdmlvdXIgb2YgdGFiIGluIHBhc3N3b3JkIGZpZWxkcyAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMjEgLSBGcmlkYXkgRGVjZW1iZXIgMTMsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI3NTI2OiBDb2xvciBzZWxlY3Rpb24gZGlhbG9nIHRha2VzIGEgbG9uZyB0aW1lIHRvIGRpc3BsYXkgaW4gOC1iaXQgbW9kZQo8YnI+Mjc4NjI6IFRyZWUuc2V0U2VsZWN0aW9uKCkgdGFrZXMgPiAxIHNlY29uZCAgCjxicj4yODAzNTogRGlmZmVyZW50IGNhbGxiYWNrIGJlaGF2aW9yIG9uIFdpbmRvd3MgYW5kIE1hYyB3aXRoIENvbWJvIHdpZGdldAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAyMCAtIFR1ZXNkYXkgRGVjZW1iZXIgMTAsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0MTEyOiBLZXlib2FyZCBzaG9ydGN1dHMgZGVmaW5lZCBhcyBDdHJsLVNoaWZ0LXggZG9uJ3Qgd29yayAgCjxicj4yNDQzNjogRW50ZXJpbmcgQXN0ZXJpc2sgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjI2NTA2OiBJbXBvcnRpbmcgRXh0ZXJuYWwgUGx1Zy1pbnMgaXMgc2xvdyAgCjxicj4yNzAzMTogZW5fVVMuVVRGLTggbG9jYWxlIG5vdCBzdXBwb3J0ZWQgb24gTW90aWYgIAo8YnI+Mjc0MTA6IFtTV1QgRXhhbXBsZXNdIEFycm93IGJ1dHRvbnMgd29uJ3QgcmVzaXplIGZvciAxMHgxMCw1MHg1MCwxMDB4MTAwCjxicj4yNzQyMjogW1NXVCBFeGFtcGxlc10gUHJvZ3Jlc3MgYmFyIHJldmVydHMgdG8gJ2JsYWNrJyBjb2xvciBhZnRlciBTZWxlY3Rpb24gc2xpZGVyIHJlcG9zaXRpb25pbmcKPGJyPjI3NTAxOiBTZWxlY3Rpb24gbm90IGNvcnJlY3RseSB1cGRhdGVkIG9uIHJpZ2h0IGNsaWNrIG9uIGEgdHJlZSAgCjxicj4yNzUyNDogW1NXVCBFeGFtcGxlc10gVGFibGUgaXRlbSBmb3JlZ3JvdW5kIGNvbG9yIGNoYW5nZXMgZmFpbCBhZnRlciBmaXJzdCBhdHRlbXB0Cjxicj4yNzY0NDogRGlzbWlzc2luZyBvcGVuIHR5cGUgZGlhbG9nIHdpdGggRXNjYXBlIGNyYXNoZXMgRWNsaXBzZSAgCjxicj4yNzcwNDogUmVtb3ZlIGNzaCBidWlsZCBkZXBlbmRlbmN5ICAKPGJyPjI3NzEwOiBFbnRyeSBwb2ludCBub3QgZm91bmQgU2V0TGF5b3V0IGluIEdESTMyICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMTkgLSBUdWVzZGF5IERlY2VtYmVyIDMsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE5MDgwOiBDaGFmZiBpbiB0YWJsZSB0cmVlIG9mIHByb3BlcnR5IHNoZWV0ICAKPGJyPjIwMzE4OiBbU3R5bGVkVGV4dF0gcHJpbnQgc2VsZWN0aW9uIHByaW50cyB3aG9sZSBwYWdlIChhdCBsZWFzdCBpbiA8PWYyKQo8YnI+MjY1NjM6IENyYXNoIGluIENhcmJvbiBuYXRpdmUgQ29weU1hc2sgIAo8YnI+MjY3MzE6IEF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgdmlldyBwbHVnLWluIHByb2plY3QgY3Jhc2hlcyAgCjxicj4yNzE4MTogU2xlYWsgLSBpbnN0cnVtZW50YXRpb24gbm90IGRvbmUgb24gR1RLIGFuZCBNb3RpZiAgCjxicj4yNzMwNTogRUM6IENMYWJlbCBrZWVwcyBiYWNrZ3JvdW5kIGNvbG91ciBhZnRlciBncmFkaWVudCBpcyB1c2VkICAKPGJyPjI3NDExOiBbU1dUIEV4YW1wbGVzXSBTV1QuRkxBVCBoYXMgbm8gZWZmZWN0IGZvciBidXR0b25zICAKPGJyPjI3NDQyOiBNb3VzZSBjbGljayBvdXRzaWRlIGhvcml6b250YWwgc2Nyb2xsIGJhciBkb2VzIG5vdGhpbmcgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAxOCAtIFR1ZXNkYXkgTm92ZW1iZXIgMjYsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1MDMxOiBGb250IHBhcnNpbmcgZmFpbGVkICAKPGJyPjE3MjM3OiBQcm9ncmVzcyBtb25pdG9yIGZsaWNrZXJzICAKPGJyPjE4MTcyOiBTaWcxMSBmcm9tIEdUSyAgCjxicj4xOTUzMDogU2F2aW5nIGxvY2tzIHJlc2l6aW5nIGluIHNlY29uZCBwZXJzcGVjdGl2ZSAgCjxicj4xOTczNTogTm8gc3BhY2UgYmV0d2VlbiBsb25nZXN0IGl0ZW0gaW4gbWVudSBhbmQgYWNjZWwga2V5cyAgCjxicj4yMDk1MzogU3R5bGVkVGV4dCAtIHRpbGRlIHByb2JsZW0gd2l0aCBmcmVuY2gga2V5Ym9hcmQgKDIwMDAsTlQsWFApIG9uIFIyLjAKPGJyPjIxNjI2OiBUYWJsZUl0ZW0uZ2V0SW1hZ2VCb3VuZHMgZmFpbHMgb24gTW90aWYgKEVtdWxhdGVkIFdpZGdldCkgIAo8YnI+MjQ4NzI6IFNwbGFzaCBzY3JlZW4gZG9lcyBub3Qgc2hvdyBhdCBzdGFydHVwICAKPGJyPjI0OTY5OiBKUCBHUDogc2hvd2luZyBKYXZhLUVkaXRvciBwcmVmLiBwYWdlIHdpdGggZWRpdG9yIG9wZW4gIAo8YnI+MjUwNTM6IENhbm5vdCB1c2UgdGhlIHB1bGwgZG93biBtZW51IGluIEdUSyAgCjxicj4yNTMzNTogU2Nyb2xsYmFycyB0b28gc21hbGwgb24gdmFyaWFibGUgc2VsZWN0aW9uIGRpYWxvZyAgCjxicj4yNTY1MzogRENSOiBTdHlsZWRUZXh0IGRvIG5vdCBhY3RpdmF0ZSB0aGUgZGVmYXVsdCBidXR0b24gIAo8YnI+MjYxNzk6IENhbid0IHNlbGVjdCBpdGVtcyBpbiBhIGNoZWNrYm94IHRyZWUgd2l0aG91dCB0b2dnbGluZyBjaGVja2VkIHN0YXRlCjxicj4yNjM1MzogSW5mb3BvcCBicm9rZW4gb24gc29sYXJpcyAgCjxicj4yNjM2MjogU3R5bGVkVGV4dCAtIGludmVzdGlnYXRlIG5lY2Vzc2FyeSBzdGF0ZSBjaGFuZ2VzIGJldHdlZW4gaGFuZGxlVGV4dENoYW5naW5nIGFuZCBoYW5kbGVUZXh0Q2hhbmdlZAo8YnI+MjY3MzM6IEVjbGlwc2UgY3Jhc2hlcyB3aGVuIEdUSyB0aGVtZSBpcyBjaGFuZ2VkICAKPGJyPjI2ODA0OiBHdGsgTGFiZWwgd2lkZ2V0IGhhcyBmb2N1cyBkZWNvcmF0aW9uIGRyYXduIHRvbyBiaWcgIAo8YnI+MjY5MzU6IEV4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0IHdpdGggV1JBUCBmbGFnLiAgCjxicj4yNjk5NzogU3R5bGVkVGV4dFJlbmRlcmVyOiBjcmVhdGVzIHRvbyBtYW55IFN0cmluZ3MgIAo8YnI+MjcwMTY6IERlZmF1bHQgIk9wZW4iIGFjdGlvbiBub3Qgd29ya2luZyBpbiBOYXZpZ2F0b3IgdHJlZSB2aWV3CjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDE3IC0gVHVlc2RheSBOb3ZlbWJlciAxOSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjEyNTE6IENyYXNoIGluIG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5ndGsuT1MucGFuZ29fbGF5b3V0X3NldF9mb250X2Rlc2NyaXB0aW9uCjxicj4yNDgzNTogR1RLOiBNdWx0aXBsZSBzZWxlY3Rpb24gYW5kIHJpZ2h0IGNsaWNrIGluIHRyZWUgIAo8YnI+MjU3NDE6IFN0eWxlZFRleHQgZG9lcyBub3Qgc2V0IHRoZSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9yIGluIHRoZSBPUwo8YnI+MjU4MDM6IFN0eWxlZFRleHQgc2hvdWxkIHVzZSBuZXcgRm9udCBBUEkgIAo8YnI+MjYwMDQ6IFJlbW92aW5nIGEgVGV4dCBmaWVsZCBsZWF2ZXMgYmVoaW5kIGNydWQgIAo8YnI+MjYwMDg6IFtTdHlsZWRUZXh0XSBzZXRUb3BQaXhlbCBsaW1pdHMgYXJndW1lbnQgdG8gbG9naWNhbCBsaW5lIGNvdW50Cjxicj4yNjEyMTogQ2Fubm90IGxhdW5jaCBlY2xpcHNlICMyOiBqYXZhY29yZSBkdW1wICAKPGJyPjI2MTUxOiBTV1Qgd2lkZ2V0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLlNhc2ggaXMgbm90IHByb3Blcmx5IGNvbnN0cmFpbmVkIHdoZW4gaW4gSE9SSVpPTlRBTCBtb2RlCjxicj4yNjI1ODogQWNjZW50ZWQgY2hhcmFjdGVycyBidWcgaW4gZWRpdG9ycyByZWludmVudGVkICAKPGJyPjI2MzY3OiBOUEUgd2hlbiBkZWJ1Z2dpbmcgYXMgamF2YSBhcHBsaWNhdGlvbiAgCjxicj4yNjQxNDogQWNjZWxlcmF0b3JzIGRvbid0IHdvcmsgb24gYWl4ICAKPGJyPjI2NDE5OiBTdHlsZWRUZXh0IC0gcHJpbnQgcGFnZXMgY2F1c2VzIHdhbGtiYWNrICAKPGJyPjI2NDIxOiBMaXN0IGhhbmdzIG9uIEdUSyAgCjxicj4yNjQzNDogUHJpbnRlckRhdGEgc3RhcnRQYWdlL2VuZFBhZ2UgaW52YWxpZCB3aGVuIHBhZ2UgPjMyNzY3ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMTYgLSBUdWVzZGF5IE5vdmVtYmVyIDEyLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMzkzNTogVGV4dCB3aWRnZXQgd2l0aCBUcmVlIHBhcmVudCBkb2VzIG5vdCBsb3NlIGZvY3VzICAKPGJyPjIzOTk3OiBUcmFja2VyIG1vdmVzIG1vdXNlIGN1cnNvciAgCjxicj4yNDQ5MzogQ2FudCB0eXBlIGJyYWNlcyBpbiBqYXZhIGVkaXRvciB3aXRoIGl0YWxpYW4ga2V5Ym9hcmQgaW4gMi4xbTEKPGJyPjI1NzMyOiBNTEVBSzogUmVzaXplIGVjbGlwc2UsIHVzdWFsbHkgNEsgYWxsb2NhdGVkICAKPGJyPjI1Nzc1OiBDb21ibyBkb2Vzbid0IGdldCByZXN0b3JlZCBhZnRlciBtaW5pbWl6ZS9yZXN0b3JlICAKPGJyPjI1NzgxOiBTb21lIGNoYW5nZSBicm9rZSBjb21wYXJlIHdpdGggcGF0Y2ggIAo8YnI+MjU3OTc6IEdUSzogU2VsZWN0aW9uIEluZGV4IG5vdCBwcmVzZXJ2ZWQgYWZ0ZXIgQ29tYm8gaXRlbSByZW1vdmFsICAKPGJyPjI1OTg2OiBObyBzb3VyY2UgZm9yIFNXVCBwbHVnaW4gaW1wb3J0ZWQgYXMgYmluYXJ5ICAKPGJyPjI1OTg5OiBSYWRpb24gYnV0dG9ucyBhcmUgbm90IG11dHVhbGx5IGV4Y2x1c2l2ZSBpbiBzYW1lIGNvbXBvc2l0ZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDE1IC0gVHVlc2RheSBOb3ZlbWJlciA1LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjA3OiBNaXNzaW5nIEFQSSBmb3IgRm9udChEaXNwbGF5IGRpc3BsYXksIEZvbnREYXRhIGZkW10pICgxRzkzVFBNKQo8YnI+MTQ5NTY6IFN0eWxlZFRleHQgLSBwcmludGluZyBzaG91bGQgc3VwcG9ydCBwYWdpbmF0aW9uLCBoZWFkZXJzLCBhbmQgZm9vdGVycwo8YnI+MjE2OTU6IENyYXNoIHdoZW4gc3RhcnRpbmcgZWNsaXBzZSBvbiBTb2xhcmlzOCB3aXRoIGphdmEgMS40ICAKPGJyPjIyMDUyOiBMYXVuY2ggY29uZmlndXJhdGlvbiBkaWFsb2cgbG9zZXMgd29ya3NwYWNlIGRhdGEgZGlyICAKPGJyPjIzMDQ5OiBDYW5ub3Qgd3JpdGUgU3dlZGlzaCBjaGFyYWN0ZXJzICg/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8pIGluIGVkaXRvciAgCjxicj4yNDI3MzogR1AgLVRyZWUgcmVtb3ZlQWxsIHJlYm9vdCB3aW5kb3dzWHAgIAo8YnI+MjQzNTk6IE1lbnVJdGVtcyB3aXRoIHN0eWxlIFNXVC5SQURJTyBzaG91bGQgaGFuZGxlIG11dHVhbCBleGNsdXNpb24gb24gc2VsZWN0aW9uCjxicj4yNDc1NzogR1RLOiBYIHBvaW50ZXIgZ3JhYiB3aGVuIHJlc2l6aW5nIGEgdGFibGUgY29sdW1uICAKPGJyPjI1MjEyOiBHUEYgc3luY2hyb25pemluZyBmaWxlcyB3aXRoIG5ldyBUcmVlIGltcGxlbWVudGF0aW9uICAKPGJyPjI1MjUzOiBQcmVmZXJlbmNlIGRpYWxvZyBkb2Vzbid0IGRpc3BsYXkgbGFzdCBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+MjUzOTk6IERyYWcgYW5kIGRyb3AgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjI1NTQ1OiBTdHlsZWRUZXh0IC0gcHJpbnRpbmcgaWdub3JlcyBlbmQgcGFnZSAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMTQgLSBUdWVzZGF5IE9jdG9iZXIgMjksIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwMDkwOiBDYW5ub3Qgc2VlIENvbWJvLWJveCBzZWxlY3Rpb24gaW4gREJDUyBsb2NhbGUgIAo8YnI+MTIwNzg6IFNXVCBleGNlcHRpb24gd2hlbiBydW5uaW5nIG9uIGRlYmlhbiB3b29keSBvbiBLREUgdXNpbmcgdGhlIG1vdGlmIGJ1aWxkCjxicj4xNDQ0ODogU2V0dGluZyB0aGUgYWNjZWxlcmF0b3Igb2YgYSBtZW51IGl0ZW0gZ2l2ZXMgaGlnaGxpZ2h0IHRvIHRvb2wgYmFyIGVudHJpZXMKPGJyPjE3MzYxOiBUcmVlIGZsaWNrZXJzIG9uIHVwZGF0ZSAgCjxicj4xNzQyODogSW50ZXJuYWwgRXJyb3IgKFNXVCkgb3BlbmluZyBhIG5ldyBwZXJzcGVjdGl2ZSBieSBkb3VibGUtY2xpY2tpbmcKPGJyPjIwMDc1OiBJbmZvcG9wIGV4aGliaXRzIHN0cmFuZ2UgYmVoYXZpb3VyIHVuZGVyIE1vdGlmICAKPGJyPjIxMDY2OiBTd2l0Y2ggZWRpdG9ycy92aWV3cy9wZXJzcGVjdGl2ZXMgd2luZG93cyBoYXZlIHNjcm9sbGJhcnMgIAo8YnI+MjExMjE6IFtFeHRlcm5hbCBUb29sc10gQ29uZmlndXJhdGlvbiBkZWZhdWx0IHNlbGVjdGlvbiBjb3VsZCBiZSBiZXR0ZXIgb24gR1RLCjxicj4yMTM3NTogUmVwcm9kdWNpYmxlIEpWTSB0ZXJtaW5hdGlvbiB3aGVuIHVzaW5nIFdlYkRBVi4gIAo8YnI+MjE2NTY6IEdUSzogZGlzcG9zaW5nIGFsbCB0aGUgY29sdW1ucyBpbiB0YWJsZS5nZXRDb2x1bW5zIGZhaWxzICAKPGJyPjIyMDM4OiBXcm9uZyB3aWRnZXQgc2Nyb2xscyBpbiBKYXZhIEJyb3dzaW5nIHBlcnNwZWN0aXZlLiAgCjxicj4yMjEyMDogRXhjZXNzaXZlIHJlZHJhdyBpbiBkZWJ1ZyB2aWV3ICAKPGJyPjIyMjUyOiBQcm9qZWN0IHByb3BlcnRpZXMgLSBqYXZhIGJ1aWxkIHBhdGggc2NyZWVuIHNob3dzIGFydGlmYWN0cyAgCjxicj4yMjM3MTogSW52YWxpZCBzZWxlY3Rpb24gaXRlbXMgaW4gd29ya2luZyBzZXQgIAo8YnI+MjI1Mjc6IFdvcmtpbmcgc2V0IGRpYWxvZyBvbmx5IHNlbGVjdHMgcHJvamVjdHMgIAo8YnI+MjI3NDM6IFR5cGUgZGlhbG9nIGhvcml6b250YWwgc2Nyb2xsIHRvbyBzbWFsbCB0byByZWFkIGNvbnRlbnRzICAKPGJyPjIzNjU3OiBQcm9ibGVtcyBpbXBsZW1lbnRpbmcgTWVudUl0ZW0uc2V0VGV4dCAod29ya2VkIGFyb3VuZCBmb3IgRW5nbGlzaCkKPGJyPjIzNzg5OiBHVEsgdHJlZSBkaXNwbGF5IHByb2JsZW0gIAo8YnI+MjM4NDU6IFNwdXJpb3VzIHNjcm9sbGJhciBkcmF3biBvbiBvdGhlciBjb250cm9scyAgCjxicj4yNDE1MDogU2hpZnQtVGFiIGRvZXMgbm90IHNoaWZ0IGxlZnQgIAo8YnI+MjQyNTc6IE5hdGl2ZSBleGNlcHRpb24gd2hlbiB0cnlpbmcgdG8gZXhwb3J0IHByZWZlcmVuY2VzICAKPGJyPjI0MzE0OiBGaWxlRGlhbG9nIGRvZXNuJ3QgYWxsb3cgdG8gbmF2aWdhdGUgaW50byBwYWNrYWdlcyAgCjxicj4yNDM3MjogU3R5bGVkVGV4dCAtIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gQ29udHJvbEV4YW1wbGUKPGJyPjI0NDI2OiBTdHlsZWRUZXh0IC0gaW52ZXN0aWdhdGUgcmVwbGFjaW5nIGNhcmV0TGluZSB3aXRoIHNpbXBsZXIgY29uY2VwdAo8YnI+MjQ1MDQ6IFN0eWxlZFRleHQgLSBzaG93U2VsZWN0aW9uIHdoZW4gc2VsZWN0aW9uIFJ0b0wgcHJvYmxlbSAgCjxicj4yNDYxOTogRENSIC0gU3RhdGUgbWFzayBub3Qgc2V0IGluIE1vdXNlVHJhY2tlci5tb3VzZUhvdmVyICAKPGJyPjI1MDE2OiBbVmlld2Vyc10gRG91YmxlIGNsaWNrIG5vdCB3b3JraW5nIHdoZW4gaXRlbSBhbHJlYWR5IHNlbGVjdGVkCjxicj4yNTE0OTogU3R5bGVkVGV4dCAtIFdyYXBwZWRDb250ZW50IEFQSSBkb2VzIG5vdCBjaGVjayBsaW5lIGluZGV4IHJhbmdlCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDEzIC0gVHVlc2RheSBPY3RvYmVyIDIyLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMDM3NzogU3R5bGVkVGV4dCAtIFNXVC5XUkFQIHN0eWxlIGFuZCB3aWR0aEhpbnQgc3BlY2lmaWNhdGlvbiAgCjxicj4yMjk4NjogU1dUIENvbnRyb2xzIENvbWJvIGJveCBDb2xvcnMgc2VsZWN0aW9uIHRvb2wgZG9lcyBub3QgY2hhbmdlIGZvcmVncm91bmQgY29sb3IKPGJyPjI0NzI4OiBTdHlsZWRUZXh0IEVudGVyL0N0cmwtRW50ZXIgVmVyaWZ5RXZlbnQgaW5jb25zaXN0ZW5jaWVzICAKPGJyPjI0ODA1OiBDb21wdXRlU2l6ZSBpc3N1ZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDEyIC0gVHVlc2RheSBPY3RvYmVyIDE1LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjY1NzogW09wZW4gTW9kZXNdIFNlYXJjaCByZXN1bHRzIGRvZXNuJ3QgcmVzcG9uZCB0byBkb3VibGUgY2xpY2sgIAo8YnI+MTczMzQ6IEljb24gbWlzc2luZyBpbiBjaGVjayBib3ggdHJlZSAgCjxicj4xNzkxODogVHJlZSB3aWRnZXRzIHdpdGggbXVsdGlwbGUgZW50cmllcyAgCjxicj4xODkwMjogUGdVcCBrZXkgY2F1c2VzIGl0ZW1zIHRvIGJlIHNlbGVjdGVkIGluIHRyZWUgd2lkZ2V0IHVuZGVyIEdUSyAgCjxicj4yMDI1ODogW0NWU10gRXNjIGtleSBkb2Vzbid0IHdvcmsgb24gQ29tbWl0IERpYWxvZyAgCjxicj4yMTM2NzogRGlzcGxheSBwcm9ibGVtIGluIHRoZSBwcm9wZXJ0aWVzIHZpZXcgIAo8YnI+MjE0Mzg6IEphdmEgY29yZSBkdW1wIGluIGd0a19jdHJlZV9nZXRfbm9kZV9pbmZvICAKPGJyPjI0NTYwOiBDdHJsK3NoaWZ0IGRvZXNuJ3QgdHJhdmVyc2Ugd29yZCAgCjxicj4yNDY3NjogU3R5bGVkVGV4dCAtIGRvdWJsZSBjbGljayB3b3JkIHNlbGVjdCBhbmQgY2FyZXQgcGxhY2VtZW50ICAKPGJyPjI0Njc3OiAzMiBiaXQgaW1hZ2UgZmFpbHMgd2l0aCBhIGNlcnRhaW4gbWFzayAgCjxicj4yNDcwMjogV2luQ0U6IEltYWdlIDMyYml0cyBpcyBpbmNvcnJlY3QgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAxMSAtIFR1ZXNkYXkgT2N0b2JlciA4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0ODIyOiBHcm91cCBzaXplIGRvZXNuJ3Qgc2VlbSB0byBjb25zaWRlciBncm91cCBuYW1lICgxR0pZSVdCKSAgCjxicj4xMDAxOTogUmlnaHQgY2xpY2tpbmcgaW4gYSBsaXN0IGJveCBzaG91bGQgc2VsZWN0IGJlZm9yZSBwb3BwaW5nIHVwIG1lbnUgCjxicj4xNzE2MDogVGFzayBMaXN0OiBtaXNzaW5nIGljb24gIAo8YnI+MTg4NDI6IENoZWVzZSB3aGVuIHNjcm9sbGluZyBhZnRlciBkZWxldGluZyByb3cgaW4gdGFibGUgIAo8YnI+MTk3NzM6IENvb2xiYXIgaWNvbnMgaW4gV2luZG93cyBYUCB3aXRoIEx1bmEgdGhlbWUgYXJlIG5vdCB2ZXJ0aWNhbGx5IGFsaWduZWQKPGJyPjIwMDk0OiBMYXlvdXQgcHJvYmxlbXMgdXNpbmcgU3R5bGVkVGV4dCB3aXRoIHdvcmQgd3JhcCBpbiBhIFNjcm9sbGVkQ29tcG9zaXRlCjxicj4yMzk3ODogSG9yaXpvbnRhbCBzY3JvbGxiYXJzIGluIHRhYmxlcyBhbmQgdHJlZXMgZG9uJ3Qgc2Nyb2xsIHBhZ2Utd2lzZQo8YnI+MjQyMjU6IERyYWdTb3VyY2VBZGFwdGVyIGluY29ycmVjdCBKYXZhRG9jICAKPGJyPjI0MzU4OiBJbmNvbXBsZXRlIEphdmFEb2Mgb24gTWVudUl0ZW0uc2V0VGV4dCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDEwIC0gVHVlc2RheSBPY3RvYmVyIDEsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwNDU5OiBJIGNhbid0IHJ1biBlY2xpcHNlICAKPGJyPjE5MTQ4OiBUb29sdGlwIHBvcHMgdXAgdW5kZXJuZWF0aCBjb2RlIGNvbXBsZXRpb24gYWx0ZXJuYXRpdmVzIGluIEYyCjxicj4yMDY3MjogU2hpZnQrRjEwIGhhcyB3cm9uZyBrZXlDb2RlICAKPGJyPjIxMjg3OiBVbmNhdWdodCBleGNlcHRpb24gaGFuZ2luZyBFY2xpcHNlICAKPGJyPjIyNjE1OiBbRGlhbG9nc10gTmF0aXZlIFByb2dyZXNzQmFyIGxvb2sgZG9lcyBub3QgbWF0Y2ggbG9vayBvZiBBbmltYXRlZFByb2dyZXNzCjxicj4yMjY0NTogU3R5bGVkVGV4dCAtIGNoZWVzZSB3aGVuIHR5cGluZyBpbiBTV1QuU0lOR0xFIG1vZGUgIAo8YnI+MjM2NDU6IERpc2FibGVkIGRlZmF1bHQgYnV0dG9uIGNhbiBzdGlsbCBiZSByZWFjaGVkIHByZXNzaW5nIEVOVEVSICAKPGJyPjIzODQ2OiBJbml0aWFsIGZvbnQgaGVpZ2h0IG9mIHRleHQgZmllbGQgaXMgd3JvbmcgIAo8YnI+MjM4NTE6IEluaXRpYWwgdGV4dCBpbiBUZXh0IGNvbnRyb2wgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpc2libGUgYXJlYSAgCjxicj4yMzkxMDogQ1RhYkZvbGRlciBzZWxlY3RlZCB0YWIgbG9zZXMgc3luY2ggd2l0aCBpdHMgY29udGVudHMgIAo8YnI+MjM5MzY6IE5QRSBpbiBDb250cm9sRXhhbXBsZSAgCjxicj4yMzk0NzogTWVudSBpbXBsZW1lbnRhdGlvbiBwcmV2ZW50cyBLZXliaW5kaW5nTWVudSBmcm9tIHdvcmtpbmcgY29ycmVjdGx5Cjxicj4yMzk3NTogTm8ga2V5Ym9hcmQgc2hvcnRjdXRzIGRpc3BsYXllZCBpbiBtZW51IGl0ZW1zICAKPGJyPjIzOTc2OiBGdW5jdGlvbiBrZXlzIG11c3QgYmUgcHJlc3NlZCB0d2ljZSAgCjxicj4yNDAwMDogTm8gc2Nyb2xsd2hlZWwgc3VwcG9ydCBmb3IgTWFjIE9TIFggIAo8YnI+MjQwNTU6IE5vIG1vcmUgY2FsbGJhY2sgZXhjZXB0aW9uIGhhbmcgRWNsaXBzZSAgCjxicj4yNDA4ODogRmlsZSBjaG9vc2VyIGZvciBPU1ggcmV0dXJucyB3cm9uZyBwYXRoICAKPGJyPjI0MTA2OiBUYWJsZSBDb2x1bW4gUmVzaXphYmxlIERvZXNuJ3Qgd29yayBpZiB5b3UgY2xpY2sgb24gQ29sdW1uIGl0c2VsZgo8YnI+MjQxMzc6IFRvcCBpdGVtIG9uIHBvcHVwIGlzIG9mdGVuIGludmlzaWJsZSAgCjxicj4yNDEzOTogQ29weSBjYXVzZXMgZXhjZXB0aW9uICAKPGJyPjI0MTQxOiBLZXlib2FyZCBub3QgZnVuY3Rpb25hbCBpbiBlZGl0b3JzIChtYWMgb3MgeCkgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwOSAtIFR1ZXNkYXkgU2VwdGVtYmVyIDI0LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo3NDM1OiBBcnJheUluZGV4T3V0Qm91bmRzRXhjZXB0aW9uIG9jY3VycyB3aGVuIHVzaW5nIFNvbGFyaXMgdGhyb3VnaCByZW1vdGUgdGVybWluYWwKPGJyPjE1MTQ2OiBQcmludGluZyBzdXBwb3J0IHVuZGVyIExpbnV4PyAgCjxicj4xODQ4MzogSUU2IGNhdXNlcyBjb25mbGljdCB3aXRoIFNXVC5BUFBMSUNBVElPTl9NT0RBTCBvbiBXaW5kb3dzIDk4ICAKPGJyPjIwNDYxOiBXaW5DRSAtIFdhaXQgY3Vyc29yIGRvZXMgbm90IHNob3cgdXAgIAo8YnI+MjA5NTg6IEVjbGlwc2UgY3Jhc2hlcyB3aGVuIHBhc3RpbmcgUERGIHRleHQgaW50byBhIEphdmEgZmlsZSBlZGl0b3IKPGJyPjIxNDE2OiBHdGsrIGxhdW5jaGVyICAKPGJyPjIyMTIxOiBFY2xpcHNlIGNyYXNoZXMgd2hlbiBwYXN0aW5nIFVSTCBpbiBKYXZhLWNvZGUgIAo8YnI+MjMwMDc6IFtOYXZpZ2F0b3JdIEltcG9ydCBvZiB3b3Jrc3BhY2UgZm9sZGVyIGludG8gcGFyZW50ICAKPGJyPjIzNzQ0OiBEZXZpY2UuZ2V0Rm9udExpc3QoKSB1c2VzIHdyb25nIGNvbnN0YW50IG5hbWUgIAo8YnI+MjM3NDU6IFdyb25nIGZsYWcgdXNlZCBpbiBEZXZpY2UuZ2V0Rm9udExpc3QoKS4gIAo8YnI+MjM3NDg6IElucHV0IGdyb3VwIGlzIGhhcmRjb2RlZCBhcyAxIGluIFBoV2luZG93UXVlcnlWaXNpYmxlKCkgIAo8YnI+MjM3NTM6IEdyb3VwcyBkb24ndCBsb29rIGxpa2UgdGhlIHBsYXRmb3JtICAKPGJyPjIzNzU0OiBMYWJlbC5zZXRGb250KCkgbmVlZHMgdG8gY2hlY2sgInRleHQgIT0gbnVsbCIgIAo8YnI+MjM3NjY6IExhYmVscyB3aXRoIGltYWdlIG9ubHkgaGF2ZSBleHRyYSBzcGFjZSBvbiBHVEsgIAo8YnI+MjM3OTU6IENvbnRyb2xFeGFtcGxlOiBJbWFnZSBMYWJlbCBsZWF2ZXMgY2hlZXNlIHdoZW4gcmVzaXplZCAgCjxicj4yMzgwNzogRGlzcGxheSBjbGFzcyBuZWVkcyB0byBwaWNrIGJldHRlciBkZWZhdWx0IGZvbnRzLiAgCjxicj4yMzg2NDogQ29vbEJhciAtIFBsdXMgMiwgTWludXMgMiBwcm9ibGVtICAKPGJyPjIzODg0OiBXaW5DRSAtIE9TLkluaXRDb21tb25Db250cm9sc0V4IGZhaWxzIHdpdGggZmxhZyBEQVRFVElNRVBJQ0tfQ0xBU1MKPGJyPjIzODk4OiBHcm91cC5zZXRCYWNrZ3JvdW5kKCkgZG9uJ3Qgd29yayBvbiBHdGsgIAo8YnI+MjM4OTk6IENUUkwgKyBNb3VzZWNsaWNrICAKPGJyPjIzOTc0OiBVc2UgbmF0aXZlIENvbWJvQm94ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMDggLSBUdWVzZGF5IFNlcHRlbWJlciAxNywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDYzNzogVHJlZUVkaXRvciBleGFtcGxlIGRvZXMgbm90IHNob3cgaG93IHRvIHVzZSBkb3VibGUgY2xpY2sgKDFHQ1A2T0gpCjxicj40NjU2OiBQb3AtdXAgbWVudSBub3Qgc2hvd2luZyBmb3IgQ29tcG9zaXRlICgxR0VOWU0wKSAgCjxicj40NzEwOiBSZW1haW5pbmcgSmF2YWRvYyBwcm9ibGVtcyAoMUdGMDg4VykgIAo8YnI+NDczMDogU3VwcG9ydCBmb3IgbGVzc3RpZiBvbiBMaW51eCAgCjxicj40NzMzOiBJc3N1ZXMgd2l0aCBXaW4zMiBHREkgc2V0QmtNb2RlKCksIGFuZCBzaW1pbGFyIHRoaW5ncyBpbiBNb3RpZiAoMUdGUEdLMykKPGJyPjQ3OTY6IERDUjoga2V5Ym9hcmQgc3VwcG9ydCBmb3IgbW92ZS9yZXNpemUgKGFjY2Vzc2liaWxpdHkgaXNzdWUpICAKPGJyPjU5MDA6IENoZWNrYm94VGFibGVWaWV3ZXIgZG9lcyBkaXNhYmxlIGNvcnJlY3RseSAgCjxicj4xMDUzMjogRENSOiBUYWJsZS5zZXRTZWxlY3Rpb24oaW50LCBpbnQpIC0tIG9yZGVyIG1hdHRlcnMgIAo8YnI+MTIwNDg6IE5QRSBleGl0aW5nIHdvcmtzcGFjZSAgCjxicj4xNjcwMDogQ29vbGJhciB0YWIgb3JkZXIgaXMgYmFja3dhcmRzICAKPGJyPjE3NDk0OiBWZXJvbmlrYSBuZWVkcyB0byBjaGVjayBoZXIgamF2YWRvYyAgCjxicj4xOTI1NjogU0lQIGV2ZW50ICAKPGJyPjE5NzM2OiBUb29sdGlwcyBmb3IgbG9uZyBlbnRyaWVzIGluIGNvZGUgYXNzaXN0IHBvcCBiZWhpbmQgY29kZSBhc3Npc3QKPGJyPjIxMTI2OiBQcmludCBEaWFsb2cgSXMgTm90IE1vZGFsLCBSZXN1bHRpbmcgaW4gVW5wcmVkaWN0YWJsZSBXb3JrYmVuY2ggQmVoYXZpb3IKPGJyPjIxNjIwOiBGb250RGF0YS5zZXRMb2NhbGUoKSBjcmFzaGVzIHdvcmtiZW5jaCAgCjxicj4yMjE4OTogV2luMzIgR0RJIFJlc291cmNlIExlYWsgaW4gV3JhcHBlZENvbnRlbnQuamF2YSAgCjxicj4yMjIxMDogUGhvdG9uOlJlbW92aW5nIGl0ZW0gZnJvbSBDb21ibyBkb2VzIG5vdCByZW1vdmUgdGhlIHRleHQoQkJBV1QpCjxicj4yMjM2NDogSW5jb3JyZWN0IGhlaWdodCBvZiB3aWRnZXQgaW4gVGV4dFZpZXdlciAgCjxicj4yMjQ5MDogQmFja2dyb3VuZCBjb2xvciBvZiBHcmFwaGljYWwgRWRpdG9ycyBpcyBhbHdheXMgYmxhY2suICAKPGJyPjIyNTM0OiBObyB3YXkgdG8gdHVybiBib3JkZXIgb2ZmIGZvciBsaW51eCB0ZXh0IHdpZGdldCAgCjxicj4yMjU2NDogQ2Fubm90IGRyYXcgdHJhbnNwYXJlbnQgUE5HIGZpbGVzIHByb3Blcmx5ICAKPGJyPjIyNTc3OiBMaXN0LnNldFNlbGVjdGlvbihTdHJpbmdbXSkgaW5maW5pdGUgbG9vcCAgCjxicj4yMjgzOTogV2hlbiBzd3Qgd2luZG93IGluIGZvY3VzIHBhbGV0dGVzIG9mIG90aGVyIHdpbmRvd3MgaG9zZWQsIGFuZCB2aXNlIHZlcnNhCjxicj4yMjg2MjogU3R5bGVkVGV4dCAtIFRhYiBkb2VzIG5vdCB0YWIgb3V0IG9mIG5vbi1lZGl0YWJsZSAgCjxicj4yMjkyNjogQ2xpcGJvYXJkIGNvcHkvcGFzdGUgaXMgY3V0L3Bhc3RlIG9uIFdpbmRvd3MgOTggIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwNyAtIFR1ZXNkYXkgU2VwdGVtYmVyIDEwLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMDA1MDogU3R5bGVkVGV4dCAtIENoYW5nZSBzZWxlY3Rpb24gY29sb3Igd2hlbiBjaGFuZ2luZyBiYWNrZ3JvdW5kIGNvbG9yCjxicj4xNDYzNzogU3R5bGVkVGV4dCAtIGNvcHktZnJvbSB0ZXh0IGVkaXQgZmVhdHVyZSAgCjxicj4xNjAwOTogRWNsaXBzZSdzIHRvb2xiYXIgYnV0dG9ucycgaWNvbiBpbiBibGFjayBhbmQgdXBzaWRlIGRvd24gIAo8YnI+MTc3OTM6IE1vdGlmIEZpbGVEaWFsb2cgb2Z0ZW4gZG9lcyBub3QgdXNlIHJlYXNvbmFibGUgZGVmYXVsdCBkaXJlY3RvcnkgIAo8YnI+MjAxNzk6IENvb2xiYXIgaXRlbSBjbGlwcGVkIG9uIGJvdHRvbSBlZGdlIHdpdGggU1dULkJPUkRFUiBzdHlsZSAgCjxicj4yMTE4NTogR1RLOiBMYWJlbCBwb3NpdGlvbmluZyBpbmNvcnJlY3Qgd2hlbiBzdHlsZSBiaXQgdXNlZCBhbmQgYm91bmRzIHNldChCQkFXVCkKPGJyPjIyMDc5OiBTdHlsZWRUZXh0IC0gQmlkaVV0aWwuaXNCaWRpUGxhdGZvcm0gcmV0dXJucyB0cnVlIHdoZW4gbm90IHJ1bm5pbmcgd2l0aCBiaWRpIGxvY2FsZQo8YnI+MjIxMTQ6ICoga2V5IGV4cGFuZHMgVGFibGVUcmVlIGJ1dCBkb2VzIG5vdCBzZW5kIFNXVC5FeHBhbmQgZXZlbnQgIAo8YnI+MjIxMTU6IE1lc3NhZ2VEaWFsb2cgZG9lcyBub3Qgd3JhcCBtZXNzYWdlICAKPGJyPjIyMTU4OiBnZXRJdGVtKCkgY3Jhc2hlcyBlY2xpcHNlIGNhbGxlZCB3aXRoIGluZGV4IDAgIAo8YnI+MjI2NDc6IFZhcmlhbnQgY2xhc3MgaW5jb3JyZWN0bHkgbWFyc2hhbHMgVlRfQk9PTCB2YWx1ZXMgIAo8YnI+MjI3NDY6IFRleHQgY3V0IG9mZiBpbiBHVEsgaW4gVGl0bGVBcmVEaWFsb2cgIAo8YnI+MjI4Njg6IEVjbGlwc2UgaGFuZ3Mgd2hpbGUgY3JlYXRpbmcgYSBzaGVsbCBmcm9tIENvbnRyb2xFeGFtcGxlICAKPGJyPjIyODc0OiAyMTA0OiBDb252ZXJ0ZXIgY29udGFpbnMgcmVmZXJlbmNlcyB0byBDb252ZXJ0ZXIuY2xhc3MgIAo8YnI+MjI5MTY6IENDb21ibyBub3QgZHJvcHBpbmcgZG93biBsaXN0IHByb3Blcmx5ICAKPGJyPjIyOTE4OiBUYWJsZS5nZXRJdGVtKFBvaW50KSB0aHJvd3MgQXJyYXlJbmRleE91dE9mQm91bmRzICAKPGJyPjIyOTU5OiBEcmFnZ2luZyBvdmVyIG11bHRpcGxlIHN0YWNrZWQgdHJlZXMgdXNlcyBpbnZpc2libGUgdHJlZSBmb3IgZHJvcCB0YXJnZXQKPGJyPjIyOTc4OiBNb3RpZiBGaWxlRGlhbG9nIGlnbm9yZXMgU1dULk1VTFRJIGJpdCAgCjxicj4yMzAwMzogWGNvcHlwbGFuZSByZXF1aXJlcyAxMSBhcmdzIGJ1dCBIUC1VWCBKUkUgY2FuIG9ubHkgaGFuZGxlIDEwICAKPGJyPjIzMDI4OiBFQzogVGFiIHVuLWluZGVudCBkb2VzIG5vdCB3b3JrICAKPGJyPjIzMDYxOiAnQmFjaycga2V5IGRvZXMgbm90IGRlbGV0ZSBjaGFyYWN0ZXIgb24gU21hcnRwaG9uZSAyMDAyICAKPGJyPjIzMTc4OiBFY2xpcHNlIEZhaWxzIHRvIFN0YXJ0IEZpcnN0IFRpbWUgIAo8YnI+MjMyODU6IExpbnV4IE1vdGlmIGhhcyBiZWNvbWUgZXh0cmVtZWx5IHNsb3cgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwNiAtIFR1ZXNkYXkgQXVndXN0IDI3LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1Njc4OiBUVlQ6IFVuYWJsZSB0byBvcGVuIEZpbHRlciBkaWFsb2cgb24gV2luOTggaWYgYW5vdGhlciB2aWV3IGlzIHVuZG9ja2VkIChmcmVlIGZsb2F0aW5nKQo8YnI+MTI4Nzg6IENvbWJvIHNldEl0ZW1zIHJlbW92ZXMgc2V0VGV4dCAgCjxicj4xMzAyNDogVHdvIHRvb2x0aXBzIGRpc3BsYXllZCBvbiB0cmVlICAKPGJyPjE0OTIzOiBTaG93IFRleHQgSG92ZXIgdG9vbGJhciBpdGVtIGluIHdyb25nIHBsYWNlICAKPGJyPjE2MzMzOiBBY2Nlc3NpYmlsaXR5IC0gdGFiIGtleSBpbiBkaWFsb2cgYm94ZXMgIAo8YnI+MjAzMjE6IE11bHRpcGxlIG9wZW5lZCBBcHBsaWNhdGlvbldpbmRvd3Mgd2l0aCBzdGF0dXNsaW5lcyBzaG93IGluY29ycmVjdCBkaXNwbGF5L2V2ZW50IGhhbmRsaW5nCjxicj4yMjIzMTogUHJlc3NpbmcgRU5URVIgaW4gYSB0ZXh0IGZpZWxkIG5vIGxvbmdlciBwZXJmb3JtcyBPSyBpbiBkaWFsb2dzCjxicj4yMjY1OTogRnVuY3Rpb24ga2V5IGV2ZW50cyBhcmUgb2Z0ZW4gbG9zdAo8YnI+MjI2NjE6IFN0eWxlZFRleHQgLSBTaGlmdCtBbHQrPGNoYXJhY3Rlcj4gaW5zZXJ0cyBjaGFyYWN0ZXIgIAo8YnI+MjI3MjE6IENhbm5vdCB1c2Uga2V5Ym9hcmQgdG8gdG9nZ2xlIGNoZWNrYm94ZXMgIAo8YnI+MjI3Mzc6IE1vdXNlIENhcHR1cmUgb24gTW90aWYgY2F1c2VzIENvbnRleHQgTWVudSBub3QgdG8gd29yayAgCjxicj4yMjgyNTogQ29uc2VjdXRpdmUgdmVydGljYWwgY3Vyc29yIG1vdmVtZW50IGNvbW1hbmRzIGRvbid0IHJldGFpbiBjb2x1bW4gb2Zmc2V0CjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDA1IC0gVHVlc2RheSBBdWd1c3QgMjAsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1NTQ6IENvbWJvIHNlbGVjdGlvbiBzY3JvbGxzIGZvciBjZXJ0YWluIGZvbnRzICgxRzFBRDlZKSAgCjxicj40NTc3OiBDdHJsK0JhY2tzcGFjZSAmIEN0cmwrZGVsIGhhdmUgdGhlIHNhbWUga2V5IGNvZGUgYW5kIGtleSBldmVudCAoMUc1NFJBSikKPGJyPjQ2ODU6IFZhcmlhYmxlcyBWaWV3IHJlLXBvc2l0aW9ucyBvbiBlYWNoIHN0ZXAgKDFHRVRFOEYpICAKPGJyPjEwMDkxOiBNZXNzYWdlQm94IGxvc2VzIGFjdGl2YXRpb24gIAo8YnI+MTA5NzY6IFdvcmtiZW5jaCB3aW5kb3dzIGRvbid0IHJlb3BlbiBjb3JyZWN0bHkgaW4gRHVhbCBNb25pdG9yIGVudmlyb25tZW50cwo8YnI+MTQ5NDI6IFVuZXhwZWN0ZWQgS2V5RG93biBldmVudCBhZnRlciBwcmVzc2luZyBub24gZXhpc3RpbmcgbWVudSBtbmVtb25pYwo8YnI+MTg3MDU6IFRvbyBtdWNoIGZsYXNoaW4gaW4gQ29udHJvbCBFeGFtcGxlICAKPGJyPjIxODI5OiBBUEkgbmVlZGVkIHRvIGFsbG93IENDb21ibyB0byBkaXNwbGF5IGl0cyBsaXN0IGF0IHRoZSBwcmVmZXJlZCB3aWR0aAo8YnI+MjI0NDM6IE9MRSAtIG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5vbGUud2luMzIuQ09OVFJPTElORk8gaGFzIGEgdXNlbGVzcyBmaWVsZCAnZmlsbGVyJwo8YnI+MjI0NTc6IFdpbjMyIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkNvbWJvIGNvbXB1dGVTaXplKCkgaXMgd3JvbmcgIAo8YnI+MjI1MDc6IE1vZGFsIGRpYWxvZyBkb2VzIG5vdCBwcmV2ZW50IGFkanVzdGluZyBvZiB0YWJsZSBoZWFkZXJzIGluIHBhcmVudC4KPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMDQgLSBUdWVzZGF5IEF1Z3VzdCAxMywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDczNzogUmVkcmF3IHByb2JsZW0gaW4gdGFibGUgKDFHRlcyUEUpICAKPGJyPjkwNzU6IFRvb2x0aXBzIG9ubHkgcGFydGlhbGx5IGRpc3BsYXllZCBpbiBIb3ZlcmhlbHAuamF2YSBleGFtcGxlICAKPGJyPjE1NjEwOiBTdHlsZWRUZXh0IC0gRG91YmxlLUNsaWNrLURyYWcgZG9lc24ndCB3b3JrLCB3b3JrcyBvbiBUZXh0ICAKPGJyPjE2OTkwOiBUb29sQmFyIGRvZXMgbm90IHNlbmQgTW91c2VIb3ZlciBldmVudHMgIAo8YnI+MjA2MzI6IFBvbGlzaCBuYXRpb25hbCBmb250cyAgCjxicj4yMDc5Mjogc29tZXRpbWVzIHJlc2l6ZSBjYWxsYmFjayBpcyBub3Qgc2VudCB0byB0aGUgc2hlbGwgd2hlbiB0aGUgc2hlbGwgaXMgbm90IHZpc2libGUKPGJyPjIwODE1OiBNZW51cyBub3QgZGlzcGxheWVkIG9uIFNtYXJ0UGhvbmUgMjAwMiAgCjxicj4yMTI2ODogU3R5bGVkVGV4dCAtIEN0cmwrU2hpZnQrSiBpbnNlcnRzIGxpbmUgIAo8YnI+MjEyNzI6IFN0eWxlZFRleHQgZG9lcyBub3Qgc3VwcG9ydCBzZXR0aW5nIHNlbGVjdGlvbiB3aXRoIGNhcmV0IG9uIHRoZSBsZWZ0Cjxicj4yMTkyMTogRW11bGF0ZWQgVGFibGUgc2V0VG9wSW5kZXggZmFpbHMgYW5kIGNhdXNlcyBOUEUgd2hlbiBhZGRpbmcgYW4gaXRlbSBhZnRlcndhcmRzCjxicj4yMTkzMzogVGFibGVDb2x1bW4gZG9lcyBub3QgbGlzdGVuIHRvIENvbnRyb2xFdmVudHMgIAo8YnI+MjIwMDQ6IG5vIGtleWJvYXJkIHNob3J0Y3V0cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gcGFnZXMgb2YgTXVsdGlQYWdlRWRpdG9yUGFydAo8YnI+MjIxODg6IFN0eWxlZFRleHQgLSBvbmx5IGZpcnN0IGNoYXJhY3RlciBvZiBhIGxpbmUgZGlzcGxheWVkICAKPGJyPjIyMjA0OiBQaG90b246IFRleHQuc2VsZWN0QWxsKCkgZG9lcyBub3Qgc2VsZWN0IGFsbCB0aGUgdGV4dChCQkFXVCkgIAo8YnI+MjIyNTQ6IENvbW1hbmQgSCBpcyBub3QgbWFwcGVkIHByb3Blcmx5ICAKPGJyPjIyMzY1OiBTV1RfQVdUIGRvZXMgbm90IGNvbXBpbGUgdW5kZXIgSkRLIDEuNCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDAzIC0gVHVlc2RheSBBdWd1c3QgNiwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDUyMTogRGlzcGxheS5zeW5jRXhlYyBvciBEaXNwbGF5LmFzeW5jRXhlYyBjYW4gYmxvY2sgcHJvY2Vzc2luZyBvZiBuYXRpdmUgZXZlbnRzICgxRzAzREYwKQo8YnI+MjAxNDQ6IEVudGVyIGtleSBub3Qgd29ya2luZyBpbiBwYWNrYWdlcyB2aWV3ICAKPGJyPjIxMTc5OiBTdGVwIGZpbHRlciBpbi1wbGFjZSB0ZXh0IGVkaXRvciBpbnZpc2libGUgIAo8YnI+MjEyNDM6IFNjcm9sbCBsb2NrIGluc2VydHMgYSBjaGFyYWN0ZXIgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCBvbiBHVEsKPGJyPjIxMzM4OiBBY2NlbnRzIGFuZCA/Pz8/Pz8/IGRvbid0IHdvcmsgaW4gZWRpdG9yIHVzaW5nIGd0ayAgCjxicj4yMTQ3Mjoga2V5UHJlc3NlZCBldmVudCBpZ25vcmVkIGJ5IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLlRleHQgZm9yIEVOVEVSIGtleQo8YnI+MjE2OTY6IFN0eWxlZFRleHQgLSBSVEYgdHJhbnNmZXIgY29kZXBhZ2UgZW5jb2RpbmcgIAo8YnI+MjE2OTg6IFN0eWxlZFRleHQgLSBSVEYgd3JpdGVyIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50ICAKPGJyPjIxODM0OiBDb29sYmFyIC0gZGVsZXRpbmcgaXRlbXMgY29ycnVwdGluZyBsYXlvdXQgIAo8YnI+MjIwMDQ6IE5vIGtleWJvYXJkIHNob3J0Y3V0cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gcGFnZXMgb2YgTXVsdGlQYWdlRWRpdG9yUGFydAo8YnI+MjIwMjU6IE1vdGlmOiBVbmV4cGxhaW5lZCB0ZXJtaW5hdGlvbiBydW5uaW5nIEJCQVdUIEpVbml0IHRlc3RzICAKPGJyPjIyMDM2OiBNT1RJRjogQXBwZWFyYW5jZSBpc3N1ZSB3aXRoIENvbWJvICAKPGJyPjIyMDYwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDAyIC0gVHVlc2RheSBKdWx5IDMwLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTc4OiBDdHJsK0ogJiBDdHJsK0VudGVyIGhhdmUgdGhlIHNhbWUga2V5IGNvZGUgKDFHNTRSSkopICAKPGJyPjQ4MTY6IFRhYkl0ZW0gZGlzcGxheXMgJiAoMUdKTDcwNCkgIAo8YnI+Njg4ODogQ29tYm8gc2VuZHMgTW9kaWZ5RXZlbnQgb24gc2V0SXRlbXMgIAo8YnI+OTAyNTogT0xFLCBTdHlsZWRUZXh0IHdpZGdldCBhbmQgV2luQ0UgIAo8YnI+MTk2MzI6IFRyYWNrZXIgc2hvdWxkIGFkanVzdCBjdXJzb3Igb24gbW91c2Ugbm90IGRvd24sIG5vdCBvbiBNRU5VICAKPGJyPjE5OTg1OiBTdHlsZWRUZXh0IC0gQnVsbGV0aW5nIHByb29maW5nIFJURiBjb3B5IGZ1bmN0aW9uICAKPGJyPjIwNjkxOiBTdHlsZWRUZXh0IC0gYmlkaSAtIFdpbjJLL1hQIHN1cHBvcnQgIAo8YnI+MjA3NDY6IEluY29uc2lzdGVudCBAcGFyYW0gaW4gSmF2YWRvYyBmb3IgIFRhYmxlSXRlbS5zZXRHcmF5ZWQoYm9vbGVhbikKPGJyPjIxMzEzOiBDb21iby5nZXRJdGVtIHdyb25nIGVycm9yIHRocm93biAgCjxicj4yMTQyMzogR1RLOiBHUEYgaW4gU2hlbGwuc2V0VmlzaWJsZSgpICAKPGJyPjIxNTAwOiBHVEs6IFNXVC5BY3RpdmF0ZSBhbmQgU1dULkRlYWN0aXZhdGUgZXZlbnRzIG5vdCBmaXJlZCB3aGVuIFNoZWxsIHdpdGggTk9fVFJJTSB1c2VkIGFzIGl0cyBzdHlsZSBiaXQKPGJyPjIxNTI2OiBTaGVsbC5jb21wdXRlVHJpbSBkb2VzIG5vdCBpbmNsdWRlIG1lbnUgYmFyICAKPGJyPjIxNTYzOiBNbmVtb25pY3MgZ2l2ZSBmb2N1cyB0byB0aGUgbGFiZWwgb24gR1RLICAKPGJyPjIxNTY0OiBHVEs6IFRleHQgb2YgQnV0dG9uKHdpdGggc3R5bGUgYml0IFNXVC5DSEVDSykgZG9lcyBub3Qgc2hvdyB1cCBjb3JyZWN0bHkKPGJyPjIxNTczOiBUYWJsZVRyZWVJdGVtIHNob3VsZCBoYXZlIGdldC9zZXRHcmF5ZWQoKSBtZXRob2RzIGxpa2UgVGFibGVJdGVtCjxicj4yMTYwMTogZ2V0TGluZUNvdW50KCkgbWV0aG9kIGZvciBUZXh0IHdpZGdldCBkb2VzIG5vdCB3b3JrIG9uIE1vdGlmICAKPGJyPjIxNjIzOiBMaXN0LnNldFNlbGVjdGlvbiAoaW50IHN0YXJ0LCBpbnQgZW5kKSBmYWlscyBvbiBNb3RpZiAgCjxicj4yMTY1MzogV2luQ0UvU0g0OiBBcnJvdyBrZXlzIGRvbid0IGdlbmVyYXRlIGtleSBldmVudHMgIAo8YnI+MjE3MDI6IERlYnVnIERpc3BsYXkgdmlldyBlcnJvciBtc2cgdG8gY29uc29sZSBvbiBHVEsgIAo8YnI+MjE3MDY6IEJpZGlVdGlsIGluIHdpbjMyIGhhcyBDbGFzcy5mb3JOYW1lKCkgdXNhZ2UgIAo8YnI+MjE4MDU6IGV2ZW50LmNoYXJhY3RlciA9IDAgZm9yIGFsbCBDdHJsLTxhbHBoYT4gb24gUU5YIDYuMiAgCjxicj4yMTkzNzogQ09NT2JqZWN0IGxlYWthZ2Ugb24gT2xlQ29udHJvbFNpdGUgIAo8YnI+MjE5NTg6IENvbnRyb2xFeGFtcGxlIEZpbGVEaWFsb2cgZG9lcyBub3QgZmlsdGVyIGNvcnJlY3RseSAgCjxicj4yMTk2NDogR1RLOiBBZGRpbmcgYW4gaXRlbSB0byBDb21ibyBjaGFuZ2VzIHRoZSBzZWxlY3Rpb24gaW5kZXggIAo8YnI+MjE5Njc6IEdUSzogU2V0dGluZyBzZWxlY3Rpb24gaW5kZXggdG8gLTEgZm9yIGEgQ29tYm8gdGhyb3dzIGFuIGV4Y2VwdGlvbgo8YnI+MjE5Njk6IExpc3QuZ2V0U2VsZWN0aW9uSW5kZXggYnVnICAKPGJyPjIxOTc2OiBHVEs6IENvbWJvLmdldFNlbGVjdGlvbkluZGV4KCkgY2hhbmdlcyB3aGVuIGFuIGl0ZW0gaXMgcmVtb3ZlZAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwMSAtIFR1ZXNkYXkgSnVseSAyMywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQyODogVGFibGUgLSBHcmlkIGxpbmVzIG5vdCBkcmF3biBjb3JyZWN0bHkgKDFGRTRLNVUpICAKPGJyPjQ0NTE6IFNoZWxsOiBzZXREZWZhdWx0QnV0dG9uLCBkZWZhdWx0IGJ1dHRvbiBjYW5ub3QgYmUgcmVzZXQgdG8gbnVsbCAoMUZHTFM2TSkKPGJyPjQ0ODk6IE1vdXNlVXAgZmlyZWQgZm9yIGJ1dHRvbiAxIHdoZW4gYnV0dG9uIDEgaXMgc3RpbGwgcHJlc3NlZCAoMUZPRERQNCkKPGJyPjQ1MTE6IFBhbmUgdGl0bGUgdXBkYXRlIGZsYXNoZXMgdG9vbCBiYXIgYnV0dG9ucyAoMUZVVVI3QSkgIAo8YnI+NDUyNDogQ1RSTCBzZXF1ZW5jZXMgbm90IGhhbmRsZWQgZ3JhY2VmdWxseSBieSBUZXh0RWRpdG9yICgxRlZTQlRTKSAgCjxicj40NTQ0OiBDVFJMIGNvbWJpbmF0aW9uIG5vdCBoYW5kbGVkIGFzIGFjY2VsZXJhdG9ycyB3aGVuIENhcHMgYXJlIGxvY2tlZCAoMUZaUURHUikKPGJyPjQ1OTA6IFZlcmlmeUV2ZW50IHZhbHVlcyBpZ25vcmVkICgxRzdHNVkzKSAgCjxicj40NjI2OiBUYWJsZVRyZWU6IFR3byBzZWxlY3Rpb24gZXZlbnRzIGdlbmVyYXRlZCBmb3IgZWFjaCBjaGVja2JveCBzZWxlY3Rpb24gKDFHQlJTTE0pCjxicj40NjQyOiBEaXJlY3RvcnlEaWFsb2cgZG9lcyBub3Qgc3VwcG9ydCAvIG9uIHdpbmRvd3MgKDFHRDQxRFopICAKPGJyPjQ2NDg6IE1lbnVJdGVtLnNldEVuYWJsZWQoKSBhbHdheXMgY2F1c2VzIGEgcmVkcmF3ICgxR0REQ04yKSAgCjxicj40Nzg2OiBGb250RGlhbG9nIHNob3VsZCBnaXZlIGFjY2VzcyB0byBjb2xvciBzZXR0aW5nICgxR0lFRkJEKSAgCjxicj40ODYxOiBLZXkgc3RhdGUgZm9yIHRvb2xiYXIgaXRlbXMgKDFHTDU0QTApICAKPGJyPjU5MzU6IFN0eWxlZFRleHQgLSB1cC9kb3duIGFycm93IGJlaGF2aW9yIHdydCB2YXJ5aW5nIGxpbmUgbGVuZ3RocyAgCjxicj42Nzc1OiBSYWRpbyBidXR0b24gc2V0U2VsZWN0aW9uIGNoYW5nZXMgZm9jdXMgIAo8YnI+OTg1OTogQ29tYm8gd2lkZ2V0IGRvZXNuJ3QgZmlyZSBrZXlQcmVzc2VkIG9yIGtleVJlbGVhc2VkIGZvciBFbnRlciBrZXkKPGJyPjExODY4OiBTdHlsZWRUZXh0OiB0ZXh0IHNlbGVjdGlvbiB3aXRoIGtleSAnYXJyb3cgZG93bicgZG9lcyBub3QgaW5jbHVkZSBsYXN0IGxpbmUKPGJyPjExOTk0OiBTdHlsZWRUZXh0IC0gcmVwbGFjZSBnZXRYQXRPZmZzZXQoY2FyZXRPZmZzZXQpIHdpdGggY2FyZXQuZ2V0TG9jYXRpb24oKS54Cjxicj4xMjE3ODogU3R5bGVkVGV4dCAtIG1vdmUgU3R5bGVkVGV4dFJlbmRlcmVyI2JpZGlUZXh0V2lkdGggdG8gRGlzcGxheVJlbmRlcmVyCjxicj4xMjE4MTogU3R5bGVkVGV4dCAtIG1peGluZyB0ZXh0IHdpZHRoL2NhcmV0IHBvc2l0aW9uIGlzIGNvbmZ1c2luZyAgCjxicj4xMzk0NDogRENSIC0gTmVlZCBjdXQvY29weS9wYXN0ZSByb3V0aW5lcyBvbiBDb21ibyAgCjxicj4xNDY3MjogQ29tYm8gYW5kIFNjYWxlIHNldEJhY2tncm91bmQgZG9lcyBub3QgcmVmcmVzaCAgCjxicj4xNDc5OTogV2luZG93IG1hbmlwdWxhdGlvbnMgYmxvY2sgb3RoZXIgdGhyZWFkcyBmcm9tIGV4ZWN1dGluZyAgCjxicj4xNTA4ODogU3R5bGVkVGV4dCAtIGdldFRvcEluZGV4IHNlbWFudGljcyB1bmRlZmluZWQgd2hlbiBubyBsaW5lIGZ1bGx5IHZpc2libGUKPGJyPjE1NTU0OiBEQ1IgLSBhbGlnbm1lbnQgaW4gYSB0ZXh0IHdpZGdldCAgCjxicj4xNTU1OTogSkFXUyByZWFkcyB0aGUgcGFyZW50IHdpbmRvdyBmb3IgZGlhbG9nIHNoZWxscyAgCjxicj4xNTcyODogUGFja2FnZXMgdmlldyBzZWxlY3Rpb24gYWx3YXlzIG9uZSB0b28gaGlnaCAgCjxicj4xNjExMDogU3R5bGVkVGV4dCBzY3JvbGwgbm90IHdvcmtpbmcgd2l0aCBQYWdlVXAvRG93biBrZXlzLiAgCjxicj4xNjIwNTogU3R5bGVkVGV4dCAtIFRhYiBkb2VzIG5vdCB0YWIgb3V0IG9mIHJlYWQtb25seSAgCjxicj4xNjQwMjogV29ya2luZyBzZXQgZGlhbG9nOiB0YWJsZSBjb2x1bW5zIGhhdmUgaW5jb3JyZWN0IHNpemUgIAo8YnI+MTY3Nzc6IEJ1c3kgY3Vyc29yIGxvc3Qgb3ZlciBwcm9ncmVzcyBpbmRpY2F0b3IgZWRnZXMgIAo8YnI+MTY5ODY6IEphdmFWaWV3ZXIgZXhhbXBsZSBzaG91bGQgcmVtZW1iZXIgcGF0aCAgCjxicj4xNzE5MTogU1dUIEVycm9yIGluIEpVbml0IHZpZXcgIAo8YnI+MTcyNTI6IEFjY2VsZXJhdG9yIGxhYmVsczogQ3RybC1TaGlmdC1BLCBTaGlmdC1DdHJsLUEgb3IgU2hpZnQtQ3RsLUE/Cjxicj4xNzI3OTogRXh0cmEgQ29vbEJhciByb3cgY3JlYXRlZCB3aGVuIHN3aXRjaGluZyBwZXJzcGVjdGl2ZXMuICAKPGJyPjE3MzcwOiBDb21ibyBib3ggZmxhc2hlcyB0byBtdWNoIHdoZW4gcmVzaXppbmcgZGlhbG9nLiAgCjxicj4xNzk5MzogRmluZC9SZXBsYWNlIHNob3VsZG4ndCByZXBsYWNlIHR5cGVkIGVudHJ5IHdpdGggdmFsdWUgZnJvbSBoaXN0b3J5Cjxicj4xODI1MzogQ29vbGJhciAtIGRpc3Bvc2luZyBpdGVtcyBub3QgaG9ub3Jpbmcgc2V0UmVkcmF3ID0gZmFsc2UgIAo8YnI+MTgzMDg6IEN0cmwrU0hJRlQrQCBkb2VzIG5vdCBjYWxsIHRoZSBsaXN0ZW5lci4gIAo8YnI+MTg0Mjk6IFNjcm9sbGVkQ29tcG9zaXRlIHdpdGggTGF5b3V0TWFuYWdlciBpcyBWRVJZIHNsb3cgaW4gaVBBUSAgCjxicj4xODU3MDogQ29tYm8gZmxhc2hlcyBieSByZXNpemluZyAgCjxicj4xOTM4MDogTGlzdGJveGVzIGZsYXNoIGFzIHByZWZlcmVuY2VzIGRpYWxvZyBpcyByZXNpemVkICAKPGJyPjE5NDM0OiBUb29sSXRlbSBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrIGZvciBUT0dHTEUgIAo8YnI+MTk1Njg6IHt9IG9uIGEgZ2VybWFuIGtleWJvYXJkIFtzd3QtY2FyYm9uXSAgCjxicj4xOTYxNTogU3R5bGVkVGV4dCAtIGV4YW1wbGUgVGV4dCBFZGl0b3IgYnVnIGluIGNvcHkvcGFzdGUgIAo8YnI+MTk2MzA6IENvb2xiYXIgLSBvZGQgZGlzcG9zZSBiZWhhdmlvciAgCjxicj4xOTgxNTogSlJFIGNyYXNoZXMgdXNpbmcgZXJyb3IgbG9nIGFuZCBwcm9ncmVzcyBiYXIuICAKPGJyPjE5OTY0OiBDb29sYmFyIC0gY2FuICJsb3NlIiBpdGVtcyB3aGVuIHBsYXRmb3JtIHdpZGdldCB3cmFwcyAgCjxicj4yMDE1OTogUmlnaHQtY2xpY2tpbmcgb24gY29vbGJhciBncmFiYmVyIGNhdXNlcyBzdHJhbmdlIGJlaGF2aW9yICAKPGJyPjIwMTgzOiBNb3RpZiA6IENvb2xiYXIgcHJlZmVycmVkIHNpemUgaXMgdG9vIHNtYWxsIHdpZHRoIHdpc2UgIAo8YnI+MjAxOTA6IENvb2xCYXIgcHJvYmxlbXMgb24gV2luZG93cyBYUCB3aXRoIE1hbmlmZXN0ICAKPGJyPjIwMzM5OiBIaXR0aW5nIHNwYWNlYmFyIGRvZXMgbm90IHByZXNzIGN1cnJlbnRseSBmb2N1c2VkIGJ1dHRvbiAgCjxicj4yMDU4MzogU2VnZmF1bHQgd2hlbiBjb250cm9sIHRyaWVzIHRvIGRpc3Bvc2Ugb2YgaXRzZWxmIHVuZGVyIE1vdGlmICAKPGJyPjIwNjgzOiBbRXh0ZXJuYWxUb29sc10gIEYzIChhbmQgRjIpIGNyYXNoZXMgdGhlIEpWTSB3aGVuIHRyeWluZyB0byBjYW5jZWwgYW4gZXh0ZXJuYWwgdG9vbCBvbiBsaW51eC1ndGsKPGJyPjIwNjkwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIHNob3VsZCBmb3JjZSBmb250IHNjcmlwdCB3aGVuIGtleWJvYXJkIGxhbmd1YWdlIGNoYW5nZWQKPGJyPjIwNzA1OiBDdXJzb3IgS2V5cyBkb24ndCB3b3JrIGluIERpYWxvZ3MgIAo8YnI+MjA3MjI6IEdUSyBUYWJsZUNvbHVtbiNwYWNrIGRvZXMgbm90IHdvcmsgaWYgbm8gaGVhZGVyICAKPGJyPjIwNzg4OiBBIGNvbXBvc2l0ZSBpcyBiZWluZyBteXN0ZXJpb3VzbHkgZGlzcG9zZWQgZm9yIG5vIHJlYXNvbiAgCjxicj4yMDg0NjogV0lOMzI6ICdDb21iby5pbmRleE9mJyBhbHdheXMgcmV0dXJucyAtMSBmb3IgZW1wdHkgc3RyaW5nICAKPGJyPjIwODkzOiBCYWQgc2l6ZSBmb3IgVGV4dCB3aWRnZXQgd2hlbiBmbGFnIFJFQURfT05MWSBpcyBzZXQgKFBob3RvbikgIAo8YnI+MjA5MDQ6IFNXVCBleGNlcHRpb24gb24gTGF5b3V0RXhhbXBsZSAoUGhvdG9uKSAgCjxicj4yMDk1MDogR1RLOiBGMSBoZWxwIGRvZXMgbm90IHdvcmsgZm9yIG1lbnUgaXRlbXMuICAKPGJyPjIwOTU2OiBFbXVsYXRlZCBDb29sSXRlbSBkbyBub3QgcmVzcGVjdCBTV1QuRFJPUF9ET1dOIGZsYWcgIAo8YnI+MjEwMzA6IFN0eWxlZFRleHQgLSBkdXJpbmcgY3V0IGlmIGNsaXBib2FyZCBjb3B5IGZhaWxzIGRvIG5vdCBkZWxldGUgdGV4dAo8YnI+MjEwOTY6IFByb3BlcnRpZXMgYWNjZWxlcmF0b3IgbWlzc2luZyBFTlRFUiAgCjxicj4yMTEyMjogRW1hY3M6IEFjY2VsZXJhdG9ycyBub3Qgc2hvd24gaW4gbWVudXMgdW5kZXIgR1RLICAKPGJyPjIxMTU0OiBTdHlsZWRUZXh0IC0gQklESSAtIEJhZCBlZmZlY3Qgb2YgUkxPIHVuaWNvZGUgY2hhcmFjdGVyICAKPGJyPjIxMTkyOiBVbnNhdGlzZmllZExpbmtFcnJvciB0aHJvd24gd2hlbiBwcmVzc2luZyBhIGhhcmR3YXJlIGtleSAgCjxicj4yMTIxNTogW0hlbHBdIEYxIEhlbHAgZG9lcyBub3QgY2xvc2UgbWVudSBvbiBHVEsgIAo8YnI+MjEyMjM6IFN0eWxlZFRleHQgLSBDdXJzb3Igc2hvdWxkIHN0b3AgYmxpbmtpbmcgd2hlbiBtb3ZpbmcgIAo8YnI+MjEyNjg6IFN0eWxlZFRleHQgLSBDdHJsK1NoaWZ0K0ogaW5zZXJ0cyBsaW5lICAKPGJyPjIxMzY4OiBHVEs6IEdDLmRyYXdJbWFnZSgpIGZhaWxzIHdoZW4gc2NhbGluZyBhbiBpbWFnZSAgCjxicj4yMTM3MTogU1dURXJyb3Igd2hpbGUgdXNpbmcgTmF2aWdhdG9yLT5Hb3RvLT5SZXNvdXJjZSAgCjxicj4yMTM3ODogR1RLOiBTaGVsbCBldmVudCdzIGRvaXQgZmxhZyBpZ25vcmVkIHdoZW4gc2hlbGxDbG9zZWQoKSBpcyBjYWxsZWQKPGJyPjIxNDEyOiBQYXN0ZSB3aXRoIGFjY2VsYXRvciBrZXkgZG9lc24ndCB3b3JrICAKPGJyPjIxNDEzOiBDb29sQmFyIGNvbXB1dGVTaXplIGZhaWxzIG9uIFhQICAKPGJyPjIxNDE1OiBKYXZhZG9jIGZvciBDTGFiZWwuc2V0QmFja2dyb3VuZCBoYXMgdHlwb3MgIAo8YnI+MjE0NDA6IFVuYWJsZSB0byBkaXNwbGF5IFRvZGF5IHNjcmVlbiB3aGVuIFNXVCBhcHAgcnVubmluZyBvbiBXaW5DRSAgCjxicj4yMTQ0OTogR1RLOiBDYWxsaW5nIFRleHQuc2V0U2VsZWN0aW9uKCkgY2F1c2VzIEdQRiAgCjxicj4yMTQ1NjogR1RLOiBDYW5ub3QgdHlwZSBpbiBUZXh0IHdpZGdldCBjb250YWluZWQgaW4gU2hlbGwgd2hpY2ggaGFzIHN0eWxlIGJpdCBhcyBOT19UUklNCjxicj4yMTQ4NDogU2hpZnQtVGFiIGRvZXMgbm90aGluZyBvbiBHVEsgIAo8YnI+MjE1MjM6IFN0eWxlZFRleHQgLSBjYXJldCBkb2VzIG5vdCBtb3ZlIHdoZW4gd2lkZ2V0IHNoZWxsIGlzIG5vdCBvcGVuCjxicj4yMTUyNDogU3R5bGVkVGV4dCAtIE5QRSB3aGVuIHR5cGluZyB0ZXh0IGFuZCBjYXJldCBpcyBudWxsICAKPGJyPjIxNTk2OiBTdHlsZWRUZXh0IC0gaW5pdGlhbCBiaWRpIGNhcmV0IHBvc2l0aW9uIHdyb25nIHdoZW4gd2lkZ2V0IGVtcHR5Cjxicj4yMTU5ODogU3R5bGVkVGV4dCAtIHNldEZvbnQgZW5hYmxlcyBjYXJldCB3aGVuIGl0IHdhcyBkaXNhYmxlZCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDUyIC0gV2VkbmVzZGF5IE9jdG9iZXIgMzAsIDIwMDIgPC9oMj4gKDIuMC4yIHN0cmVhbSkKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwNDU5OiBJIGNhbid0IHJ1biBlY2xpcHNlCjxicj4yNDY5Mzogb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkdDLmRyYXdTdHJpbmcoKSBmYWlscyB0byBkcmF3IGV1cm8KPGJyPjI0ODY5OiBHUCAtIEVjbGlwc2UgY3Jhc2hlZCB3aGVuIGVudGVyaW5nIGludmFsaWQgZmlsZSBuYW1lIGluIEZpbGVEaWFsb2cKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNTAgLSBXZWRuZXNkYXkgT2N0b2JlciAxNiwgMjAwMiA8L2gyPiAoMi4wLjIgc3RyZWFtKQoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjQ1NDI6IFtETkRdIENyYXNoIHdoZW4gZHJhZyZkcm9wIG9uIHRoZSBQYWNrYWdlIEV4cGxvcmVyCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQ5ZCAtIE1vbmRheSBBdWd1c3QgMjYsIDIwMDIgPC9oMj4gKDIuMC4xIHN0cmVhbSkKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIyNzI5OiBQZXJtaXNzaW9ucy5wcm9wZXJ0aWVzIG1pc3NpbmcgZnJvbSB0aGUgYnVpbGQgc2NyaXB0Cjxicj4yMjc3OTogRWNsaXBzZSBsaW51eC1tb3RpZiBHUEZzIG9uIGV4aXQgb24gSjkKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDliIC0gV2VkbmVzZGF5IEF1Z3VzdCAyMSwgMjAwMiA8L2gyPiAoMi4wLjEgc3RyZWFtKQoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjI0NDg6IENvb2xCYXIgLSBkZWxldGluZyBmaXJzdCBpdGVtIGluIHJvdyBkb2VzIHVubmVjZXNzYXJ5IGNvbGxhcHNlL2V4cGFuZCBvZiByb3cKPGJyPjIyNTYxOiBIb3ZlciBIZWxwIGJyb2tlbiBpbiAyLjAuMSBJMjAwMjA4MTUKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDkgLSBXZWRuZXNkYXkgQXVndXN0IDE0LCAyMDAyIDwvaDI+ICgyLjAuMSBzdHJlYW0pCgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMjA1NTogQ29vbEJhciAtIHNldFdyYXBJbmRpY2VzIGNhdXNlcyByb3dzIHRvIGNvbGxhcHNlL2V4cGFuZCB1bm5lY2Vzc2FyaWx5Cjxicj4yMjE0NDogQ29vbGJhciAtIHNldFNpemUgbm90IGJlaW5nIGhvbm9yZWQgYWZ0ZXIgc2V0V3JhcEluZGljZXMgQVBJIHVzZWQKPGJyPjIyMzIwOiBDb29sYmFyIC0gZGVsZXRlIGl0ZW0gYmVoYXZpb3IgcHJvYmxlbQo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0OCAtIFR1ZXNkYXkgQXVndXN0IDYsIDIwMDIgPC9oMj4gKDIuMC4xIHN0cmVhbSkKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1NTU5OiBKQVdTIHJlYWRzIHRoZSBwYXJlbnQgd2luZG93IGZvciBkaWFsb2cgc2hlbGxzCjxicj4xODI1MzogQ29vbGJhciAtIGRpc3Bvc2luZyBpdGVtcyBub3QgaG9ub3Jpbmcgc2V0UmVkcmF3ID0gZmFsc2UKPGJyPjE5OTY0OiBDb29sYmFyIC0gY2FuICJsb3NlIiBpdGVtcyB3aGVuIHBsYXRmb3JtIHdpZGdldCB3cmFwcyAgCjxicj4yMTI2ODogU3R5bGVkVGV4dCAtIEN0cmwrU2hpZnQrSiBpbnNlcnRzIGxpbmUKPGJyPjIxODM0OiBDb29sYmFyIC0gZGVsZXRpbmcgaXRlbXMgY29ycnVwdGluZyBsYXlvdXQKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDcgLSBNb25kYXkgSnVuZSAxNywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDc3MjogSmF2YWRvYzogR3JhcGhpY3MgY29uc3RydWN0b3JzIG5lZWQgdG8gZG9jIGlmIGRldmljZSBudWxsICgxR0hTUFVXKQo8YnI+MTQxNDQ6IFNjcm9sbEJhcnMgY2FuJ3QgYmUgbWFkZSBpbnZpc2libGUgb24gUG9ja2V0UEMgIAo8YnI+MjAyNjU6IEYzLiB0ZXN0IEMzLiBObyBuZXcgdXBkYXRlcyBmb3IgRWNsaXBzZSBvbiBIUC4gIAo8YnI+MjAzNjI6IENvb2xiYXIgY2Fubm90IGJlIHRyYXZlcnNlZCB0byAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQ2IC0gRnJpZGF5IEp1bmUgMTQsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE2ODA5OiBDbGlja2luZyB0byBjbG9zZSBub24tYWN0aXZlIGVkaXRvciBkb2Vzbid0IGhhdmUgYW4gYWZmZWN0ICAKPGJyPjE2OTM5OiBEbkQ6IE1vdmluZyB0aGUgbW91c2Ugd2hpbGUgZHJvcHBpbmcgYmVoYXZlcyBzdHJhbmdlbHkgd2hpbGUgZHJhZ2dpbmcgdmlld3MKPGJyPjE3MTkwOiBObyBjZWxsIGVkaXRvciBzdXBwb3J0ICAKPGJyPjE3NTYzOiBGbGF0IHRvb2wgYmFyIGJ1dHRvbnMgIAo8YnI+MTc2MjE6IFJlc291cmNlIFBhdGNoZXIgd2l6YXJkIC0gd2lkZ2V0cyBub3QgcHJvcGVybHkgYWxpZ25lZCAgCjxicj4xOTA4OTogTm8gcG9wdXAgbWVudSBqYXZhIGVkaXRvciBydWxlciAoUGhvdG9uKSAgCjxicj4xOTI0MzogRWNsaXBzZSBsYXVuY2hlcnMgaGF2ZSBoYXJkY29kZWQgajkgYXJncyAgCjxicj4xOTI0NDogU3BhY2luZyBiZXR3ZWVuIFRhYmxlIHJvd3MgZ3Jvd3Mgd2l0aCBudW1iZXIgb2Ygcm93cyAgCjxicj4yMDAwNjogWCBQb2ludGVyIGdyYWIgbm90IHJlbGVhc2VkICAKPGJyPjIwMDQ0OiBVbmFibGUgdG8gc2Nyb2xsIGxpY2Vuc2UgdGV4dCB1c2luZyBrZXlib2FyZCAgCjxicj4yMDA3MjogV29ya2JlbmNoIGJvdW5jZXMgd2hlbiBzd3RpY2hpbmcgcGVyc3BlY3RpdmVzICAKPGJyPjIwMTM0OiBFY2xpcHNlIENMT1NFUyBhdXRvbWF0aWNhbGx5LCB3aGVuIGknbSB3b3JraW5nIGluIGl0ICAKPGJyPjIwMTg0OiBDb2xvciBqYXZhZG9jIGNvdWxkIHVzZSByZWZlcmVuY2UgdG8gRGV2aWNlLmdldFN5c3RlbUNvbG9yKCkgIAo8YnI+MjAyMDk6IEhhbmcgZHVlIHRvIE9TIGxvY2tpbmcgIAo8YnI+MjAzNTQ6IEdQIHdoZW4gYXR0ZW1wdCB0byBjaGVjayBvdXQgU1dUIGZyb20gcmVwb3NpdG9yeSAgCjxicj4yMDM3MjogVHJhY2tlciBuZWVkcyBtb3JlIGphdmFkb2MgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0NiAtIFR1ZXNkYXkgSnVuZSAxMSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTY4MDk6IENsaWNraW5nIHRvIGNsb3NlIG5vbi1hY3RpdmUgZWRpdG9yIGRvZXNuJ3QgaGF2ZSBhbiBhZmZlY3QgIAo8YnI+MTY5Mzk6IERuRDogTW92aW5nIHRoZSBtb3VzZSB3aGlsZSBkcm9wcGluZyBiZWhhdmVzIHN0cmFuZ2VseSB3aGlsZSBkcmFnZ2luZyB2aWV3cwo8YnI+MTcxOTA6IE5vIGNlbGwgZWRpdG9yIHN1cHBvcnQgIAo8YnI+MTc1NjM6IEZsYXQgdG9vbCBiYXIgYnV0dG9ucyAgCjxicj4xNzYyMTogUmVzb3VyY2UgUGF0Y2hlciB3aXphcmQgLSB3aWRnZXRzIG5vdCBwcm9wZXJseSBhbGlnbmVkICAKPGJyPjE5MDg5OiBObyBwb3B1cCBtZW51IGphdmEgZWRpdG9yIHJ1bGVyIChQaG90b24pICAKPGJyPjE5MjQzOiBFY2xpcHNlIGxhdW5jaGVycyBoYXZlIGhhcmRjb2RlZCBqOSBhcmdzICAKPGJyPjE5MjQ0OiBTcGFjaW5nIGJldHdlZW4gVGFibGUgcm93cyBncm93cyB3aXRoIG51bWJlciBvZiByb3dzICAKPGJyPjIwMDA2OiBYIFBvaW50ZXIgZ3JhYiBub3QgcmVsZWFzZWQgIAo8YnI+MjAwNDQ6IFVuYWJsZSB0byBzY3JvbGwgbGljZW5zZSB0ZXh0IHVzaW5nIGtleWJvYXJkICAKPGJyPjIwMDcyOiBXb3JrYmVuY2ggYm91bmNlcyB3aGVuIHN3dGljaGluZyBwZXJzcGVjdGl2ZXMgIAo8YnI+MjAxMzQ6IEVjbGlwc2UgQ0xPU0VTIGF1dG9tYXRpY2FsbHksIHdoZW4gaSdtIHdvcmtpbmcgaW4gaXQgIAo8YnI+MjAxODQ6IENvbG9yIGphdmFkb2MgY291bGQgdXNlIHJlZmVyZW5jZSB0byBEZXZpY2UuZ2V0U3lzdGVtQ29sb3IoKSAgCjxicj4yMDIwOTogSGFuZyBkdWUgdG8gT1MgbG9ja2luZyAgCjxicj4yMDM1NDogR1Agd2hlbiBhdHRlbXB0IHRvIGNoZWNrIG91dCBTV1QgZnJvbSByZXBvc2l0b3J5ICAKPGJyPjIwMzcyOiBUcmFja2VyIG5lZWRzIG1vcmUgamF2YWRvYyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQ1IC0gVHVlc2RheSBKdW5lIDExLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNTI0MjogQ29vbEJhciAtIGxheW91dCBpc3N1ZXMgIAo8YnI+MTg1MTc6IENvb2xiYXIgLSBkZWxldGUgYW5kIHJvdyBsYXlvdXQgYnVnICAKPGJyPjE5MDkwOiBDb21ibyBkb2Vzbid0IHNpemUgaXRzZWxmIHByb3Blcmx5IGluIEdUSzIgIAo8YnI+MTk2NzA6IFJlZ3Jlc3Npb24gaW4gT0xFIHN1cHBvcnQgIAo8YnI+MTk2NzE6IFVuYWJsZSB0byBleHBhbmQvY29sbGFwc2UgdHJlZXMgaW4gcHJvcGVydGllcyB2aWV3ICAKPGJyPjE5NzIwOiBDb29sYmFyIC0gZ2V0UHJlZmVycmVkU2l6ZSBwcm9ibGVtICh3YXMgZ2V0Q2xpZW50QXJlYSBwcm9ibGVtKQo8YnI+MTk3ODc6IEhvdmVyIGhlbHAgaXMgbm90IHJlbW92ZWQgIAo8YnI+MTk5NDc6IEdUSzIgc2VuZHMga2V5IGV2ZW50cyB3aXRoIGJvdGgga2V5Q29kZSBhbmQgY2hhcmFjdGVyIGVxdWFscyB0byAwIGZvciBzb21lIGtleXMKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDQgLSBNb25kYXkgSnVuZSAxMCwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDgwNzogVGV4dC5zZXRFY2hvQ2hhciBzcGVjIHNob3VsZCBzYXkgMCA8PSBjaGFyIDwgMTI4ICgxR0o2Q0RNKSAgCjxicj40ODM3OiBKYXZhZG9jOiBDdXJzb3IgY29uc3RydWN0b3IgRVJST1JfTk9fSEFORExFUyBpcyBub3Qgc3BlYydlZCAoMUdLQTdROSkKPGJyPjU1Nzc6IFRleHQgamF2YWRvYyAgCjxicj43NTI2OiBObyBzcGVjIGZvciBEaXNwbGF5LnVwZGF0ZSgpICAKPGJyPjg1MTM6IEphdmFEb2MgZm9yIE1lbnUuYWRkTWVudUxpc3RlbmVyIGluY29ycmVjdCAgCjxicj4xMjgyMDogRmluaXNoaW5nIHByZXZpZXcgb2YgdGhlIHJlZmFjdG9yaW5nIGNvZGUgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjE0NDYzOiBHUCBvcGVuaW5nIHR3byBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lICAKPGJyPjE1NDYwOiBDb29sQmFyIGRvYyB1bmNsZWFyL2luc3VmZmljaWVudCAgCjxicj4xNTkzOTogS2V5RXZlbnQgY2hhcmFjdGVyIGlzIG5vdCBjb25zaXN0ZW50IGJldHdlZW4gTGludXggYW5kIFdpbmRvd3MKPGJyPjE2ODEwOiBNb3VzZSBwb2ludGVyIG5vdCB1cGRhdGUgIAo8YnI+MTY4Mzc6IEtleXMgY29tcGxldGVseSBsb3N0ICAKPGJyPjE2ODgzOiBWYXJpYWJsZSBzb3J0aW5nIGNoYW5nZXMgdW5leHBlY3RlZGx5ICAKPGJyPjE2ODk1OiBJbi1wbGFjZSB0ZXh0IGZpZWxkcyBhcmUgdW51c2FibGUgIAo8YnI+MTcwMzY6IERpc3Bvc2luZyBhIENvb2xJdGVtIGlzIHRyaWdnZXJpbmcgYW4gYWN0aXZhdGlvbiBjYWxsYmFjay4gIAo8YnI+MTcxNDY6IEVkaXRvciBQcmVmZXJlbmNlIHBhZ2UgYnV0dG9tIGxpc3QgY2xpcHBlZCAgCjxicj4xNzE1NDogVmlldyBwYXJ0IGxvc2VzIGZvY3VzIHdoZW4gb3BlbmluZyBjb250ZXh0IG1lbnUgIAo8YnI+MTcyODk6IENvbWJvIGRvZXNuJ3QgdGFrZSBmb2N1cyBieSBjbGlja2luZyBvbiBpdCAoUGhvdG9uKSAgCjxicj4xNzI5MDogTW9kaWZ5IE1ldGhvZCBQYXJhbWV0ZXJzOiB3cm9uZyBlbmFibGVtZW50IG9mIGJ1dHRvbnMgIAo8YnI+MTc1MDc6IEFJWCBGaWxlRGlhbG9nIGlzIG5vdCByZXNwb25zaXZlIGluIHN0YW5kLWFsb25lIGV4YW1wbGUgIAo8YnI+MTc2MTM6IEFkZCBmcm9tIGxvY2FsIGhpc3Rvcnkgc2hvd3Mgbm90aGluZyBpbiByaWdodCBhbmQgbG93ZXIgcGFuZQo8YnI+MTc2NzA6IENhbm5vdCBtb3ZlIHRocm91Z2ggUGx1Zy1pbiBDb2RlIEdlbmVyYXRpb24gcGFnZSBsaXN0IHdpdGggYXJyb3cga2V5cwo8YnI+MTc2OTI6IElBRSB3aGVuIGRlbGV0aW5nIGxpbmUgaW4gSmF2YSBFZGl0b3IgIAo8YnI+MTc3NTI6IENhbm5vdCBzZWxlY3QgYSBub24tYm9sZCBmb250ICAKPGJyPjE3Nzg4OiBTY2FsZSB3aXRoIHByZWZlcnJlZCBzaXplIGlzIHVudXNhYmxlIChubyByYW5nZSBvZiBtb3Rpb24pICAKPGJyPjE3ODQ4OiBGMSBidWlsZCwgSlZNIHRlcm1pbmF0ZWQgRXhpdCBjb2RlIDEzOSAgCjxicj4xNzkzNjogRWNsaXBzZSBsYXVuY2hlciBtdXN0IGxhdW5jaCBoZWFkbGVzcyBpbiBoZWFkbGVzcyBlbnZpcm9ubWVudHMKPGJyPjE4NDM5OiBDdHJsK0Y2IGVkaXRvciBzd2l0Y2hpbmcgaXMgdW51c2FibGUgIAo8YnI+MTg1MDg6IEphdmFjb3JlZHVtcCB3aGVuIG9wZW5pbmcgdmVydGljYWwgcnVsZXIgY29udGV4dCBtZW51ICAKPGJyPjE4NTIxOiBDb29sYmFyIGxheW91dCBhbmQgY2hldnJvbiBidWcgIAo8YnI+MTg1NDM6IEFuIGludmlzaWJsZSBjaGFyYWN0ZXIgaXMgYWRkZWQgd2hlbiB0aGUgJ1dpbmRvd3MnIGtleSBpcyBwcmVzc2VkCjxicj4xODYyNTogVGFiYmluZyBpbiBKYXZhIGVkaXRvciB0YWtlcyBjdXJzb3IgIAo8YnI+MTg2Mjk6IEdUSzogVW5hYmxlIHRvIHNlbGVjdCBkaWFsb2cgYnV0dG9ucyB3aXRoIG1vdXNlICAKPGJyPjE4NjQ1OiBSZWxlYXNlIFNXVCBzb3VyY2VzICYgamF2YWRvYyBpbiBmdXR1cmUgYnVpbGRzICAKPGJyPjE4NzMzOiBDb250cm9sRXhhbXBsZTogTGlzdCB3aWRnZXQgbm90IGJlaW5nIHJlc2l6ZWQgcHJvcGVybHkgIAo8YnI+MTg4MDQ6IEdQRiBzZXR0aW5nIGltYWdlIHRvIG1lbnUgaXRlbSAoUGhvdG9uKSAgCjxicj4xODgzODogTGF1bmNoIENvbmZpZ3VyYXRpb25zIGRpYWxvZyBjcmVlcHMgdXAgIAo8YnI+MTg4NDE6IFF1ZXN0aW9uOiBXaGF0IGRvZXMgLURNQkNTIGRvPyAgCjxicj4xODkzMDogV3JvbmcgY29udGVudCBkaXNwbGF5ZWQgaW4gdGFicyBpbiB0aGUgTGF1bmNoIENvbmZpZ3VyYXRpb24gRGlhbG9nCjxicj4xODkzNDogU2Nyb2xsYmFycyBzaG91bGQgYmUgZGlzYWJsZWQgaW4gSW1hZ2VBbmFseXplciBleGFtcGxlICAKPGJyPjE5MDU3OiBQcm9ibGVtIHNhdmluZyBqYXZhIGZpbGUgdGhyb3VnaCBwb3B1cCBtZW51ICAKPGJyPjE5MTE2OiBNaXNzaW5nIGFib3V0Lmh0bWwgaW4gc291cmNlIGRpcmVjdG9yeSBmb3IgZXhhbXBsZXMgIAo8YnI+MTkxNjk6IE5QRSBvbiBFbXVsYXRlZCBDb29sSXRlbSBjb25zdHJ1Y3RvciAgCjxicj4xOTM0NTogVGFzayBWaWV3OiBOb3QgY2xlYXJpbmcgcHJpb3JpdHkgaWNvbnMgIAo8YnI+MTkzOTQ6IEZhbHNlICJ1bnNhdmVkIGNoYW5nZXMiIG5vdGlmaWNhdGlvbiBmcm9tIGxhdW5jaCBjb25maWdzICAKPGJyPjE5NTAzOiBXaWRnZXQgaW4gb3V0bGluZXIgZ2V0cyB3cmFwcGVkL2Nyb3BwZWQgIAo8YnI+MTk1OTU6IFN0eWxlZFRleHQgLSByZWRyYXdSYW5nZSBub3QgY2xlYXJpbmcgcHJvcGVybHkgd2hlbiBjbGVhciBmbGFnIHNldAo8YnI+MTk2NjA6IFByZWZlcmVuY2UgcGFnZSBkb2VzIG5vdCBleHBhbmQgdG8gZml0IGFsbCB3aWRnZXRzICAKPGJyPjE5NzY5OiBJbnRlcm5ldCBFeHBsb3JlciBhbmQgSGVscCwgRVhDRVBUSU9OX0FDQ0VTU19WSU9MQVRJT04gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0MyAtIEZyaWRheSBNYXkgMzEsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2OTI6IEVtcHR5IHBvcHVwIG1lbnUgYXBwZWFycyBpbiBPdXRsaW5lIHZpZXcgKDFHRVQxQjEpICAKPGJyPjg4MjE6IE9wZW5pbmcgZWRpdG9ycyBoYXMgYmVjb21lIHZlcnkgc2xvdyAgCjxicj4xNTU2NTogQ29vbGJhciAtIG1pbmltdW1XaWR0aCBub3QgaG9ub3JlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgIAo8YnI+MTY2ODg6IFNlbGVjdGlvbiBiYWNrZ3JvdW5kIG9uIGVtdWxhdGVkIHdpZGdldHMgaXMgd3JvbmcgIAo8YnI+MTcxNTA6IFN0cmFuZ2Ugc2VsZWN0aW9uIGJlaGF2aW91ciBpbiBKYXZhIEJyb3dzaW5nIFBlcnNwZWN0aXZlICAKPGJyPjE3MTU2OiBEZWxldGUga2V5IG5vdCB3b3JraW5nIGluIHBhY2thZ2UgdmlldyAgCjxicj4xNzIyODogV2VpcmQgVHJlZSBzZWxlY3Rpb24gYmVoYXZpb3VyICAKPGJyPjE3MzU0OiBEb3VibGUgY2xpY2tpbmcgZXhwYW5kcyBhbmQgY29sbGFwc2VzIGl0ZW0gIAo8YnI+MTczNjM6IFRlc3QgQTQuNCBjYW5ub3QgZWRpdCBhY3Rpb24gc2V0IGlkIGluIHByb3BlcnRpZXMgdmlldyAgCjxicj4xNzY4MDogT3V0bGluZSBkb2Vzbid0IGV4cGFuZCB3aGVuIGFkZGluZyBuZXcgbWV0aG9kICAKPGJyPjE3ODI1OiBDb250cm9sRXhhbXBsZS0+VGV4dCBiZWVwcyB3aGVuIEkgY2hvb3NlIFNXVC5NVUxUSSAgCjxicj4xNzgzMTogQ29vbGJhciAtIGNoZXZyb24gbm90IGFsd2F5cyBkaXNwbGF5ZWQgd2hlbiBpdCBzaG91bGQgYmUgIAo8YnI+MTgxNjA6ICJTaG93IGluIHBhY2thZ2VzIHZpZXciIGRvZXNuJ3Qgc2Nyb2xsIHRvIHNlbGVjdGlvbiAgCjxicj4xODIyOTogV2Fsa2JhY2sgd2hlbiBjbG9zaW5nIEltYWdlQW5hbHl6ZXIgIAo8YnI+MTgzNjg6IEdldCByaWQgb2YgYWxsIGZyYWdtZW50LnByb3BlcnRpZXMgIAo8YnI+MTgzNzY6IE5vIGV4ZWN1dGUgcGVybWlzc2lvbnMgb2YgbGlicmFyaWVzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDIgLSBUaHVyc2RheSBNYXkgMzAsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1MzM6IENoZWVzZSB3aGVuIHJlc2l6aW5nIHRvb2xiYXIgKDFGV0w5NDMpICAKPGJyPjQ4NDE6IFNXVCBzYW1wbGUgaW1hZ2V2aWV3ZXIgbm90aGluZyBkaXNwbGF5IGF0IHBpeGVsIGRhdGEgYXJlYSAoMUdLRU9VRSkKPGJyPjY3MzU6IEFXVC9TV1QgLSBTd2luZyAvIFN3dCBpbnRlZ3JhdGlvbiA6IEpDb21ib0JveCBkb2Vzbid0IHNob3cgY29ycmVjdGx5Cjxicj4xMDk3MjogQ29yZSBkdW1wIGRyYWcgYW5kIGRyb3BwcGluZyBmcm9tIGlubGluZSB0ZXh0ICAKPGJyPjEyNDk4OiBVbmFibGUgdG8gYWRkIEV4dGVybmFsIEphciB1c2luZyB0aGUgSmF2YSBQcm9qZWN0IFdpemFyZCAgCjxicj4xNjE3NDogV3JvbmcgcG9wdXAgbWVudSAgCjxicj4xNjU1MzogU1dUX0FXVC5uZXdfUGFuZWwgZG9lcyBub3Qgd29yayAgCjxicj4xNjc5MTogQ2FuJ3Qgc2VsZWN0IGNoZWNrIGJveGVzICAKPGJyPjE3MTk5OiBUYWJsZSB3aWRnZXQgLSBvbmx5IGxhc3QgY29sdW1uIGhlYWRlciBpcyBjbGlja2FibGUgIAo8YnI+MTczNzU6IENoZWVzZSBvbiBKYXZhIFNjcmFwYm9vayBwYWdlIHJ1bGVyICAKPGJyPjE3MzkwOiBKVW5pdCB0ZXN0Y2FzZXMgcmVzdWx0IGZvciBHcmFwaGljcyAoMSBlcnJvciwgMiBmYWlsdXJlcykgIAo8YnI+MTc1NjU6IEFkZCBKUkUgdmFsaWRhdGlvbiBub3Qgd29ya2luZyAgCjxicj4xNzU2ODogRXJyb3IgZG9lc24ndCBkaXNhcGVhciB3aGVuIHN3aXRjaGluZyB0byBzb3VyY2UgZm9sZGVyIGxheW91dAo8YnI+MTc1NzQ6IFN0YXR1cyBsaW5lIGNvbnRyaWJ1dGlvbnMgYXBwZWFyIHR3aWNlICAKPGJyPjE3NjM3OiBSZXNpemUgcHJvYmxlbSB3aGVuIGRpYWJsZWluZyBvdmVydmlldyBydWxlciBpbiBFZGl0b3IgIAo8YnI+MTc2NjI6IEluY29ycmVjdCBzdGF0dXMgZGlzcGxheSBpbiBuZXcgRmVhdHVyZSBXaXphcmQgIAo8YnI+MTc5MTc6IFNoaWZ0LVRhYiBkb2VzIG5vdCB3b3JrICAKPGJyPjE4MjIzOiBUZXh0IHdpZGdldCB3aXRoIFNXVC5NVUxUSSBoYXMgc3RyYW5nZSBiZWhhdmlvciBvbiBHVEsgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0MSAtIFR1ZXNkYXkgTWF5IDI4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0Mzk4OiBWaXN1YWwgQ29vcmRpbmF0aW9uOiBCb3JkZXJzICgxRlNHT05HKSAgCjxicj40NDExOiBEQ1IgLSBTdXBwb3J0IHByaW50aW5nICgxUFE4UUNLKSAgCjxicj40NDI2OiBTY3JvbGxCYXIgLSBDYW4ndCBxdWVyeSBzaXplICgxRkRWUDIzKSAgCjxicj40NDMxOiBGb2xkZXIgdGFiIGRvZXMgbm90IGdldCBmb2N1cyAoMUZJR0k5NSkgIAo8YnI+NDQzNzogVHJlZSBLZXlib2FyZCBTdXBwb3J0ICgxRk9MWlBUKSAgCjxicj40NDUyOiBNZW51SXRlbTogc2V0SW1hZ2UgZG9lcyBub3Qgc2hvdyBpbWFnZSBvbiBtZW51ICgxRkdOUDhVKSAgCjxicj40NDY5OiBJbmNvbnNpc3RlbmNpZXMgYmV0d2VlbiBzaW5nbGUgbGluZSBUZXh0IGFuZCBSaWNoVGV4dCB3aWRnZXRzICgxRksxUlJNKQo8YnI+NDQ3NDogTm90IHN1cHBvcnR0aW5nIFdpbmRvd3MgQWNjZXNzaWJpbGl0eSBTdGFuZGFyZD8gKDFGTTBJRlMpICAKPGJyPjQ0OTA6IEZvbnRzIGluIGV4YW1wbGVzIGFwcGVhciB0b28gYmlnICgxRk9NQ1dRKSAgCjxicj40NDk2OiBEQ1IgLSBDb250b3VyIG1vdXNlIG1pZGRsZSBidXR0b24gZG9lc24ndCB3b3JrICgxRlJFQVM0KSAgCjxicj40NTAzOiBGb250RGlhbG9nIGlzIG1pc3NpbmcgZm9udHMgKDFGU01SVjApICAKPGJyPjQ1MjY6IFNldmVyZSAtIERlbGV0ZSBrZXkgaXMgbm90IHJlZGlyZWN0ZWQgdG8gZWRpdG9yICgxRlZYRFNUKSAgCjxicj40NTI5OiBDbG9zaW5nIGV4dGVybmFsIE1TIFdvcmQgbWFrZXMgaW4tcGxhY2UgTVMgV29yZCBkaXNhcHBlYXIgKDFGV0c5QVIpCjxicj40NTM0OiBGbGFzaGluZyB3aGVuIGNvbXB1dGVTaXplIGNhbGxlZCBvbiBUb29sYmFyICgxRldMRDFFKSAgCjxicj40NTQ1OiBObyBPUy5HZXRLZXlTdGF0ZSBmdW5jdGlvbiBvbiBtb3RpZiAoMUZaUU9aTSkgIAo8YnI+NDU1MDogSlVuaXQgdGVzdHMgYXNzdW1lcyBib3VuZGFyeSBjb25kaXRpb24gd2hpY2ggaXMgc2V0dGluZyBkZXBlbmRhbnQgKDFHMExRS0QpCjxicj40NTUyOiBBZG9iZSBkb2Vzbid0IGxpa2UgSW1hZ2VEYXRhLi4uICgxRzBaQkUwKSAgCjxicj40NTYzOiBOZWVkIHN1cHBvcnQgZm9yICoueHBtIGFuZCAqLnBuZyBpbWFnZSBmaWxlIGZvcm1hdHMgKDFHM0hXU0EpCjxicj40NjM2OiBUb29sdGlwcyBub3Qgd29ya2luZyBvbiBMaW51eCAoMUdDTjRGSykgIAo8YnI+NDY3MjogRENSIC0gSW5jbHVkZSAiYmVnaW5pbmcgLyBlbmQgIiBhcnJvd3MgdG8gc2VsZWN0IGZpbGVzICgxR0VGWUNHKQo8YnI+NDY3OTogQ29sb3VyIGdyYWRpZW50IG9mIHZpZXdzIGlzIG5vdCBncmFkdWFsICgxNmJpdCBjb2xvciBkZXB0aCkgKDFHRUxXU08pCjxicj40Njk5OiBEQ1IgLSBvdXRzdGFuZGluZyBpc3N1ZSBmb3IgY3VzdG9tZXItIENoYW5naW5nIGN1cnNvciBkdXJpbmcgZHJhZyBvcGVyYXRpb24gKDFHRVRDOFUpCjxicj40NzAzOiBXaW5NRSAtIERpc2FibGVkIGljb25zIGluIHRhYmJlZCBmb2xkZXIgZG8gbm90IGRpc3BsYXkgcHJvcGVybHkuICgxR0VXWExJKQo8YnI+NDcwNjogU3RhY2tPdmVyZmxvdyByZXNpemluZyBXb3JrYmVuY2ggd2luZG93ICgxR0VXTFNVKSAgCjxicj40NzA4OiBGQVRBTCBYIGVycm9yICgxR0YwN0hOKSAgCjxicj40NzA5OiBHUCBydW5uaW5nICggRWNsaXBzZSBeIDIgKSAoMUdFWjlVUikgIAo8YnI+NDcxMTogTmF2aWdhdG9yIG1lc3NlZCB1cCB3aGVuIG1pZGkody9EQkNTKSBpbiBpdCAtQ2FuJ3QgY3JlYXRlIHZpZXcgKDFHRVpOVkMpCjxicj40NzI4OiBXaW5kb3dzIHdpdGggdGFiIHBhZ2VzIHNob3VsZCBhbGxvdyBDdHJsLVRhYiBzd2l0Y2hpbmcgKDFHRklVRzUpCjxicj40Nzg1OiBEQ1IgLSBDdXN0b20gbm90ZWJvb2sgc2Nyb2xsaW5nIG5vdCBvcHRpbWFsICgxR0k5N1ZaKSAgCjxicj40ODM5OiBUYWJGb2xkZXIgbW5lbW9uaWMgcHJvYmxlbSAoMUdLQVBLSykgIAo8YnI+NDg0MDogSGVicmV3OiBjYW5ub3QgcGFzdGUgZnJvbSBleHRlcm5hbCBmaWxlIGludG8gamF2YSBlZGl0b3IgKDFHS0NXVlgpCjxicj40ODUxOiBQcmludCBpZ25vcmVzIHByaW50IHRvIGZpbGUgb3B0aW9uICgxR0tYQzMwKSAgCjxicj40ODY3OiBQZ01lbUZsdXNoKCkgY29uc2lkZXJlZCBleHBlbnNpdmUgKDFHTEVFSkMpICAKPGJyPjU2OTc6ICpQbGVhc2UqIG1ha2UgU1dUIHVzZSBHVEsrIGluc3RlYWQgb2YgTW90aWYgIAo8YnI+ODM0NjogV29ya2JlbmNoIHdpbGwgbm90IHN0YXJ0ICAKPGJyPjkyMTc6IEludGVybmFsIGVycm9yIGF0IG9wZW4gdGhlIHBhY2thZ2UgdmlldyAgCjxicj45NDkxOiAxR1JUUlhROiBXU1dCOldvcmtiZW5jaCAyLjAgUHJvYmxlbS0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHdpdGggTXVsdGlQYWdlRWRpdG9yUGFydAo8YnI+MTEyMDQ6IFNvbWUgQWN0aXZlWCBjb250cm9sIGNhbiBub3QgYWNjZXB0IGtleSBpbnB1dC4gIAo8YnI+MTE0MzY6IFJlcXVlc3QgZm9yIHB1YmxpYyBpbnRlcmZhY2UgdG8gY2FsbCAiVUlEZWFjdGl2YXRlKCkiIG9mICBJT2xlSW5QbGFjZU9iamVjdAo8YnI+MTE0OTg6IFN0eWxlZFRleHQgZG9lcyBub3QgYWx3YXlzIHJlZHJhdyB3aGVuIHRoZSBsaW5lIHN0eWxlIGNoYW5nZXMKPGJyPjE0ODQ2OiBBY2Nlc3NpYmlsaXR5OiBnZXRMb2NhdGlvbiBkb2VzIG5vdCBwb3NpdGlvbiBYUCBNYWduaWZpZXIgIAo8YnI+MTUyMTg6IFBsYXRmb3JtIGRvZXMgbm90IHJlY29nbml6ZSB0aGUgR1VJIC0gMjAwMjA1MDIgIAo8YnI+MTU0NjY6IEltYWdlRGF0YS5ibGl0IHRocm93cyBBcnJheUluZGV4T3V0T2ZCb3VuZHMgRXhjZXB0aW9uICAKPGJyPjE1NTQ4OiAnWCcgY2xvc2UgYm94IG9uIHRhYiBoaWRkZW4gYnkgYXJyb3dzICAKPGJyPjE1NTY0OiBqYXZhdy5leGUgaGFzIGdlbmVyYXRlZCBlcnJvcnMgYW5kIHdpbGwgYmUgY2xvc2VkIGJ5IHdpbmRvd3MgIAo8YnI+MTU2NTM6IFRhYiBoYWx0cyBvbiBDQ29tYm8gb2JqZWN0cyAgCjxicj4xNjA5NDogQ2hlZXNlIG9uIENUYWJGb2xkZXIgd2hlbiByZXNpemluZyAgCjxicj4xNjIwMDogVHJhY2tlciBsZWF2ZXMgY2hlZXNlICAKPGJyPjE2MzQ1OiBKVk0gdGVybWluYXRpb24gd2hlbiBhdHRlcG10aW5nIHRvIHJ1biBVcGRhdGUgTWFuYWdlciAgCjxicj4xNjQ1ODogVHJ5aW5nIHRvIGZyZWUgYSBHZGtFdmVudDogcG9pbnRlcj1OVUxMICAKPGJyPjE2NTQ5OiBDYW5ub3QgbmF2aWdhdGUgdGFiYmVkIG5vdGVib29rIHdpdGgga2V5Ym9hcmQgIAo8YnI+MTY1NTc6IFRhYiBkb2VzIG5vdCBtb3ZlIGN1cnNvciBiZXR3ZWVuIHRleHQgZmllbGRzICAKPGJyPjE2NTY1OiBUeXBlZCB0ZXh0IGlzIGxvc3QgIAo8YnI+MTY1NzY6IEFDQzogQ2hlY2tib3hlcyBpbiBsaXN0cyBhcmUgbm90IHJlYWwgY2hlY2tib3hlcyAgCjxicj4xNjgyODogQ1RhYkZvbGRlciBmbGFzaGluZyB0b29sdGlwICAKPGJyPjE2OTI3OiBFeHRlcm5hbCBwcm9ncmFtcyBzdXBwb3J0IG9uIFBob3RvbiAgCjxicj4xNjk1NzogVHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZENvbG9yKCkgZG9lc24ndCB3b3JrICAKPGJyPjE2OTY3OiBTdHJhbmdlIHNjcm9sbCBiZWhhdmlvciBpbiBwYWNrYWdlIGRpYWxvZyAgCjxicj4xNjk5NTogSG92ZXJIZWxwIGV4YW1wbGUgZG9lcyBub3QgY3JlYXRlIE9OX1RPUCBTaGVsbCBmb3IgdG9vbHRpcHMgIAo8YnI+MTcwMjI6IFNXVCBMYXlvdXRzIGV4YW1wbGUgLSBtaXNzaW5nIHdpbmRvdyB0aXRsZSAgCjxicj4xNzA5MDogU3R5bGVkVGV4dCBzZWxlY3RzIHRleHQgd2hlbiBtZW51IGlzIHNob3dpbmcgIAo8YnI+MTcxODM6IEljb24gaW4gd2l6YXJkIGJhbm5lciBjbGlwcGVkICAKPGJyPjE3MjA4OiBMb25nIG9wZXJhdGlvbnMgYXJlIGJlaW5nIG1vZGFsLiAgCjxicj4xNzMwNTogU2VhcmNoIERpYWxvZzogSmF2YSBQYWdlIGNsaXBwZWQgIAo8YnI+MTczMjA6IFNlYXJjaCBkaWFsb2cgZnJlZXplcyBFY2xpcHNlICAKPGJyPjE3MzY4OiA0IFRvb2xiYXIgaWNvbnMgcHVzaGVkIG9mZiB0aGUgdG9vbGJhciB3YXkgdG8gdGhlIHJpZ2h0ICAKPGJyPjE3NDg4OiBJbWFnZSBTdXBwb3J0IGluIFNXVCAtIEZBUSAoMUc1WjFLUykgIAo8YnI+MTc0OTc6IEZpbGVEaWFsb2cgb3BlbigpIHJldHVybnMgd3JvbmcgcmVzdWx0ICAKPGJyPjE3NjMyOiAiQ29sb3IgQnV0dG9uIiBkb2Vzbid0IHVwZGF0ZSAgCjxicj4xNzgwMjogTW92aW5nIGEgc2FzaCByZXF1aXJlcyBhbiBleHRyYSBjbGljayB0byB0YWtlIGVmZmVjdCAgCjxicj4xNzgxMTogVHdvIG1lbnUgYmFyIGl0ZW1zIGhpZ2hsaWdodGVkIGF0IHRoZSBzYW1lIHRpbWUgIAo8YnI+MTc4MTY6IE1lbnUgYXBwZWFycyB0aGVuIGRpc3NhcHByZWFycyB3aXRoIGNsaWNrIGFmdGVyIEFsdC4gIAo8YnI+MTc4MzI6IFZlcnRpY2FsIFNjcm9sbGJhciBjbGlwcGVkICAKPGJyPjE3ODM0OiBKYXZhRG9jIEFQSSBiYWQgZm9yIEltYWdlICAKPGJyPjE3ODM1OiBTbWFsbHRhbGsgY29kZSBhcm91bmQgOikgIAo8YnI+MTc5Mjg6IE5QRSBvbiBhZGRyZXNzYm9vayBleGFtcGxlICAKPGJyPjE3OTMyOiBFbXVsYXRlZCBDb29sYmFyIGRvIG5vdCByZXNpemUgd2hlbiB0aGUgbGFzdCBpdGVtIG9uIHRoZSByb3cgaXMgcmVtb3ZlZAo8YnI+MTc5MzM6IEVtdWxhdGVkIENvb2xiYXIgY2hldnJvbiB0b28gbmFycm93IG9uIFBob3RvbiAgCjxicj4xODAwNTogQnVzeUluZGljYXRvciBzaG91bGQgY2hlY2sgYXJncyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQwIC0gVHVlc2RheSBNYXkgMjEsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM1NTQ6IFRQMTI1OiB3ZWlyZCB0YWIgb3JkZXIgaW4gY3JlYXRlIHByb2plY3Qgd2l6YXJkICgxRzgzVlA4KSAgCjxicj40NDI0OiBUYWJsZSBkcmF3cyBhIHN0cmF5IHBpeGVsIGluIHRvcCBsZWZ0IGNvcm5lciAoMUZTOVFCUSkgIAo8YnI+NDQ3NjogTm8gc3luY0V4ZWMgcnVubmFibGVzIHJ1biBkdXJpbmcgc2Nyb2xsaW5nICgxRk1HRzJYKSAgCjxicj40NTI4OiBOZWVkIEZvY3VzSW4gZXZlbnQgZm9yIE9sZUNsaWVudFNpdGUgKDFGVzJTMDApICAKPGJyPjQ1ODY6IFVzZSBjaGVja1dpZGdldCgpIG1vcmUgb2Z0ZW4gKDFHODBVUlEpICAKPGJyPjQ2MDk6IEZpbGxMYXlvdXQgc2hvdWxkIGhhdmUgRmlsbExheW91dCh0eXBlKSBjb25zdHJ1Y3RvciAoMUc5WEJQSSkKPGJyPjQ2OTQ6IEVkaXRvciBOYW1lIGlzIG1pc3NpbmcgZnJvbSB0YWIgKDFHRVQ5M0opICAKPGJyPjQ3MjY6IENPREUgQ0hBTkdFUyBBRlRFUiBUSEUgRlJFRVpFICgxR0Y5WUYwKSAgCjxicj40Nzg4OiBGZWF0dXJlIHJlcXVlc3Q6IHN0eWxlZCB0cmVlIGl0ZW1zICgxR0lHSks0KSAgCjxicj40Nzg5OiBYUCAtIExvb2sgYW5kIGZlZWwgcHJvYmxlbXMgKDFHSUdHS00pICAKPGJyPjQ4MzE6IERORCBub3Qgd29ya2luZyBwcm9wZXJseSAoMUdKWU9aQykgIAo8YnI+NDgzODogQ2FuIGNyZWF0ZSBGb250RGF0YSB3aXRoIG51bGwgbmFtZSBzdHJpbmcgKDFHS0E5M1ApICAKPGJyPjQ5NDE6IEZvY3VzIGNhbGxiYWNrIGR1cmluZyBPbGVDbGllbnRTaXRlIGRlYWN0aXZhdGUgY2FsbCAgCjxicj40OTQyOiBDb21ibyBzZWxlY3Rpb24gaW5kZXggc2hvdWxkIG1vdmUgd2hlbiB1cHBlciBpdGVtIHJlbW92ZWQgKDFHTEdBNDEpCjxicj41OTEwOiBUb29sYmFyIHdpdGggYWxsIGl0ZW1zIGRpc2FibGVkIHN0aWxsIHNob3dzIHVwIGluIHRhYiBvcmRlciAgCjxicj41OTM2OiBDb21wb3NpdGUuc2V0VGFiTGlzdCBzaG91bGQgYWNjZXB0IG51bGwgIAo8YnI+NjE5ODogRm9jdXMgbG9zdCBpbiB0YWIgZm9sZGVyIHdoZW4gc3dpdGNoaW5nIHBhZ2VzICAKPGJyPjY0MDY6IEogSU1FIHBvc2l0aW9uaW5nIGluY29ycmVjdAo8YnI+NjUxNDogQ29kZSBhc3Npc3QgYmVoYXZlcyBkaWZmZXJlbnRseSBvbiBMaW51eCAgCjxicj42ODU2OiBEZWZhdWx0IGJ1dHRvbnMgZGlmZmVyZW50IG9uIFZhcmlhYmxlIGRpYWxvZyAgCjxicj44MTYyOiBBY2Nlc3NpYmlsaXR5OiBmb2N1cyBnb2VzIG1pc3NpbmcgaW4gQ1ZTIGxvY2F0aW9uIHdpemFyZCAgCjxicj44NzkxOiBPdmVyYWdncmVzc2l2ZSBmb2N1cyBncmFiYmluZyAgCjxicj45MTQxOiBXb3JrQmVuY2gtPlByZWZlcmVuY2UgZGlhbG9nJ3MgYnV0dG9ucyBmb250IGlzIHRvbyBzbWFsbC4gIAo8YnI+OTI4NzogQ29tYm8uc2V0VGV4dCBkb2VzIG5vdCB3b3JrCjxicj4xMDQ5MTogQm9sZCBidXR0b24gd2lsbCBub3QgYm9sZCB0ZXh0IGluIFNXVCBUZXh0RWRpdG9yIEV4YW1wbGUgIAo8YnI+MTEwNzQ6IEV2ZW50VGFibGUuc2VuZEV2ZW50IHNob3VsZCBwcm9iYWJseSB1c2UgdHJ5L2ZpbmFsbHkgIAo8YnI+MTEzNDk6IEVkaXRvciBUYWJzIHNob3VsZCBmaWxsIHRvIHRoZSByaWdodC4gIAo8YnI+MTEzNjk6IENvb2xiYXIgZmVhdHVyZSByZXF1ZXN0cyAgCjxicj4xMTUxNjogVmlld0Zvcm0gc2hvdWxkIG92ZXJyaWRlIGNvbXB1dGVUcmltCjxicj4xMTczODogZ3Jvd2luZyBzdGF0dXMgYmFyCjxicj4xMTg0NzogT0xFIEVkaXRvciBwcmV2ZW50cyBuYXZpZ2F0aW9uIHdpdGhvdXQga2V5cyAgCjxicj4xMjM5ODogQWNjZXNzaWJpbGl0eSBwcm9ibGVtcyAgCjxicj4xMjY0MTogRXJyb3IgaW4gLmNsYXNzcGF0aCBmb3IgUGhvdG9uICAKPGJyPjEyOTA0OiBBY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIFZpZXdzIHNob3VsZCBtb3ZlL2NoYW5nZSB0aGUgRGlzcGxheSdzIEN1cnNvcgo8YnI+MTI5NzI6IE5vdGljZWQgaW5jcmVhc2VkIG51bWJlciBvZiBFY2xpcHNlIGNyYXNoZXMgIAo8YnI+MTM2MjI6IERDUiAtIG5lZWQgYWJpbGl0eSB0byBjYW5jZWwgd2luZG93IHN5c3RlbSBzaHV0ZG93bgo8YnI+MTQ0NDk6IFtNNV0gZXJyb3IgYnJpbmdpbmcgdXAgQ29kZSBGb3JtYXR0ZXIgcGFnZSAgCjxicj4xNDU0NjogVGFibGVDb2x1bW4gYWxpZ25tZW50IHByb2JsZW0gd2l0aCBNb3RpZiAgCjxicj4xNDY1NjogUmVwYWludCBvZiB3aW5kb3cgZG9lcyBub3Qgd290ayB3aXRoIElNRSB1cAo8YnI+MTQ4MDE6IE1uZW1vbmljIGNoYXJhY3RlciBkb2Vzbid0IHdvcmsgb24gVGFiRm9sZGVyIG9uIFFOWCAgCjxicj4xNTEyNDogTlBFOiBMYWJlbCBEZWNvcmF0aW9ucyBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+MTUxMzQ6IE9wZW4gVHlwZSBkaWFsb2cgaGFzIHdyb25nIGluaXRpYWwgZm9jdXMgIAo8YnI+MTUxNzI6IGZvY3VzIG5vdCBvbiB0ZXh0IGZpZWxkIGZvciBPcGVuVHlwZURpYWxvZyAgCjxicj4xNTIyNDogRmlsZURpYWxvZyBkb2VzIG5vdCByZXR1cm4gdGhlIGZpbGUgc2VsZWN0ZWQgb24gUG9ja2V0UEMgIAo8YnI+MTUyMzc6IENvb2xiYXIgLSBjb3JydXB0cyB3cmFwIGxheW91dCB3aGVuIGl0ZW1zIGRlbGV0ZWQgIAo8YnI+MTU1MTM6IENDb21iby5zZXRUb29sdGlwVGV4dCgpIGRvZXNuJ3Qgd29yayAgCjxicj4xNTUxNjogR1AgLSBFY2xpcHNlIGNyYXNoZWQgIAo8YnI+MTU1NzU6IFRyZWUgd2l0aCBjaGVja2JveCBpdGVtcyBhcmUgbm90IGFjY2Vzc2libGUgIAo8YnI+MTU2MTM6IENvcHkvcGFzdGUgaW5zZXJ0cyBOVUxMICAKPGJyPjE1NzA1OiBFZGl0b3Igd2l0aCBmb2N1cywgdGFiIHRleHQgZGlzYXBwZWFycyBzb21ldGltZXMKPGJyPjE1ODcyOiBFZGl0b3IgYXJlYSBmcmFtZSBzaG91bGQgYWxpZ24gd2l0aCBvcGVuIGVkaXRvcidzLCBleGNsdWRpbmcgZHJvcCBzaGFkb3cKPGJyPjE1OTg5OiBDb29sYmFyIHdhbGtiYWNrIHdoZW4gYWRkaW5nIGl0ZW0KPGJyPjE2MDY5OiBDYW4ndCBzZWUgc291cmNlIGluIGltcG9ydGVkIGJpbmFyeSBTV1QgIAo8YnI+MTYyMTA6IENvcmUgRHVtcCBPY2N1cnJlZCB3aGlsZSBpbiBPcGVuIFR5cGUgZGlhbG9nICAKPGJyPjE2MjQ1OiBDVGFiRm9sZGVyIC0gdG9vbHRpcHMgYW5kIGFycm93aW5nIGFyb3VuZAo8YnI+MTYyODE6IEVjbGlwc2UgZG9lcyBub3QgY29tZSB1cAo8YnI+MTYyOTc6IFdyb25nIHRhYiBvcmRlciBpbiBuZXdlciBidWlsZHMKPGJyPjE2MzE4OiBDYW4ndCBhY3RpdmF0ZSB2aWV3czsgbG9zaW5nIGV2ZW50cwo8YnI+MTY0NjU6IFN0YWNrIE92ZXJmbG93IHdoZW4gaW1wb3J0aW5nIGEgcHJvamVjdAo8YnI+MTY1MjM6IFVuYWJsZSB0byBkb3VibGUtY2xpY2sKPGJyPjE2NTI1OiBFY2xpcHNlIGRvZXMgbm90IGxheW91dCBwcm9wZXJseQo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzOSAtIFR1ZXNkYXkgTWF5IDE0LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2MTAzOiBNZW51IG1uZW1vbmljcyBkb24ndCB3b3JrIHdoZW4gdG9vbGJhciBoYXMgZm9jdXMgIAo8YnI+ODgwNTogQ29udGV4dCBtZW51cyBhbmQgZmluZGluZyByZWZlcmVuY2VzIHRvIG1ldGhvZHMgIAo8YnI+MTQ4MjM6IERyYWcmRHJvcDogbmVlZCB3YXkgdG8gc2V0IHRoZSBkZWZhdWx0IGJlaHZhaW91ciBvZiBhIGRyb3AgbyAgCjxicj4xNTA1NTogQ29sdW1uIEhlYWRlciBIZWlnaHQgaW4gYSBUYWJsZSBvciBUYWJsZSBUcmVlIFNXVCB3aWRnZXQgIAo8YnI+MTUyNTM6IExpbnV4IEdUSyAyIGxpYnJhcnkgbm90IGZvdW5kICAKPGJyPjE1Mjc0OiBDYW4ndCBhZGQgZXh0ZXJuYWwgamFyIGluIExpbnV4LUdUSyB2ZXJzaW9uICAKPGJyPjE1NjAzOiBQcmVmZXJlbmNlIHBhZ2Ugbm8gbG9uZ2VyIHJlc2l6ZXMgdG8gZml0IGNvbnRlbnRzICAKPGJyPjE1NjM0OiBUYWJsZSBub3QgYWN0aW5nIGxpa2UgbGlzdCB3aGVuIGxhc3QgY29sdW1uIGRlbGV0ZWQgIAo8YnI+MTU2Mzc6IENoZWVzZSBpbiBUYWJsZSB3aGVuIHNldHRpbmcgY29sdW1uIGltYWdlICAKPGJyPjE1NjQzOiBDaGVlc2UgaW4gVGFibGUgd2hlbiBjaGFuZ2luZyBmb250ICAKPGJyPjE1NzA1OiBFZGl0b3Igd2l0aCBmb2N1cywgdGFiIHRleHQgZGlzYXBwZWFycyBzb21ldGltZXMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzOCAtIFR1ZXNkYXkgTWF5IDcsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjYzOTE6IERpc3BsYXkuZ2V0QWN0aXZlU2hlbGwoKSBjYW4gYW5zd2VyIHdyb25nIHZhbHVlICAKPGJyPjcxNzA6IFRhYiBzcGFjZSBzaXplIHByb2JsZW0gIAo8YnI+ODU0MjogQ2xvc2UgcGVyc3BlY3RpdmUgd2l0aCBtb3VzZSBpc24ndCBwb3NzaWJsZSAgCjxicj44NTkxOiBFZGl0b3IgdGFicyBzaG91bGQgc2Nyb2xsIGF1dG9tYXRpY2FsbHkgdG8gZmlsbCBhdmFpbGFibGUgdGFiIHNwYWNlCjxicj44NjQ4OiBTdHlsZWRUZXh0IC0gQ2FyZXQgY2FuIGJlIGhpZGRlbiB1bmRlciBzY3JvbGxiYXIgIAo8YnI+MTAyNjM6IEVkaXRvciBrZWVwcyBzY3JvbGxpbmcgYWZ0ZXIgbW91c2UgdXAgIAo8YnI+MTIyMjY6IFNvbGFyaXMgLSBjYW4ndCBjb3B5IGZpbGUgaW50byBzYW1lIGRpcmVjdG9yeSAgCjxicj4xMjM2MDogVHJhdmVyc2VFdmVudCBlLmRvaXQgZG9lc24ndCB0dXJuIG9mZiBvbiBUYWJGb2xkZXIgIAo8YnI+MTI5NTI6IEFsdCt7Y2hhcn0gZ2V0cyBpbnNlcnRlZCBhcyB0ZXh0ICAKPGJyPjEzNjE0OiBKRmFjZSBUYWJsZXMgaGF2ZSBhbiBleHRyYSBjb2x1bW4gIAo8YnI+MTM2NTE6IFByaW50ZWQgb3V0cHV0IGlzc3VlcyAgCjxicj4xMzcyNTogUmV2ZXJ0IGlzIG11Y2ggc2xvd2VyIHRoYW4gY2xvc2UgYW5kIHJlLW9wZW4gaW4gamF2YSBlZGl0b3IuICAKPGJyPjE0NDMxOiBUYWJsZVZpZXdlciBpbmNvbnNpc3RlbnQgd2hlbiBjbGlja2luZyBvZmYgb2YgaXRlbSBsaXN0ICAKPGJyPjE0ODY2OiBTaGlmdC1zZWxlY3Rpb24gZG9lc24ndCB3b3JrIGltbWVkaWF0ZWx5IGFmdGVyIHJlc3RhcnQgIAo8YnI+MTQ4ODA6IENvbHVtbiByZXNpemUgcHJvYmxlbXMvY2hlZXNlICAKPGJyPjE0OTAyOiBFeGVjdXRhYmxlIGxhdW5jaGVyIGRvZXMgbm90IHJlc3RhcnQgIAo8YnI+MTQ5MzU6IEVtdWxhdGVkV2lkZ2V0VGVzdHMgZmFpbCBvbiBMaW51eCAgCjxicj4xNDkzNzogTGF1bmNoIGZyb20gTmV3IE9mZmljZSBEb2N1bWVudCBoYW5ncyB1bnRpbCBFY2xpcHNlIGV4aXRzLiAgCjxicj4xNDk2NDogU3R5bGVkVGV4dCAtIGFkZCBuZXcgQVBJIGZvciByZXBsYWNpbmcgc3R5bGUgcmFuZ2VzICAKPGJyPjE0OTgxOiBGb2N1cyBub3Qgc2V0IGFueW1vcmUgIAo8YnI+MTUwNTc6IGdldFN5c3RlbUNvbG9yKFNXVC5DT0xPUl9XSURHRVRfRk9SRUdST1VORCkgYWx3YXlzIHJldHVybnMgYmxhY2sKPGJyPjE1MTE1OiByZW1vdmVDb2x1bW4gYXJlIGJyb2tlbiBpbiBFbXVsYXRlZCBUYWJsZSAgCjxicj4xNTE0MTogVGFiIGlzIGNhdWdodCBieSByZWFkIG9ubHkgdGV4dCAgCjxicj4xNTE1MDogUHJvZ3Jlc3MgYmFyIGJlaGF2ZXMgZXJyYXRpY2FseQo8YnI+MTUyMDg6IFN0eWxlZFRleHQgLSB0ZXh0IGNoYW5nZSBldmVuIG1lY2hhbmlzbSBwb29ybHkgZG9jdW1lbnRlZCAgCjxicj4xNTM0ODogR1BGIGluIE9TLk1vdmVNZW1vcnlXICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMzcgLSBUdWVzZGF5IEFwcmlsIDMwLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IkxJQlJBUlkgTE9DQVRJT04gQ0hBTkdFIj48L2E+TElCUkFSWSBMT0NBVElPTiBDSEFOR0U8L2gzPgoKQXMgb2YgdGhpcyBidWlsZCwgbGlicmFyaWVzIGFyZSBubyBsb25nZXIgaW4gdGhlIG9yZy5lY2xpcHNlLnN3dCBwbHVnaW4uCgo8cD5MaWJyYXJpZXMgY2FuIG5vdyBiZSBmb3VuZCBpbiB0aGUgYXNzb2NpYXRlZCB3aW5kb3dpbmcgc3lzdGVtIGZyYWdtZW50IHdoaWNoIHRvIGRhdGUgYXJlOgo8dWw+CjxsaT5vcmcuZWNsaXBzZS5zd3Qud2luMzIgCjxsaT5vcmcuZWNsaXBzZS5zd3QubW90aWYKPGxpPm9yZy5lY2xpcHNlLnN3dC5waG90b24KPGxpPm9yZy5lY2xpcHNlLnN3dC5ndGsKPGxpPm9yZy5lY2xpcHNlLnN3dC5ndGsxeAo8L3VsPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDY0MTogSWNvbiBsb29rdXAgZmFpbHMgZm9yIHNvbWUgd2luZG93cyBpY29uIHBhdGhzICgxR0QyREVZKSAgCjxicj40ODAyOiBTdHlsZWRUZXh0IC0gQmlkaSBTdXBwb3J0IE9wZW4gSXNzdWVzICgxR0laNUczKSAgCjxicj40ODQyOiBDYW4ndCBsYXVuY2ggZXh0ZXJuYWwgZWRpdG9ycy4gKDFHS0VZT0UpICAKPGJyPjYwOTg6IEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OIHJ1bm5pbmcgRWNsaXBzZSAgCjxicj42ODU4OiBHUCAtIENyYXNoIFZNICAKPGJyPjg4MjY6IEdQRiAtIGNsb3NpbmcgYSBKYXZhIGVkaXRvciAgCjxicj44ODM3OiBXaW5kb3cgcG9zaXRpb24gY2hhbmdlZCBpbmNvcnJlY3RseSBpbiBTaGVsbC5vcGVuKCkgIAo8YnI+OTI5NzogRWNsaXBzZSBjcmFzaGVkICAKPGJyPjExMzc0OiBncDogQ3Jhc2ggaW4gc3d0LXdpbjMyLTIwMjYuZGxsICAKPGJyPjExNTg3OiBCSURJOkphdmEgZWRpdG9yIGFuZCBUZXh0IGVkaXRvcjogVXNlciBJbnRlcmZhY2UgaXNzdWVzLiAgCjxicj4xMjgxMTogVGFibGVDb2x1bW5zIGRvbid0IHBhY2sgcHJvcGVybHkgIAo8YnI+MTMyMDA6IGdwIC0gTW92ZU1lbW9yeSBlcnJvciBvbiBXaW5kb3dzIFhQICAKPGJyPjE0MDQ5OiBncCAtIENyYXNoIGluIE9TLk1vdmVNZW1vcnlXICAKPGJyPjE0MjIwOiBncCAtIENyYXNoIGNsb3NpbmcgZWRpdG9yICAKPGJyPjE0MjQ1OiBncCAtIGNyYXNoIHdoaWxlIGRlYnVnZ2luZyAoTlJDUkFTSCkgIAo8YnI+MTQyNDk6IEV4Y2VwdGlvbiB3aGlsZSBzdGVwcGluZyAgCjxicj4xNDI4MDogVW5zYXRpc2ZpZWQgTGluayBFcnJvcnMgcnVubmluZyBsaWJzd3QtcGktZ3RrLTIwMzQuc28gb24gTGludXgvR3RrIDIuMAo8YnI+MTQ0MjU6IEZvbnQgZGlhbG9nIGV4Y2VwdGlvbiAgCjxicj4xNDUyODogUHJvYmxlbSB3aXRoIExhYmVsLmNvbXB1dGVTaXplLiAgCjxicj4xNDUzODogU3R5bGVkVGV4dCAtIGJpZGkgLSBjaGFuZ2UgYmFja3NwYWNlIGFuZCBkZWxldGUgYmVoYXZpb3IgIAo8YnI+MTQ4MTM6IENsYXNzQ2FzdEV4Y2VwdGlvbiBjcmVhdGluZyBhIG5ldyBSdW4gY29uZmlndXJhdGlvbiAgCjxicj4xNDg3MjogQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIFRhYmxlSXRlbS5pbnNlcnRDb2x1bW4gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzNiAtIFR1ZXNkYXkgQXByaWwgMjMsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ4MzQ6IERDUiAtIG1uZW1vbmljcyBkbyBub3Qgd29yayBvbiB0YWJiZWQgcGFnZXMgKDFHSzdPME4pICAKPGJyPjcxODk6IE1ldGhvZCBoaWdobGlnaHQgaW4gYm9yZGVyIGRvZXMgbm90IG1hdGNoIHRoZSBtZXRob2QgIAo8YnI+ODI1MzogUmlnaHQgY2xpY2tpbmcgZG9lcyBub3QgYnJpbmcgdXAgY29udGV4dCBtZW51ICAKPGJyPjgzMDY6IEluY29uc2lzdGVuY2llcyBpbiBTV1QgZXhhbXBsZSBkZXNjcmlwdGlvbnMgIAo8YnI+ODUzODogTWlzbWF0Y2ggYmV0d2VlbiBzZWxlY3RlZCB0YWIgYW5kIGRpc3BsYXllZCB0YWIgIAo8YnI+ODU0NDogU29tZSBwcm9ibGVtcyB3aXRoIHRoZSBlZGl0b3ItcGFuZSAocmVwYWludCwgZm9jdXMpICAKPGJyPjkzNjA6IFRleHQgZW50cnkgaW4gY3ZzIGNvbW1lbnQgZGlhbG9nIGNhbid0IGRlYWwgd2l0aCBxdWljayB0eXBpbmcKPGJyPjk3OTQ6IExpbnV4LUdUSyBLZXlFdmVudHMgYmFkL2RpZmZlcmVudCBmcm9tIHRoZSBvdGhlciBwbGF0Zm9ybXMKPGJyPjEyOTQ3OiBDb2xvciBQcmVmZXJlbmNlcyBpbiBQcmVmZXJlbmNlcy0+SmF2YS0+RWRpdG9yICAKPGJyPjEzODI2OiBQZXJmb3JtYW5jZSBpc3N1ZSBpbiBUYWJsZS5SZW1vdmVBbGwoKSAgCjxicj4xMzkyMjogRWNsaXBzZSBjcmFzaGVzIHdoZW4gcnVubmluZyBMYXlvdXRFeGFtcGxlICAKPGJyPjEzOTk5OiBTdHlsZWRUZXh0IC0gYXBwZW5kaW5nIHNpbmdsZSBsaW5lIGRhdGEgZG9lc24ndCB1cGRhdGUgcHJvcGVybHkKPGJyPjE0MDQ3OiBTdHlsZWRUZXh0IC0gaW5lZmZpY2llbnQgcmVkcmF3IGR1cmluZyB0ZXh0IGNoYW5nZSB3aXRoIHdvcmQgd3JhcAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzNSAtIFRodXJzZGF5IEFwcmlsIDE4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8dWw+CjxsaT5EaXNwbGF5LnNldEN1cnNvckxvY2F0aW9uPC9saT4KPGxpPkdyaWRMYXlvdXQoaW50LGJvb2xlYW4pPC9saT4KPC91bD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2MDI6IEdyaWRMYXlvdXQgc2hvdWxkIGhhdmUgR3JpZExheW91dChudW1Db2x1bW5zKSBjb25zdHJ1Y3RvciAoMUc5WjczRCkKPGJyPjg1NDk6IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzIDQgVW5oYW5kbGVkIGV4Y2VwdGlvbiBjYXVnaHQgaW4gZXZlbnQgbG9vcAo8YnI+OTAyOTogR0Muc2V0Q2xpcHBpbmcoUmVjdGFuZ2xlKSBzaG91bGQgaGFuZGxlIG51bGwgYXJndW1lbnQgb24gR1RLICAKPGJyPjEwNTkwOiBHVEsgVmVyc2lvbiAvIFRyZWUgVmlldyBibGFua3MuLi4gIAo8YnI+MTA3MTU6IENvZGUgQXNzaXN0IGRpYWxvZyBoaWRlIGFmdGVyIHByZXNzIGFuZCByZWxlYXNlIENUUkwgKyBTUEFDRSAgCjxicj4xMTE4MjogUHJvcGVydHkgU2hlZXQgZG9lcyBub3QgYWxsb3cgZWRpdGluZyB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIHByb3BlcnR5Cjxicj4xMTUxNTogY29tcHV0ZVRyaW0gYW5kIGdldENsaWVudEFyZWEgYXJlIGluY29uc2lzdGVudCBpbiBDVGFiRm9sZGVyICAKPGJyPjExNzEzOiBEZXNjcmlwdGlvbnMgaW4gcHJlZmVyZW5jZSBwYWdlcyBhcmVuJ3QgYWxpZ25lZCAgCjxicj4xMTcxNTogVGFiIGRvZXNuJ3Qgc3dpdGNoIGZpZWxkcyBvbiBndGsgIAo8YnI+MTE4MzU6IFN0cmFuZ2UgYmVoYXZpb3VyIG9mIGJhY2tzcGFjZSBpbiBuZXcgSmF2YSBDbGFzcyBkaWFsb2cgIAo8YnI+MTE5MzU6IENhbid0IEN0cmwrVGFiIG91dCBvZiBQREUgRWRpdG9yJ3MgZGVwZW5kZW5jaWVzIHBhZ2UgIAo8YnI+MTIwNzM6IE1vdmluZyBzaGVsbCBhYm92ZSBvdGhlciBzaGVsbHMgZG9lcyBub3Qgd29yay4gIAo8YnI+MTI4ODI6IERDUjogU2V0IEN1cnNvciBsb2NhdGlvbiBwcm9ncmFtbWF0aWNhbGx5IGZvciBhY2Nlc3NpYmlsaXR5ICAKPGJyPjEzMTk0OiBVc2FiaWxpdHk6IGVkaXRvciB0YWJzICAKPGJyPjEzMzg0OiBOUEUgb24gbGF1bmNoaW5nICAKPGJyPjEzNDMyOiBPbGVDb250cm9sU0l0ZSBkb2Vzbid0IHByb3BhZ2F0ZSBXTV9TRVRGT0NVUyBtZXNzYWdlIHRvIGFuIEFjdGl2ZVggY29udHJvbAo8YnI+MTM2Mzk6IENvbnRyb2xzIGRvIG5vdCBhcHBlYXIgaW4gdG9vbCBpdGVtcyAgCjxicj4xMzgwMDogQ2FuIG5vdCBnZXQgRm9jdXNFdmVudCBmcm9tIENvbWJvICAKPGJyPjEzOTgyOiBFY2xpcHNlIHdvbid0IHN0YXJ0IG9uIEdUSzIgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzNCAtIFR1ZXNkYXkgQXByaWwgOSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc3NDogV2luQ0UgLSBpdGVtcyByZWdhcmRpbmcgUG9ja2V0IFBDIChpbmNsdWRpbmcgMjAwMikgaW50ZWdyYXRpb24KPGJyPjg4MDY6IE1vdmluZyB2aWV3cyBpcyBkaWZmaWN1bHQgIAo8YnI+OTI0NTogVG9vbEl0ZW1zIGluIGEgVG9vbEJhciBub3QgZGlzcGxheWluZyBpbWFnZXMgb24gV2luQ0UgIAo8YnI+OTYxNjogUmVzaXplIGNvbHVtbiBsZWF2ZXMgc29tZSBjaGVlc2UgaW4gdGhlIHRhYmxlICAKPGJyPjEwNjAzOiBBZGQgQnJlYWtwb2ludCBrZWVwcyBwcm9tcHRpbmcgbWUgIAo8YnI+MTA5Mzc6IENvbnZlcnRlciBwcm9ibGVtIG9uIFNvbGFyaXMgIAo8YnI+MTE1MjA6IFNoZWxsQWRhcHRlci5zaGVsbERlYWN0aXZhdGVkKCkgbmV2ZXIgY2FsbGVkIG9uIExpbnV4LU1vdGlmICAKPGJyPjExNzM0OiBGb2N1cyBub3Qgb24gIkZpbmlzaGVkIiBidXR0b24gIAo8YnI+MTE5NDA6IERvd24gYXJyb3cgZG9lcyBub3QgYWNjZXNzIGRyb3AtZG93biBwb3J0aW9uIG9mIHRvb2xiYXIgYnV0dG9ucwo8YnI+MTIyNDE6IENvZGVhc3Npc3QgZGlzYXBwZWFyIGFmdGVyIGEgZmV3IHNlY29uZHMgIAo8YnI+MTI1NzM6IFRhYmxlIHNlbmRzIHNlbGVjdGlvbiBldmVudCB0d2ljZSB3aGVuIGluIFRhYkZvbGRlcgo8YnI+MTI3ODc6IENoYW5naW5nIGEgbWVudSBpdGVtJ3MgdGV4dCBtYWtlcyBpdHMgaWNvbiBkaXNhcHBlYXIgIAo8YnI+MTI4ODU6IExhYmVsIGFzIGEgc2VwZXJhdG9yIGRvZXNuJ3QgcmVzaXplIHByb3Blcmx5ICAKPGJyPjEzMDA2OiBBbHQrMSB3aXRoIGJsYW5rIFRhYkZvbGRlciByZXN1bHRzIGluIE5QRSAgCjxicj4xMzAxNDogU2V0VG9vbFRpcFRleHQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGRvZXMgbm90IHJlc2l6ZS4KPGJyPjEzMDQ5OiBDVGFiRm9sZGVyIGZvY3VzIHRyYXZlcnNpbmcgaXMgYnVzdGVkICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMzMgLSBUdWVzZGF5IEFwcmlsIDIsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNDQ2OiBTV1QgVGFibGUgQ29sdW1uIEltYWdlIENvcnJ1cHRpb24gIAo8YnI+MTI0NDc6IFRyZWUuZ2V0U2VsZWN0aW9uKCkgaXMgc2xvdyBmb3IgbGFyZ2UgdHJlZXMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzMiAtIFRodXJzZGF5IE1hcmNoIDI4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlN0eWxlZFRleHQgQmlkaSBQcmludGluZyI+PC9hPlN0eWxlZFRleHQgQmlkaSBQcmludGluZzwvaDM+CjxibG9ja3F1b3RlPgo8cD5TdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGZvciBwcmludGluZyB0aGUgY29udGVudHMgb2YgYSBTdHlsZWRUZXh0IHdpZGdldCBvbgpiaWRpcmVjdGlvbmFsIGxhbmd1YWdlIFdpbmRvd3MgcGxhdGZvcm1zLjwvcD4KPHA+IE5vdGUgaG93ZXZlciB0aGF0IHByaW50aW5nIEVuZ2xpc2ggb3IgbG9jYWwgbGFuZ3VhZ2UgdGV4dCBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IHdpdGggc29tZQpwcmludGVyIGRyaXZlcnMgd2hlbiB1c2luZyBhIG5vbi1UcnVlVHlwZSBmb250LiBUaGlzIGhhcyBiZWVuIG5vdGljZWQgb24gV2luZG93cwpOVCBzeXN0ZW1zIHdpdGggdGhlIEhQIExhc2VyamV0IDQgc2VyaWVzIHByaW50ZXIgZHJpdmVyLiBQbGVhc2UgdXNlIGEgVHJ1ZVR5cGUKZm9udCBpZiB0ZXh0IGlzIHByaW50ZWQgZ2FyYmxlZCAuICAKPGJyPjwvcD4KPC9ibG9ja3F1b3RlPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQ2NzogRENSIC0gVHJlZSBtaXNzaW5nIGtleWJvYXJkIHN1cHBvcnQgKDFGSkg1R1kpICAKPGJyPjQ1MjU6IFByb3BlcnR5IHZpZXdlciBkb2Vzbid0IGFkYXB0IHRvIGJnIGNvbG9yIGNoYW5nZXMgKDFGWDhYTDEpICAKPGJyPjEwMzE3OiBTdHlsZWRUZXh0IC0gYmlkaSBwcmludGluZyBzdXBwb3J0ICAKPGJyPjEwNDgzOiBTV1QgQ29udHJvbEV4YW1wbGUgRGlyZWN0b3J5RGlhbG9nIGRvZXMgbm90IGNob29zZSBkaXJlY3Rvcmllcwo8YnI+MTEwODE6IEphdmEgU291cmNlIEVkaXRpbmcgd2l0aCBHcmVlayBMb2NhbGUgbm8gbG9uZ2VyIHdvcmtzICAKPGJyPjExNTQ5OiBDcmVhdGUgcHJvamVjdCBkb2VzIG5vdCBhbGxvdyBjcmVhdGlvbiBvZiBmb2xkZXIgaW4gaXRzIHByb2plY3Qgc2VsZWN0aW9uCjxicj4xMjA5OTogQWNjZXNzaWJpbGl0eSA6IEpBV1MgY2FuIG5vdCByZWFkIFRhYkl0ZW0ncyB0ZXh0ICAKPGJyPjEyMjMxOiBETkQgOiBEcmFnIGFuZCBEcm9wIGJ1c3RlZCAobW91c2UgY2FwdHVyZSBub3QgcmVsZWFzZWQpICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMzEgLSBNb25kYXkgTWFyY2ggMTgsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cjx1bD4KPGxpPlNjcm9sbGVkQ29tcG9zaXRlLmdldE9yaWdpbjwvbGk+CjxsaT5TY3JvbGxlZENvbXBvc2l0ZS5zZXRPcmlnaW48L2xpPgo8bGk+VmFyaWFudC5nZXRUeXBlPC9saT4KPC91bD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjc1MDA6IERpc3BsYXkuZ2V0Qm91bmRzKCkgY2FsbHMgZnJvbSBhbm90aGVyIHRocmVhZCBnaXZlIGluY29ycmVjdCByZXN1bHRzCjxicj4xMDI3MzogTlBFcyBjYXVzZWQgYnkgdW5pdGlhbGl6ZWQgJ2l0ZW0nIGZpZWxkIGluIGV2ZW50Cjxicj4xMDQ4MTogVmlldyB3aWxsIG5vdCBTaXplIHZpYSBQdWxsIERvd24KPGJyPjEwNTExOiBBZGQgcHJvZ3JhbW1hdGljIHNjcm9sbGluZyB0byBTY3JvbGxlZENvbXBvc2l0ZQo8YnI+MTA5NDI6IExhdW5jaGVyIHNob3VsZCBhdXRvZGV0ZWN0IGd0ayBvbmx5IGluc3RhbGxhdGlvbi4KPGJyPjExMDUxOiBJbnZhbGlkIHRva2VuIHBhc3RpbmcgaW4gY2FsbGJhY2suYwo8YnI+MTEwOTA6IENMYWJlbCBKYXZhZG9jIHNheXMgU21hcnRMYWJlbAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzMCAtIFR1ZXNkYXkgTWFyY2ggMTIsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cjx1bD4KPGxpPk9sZUNvbnRyb2xTaXRlLmFkZEV2ZW50TGlzdGVuZXIoT2xlQXV0b21hdGlvbixpbnQsT2xlTGlzdGVuZXIpPC9saT4KPGxpPlRhYmxlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPgo8bGk+VGFibGVJdGVtLmdldEJhY2tncm91bmQoKTwvbGk+CjxsaT5UYWJsZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPgo8bGk+VGFibGVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4KPGxpPlRyZWVJdGVtLmdldEZvcmVncm91bmQoKTwvbGk+CjxsaT5UcmVlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPgo8bGk+VHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPgo8bGk+VHJlZUl0ZW0uc2V0QmFja2dyb3VuZChDb2xvcik8L2xpPgo8bGk+VGFibGVUcmVlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPgo8bGk+VGFibGVUcmVlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPgo8bGk+VGFibGVUcmVlSXRlbS5zZXRGb3JlZ3JvdW5kKENvbG9yKTwvbGk+CjxsaT5UYWJsZVRyZWVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4KPC91bD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjg3Mzc6ICBObyBTZWxlY3Rpb24gZXZlbnQgd2hlbiBETkQgc3RhcnRzCjxicj45OTUwOiAgQ29sb3JEaWFsb2cgd2VpcmQgYmVoYXZpb3IKPGJyPjk5NTk6ICBQZXJzaXN0ZW50IEVjbGlwc2UgTlBFIG9uIHN0YXJ0dXAKPGJyPjk5OTM6ICBPbGVDb250cm9sU2l0ZSBpcyBub3QgcG93ZXJmdWwgZW5vdWdoCjxicj4xMDQyMDogTW91c2UgYW5kIERORCBFdmVudCBub3RpZmljYXRpb24gb3V0IG9mIG9yZGVyCjxicj4xMDQ4MDogVW5hYmxlIHRvIG9wZW4gZmlsZXMgd2l0aCAiU3lzdGVtIEVkaXRvciIKPGJyPjEwNDgyOiBWaWV3IHdpbGwgbm90IE1vdmUgdmlhIFB1bGwgRG93bgo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyOSAtIFR1ZXNkYXkgTWFyY2ggNSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KCjxiPk5vdGU6PC9iPiBUaGUgbmV3IEFjY2Vzc2liaWxpdHkgQVBJIGlzIGV4cGVyaW1lbnRhbCwgYW5kIHdpbGwgbGlrZWx5IGNoYW5nZS4KPHVsPgo8bGk+Q29udHJvbC5nZXRBY2Nlc3NpYmxlKCkgYWRkZWQ8L2xpPgo8bGk+cGFja2FnZSA8Yj5vcmcuZWNsaXBzZS5zd3QuYWNjZXNzaWJpbGl0eTwvYj4gYWRkZWQsIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZyBjbGFzc2VzOjx1bD4KPGxpPkFjY2Vzc2libGU8L2xpPgo8bGk+QUNDPC9saT4KPGxpPkFjY2Vzc2libGVMaXN0ZW5lcjwvbGk+CjxsaT5BY2Nlc3NpYmxlQWRhcHRlcjwvbGk+CjxsaT5BY2Nlc3NpYmxlRXZlbnQ8L2xpPgo8bGk+QWNjZXNzaWJsZUNvbnRyb2xMaXN0ZW5lcjwvbGk+CjxsaT5BY2Nlc3NpYmxlQ29udHJvbEFkYXB0ZXI8L2xpPgo8bGk+QWNjZXNzaWJsZUNvbnRyb2xFdmVudDwvbGk+CjwvdWw+PC9saT48L3VsPgoKSGVyZSBhcmUgdHdvIGV4YW1wbGVzIHRoYXQgdXNlIHRoZSBhY2Nlc3NpYmlsaXR5IEFQSTo8dWw+CjxsaT5Gb3IgYSBjb250cm9sIHdpdGggbm8gY2hpbGQgaXRlbXM6Cjxjb2RlPjxwcmU+CgkJYnV0dG9uLmdldEFjY2Vzc2libGUoKS5hZGRBY2Nlc3NpYmxlTGlzdGVuZXIobmV3IEFjY2Vzc2libGVBZGFwdGVyKCkgewoJCQlwdWJsaWMgdm9pZCBnZXROYW1lKEFjY2Vzc2libGVFdmVudCBlKSB7CgkJCQllLnJlc3VsdCA9ICJNeSBCdXR0b24gTGFiZWwiOwoJCQl9CgkJfSk7CjwvcHJlPjwvY29kZT48L2xpPgoKPGxpPkZvciBhIGNvbnRyb2wgdGhhdCBoYXMgY2hpbGQgaXRlbXM6Cjxjb2RlPjxwcmU+CgkJbGlzdC5nZXRBY2Nlc3NpYmxlKCkuYWRkQWNjZXNzaWJsZUxpc3RlbmVyKG5ldyBBY2Nlc3NpYmxlQWRhcHRlcigpIHsKCQkJcHVibGljIHZvaWQgZ2V0TmFtZShBY2Nlc3NpYmxlRXZlbnQgZSkgewoJCQkJaWYgKGUuY2hpbGRJRCA9PSBBQ0MuQ0hJTERJRF9TRUxGKSB7CgkJCQkJZS5yZXN1bHQgPSAiTXkgTGlzdCBMYWJlbCI7CgkJCQl9IGVsc2UgewoJCQkJCWUucmVzdWx0ID0gIk15IExpc3QgSXRlbSBMYWJlbDogIiArIGxpc3QuZ2V0SXRlbShlLmNoaWxkSUQpOwoJCQkJfQoJCQl9CgkJfSk7CjwvcHJlPjwvY29kZT48L2xpPjwvdWw+CjxiPk5vdGU6PC9iPiBUaGUgQVBJIGludm9sdmluZyB0aGUgQWNjZXNzaWJsZUNvbnRyb2xYeHggY2xhc3NlcyBpcyBtb3JlIGNvbXBsZXgsIGFuZCBtb3JlIGxpa2VseSB0byBjaGFuZ2UuIApJdCBpcyB1bmxpa2VseSB0aGF0IGFwcGxpY2F0aW9uIGNvZGUgd2lsbCBuZWVkIHRvIHVzZSBpdC4gCkl0IGlzIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiBjdXN0b20gY29udHJvbCBpbXBsZW1lbnRvcnMuCgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NDM2OiBHcmlkIExheW91dCBQcm9ibGVtICgxRk9MWlpFKSAgCjxicj40NjY2OiBEQ1IgLSBOZWVkIGEgd2F5IGZvciBjaGlsZCBzaGVsbHMgdG8gZGlzYWJsZSBFU0MgY2xvc2luZyAoMUdFOFJYVykKPGJyPjQ3OTA6IFhJbml0VGhyZWFkcyBjYXVzZXMgamFwYW5lc2UgaW5wdXQgbWV0aG9kIHRvIGhhbmcgKDFHSVJZUjYpCjxicj40Nzc1OiBYSW5pdFRocmVhZHMgY2F1c2VzIFggcHJpbnRpbmcgdG8gaGFuZyAoMUdJVEJRTCkKPGJyPjQ0NTQ6IERDUjogVGFibGVzIG5lZWQgdG8gc3VwcG9ydCBjZWxsIGVkaXRpbmcgKDFGR1BMUFApCjxicj4xMDAwMjogRGV0ZWN0aW9uIG9mIENERSBhcyBhY3RpdmUgV00gaXMgcGxhdGZvcm0tc3BlY2lmaWMgIAo8YnI+MTA0MjY6IEVzYyB0cmF2ZXJzZSBkb2VzIG5vdCBnbyB1cCBoaWVyYXJjaHkgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyOCAtIFRodXJzZGF5IEZlYnJ1YXJ5IDI4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0Njg4OiBKIC0gRm9udCBEaWFsb2cgZG9lcyBub3Qgc2VsZWN0IGEgZm9udCB3aGVuIHNlbGVjdGluZyBhIGZvbnQgZmFtaWx5ICgxR0VUNUJXKQo8YnI+NzEzOTogRm9udERpYWxvZzogU2VsZWN0ZWQgZm9udCBub3QgdXNlZCAgCjxicj44ODY1OiBFeGNlcHRpb24gd2hlbiBjcmVhdGluZyBhIFRvb2xJdGVtIHdpdGggYSBudWxsIGltYWdlIGluIExpbnV4Cjxicj4xMDI1MDogU2xpZGVyIHdpdGggVkVSVElDQUwgb3JpZW50YXRpb24gLSBkb3duIGFycm93IGluY3JlbWVudHMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyNyAtIFR1ZXNkYXkgRmVicnVhcnkgMjYsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY0MDk6IE5vZGUgc2VsZWN0aW9uIGluIHBhY2thZ2UgdmlldyAgCjxicj44Mzg5OiBNb3VzZVVwIG5vdCByZXBvcnRlZCBjb3JyZWN0bHkgaWYgRHJhZ0RldGVjdCBob29rZWQgIAo8YnI+OTM2NDogRXhjZXB0aW9uIGluIFN0eWxlZFRleHQgIAo8YnI+OTc3MzogRm9udCBhbmQgQ29sb3IgZGlhbG9ncyBkbyBub3QgYXBwZWFyIGNlbnRyZWQgb24gcGFyZW50ICAKPGJyPjk5NTA6IENvbG9yRGlhbG9nIHdlaXJkIGJlaGF2aW9yICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjYgLSBUdWVzZGF5IEZlYnJ1YXJ5IDEyLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2Njc5OiBJbWFnZS5nZXRJbWFnZURhdGEoKSBub3QgaW1wbGVtZW50ZWQgIAo8YnI+Nzk2MjogU1dULmdldFBsYXRmb3JtKCkgamF2YWRvYyBpbmNvcnJlY3QgZm9yIHJldHVybiBkZXNjcmlwdGlvbiAgCjxicj44OTg0OiBDVGFiRm9sZGVyLk1JTl9UQUJfV0lEVEggc2hvdWxkIG5vdCBiZSBzdGF0aWMgIAo8YnI+OTAyMjogTGludXg6IFRyZWUgVmlld2VyIGRvZXMgbm90IGdldCBkZWZ1YWx0IFNlbGVjdGlvbiAgCjxicj45MDcyOiBUYWJsZSBUcmVlIGRvZXMgbm90IHBpY2sgdXAgd2luZG93cyBzZXR0aW5ncyBjaGFuZ2VzICAKPGJyPjkwOTE6IFN0eWxlZFRleHQgaW4gU0lOR0xFIG1vZGUgc2hvdWxkIGxvb2sgbW9yZSBsaWtlIGEgVGV4dCB3aWRnZXQgIAo8YnI+OTE3MjogU1dUIEFkZHJlc3NCb29rIEV4YW1wbGUgY2FsbHMgdW5kZWZpbmVkIG1ldGhvZAo8YnI+OTQzMjogVGhlIGRvYyBmb3IgVHJhY2tlciB3aWRnZXQgc2hvdWxkIHNwZWNpZnkgdGhhdCByZWN0YW5nbGVzIGFyZSBpbiBzY3JlZW4gY29vcmRpbmF0ZXMKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjUgLSBUdWVzZGF5IEZlYnJ1YXJ5IDUsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0MzA6IFNvcnRpbmcgdGhlIFRhc2tzIExpc3Qgc2hvdWxkIGRpc3BsYXkgaWNvbiBmb3Igc29ydCBrZXkvb3JkZXIgKDFHRjVUUU8pCjxicj40NDg1OiBEQ1IgLSBUYWJsZSBjb2x1bW4gaGVhZGVyIGRlY29yYXRpb24gY2FwYWJpbGl0eSBuZWVkZWQgKDFGT1FRTTgpCjxicj42MDM1OiBEaWZmZXJlbmNlIGluIHRyZWUgImV4cGFuZGVkIHN0YXRlIiBiZXR3ZWVuIFdpbmRvd3MgYW5kIE1vdGlmCjxicj42OTgzOiBCcm93c2UgYnV0dG9uIGluIEltcG9ydC0+UGx1Z2lucyBub3Qgd29ya2luZy4gIAo8YnI+NzQwMDogU2luZ2xlIGxpbmUgdGV4dCBmaWVsZHMgbm90IGZpcmluZyAiS2V5IFByZXNzZWQiIGV2ZW50cyBmb3IgdGhlIEVudGVyLCBVcChhcnJvdyksIGFuZCBEb3duKGFycm93KSBrZXlzCjxicj44MTczOiBBY2Nlc3NpYmlsaXR5OiBrZXlib2FyZC1pbnZva2VkIHBvcHVwIG1lbnUgbm90IHVzYWJsZSAgCjxicj44MTk2OiBBY2Nlc3NpYmlsaXR5OiBzaGlmdCtGMTAgZG9lcyBub3QgZGlzcGxheSB2aWV3IG1lbnUgIAo8YnI+ODI3MzogSG9yaXpvbnRhbCBzY29ybGxiYXIgZG9lcyBub3QgYWxsb3cgc2Nyb2xsaW5nIHdoZW4gcmVxdWlyZWQgIAo8YnI+ODM5NjogV0lOQ0U6IE1lbnUgYmFyIG9ic2N1cmVzIGNvbnRyb2wgd2hlbiBjb250cm9sIGxvY2F0aW9uIGlzIDAsMAo8YnI+ODM5NzogV0lOQ0U6IE1lbnUgaXRlbSBjb2xvcnMgZG9uJ3QgbWF0Y2ggbWVudSBiYXIgIAo8YnI+ODQxMjogV0lOQ0U6IEJhY2tncm91bmQgY29sb3Igb2YgYnV0dG9ucyBsb29rcyB3cm9uZyAgCjxicj44NjQwOiBHUDogb3BlbmluZyBTeW5jaHJvbml6YXRpb24gcGVyc3BlY3RpdmUgIAo8YnI+ODk0MjogV3JvbmcgdGV4dCBpbmRlbnQgaW4gYSB0YWJsZSB3aGVuIHVzZSBpbWFnZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDI0IC0gVHVlc2RheSBKYW51YXJ5IDI5LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjU0OiBWQUogaGFuZ3Mgd2hlbiBkcmFnZ2luZyBmcm9tIGZpbGUgbWFuYWdlciB0byB0aGUgZGVza3RvcC4gKDFHRFFGWjYpCjxicj40NzIwOiBFY2xpcHNlIGZyZWV6ZXMgZHVyaW5nIGRyYWcgJiBkcm9wIG9wZXJhdGlvbiAoMUdGN1JSSCkgIAo8YnI+NDcyNDogR1AgLSBGYXRhbCBhcHAgZXJyb3IgLSByZW5hbWluZyByZXNvdXJjZSBvbiBsaW51eCAoMUdGN1RYTykgIAo8YnI+NDczNjogRml4IHByaW50aW5nICgxR0ZXMkNXKSAgCjxicj40ODE3OiBOZWVkIEphdmFEb2MgY29tbWVudHMgZm9yIFNXVCBQaG90b24gKDFHSkxFVTApICAKPGJyPjY4MzU6IENoYXJhY3RlcnMgPz8/Pz8/Pz8/Pz8/PyBhbmQgPz8/Pz8/PyBkb2Vzbid0IHdvcmsgaW4gSmF2YSBlZGl0b3Igb24gU3dlZGlzaCAgCjxicj44MjU1OiBDbG9zaW5nIHBhaW50IHZpZXdlciBjYXVzZXMgaW50ZXJuYWwgZXJyb3IgIAo8YnI+ODQxMDogQmxhY2sgY29sb3IgYmVjb21lIHRyYW5zcGFyZW50IGluIFRvb2xCYXIgaW1hZ2VzICAKPGJyPjg1MDM6IFN0eWxlZFRleHQgLSBjaGVlc2UgaWYgcmVzaXplIGluIHdvcmQgd3JhcCB0cmllcyB0byBrZWVwIHBhcnRpYWwgdG9wIGxpbmUKPGJyPjg1NDc6IEludGVsbGltb3VzZSBzY3JvbGxpbmcgZG9lcyBub3Qgd29yayBpbiBlY2xpcHNlICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjNhIC0gVGh1cnNkYXkgSmFudWFyeSAyNCwgMjAwMiA8L2gyPiAoRWNsaXBzZSBNaWxlc3RvbmUgMikKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3MDA6IE51bUxvY2sgYW5kIENhcHNMb2NrIGRpc2FibGUgYWNjZWxlcmF0b3JzICgxR0VURFQ5KSAgCjxicj42MTgwOiBXYWtlIG1lY2hhbmlzbSBicm9rZW4gb24gTW90aWYgIAo8YnI+Njg3MzogRGVjb3JhdGlvbnMuc2V0SW1hZ2UoKSB0aHJvd3MgTlBFIG9uIFdJTkNFICAKPGJyPjc4MDU6IEEgbmV3IEltYWdlRGF0YShmcm9tIGFuIElucHV0U3RyZWFtKSB0aHJvd2luZyBOUEUgIAo8YnI+ODEzMzogV2hlbiB0b29sYmFyIGhhcyBmb2N1cywgY2FuJ3QgdXNlIG1uZW1vbmljcyBmb3IgRmlsZSBtZW51cyAgCjxicj44MjEzOiBleGNlcHRpb246IHdpZGdldCBpcyBkaXNwb3NlZCAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjMgLSBUdWVzZGF5IEphbnVhcnkgMjIsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2MTA6IFN0eWxlZFRleHQgLSBEQ1IgLSBXb3JkIHdyYXAgKDFHQUJTNkMpICAKPGJyPjQ2NDQ6IE1vdXNlIGNsaWNrIG9uIGEgbGluayBkaXNwbGF5ZWQgaW4gZW1iZWRkZWQgSUU1IEFjdGl2ZVggaXMgbm90IHJlbGlhYmxlICgxR0Q3VFQyKQo8YnI+NTY2MDogU1dUIGRlZmF1bHQgZm9udCdzIG5lZWQgdG8gaG9ub3IgYWNjZXNhYmlsaXR5IHNldHRpbmdzICAKPGJyPjYzMjQ6IFNXVC5DTE9TRSBpbXBsaWVzIHJlbmRlcmluZyBvZiBNaW5pbWl6ZSBhbmQgTWF4aW1pemUgYnV0dG9ucyAgCjxicj42OTk3OiBTdHlsZWRUZXh0IC0gbWFyayBuZXcgQVBJICAKPGJyPjcxMjM6IFNoZWxsIHNob3dzIHRoZSBtYXhpbWl6ZSBidXR0b24gZW5hYmxlZCB3aGVuIFNXVC5USVRMRSB8IFNXVC5CT1JERVIgfCBTV1QuQ0xPU0Ugc3R5bGUgcGFzc2VkCjxicj43MzYxOiBBZGQgZ2V0T2Zmc2V0QXRMaW5lIEFQSSAgCjxicj43NjMyOiBUcmVlIHdpZGdldCBkb2Vzbid0IHNlbGVjdCBpdGVtIHdpdGggZm9jdXMgb24gcmlnaHQtY2xpY2sgIAo8YnI+Nzg0OTogTGFiZWxzIG9uIFdJTkNFIGRvbid0IHVzZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHBhcmVudCB3aGVuIGNvbG9yIGlzbid0IHNldAo8YnI+Nzg2NzogRENSOiBEZWxldGUgY2hlY2tTdWJjbGFzcyBtZXRob2QgZnJvbSBEaWFsb2cgIAo8YnI+Nzk1OTogUG90ZW50aWFsIHByb2JsZW1zIHdoZW4gcnVubmluZyBvbiBiaWcgZW5kaWFuIG1hY2hpbmVzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjIgLSBUdWVzZGF5IEphbnVhcnkgMTUsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2NjM6IEZhaWwgdG8gdGFiIHRoZSB2aWV3cy4gKDFHR1lWOFQpICAKPGJyPjQ3MTg6IFRvb2wgdGlwIGlzIG9wZW5uaW5nIHdoZW4gb24gZHJhZ2dpbmcuICgxR0Y1WjdaKSAgCjxicj41ODY2OiBDYW4ndCBtdWx0aXNlbGVjdCBpbiBUcmVlIHVzaW5nIGtleWJvYXJkICAKPGJyPjY1OTI6IEJveCBmb3IgY2hlY2tib3ggdGFibGUgaXRlbXMgaXMgdG9vIGxhcmdlIHdoZW4gdXNpbmcgbGFyZ2UgZm9udHMKPGJyPjY3NzA6IE9ubHkgdGhlIGxlZnQgbW91c2UgYnV0dG9uIHNob3VsZCBzZWxlY3QgaW4gYSBUYWJsZS4gIAo8YnI+Njg1MjogU3R5bGVkVGV4dCAtIHZlcmlmeSBldmVudCBjaGFyYWN0ZXIgaW52YWxpZCB2YWx1ZSAgCjxicj42OTQwOiBNZW51U2hvcnRjdXRzIG9ubHkgcmVzcG9uZCB0byBDdHJsLU4gIAo8YnI+NzE5MDogQ3RybC1TIGRvZXMgbm90IHdvcmsgIAo8YnI+NzQ1ODogV2luQ0UgLSB0b3AgbGV2ZWwgU2hlbGxzIGNyZWF0ZWQgdGhyb3VnaCBEaXNwbGF5LmFzeW5jZXhlYyBjYW4gaGF2ZSBpbmNvcnJlY3QgWi1vcmRlcgo8YnI+NzQ1OTogQ2FyZXQgbGVhdmluZyBnYXJiYWdlICAKPGJyPjc0ODY6IENhbm5vdCB1c2Uga2V5Ym9hcmQgU2hpZnQgU2VsZWN0IGluIGEgVHJlZSAgCjxicj43NTU5OiBTY3JvbGxCYXIgdGh1bWIgaXMgcmVzZXQgd2hlbiBTY3JvbGxCYXIgaXMgaGlkZGVuLCB0aGVuIHNob3duCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDIxIC0gVHVlc2RheSBKYW51YXJ5IDgsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0NDM6IExheW91dDogRXhjZXB0aW9ucyB3aGVuIGhvcml6b250YWxTcGFuID4gcmVtYWluaW5nIGNvbHVtbnMgKDFGRkM2WFopCjxicj40NDYyOiBTY3JvbGxCYXIgLSB2YmFyLnNldE1heGltdW0gZG9lcyBub3Qgd29yayBhZnRlciBoYmFyIGlzIGhpZGRlbiAoYW5kIHZpY2UgdmVyc2EpICgxRklHNUNHKQo8YnI+NDcyMjogRmlyc3QgZWRpdG9yIHRhYiBtaXNzaW5nIGNsb3NlIGJ1dHRvbiAoMUdGN1FJUSkgIAo8YnI+NDc1NTogUmVidWlsZGluZyBsYXVuY2hlciBmcm9tIGFub3RoZXIgZGlyZWN0b3J5ICgxR0dOUkcwKSAgCjxicj42MzE1OiBTb21lIHBlcnNwZWN0aXZlIHNhdmUgY29uZmlybWF0aW9uIG1lc3NhZ2VzIGN1dCBvZmYgIAo8YnI+NjM1MjogRWRpdG9yIGRvZXNuJ3QgZ2V0IGFjdGl2YXRlZCB3aGVuIHJldmVhbGluZyBmaXJzdCBtYXRjaCAgCjxicj42OTA4OiBNZW51IGhhbmRsZSBsZWFrIGluIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLk1lbnUuZGVzdHJveUl0ZW0oTWVudUl0ZW0pCjxicj42OTQ1OiBDaGlsZCBzaGVsbHMgbm90IGRpc3BsYXlpbmcgb24gV2luQ0UgIAo8YnI+Njk4MjogQ2hlY2tlZFRhYmxlcyBoYXZlIG5vIGNoZWNrIGJveGVzICAKPGJyPjcwMDU6IE1pc3NpbmcgbWV0aG9kcyBpbiBTV1QvR1RLIGltcGxlbWVudGF0aW9uICAKPGJyPjcwMTg6IFRyZWUgZG9lcyBub3QgaG9ub3IgU1dULkNIRUNLIHN0eWxlICAKPGJyPjcwNjg6IFNjcm9sbEJhci5zZXRWaXNpYmxlKHRydWUpIGRvZXMgbm90IHdvcmsgYWZ0ZXIgY2hhbmdpbmcgdmFsdWVzCjxicj43MTUwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIHBhcnRpYWwgc3R5bGluZyBvZiBsaWdhdHVyZXMgYnVnICAKPGJyPjcxOTE6IERpYWxvZ3Mgbm90IGJpZyBlbm91Z2ggZm9yIGNvbnRlbnQgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyMCAtIFR1ZXNkYXkgRGVjZW1iZXIgMTgsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3MTU6IEZpcnN0IGhlbHAgY2xpY2sgb24gYSBjaGFwdGVyIGlzIGlnbm9yZWQgKDFHRjVUVjkpICAKPGJyPjQ3ODQ6IE1JRiBGaWxlcyBzb21ldGltZSBmYWlsICgxR0k3SDdWKSAgCjxicj40Nzk3OiBUYWJsZSBkb2VzIG5vdCB1c2UgU3lzdGVtIGZvbnRzICgxR0lWNFBaKSAgCjxicj42NjM1OiBXaW5DRTogZGVjb3JhdGlvbnMuc2V0TWVudUJhciBjYW4gYmUgc2V0IG9ubHkgb25jZSAgCjxicj42Njg1OiBTdHlsZWRUZXh0IC0gb24gc2V0Rm9udCBjYXJldCBub3QgYmVpbmcgcG9zaXRpb25lZCBjb3JyZWN0bHkgIAo8YnI+Njc3MzogU3R5bGVkVGV4dC5jb21wdXRlU2l6ZSB1c2VzIGRpc3BsYXkgd2lkdGggdG8gY2FsY3VsYXRlIG51bWJlciBvZiB2aXNpYmxlIGxpbmVzCjxicj42NzkwOiBUb3VjaGluZyBjb2RlIGFzc2lzdCBzY3JvbGxiYXIgZHVtcHMgamF2YWNvcmUgIAo8YnI+Njg2MzogUmVtYWluaW5nIGlzc3VlcyBpbiBlbXVsYXRlZCBDb29sQmFyIGFuZCBDb29sSXRlbSAgCjxicj42OTMzOiBTd2l0Y2hpbmcgdG8gaGVscCBwZXJzcGVjdGl2ZSBjcmFzaGVzIHRoZSB3b3JrYmVuY2ggIAo8YnI+NzAxNDogVHJlZSBub3QgYWNjZXB0aW5nIGNoaWxkcmVuICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTkgLSBUdWVzZGF5IERlY2VtYmVyIDExLCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NDYxOiBTV1RFeGNlcHRpb24gc2hvdWxkIG92ZXJ3cml0ZSBwcmludFN0YWNrVHJhY2UoLi4pICgxR0xEVzZQKSAgCjxicj40NDkzOiBDaGVjayBtdWx0aWxpbmd1YWwgc3VwcG9ydCBvbiBXaW5kb3dzIDIwMDAgKDFGUUZDQlEpICAKPGJyPjQ2MTE6IFN0eWxlZFRleHQgLSBTdHJpbmdJbmRleE91dE9mQm91bmRzIGV4Y2VwdGlvbiBpbnNlcnRpbmcgdGV4dCBpbiBsaW5lIGJyZWFrICgxR0VJRDhCKQo8YnI+NDYyMDogV29ya2JlbmNoIGRvZXMgbm90IGNsb3NlIEFjdGl2ZVggY29udHJvbCdzIGZpbGUgaGFuZGxlICgxR0I3NkFaKQo8YnI+NDY2MDogTW92aW5nICAKPGJyPjQ3MTk6IEJhY2tncm91bmQgY29sb3VyIG9mIHZpZXdzL2VkaXRvcnMgKDFHRjZDOFkpICAKPGJyPjQ3Mzk6IERDUjogUHJvdmlkZSBhdXRvLXNjcm9sbGluZyBhbmQgZXhwYW5zaW9uIGJ5IGRlZmF1bHQgaW4gdGhlIHRyZWUgZHVyaW5nIERORCAoMUdGVzdOUSkKPGJyPjQ3Njc6IFRhYiBGb2xkZXJzIGNhbiBub3QgYmUgdG9nZ2xlZCB1c2luZyBrZXlzLiAoMUdIRkNaVSkgIAo8YnI+NDc4MDogWUFNOiBDYW5ub3QgcmVhZCBzb21lIEpQRUcgZmlsZXMgKDFHSTZaRU4pICAKPGJyPjQ3ODM6IENhbid0IHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBuYXZpZ2F0b3IgKDFHSTdHVEcpICAKPGJyPjUwNzE6IFNoaWZ0LVRBQiBkb2Vzbid0IGdlbmVyYXRlIHByb3BlciBldmVudCAgCjxicj41Njc3OiBIaWVyYXJjaHkgb3V0bGluZSBoYXMgZW1wdHkgc3BhY2UgIAo8YnI+NTg1NzogSW1hZ2UuZ2V0SW1hZ2VEYXRhIG5lZWRzIHRvIHN1cHBvcnQgMTUgYml0IGNvbG9yIGRlcHRoICAKPGJyPjY0NzI6IFRhYmxlIHdpZGdldCBoYXMgZW1wdHkgZW50cmllcyAgCjxicj42NTcyOiBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgTGlzdHMgYW5kIENvbWJvcyBub3QgY29uc2lzdGVudCB3aXRoIFdpbjJLCjxicj42NjUxOiBUZXh0LnNldFNlbGVjdGlvbigpIGRvZXNuJ3QgYWN0dWFsbHkgZGlzcGxheSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IGZvciBTV1QuU0lOR0xFCjxicj42NjU0OiBUZXh0LmdldFNlbGVjdGlvbigpIG5vdCByZXR1cm5pbmcgY29ycmVjdCBpbmZvIG9uIFdJTkNFICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTggLSBUdWVzZGF5IERlY2VtYmVyIDQsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0MTk6IFdpZGdldHMgLSBNaXNzaW5nIGZlYXR1cmVzIGFuZCBBUEkgb24gTU9USUYgKDFGQlBLQ1QpICAKPGJyPjQ0OTQ6IENvbG9yRGlhbG9nIGRvZXNuJ3Qgb3BlbiBpbiBWQS9KYXZhIHdpdGggSkRLIDEuMiAoMUZRR002SCkgIAo8YnI+NDgzMzogUmVtb3ZlIGZvY3VzIGJ1dHRvbiBmcm9tIFRhYmxlICgxR0s3TUs0KSAgCjxicj40ODYwOiBTdHlsZWRUZXh0IC0gU3R5bGVkVGV4dEJpZGksIEJpZGlVdGlsIG5lZWQgZG9jICgxR0wzMkM4KSAgCjxicj42MjA0OiBLZXlMaXN0ZW5lciBvbiB0YWJsZSBkb2VzIG5vdCB3b3JrLiAgCjxicj42NDM4OiBTdHlsZWRUZXh0IC0gYmlkaSAtIGlzQmlkaSB0ZXN0IG5vdCB3b3JraW5nIG9uIFhQICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTcgLSBUdWVzZGF5IE5vdmVtYmVyIDI3LCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NzE0OiBMYWJlbCBkcmF3cyB3cm9uZyBiYWNrZ3JvdW5kIHdoZW4gaW1hZ2UgaXMgc2V0ICgxR0YwSUM2KSAgCjxicj41NTAzOiBUYWJiaW5nIGJyb2tlbiAgCjxicj41OTg2OiBCaWRpVXRpbCBoYW5kbGluZyBvZiBXTV9JTlBVVExBTkdDSEFOR0UgbmVlZHMgdG8gYmUgZml4ZWQKPGJyPjU5OTI6IENoYW5naW5nIEphdmEgRWRpdG9yIGZvbnQgaW4gUHJlZmVyZW5jZSBQYWdlIG1ha2VzIEVjbGlwc2UgaGFuZyBvciBjcmFzaAo8YnI+NjE3MTogTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gSW1hZ2VMb2FkZXIgc2F2ZSBtZXRob2Qgd2l0aCBTV1QuSU1BR0VfSlBFRwo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAxNSAtIFR1ZXNkYXkgTm92ZW1iZXIgMjAsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3OTE6IFN0eWxlZFRleHQgZG9lcyBub3Qgc3dpdGNoIGNvbG91ciAoMUdJTEhJVykgIAo8YnI+NDk1NjogU3R5bGVkVGV4dCAtIGNoYW5nZSBTdHlsZWRUZXh0QmlkaS50b1N0cmluZyB0byBjb25mb3JtIHdpdGggc3RhbmRhcmQgU1dUIGZvcm1hdAo8YnI+NTU5OTogU3R5bGVkVGV4dCAtIHJlZHJhd1JhbmdlIGRvZXMgbm90IGNoZWNrIHJhbmdlICAKPGJyPjU3MjI6IFNlbGVjdGluZyBmb250IGNyYXNoZXMgZWNsaXBzZSB3aXRoIGEgamF2YWNvcmUgIAo8YnI+NTgxNTogU3R5bGVkVGV4dCAtIHNldEZvbnQgcmVmcmVzaCBwcm9ibGVtICAKPGJyPjU4NDY6IENvbWJvLnNlbGVjdCBkb2VzIG5vdCBpZ25vcmUgYW4gb3V0IG9mIHJhbmdlIGluZGV4Cjxicj41OTkwOiBQcmludGluZyBzaW5nbGUgcGFnZSBwcmludHMgZW50aXJlIGRvY3VtZW50ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTQgLSBUaHVyc2RheSBOb3ZlbWJlciAxNSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDU0MjogTWVudSBhY2NlbGVyYXRvcnMgQ1RSTCsgLyBhbmQgQ1RSTCArIFNISUZUICsgLyBkb24ndCB3b3JrICgxRllBRjhWKQo8YnI+NDc1NDogQXJyb3cga2V5cyBub3QgYWNjZXB0ZWQgYXMga2V5Ym9hcmQgYWNjZWxlcmF0b3JzICgxR0dNNFUzKSAgCjxicj41ODE1OiBTdHlsZWRUZXh0IC0gc2V0Rm9udCByZWZyZXNoIHByb2JsZW0gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAxMyAtIFR1ZXNkYXkgTm92ZW1iZXIgMTMsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ4NDY6IFN0eWxlZFRleHQgLSBiaWRpIC0gcGFydGlhbCBzdHlsaW5nIG9mIGxpZ2F0dXJlcyAoMUdMM0FXVCkgIAo8YnI+NDg1OTogU3R5bGVkVGV4dCAtIGJpZGkgLSBwcm92aWRlIHNvbHV0aW9uIGZvciBiaWRpIGNvbG9yaW5nIGhhY2sgKDFHTDJVTkMpCjxicj41NDkxOiBTdHlsZWRUZXh0IC0gZ2V0U3R5bGVSYW5nZUF0T2Zmc2V0IGFsbG93cyBvZmZzZXQgPT0gZ2V0Q2hhckNvdW50Cjxicj41NDk3OiBTdHlsZWRUZXh0IC0gRXh0ZW5kZWRNb2RpZnkgZXZlbnQgbm90IHNlbnQgb24gc2V0VGV4dAo8YnI+NTYwMjogU3R5bGVkVGV4dCAtIHBhZ2UgZG93biBjYXVzZXMgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGluIGludmlzaWJsZS9zbWFsbCB3aWRnZXQKPGJyPjU2MTU6IFN0eWxlZFRleHQgLSB3aW5kb3cgc3RhcnQgZG9lcyBub3QgYWx3YXlzIHdvcmsgIAo8YnI+NTYyMjogU3R5bGVkVGV4dCAtIHByaW50IGNhdXNlcyBOUEUgd2hlbiBpbnZva2VkIG9uIGVtcHR5IHdpZGdldCAgCjxicj41NjI2OiBTdHlsZWRUZXh0IC0gcHJpbnQgZG9lcyBub3QgY2hlY2sgZm9yIG51bGwgUHJpbnRlciBhcmd1bWVudCAgCjxicj41NjMzOiBTdHlsZWRUZXh0IC0gcmVwbGFjZVRleHRSYW5nZSBhbmQgc2V0VGV4dCBkbyBub3QgY2hlY2sgZm9yIG51bGwgYXJndW1lbnQKPGJyPjU2NjQ6IFN0eWxlZFRleHQgLSBTaW5nbGUgbGluZSBzaG91bGQgbm90IGFjY2VwdCB0YWIgIAo8YnI+NTY3MzogU3R5bGVkVGV4dCAtIFNJTkdMRSBsaW5lIG1vZGUgc3RpbGwgYWxsb3dzIHNvbWUgbXVsdGkgbGluZSBjdXJzb3IgbmF2aWdhdGlvbgo8YnI+NTcyMjogU2VsZWN0aW5nIGZvbnQgY3Jhc2hlcyBlY2xpcHNlIHdpdGggYSBqYXZhY29yZQo8YnI+NTcyNTogUGxlYXNlIHJlbmFtZSAiRWNsaXBzZSBMYXVuY2hlciIgIAo8YnI+NTgwMjogRUM6IENvbnRyb2xFeGFtcGxlIGRvZXMgbm90IHJ1biBvbiBTb2xhcmlzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTIgLSBNb25kYXkgTm92ZW1iZXIgNSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNTQ3MDogVXNlciBpcyBsb3N0IHdoZW4gdHJ5aW5nIHRvIG1vdmUgdmlld3MgYXJvdW5kICAKPGJyPjU0ODQ6IFRhYiBubyBsb25nZXIgdHJhdmVyc2VzIGJldHdlZW4gd2lkZ2V0cyEhISAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDExIC0gVGh1cnNkYXkgTm92ZW1iZXIgMSwgMjAwMSA8L2gyPgo8aDM+CjxhIE5BTUU9IkFQSSBDaGFuZ2VzIj48L2E+QVBJIENoYW5nZXM8L2gzPgo8Y29kZT5Gb250RGF0YS5zZXRMb2NhbGUoTG9jYWxlKTwvY29kZT4gaGFzIGJlZW4gY2hhbmdlZCB0byA8Y29kZT5Gb250RGF0YS5zZXRMb2NhbGUoU3RyaW5nKTwvY29kZT4uCjx1bD4KPGxpPgpKMlNFIGNvZGUgY2FuIHNpbXBseSBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGFuZCBpbnZva2UgPGNvZGU+dG9TdHJpbmcoKTwvY29kZT4gdG8gcGFzcyBpdCBvbnRvIHRoZSBuZXcgPGNvZGU+c2V0TG9jYWxlPC9jb2RlPi4KPGxpPgpDTERDIGNvZGUgd2lsbCBoYXZlIHRvIGZvcm0gYSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGZvcm1hdCBzcGVjaWZpZWQgaW4gdGhlIEoyU0UgamF2YWRvYyBvZiA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlLnRvU3RyaW5nKCk8L2NvZGU+Lgo8L3VsPgpFeGFtcGxlOgo8YmxvY2txdW90ZT48Y29kZT48cHJlPgpMb2NhbGVbXSBsb2NhbGVzID0gewoJTG9jYWxlLlVTLCBuZXcgTG9jYWxlKCJpdyIsICJJTCIpLCBuZXcgTG9jYWxlKCJhciIsICJTQSIpLCBuZXcgTG9jYWxlKCJydSIsICJSVSIpLAoJTG9jYWxlLkdFUk1BTiwgbmV3IExvY2FsZSgiamEiLCAiSlAiKSwKCW51bGwsCn07Ci8vIG9sZCBjb2RlOiBmZC5zZXRMb2NhbGUobG9jYWxlc1tpXSk7ClN0cmluZyBsb2NhbGUgPSAobG9jYWxlc1tpXSAhPSBudWxsID8gbG9jYWxlc1tpXS50b1N0cmluZygpIDogbnVsbCk7CmZkLnNldExvY2FsZShsb2NhbGUpOwo8L3ByZT48L2NvZGU+PC9ibG9ja3F1b3RlPjwvcD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KCjxibG9ja3F1b3RlPgo0NjY0OiBTdHlsZWRUZXh0IGRvZXMgbm90IGNvbXB1dGUgY29ycmVjdCB0ZXh0IHdpZHRoICgxR0VMSlhEKSAgCjxicj40ODMyOiBHZXJtYW46IEZvbnRzIGNhbm5vdCBoYW5kbGUgR2VybWFuIGNoYXJhY3RlcnMgKDFHS01ISFkpICAKPGJyPjQ5NjE6IFByZWZlcmVuY2VzIGRpYWxvZyBkaXNhcHBlYXJzIHdoZW4geW91IGNsaWNrIG9uIGNlcnRhaW4gcGFnZXMKPGJyPjUxODA6IE9wZW4gTW90aWYgZm9yIExpbnV4IHNoYXJlZCBsaWJyYXJpZXMgYXJlIGR1cGxpY2F0ZWQgaW4gRWNsaXBzZSAgCjxicj41MzA0OiBTdHlsZWRUZXh0IC0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIFN0eWxlZFRleHRCaWRpLnNlZ21lbnRlZFJhbmdlc0Zvcgo8L2Jsb2NrcXVvdGU+CgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTAgLSBUaHVyc2RheSBPY3RvYmVyIDI1LCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IkJlaGF2aW91ciBjaGFuZ2UiPjwvYT5CZWhhdmlvdXIgY2hhbmdlPC9oMz4KPHA+CjEpIFRoZSBEcmFnIFVuZGVyIGVmZmVjdCBvZiBzY3JvbGxpbmcgYW5kIGV4cGFuZGluZyBpdGVtcyBhcyB5b3UgZHJhZyBvdmVyIHRoZSA8Y29kZT5UcmVlPC9jb2RlPiBvciA8Y29kZT5UYWJsZTwvY29kZT4gaGFzIGJlZW4gYWRkZWQuICBUbyBlbmFibGUgdGhpcyBkcmFnIHVuZGVyIGVmZmVjdCwgaW4gdGhlIDxjb2RlPkRyYWdPdmVyPC9jb2RlPiBldmVudCBzZXQgdGhlIDxjb2RlPmV2ZW50LmZlZWRiYWNrPC9jb2RlPiB0byBoYXZlIGEgYml0d2lzZSBjb21iaW5hdGlvbiBvZiA8Y29kZT5ETkQuRkVFREJBQ0tfU0NST0xMLCBETkQuRkVFREJBQ0tfRVhQQU5EPC9jb2RlPiBhbmQgKDxjb2RlPkRORC5GRUVEQkFDS19TRUxFQ1QsIERORC5GRUVEQkFDS19JTlNFUlRfQkVGT1JFLCBETkQuRkVFREJBQ0tfSU5TRVJUX0FGVEVSPC9jb2RlPikgLSB3aGVyZSB0aGUgbGFzdCB0aHJlZSBpdGVtcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgo8YmxvY2txdW90ZT48Y29kZT48cHJlPgp0YXJnZXQuYWRkRHJvcExpc3RlbmVyIChuZXcgRHJvcFRhcmdldEFkYXB0ZXIoKSB7CglwdWJsaWMgdm9pZCBkcmFnT3ZlcihEcm9wVGFyZ2V0RXZlbnQgZXZlbnQpewoJCWV2ZW50LmZlZWRiYWNrID0gRE5ELkZFRURCQUNLX1NFTEVDVCB8IERORC5GRUVEQkFDS19FWFBBTkQgfCBETkQuRkVFREJBQ0tfU0NST0xMOwoJfQp9CjwvcHJlPjwvY29kZT48L2Jsb2NrcXVvdGU+PC9wPgo8cD4KMikgT24gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBpdCBpcyBwcmVmZXJyZWQgdG8gbW92ZSBmaWxlcyBpbiBhIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uIHJhdGhlciB0aGFuIGZvciB0aGUgZHJvcCB0YXJnZXQgdG8gbWFrZSBhIGNvcHkgb2YgdGhlIGZpbGUgYW5kIHRoZSBkcmFnIHNvdXJjZSB0byBkZWxldGUgdGhlIG9yaWdpbmFsIGZpbGUuICBUaGUgb3BlcmF0aW9uIG9mIG1vdmluZyB0aGUgZmlsZSBpcyBwcmVmb3JtZWQgYnkgdGhlIGRyb3AgdGFyZ2V0LiAgRm9yIHRoZXNlIGNhc2VzLCB0aGUgbmV3IGRyb3AgdHlwZSA8Y29kZT5ETkQuRFJPUF9UQVJHRVRfTU9WRTwvY29kZT4gaGFzIGJlZW4gYWRkZWQuICBUaGUgRWNsaXBzZSA8Y29kZT5Ecm9wVGFyZ2V0PC9jb2RlPiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYmVoYXZpb3VyIGJ1dCB0aGUgRWNsaXBzZSA8Y29kZT5EcmFnU291cmNlPC9jb2RlPiBjYW4gcmVjb2duaXplIHRoaXMgc2NlbmFyaW8uICBJZiBhbm90aGVyIGFwcGxpY2F0aW9uIGhhcyBjaG9zZW4gdG8gbW92ZSB0aGUgZmlsZSByYXRoZXIgdGhhbiBjb3B5L2RlbGV0ZSwgdGhlIDxjb2RlPkRyYWdGaW5pc2hlZDwvY29kZT4gZXZlbnQgb24gdGhlIDxjb2RlPkRyYWdTb3VyY2U8L2NvZGU+IHdpbGwgaGF2ZSBhbiA8Y29kZT5ldmVudC5kZXRhaWw8L2NvZGU+IHZhbHVlIG9mIDxjb2RlPkRORC5EUk9QX1RBUkdFVF9NT1ZFPC9jb2RlPi4KPGJsb2NrcXVvdGU+PGNvZGU+PHByZT4Kc291cmNlLmFkZERyYWdMaXN0ZW5lciAobmV3IERyYWdTb3VyY2VBZGFwdGVyICgpIHsKCXB1YmxpYyB2b2lkIGRyYWdGaW5pc2hlZChEcmFnU291cmNlRXZlbnQgZXZlbnQpIHsKCQlpZiAoZXZlbnQuZGV0YWlsID09IERORC5EUk9QX1RBUkdFVF9NT1ZFKSB7CgkJCS8vIGNsZWFuIHVwIHByZXNlbnRhdGlvbiBidXQgZG8gbm90IGRlbGV0ZSB1bmRlcmx5aW5nIGZpbGUKCQl9Cgl9Cn0KPC9wcmU+PC9jb2RlPjwvYmxvY2txdW90ZT48L3A+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+Cgo8YmxvY2txdW90ZT4KMTc2NzogRGlzcGxheSBBU0NJSSBmb3IgdmFsdWVzIGdyZWF0ZXIgdGhhbiAxMjcgZmFpbHMgKDFHTEU4STUpICAKPGJyPjQ3MjU6IEZvbnREYXRhIHNwZWMgc2hvdWxkIGRpc2FsbG93IG51bGwgbmFtZSAoMUdMMzRIMykgIAo8YnI+NDg0NDogVGFiIGFwcGVhcnMgbmFycm93ZXIgdGhhbiBzcGFjZSAoMUdMMldUWSkgIAo8YnI+NDg1MjogR2VybWFuOiBDYW5ub3Qgc3RhcnQgRWNsaXBzZSBpbiBMaW51eCA3LjIgKDFHS1lZOTkpICAKPGJyPjQ4NjU6IFRhYmxlVHJlZUVkaXRvci5nZXRJdGVtIHJldHVybnMgYW4gaXRlbSBhZnRlciBzZXR0aW5nIGl0IHRvIG51bGwgKDFHTEUwSVEpCjxicj40OTMyOiBTdHlsZWRUZXh0QmlkaSBoYXMgZXF1YWxzIGJ1dCBubyBoYXNoQ29kZSBtZXRob2QgIAo8YnI+NDk1NzogU3R5bGVkVGV4dCAtIGltcGxlbWVudCBTdHlsZWRUZXh0QmlkaS5pc0xpZ2F0ZWQgIAo8YnI+NTEzMjogU3R5bGVkVGV4dCAtIHJlbW92ZSBoYXJkY29kZWQgbWFyZ2luICAKPGJyPjUxNzg6IENoYW5nZSBCaWRpVXRpbCBjYWxscyB0byBoYW5kbGUgdHJ1ZSBVbmljb2RlL1dpbmRvd3MgQ0UgY2hhbmdlcwo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwOSAtIFRodXJzZGF5IE9jdG9iZXIgMTgsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KCjxibG9ja3F1b3RlPgo0NDQ0OiBFV1QgLSBpbmNvcnJlY3Qgc2VsZWN0aW9uIGZlZWRiYWNrIHdoZW4gdGhlIGl0ZW0ncyB0ZXh0IGlzIGNoYW5nZWQgKDFGRlAzVTIpCjxicj40NDQ2OiBEQ1IgLSBHcmlkQmFnTGF5b3V0IGNvbXBhdGlibGUgTGF5b3V0TWFuYWdlciAoMUZHQ1BPMikgIAo8YnI+NDc2MjogU3R5bGVkVGV4dCAtIGRlZmF1bHQgbGluZVN0eWxlciByZW1vdmUgbGluZSBiYWNrZ3JvdW5kIGNvbG9yIGhhY2sgKDFHSEJNVVYpCjxicj40ODE5OiBTdHlsZWRUZXh0IC0gYmlkaSAtIGN1cnNvciBuYXZpZ2F0aW9uICgxR0pMS1NOKSAgCjxicj40ODIwOiBTdHlsZWRUZXh0IHdpdGggc3R5bGUgU0lOR0xFIGRvZXMgbm90IGhhbmRsZSBDUi9MRiB3ZWxsICgxR0pNMlo1KQo8YnI+NDg1NTogU2V2ZXJlOiBDaGVjayBib3hlcyBhcmUgYmxhY2sgKDFHTDBYU0kpICAKPGJyPjQ5MDk6IEVDOiBDb21iby5zZXRUZXh0IGRvZXNuJ3Qgd29yayBvbiBMaW51eCAgCjxicj40OTEwOiBFQzogQ29tYm8uc2VsZWN0KCkgZmlyZXMgYSBzZWxlY3RlZCBldmVudCBvbiBMaW51eCBvbmx5ICAKPGJyPjUwNDU6IENvbnRyb2wubW92ZUFib3ZlKCkgdGhyb3dzIE5QRSBpZiBhcmd1bWVudCBpcyBudWxsICAKPC9ibG9ja3F1b3RlPgoKCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDA4IC0gVGh1cnNkYXkgT2N0b2JlciAxMSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHTERRWUI6IFNXVDpXSU4gLSBUZXh0IHdpZGdldCB3aXRoIERORCBlbmFibGVkLCBNb3VzZURvd24gYnV0IG5vIE1vdXNlVXAKPGJyPjFHTEFEQks6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gZ2V0T2Zmc2V0QXRMb2NhdGlvbiBzaG91bGQgdGhyb3cgZXhjZXB0aW9uCjxicj4xR0w0WlZFOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGdldE9mZnNldEF0TG9jYXRpb24oZ2V0TG9jYXRpb25BdE9mZnNldChOKSkgIT0gTgo8YnI+MUdLTzZOWTogU1dUOkFMTCAtIEJhY2tzcGFjaW5nIGluIFN0eWxlZFRleHQgZG9lcyBub3QgZmlyZSBzZWxlY3Rpb24gY2hhbmdlZAo8YnI+MUdLQjFPQzogSVRQSlVJOkFMTCAtIEVycm9yIGluIEphdmFEb2MgaG92ZXIgaGVscAo8YnI+MUdLOUFQSTogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBiaWRpIC0gbnVtYmVycyxtaXhlZCBMdG9SL1J0b0wgdGV4dCBhbmQgY2FyZXQgcG9zaXRpb25pbmcKPGJyPjFHSkxRMTY6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIGJhY2tzcGFjZSBhbmQgZGVsZXRlIGJlaGF2aW9yCjxicj4xR0lLN0Q0OiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIFNlbGVjdGlvbiBjbGVhcmVkIHdoZW4gZGVsZXRpb24gZGlzYWxsb3dlZCBieSB2ZXJpZnkgbGlzdGVuZXJzCjxicj4xR0RPTUJJOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gcmVkcmF3UmFuZ2UoKSBkb2Vzbid0IGNoZWNrV2lkZ2V0Cjxicj4xR0RLSzNSOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gc2V0Q2FyZXRPZmZzZXQgYW5kIGxpbmUgZGVsaW1pdGVycyBidWcKPGJyPjFGTVJRT1Q6IFNXVDpBTEwgLSBObyBudWxsIGFyZ3VtZW50IGNoZWNrcyBpbiBEaWFsb2cgY29uc3RydWN0b3JzCjwvYmxvY2txdW90ZT4KCgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwNyAtIFRodXJzZGF5IE9jdG9iZXIgNCwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHS1pINzQ6IElUUEpVSTpXSU4yMDAwIC0gRGlzYXBwZWFyaW5nIFN0b3AgaWNvbgo8YnI+MUdLWjhDVjogU1dUOldJTk5UIC0gc2V0U2VsZWN0aW9uIHRyaWdnZXJzIFNlbGVjdGlvbkNoYW5nZWQgZXZlbnQKPGJyPjFHS1U0QzU6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIHNjcm9sbGluZyB0byBzaG93IGN1cnNvciBzaG91bGQgdGFrZSBjdXJzb3IgZGlyZWN0aW9uIGludG8gYWNjb3VudAo8YnI+MUdLUFlNSzogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBjYXJldCBtb3ZlcyB3aGVuIHN3aXRjaGluZyBrZXlib2FyZCBmcm9tIEhlYnJldyB0byBBcmFiaWMKPGJyPjFHS09HUU86IFNXVDpBTEwgLSBKYXZhZG9jOiBzZXRTZWxlY3Rpb24gaW4gQnV0dG9uIGFuZCBUb29sSXRlbQo8YnI+MUdLTTJPNTogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHMgZXhjZXB0aW9uIGluIFN0eWxlZFRleHRCaWRpLmlzUmlnaHRUb0xlZnQKPGJyPjFHS00xOTM6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBiaWRpIGF1dG9zY3JvbGwgbGVmdCBkb2VzIG5vdCBhbHdheXMgc2Nyb2xsIGFsbCB0aGUgd2F5IHRvIHRoZSBsZWZ0Cjxicj4xR0tLQzBVOiBTV1Q6QUxMIC0gVHJhY2tlciBjYWxscyBPUy5EaXNwYXRjaE1lc3NhZ2UobXNnKSBvbiB3aW5kb3dzIGJ1dCBkb2VzIG5vdCBvbiBMaW51eC4KPGJyPjFHSVZBWFg6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gRWRpdG9ycyBzaG91bGQgc3VwcG9ydCBzaGlmdC1iYWNrc3BhY2UKPGJyPjFHRUxRMTQ6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBEZWZhdWx0Q29udGVudCAtIGhhbmRsZSB3ZWlyZCBsaW5lIGRlbGltaXRlciBjYXNlcwo8YnI+MUdFOExHMDogU1dUOkxpbnV4IC0gVG9vbGJhciBpcyBub3Qgc2hvd2luZyB0aGUgc2VwYXJhdG9ycy4KPC9ibG9ja3F1b3RlPgoKCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDA2IC0gVGh1cnNkYXkgU2VwdCAyNywgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHSFdBMTk6IFNXVDpXSU5OVCAtIFByb2JsZW0gd2l0aCBjYWxsYmFja3MgZnJvbSBDQ29tYm8KPGJyPjFHSEZEUFY6IFNXVDpXSU4yMDAwIC0gU2V0dGluZyBzZWxlY3Rpb24gaW4gVGFibGUgZG9lcyBub3QgdXBkYXRlIGZvY3VzIGl0ZW0KPGJyPjFHRjY0NFY6IElUUFVJOkxpbnV4IC0gVW56b29tIGlzIGNoYW5naW5nIHRoZSBhY3RpdmUgZWRpdG9yLgo8YnI+MUdLTTNYUzogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgYXV0b3Njcm9sbCBsZWZ0OiBzZWxlY3Rpb24gcmVzZXQgb24gbW91c2UgbW92ZQo8L2Jsb2NrcXVvdGU+CgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMDUgLSBGcmlkYXkgU2VwdCAyMSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHSzA5WjA6IFNXVDpMaW51eCAtIHNldEVuYWJsZWQoZmFsc2UpIGhhcyBubyBlZmZlY3Qgb24gYVRvb2xiYXIKPGJyPjFHSlpaUzY6IFNXVDpMaW51eCAtIEZpbGUgRGlhbG9nIHJldHVybnMgYSBkaXJlY3RvcnkKPGJyPjFHRjdTTUM6IElUUFVJOkxpbnV4IC0gV3JvbmcgYmcgZm9yIGNsb3NlIGJ1dHRvbiBvbiBlZGl0b3IgdGFiCjwvYmxvY2txdW90ZT4KCgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwNCAtIFRodXJzZGF5IFNlcHQgMTMsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQVBJIEJlaGF2aW91ciBjaGFuZ2UiPjwvYT5BUEkgQmVoYXZpb3VyIGNoYW5nZTwvaDM+ClRoZSBiZWhhdmlvdXIgb2YgZGlzcG9zZSBmb3IgR0NzIGhhcyBiZWVuIG1vZGlmaWVkIHN1Y2ggdGhhdCBhdHRlbXB0aW5nIHRvIGRpc3Bvc2Ugb2YKYSBHQyBvbiBhIGNvbnRyb2wgPGVtPmFmdGVyPC9lbT4gdGhlIGNvbnRyb2wgaGFzIGJlZW4gZGlzcG9zZWQgd2lsbCBnZW5lcmF0ZSBhbgpTV1RFeGNlcHRpb24uICBUaGlzIGZpeGVzIGFuIE9TIHJlc291cmNlIGxlYWsgYW5kIHBvdGVudGlhbCBHUEYgc2l0dWF0aW9uLgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHSlVBS0w6IFNXVDpOZXV0cmlubyAtIENvbnRyb2wuaW50ZXJuYWxfbmV3X0dDKCkgbmVlZHMgIWlzVmFsaWRXaWRnZXQoKSBjaGVjawo8YnI+MUdKTjUyTjogU1dUOkxpbnV4IC0gVGV4dCBwcmludHMgc3lzdGVtIGVycm9yIG1lc3NhZ2UgZm9yIGhvcml6b250YWwgc2Nyb2xsYmFyCjxicj4xR0pCT0FWOiBTV1Q6QUxMIC0gU2Nyb2xsZWRDb21wb3NpdGUgYnVncwo8YnI+MUdJWEVMSTogU1dUOkFMTCAtIE5lZWQgQ2FyZXQgdG8gYWxsb3cgYml0bWFwcyBzbyBiaWRpIGNhcmV0IGNhbiBiZSBjcmVhdGVkCjxicj4xR0k1TzFUOiBTV1Q6V0lOTlQgLSBDb21wb3NpdGUuc2V0Rm9jdXMgdGFrZXMgZm9jdXMgd2hlbiBpdCBzaG91bGQgbm90Cjxicj4xR0hPTkQ3OiBTV1Q6V0lOMjAwMCAtIFNlbGVjdGlvbiBwcm9ibGVtIHdpdGggc2luZ2xlLXNlbGVjdGlvbiB0cmVlcwo8YnI+MUdIRzk5MDogU1dUOkFMTCAtIFByb2JhYmxlIGJ1ZyBpbiBTbGlkZXIgcGFnZSBpbmNyZW1lbnQgc2V0dGluZwo8YnI+MUdFTko2MDogU1dUOkFMTCAtIFNjcm9sbGVkQ29tcG9zaXRlIHNob3VsZCBpbmNsdWRlIGV4YW1wbGUgaW4gaXRzIGNsYXNzIGNvbW1lbnQKPGJyPjFHRUE3Szc6IElUUFVJOkxpbnV4IC0gRGVmYXVsdCBidXR0b24gbm90IHdvcmtpbmcKPC9ibG9ja3F1b3RlPgoKCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDAzIC0gRnJpZGF5IFNlcHQgMDcsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cgo8YmxvY2txdW90ZT4KRm9udERhdGEuc2V0TG9jYWxlKGphdmEudXRpbC5Mb2NhbGUpIGFkZGVkCjxicj5DYXJldC5nZXRJbWFnZSgpIGFkZGVkCjxicj5DYXJldC5zZXRJbWFnZShJbWFnZSkgYWRkZWQKPGJyPkdDLmZpbGxHcmFkaWVudFJlY3RhbmdsZShpbnQsIGludCwgaW50LCBpbnQsIGJvb2xlYW4pIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KCjxibG9ja3F1b3RlPgoxR0pNN0tNOiBTV1Q6TGludXggLSBUYWJsZSBhbmQgVHJlZSByZXR1cm4gYSBkaWZmZXJlbnQgc2l6ZSBmb3IgZXZlcnkgc2Vjb25kIGNhbGwgdG8gY29tcHV0ZVNpemUKPGJyPjFHSkxLSEU6IFNXVDpTUEFSQyAtIEdQIG9uICJJbnN0YWxsZWQgSlJFcyIgcHJlZmVyZW5jZSBwYWdlCjxicj4xR0pMSzYzOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBrZXlib2FyZCBzd2l0Y2hpbmcKPGJyPjFHSkxFMzY6IFNXVDpXSU5OVCAtIEFscGhhIGRhdGEgcmVkcmF3aW5nIGltcHJvcGVybHkgYWZ0ZXIgb2NjbHVzaW9uCjxicj4xR0pBMkw3OiBTV1Q6V0lOIC0gRGlmZmVyZW50IGJlaGF2aW9yIGZvciBHQy5kcmF3U3RyaW5nKCkgYXJncyBvbiBXaW4gdnMuIFBob3Rvbgo8YnI+MUdJWjBQNjogU1dUOldJTk5UIC0gR0MuZHJhd0ltYWdlKCkgcHJvYmxlbSB3aXRoIHRyYW5zcGFyZW50IHBpeGVscwo8YnI+MUdJWEVMSTogU1dUOkFMTCAtIE5lZWQgQ2FyZXQgdG8gYWxsb3cgYml0bWFwcyBzbyBiaWRpIGNhcmV0IGNhbiBiZSBjcmVhdGVkCjxicj4xR0k3RlFGOiBTV1Q6QUxMIC0gQ2FuJ3Qgc2V0IGZvY3VzIHRvIFRhc2tzIFZpZXcgYnkgS2V5Ym9hcmQKPGJyPjFHSTdFQkw6IFNXVDpMaW51eCAtIGFwaSB0eXBvOiBUb29sSXRlbT4+Z2V0RGlzYWJsZWRtYWdlKCkKPGJyPjFHSTNQODY6IFNXVDpBTEwgLSBTZW1hbnRpYyBkaWZmZXJlbmNlcyBiZXR3ZWVuIGVtdWxhdGVkIFRhYmxlIGFuZCBUcmVlIGNvZGViYXNlIG9uIE1vdGlmIGFuZCBQaG90b24KPGJyPjFHSTFXRUE6IFNXVDpOZXV0cmlubyAtIFRleHQgc2VsZWN0aW9uIGNvZGUgbm90IHdvcmtpbmcgY29ycmVjdGx5Cjxicj4xR0hXRUQyOiBTV1Q6V0lOTlQgLSBHQy5zdHJpbmdFeHRlbnQoKSBub3QgY29ycmVjdCBmb3IgV2luZG93cyBBcmlhbCBmb250Cjxicj4xR0hXQjdHOiBTV1Q6TGludXggLSBMaW51eCBmb250IGRpYWxvZyBkb2Vzbid0IG9wZW4gd2l0aCBnaXZlbiB2YWx1ZXMuCjxicj4xR0hWUkZZOiBTV1Q6TmV1dHJpbm8gLSBUZXh0I0NsZWFyU2VsZWN0aW9uIGNoYW5nZXMgdGhlIENhcmV0UG9zaXRpb24gaW4gYSBTSU5HTEUtbGluZSB3aWRnZXQKPGJyPjFHSFZMVjY6IFNXVDpOZXV0cmlubyAtIFRleHQjU2V0VG9wSW5kZXggYW5kIGdldFRvcEluZGV4IGluY29uc2lzdGVudAo8YnI+MUdIT0o2VDogU1dUOk5ldXRyaW5vIC0gVGV4dCNzZXRTZWxlY3Rpb24gaW5jb25zaXN0ZW50IGJldHdlZW4gU0lOR0xFIGFuZCBNVUxUSQo8YnI+MUdIQkxSQTogU1dUOk5ldXRyaW5vIC0gRGlzcGxheS5nZXRCb3VuZHMoKSByZXR1cm5zIGluY29ycmVjdCBpbmZvCjxicj4xR0g0OFVROiBTV1Q6TmV1dHJpbm8gLSBFbnRlciBrZXkgZG9lcyBub3QgaW5zZXJ0IG5ldyBsaW5lIHdpdGggVGV4dC5NVUxUSSB3aWRnZXQKPGJyPjFHR1QwVE06IFNXVDpOZXV0cmlubyAtIEdDI2RyYXdBcmMgaW5jb25zaXN0ZW50IGJldHdlZW4gTlQgYW5kIE5UTwo8YnI+MUdHMURCVDogU1dUOlNQQVJDIC0gU29sYXJpcyBsb3NlcyBpbnB1dCBjaGFyYWN0ZXJzCjxicj4xR0cwN0hXOiBTV1Q6TGludXggLSBUcmVlLmdldEl0ZW0oKSBtb2RpZmllcyBpdHMgYXJndW1lbnQgb24gTW90aWYKPGJyPjFHRzAwNjk6IFNXVDpMaW51eCAtIFdlaXJkIGxheW91dCBpc3N1ZXMgc2VlbiBpbiBDb250cm9sIEV4YW1wbGUKPGJyPjFHRlpaTEs6IFNXVDpMaW51eCAtIFRvb2xJdGVtcyBub3QgZGlzYWJsZWQgd2hlbiBjb250YWluaW5nIFRvb2xCYXIgaXMgZGlzYWJsZWQKPGJyPjFHRlpVM1g6IFNXVDpBTEwgLSBJbWFnZUxvYWRlci5sb2FkKFN0cmluZykgbm90IGNsb3NpbmcgZmlsZSBpbnB1dCBzdHJlYW0KPGJyPjFHRlpQRFA6IFNXVDpMaW51eCAtIENvbWJvIGJveCB3aXRoIFNXVC5TSU1QTEUgc3R5bGUgZG9lcyBub3QgcmVzcGVjdCBEaXNhYmxlZCBmbGFnICh2aXN1YWxseSkKPGJyPjFHRlc4NUg6IFNXVDpBTEwgLSBQcmludGVyLmdldFByaW50ZXJEYXRhKCkgaGFzIHN0YWxlIGNvbW1lbnQKPGJyPjFHRlc2TVE6IFNXVDpBTEwgLSBEQ1I6IFByb2dyYW0gY2xhc3MgbmVlZHMgLmVxdWFscygpIGFuZCAuaGFzaENvZGUoKQo8YnI+MUdGVzRZTjogU1dUOkFMTCAtIEhlbHAgS2V2aW5IIGFkZCBwcmludGluZyB0byBFY2xpcHNlCjxicj4xR0ZRS0RUOiBTV1Q6QUxMIC0gSW1hZ2Uuc2V0QmFja2dyb3VuZCgpIC8gZ2V0QmFja2dyb3VuZCgpIGFzeW1tZXRyeQo8YnI+MUdGT05WVzogU1dUOkxpbnV4IC0gRW1wdHkgQ29tYm8gc2hvdWxkIG5vdCBmaXJlIFNlbGVjdGlvbiBldmVudAo8YnI+MUdGTDBIUDogU1dUOkxpbnV4IC0gUmVtYWluaW5nIGl0ZW1zIGluIFNXVCBjb21tZW50cyB0byBmaXgKPGJyPjFHRVQ5MEQ6IFNXVDpMaW51eCAtIFNXVEV4Y2VwdGlvbnMgYnJpbmcgZG93biBFY2xpcHNlCjxicj4xR0VTUUJLOiBJVFBKVUk6V0lOTlQgLSBIb3cgdG8gZ2V0IGFjY2VzcyB0byBwb3AtdXAgbWVudXMgb2YgdGhlIEphdmEgZWRpdG9yID8KPGJyPjFHRUxYNEE6IElUUFVJOkFMTCAtIEhvdmVyIGhlbHAgaXMgbm90IHZpc2libGUgaWYgcGFuZSBpcyBkcmFnZ2VkIG91dCBvZiB3b3JrYmVuY2gKPGJyPjFHRUhXQUY6IElUUFVJOldJTjIwMDAgLSBDYW4ndCBlbnRlciB0ZXh0IGluIGEgU3dpbmcgVGV4dEZpZWxkIG9yIFRleHRBcmVhCjxicj4xR0U1RUNKOiBJVFBVSTpXSU4yMDAwIC0gSG92ZXIgaGVscCBmb3IgdGl0bGUgYmFyIGJ1dHRvbnMgYXBwZWFycyBiZWhpbmQgZGV0YWNoZWQgdmlldwo8YnI+MUdEWDdSODogSVRQVUk6QUxMIC0gU1dUIHNldFRleHQoKSBkb2VzIE5PVCBoYXZlIGFueSB3YXkgdG8gYXZvaWQgbWFraW5nIG1uZW1vbmljcy4KPGJyPjFHRDVVSEE6IFNXVDpXSU4yMDAwIC0gRG91YmxlLWNsaWNraW5nIG9uIHRvb2xiYXIgaXRlbSBnaXZlcyBkb3VibGUtY2xpY2sgZXZlbnQgb24gdG9vbGJhcgo8YnI+MUdCWElFTzogU1dUOkFMTCAtIERDUjogSW5jbHVkZSBjdXJzb3IgcG9zIGluIFRyYWNrZXIgbW92ZSBldmVudAo8YnI+MUc0SU1RMzogU1dUOldJTk5UIC0gVGFibGUgaW1hZ2VzIGluY29ycmVjdCBhZnRlciByYXBpZCByZW1vdmFsIGFuZCBjcmVhdGlvbgo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwMiAtIFdlZG5lc2RheSBKdWx5IDE4LCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+Cgo8YmxvY2txdW90ZT4KMUdHWjEzVDogU1dUOk5ldXRyaW5vIC0gaW52YWxpZCBtb3VzZSBzdGF0ZSBvY2N1cmluZyBpbiBQaG90b24KPGJyPjFHR1JDQ1M6IFNXVDpOZXV0cmlubyAtIExhYmVsIGRvZXMgbm90IHdyYXAgaW4gU1dUMDEyNQo8YnI+MUdHQU9OMjogU1dUOkFMTCAtIFNjYWxpbmcgaW1hZ2Ugd2l0aCBhbHBoYXMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkKPGJyPjFHRlpRVlE6IFNXVDpMaW51eCAtIFZlcnRpY2FsIFByb2dyZXNzQmFyIGdyb3dzIGluY29ycmVjdGx5Cjxicj4xR0ZRQTE4OiBTV1Q6TGludXggLSBDaGVlc2Ugd2l0aCBHQyBkcmF3Um91bmRlZFJlY3RhbmdsZSgpIG9uIE1vdGlmCjxicj4xR0ZQSzZHOiBTV1Q6TGludXggLSBNb3RpZiBmaWxsUG9seWdvbigpIHNwZWNpZmllcyBpbXByb3BlciBoaW50CjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDAxIC0gVGh1cnNkYXkgSnVseSAxMiwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHR0VUNzY6IFNXVDpOZXV0cmlubyAtIENhbnZhcyBkb2VzIG5vdCByZXNwb25kIHRvIHNldEZvY3VzKCkKPGJyPjFHR0FTNVA6IFNXVDpOZXV0cmlubyAtIFBob3RvbiBvbiBRTlggNi4xLnggbmVlZHMgU1dUIG5hdGl2ZSBjaGFuZ2VzCjxicj4xR0c5NlJPOiBTV1Q6TmV1dHJpbm8gLSBkcmF3T3ZhbCBhbmQgZmlsbE92YWwgbm90IGNvbXBhdGlibGUKPGJyPjFHRzhaTFY6IFNXVDpXSU5OVCAtIGRyYXdPdmFsIGJlaGF2ZXMgZGlmZmVyZW50bHkgb24gV2luZG93cyB2cy4gb3RoZXIgcGxhdGZvcm1zCjxicj4xR0ZLWUQ5OiBTV1Q6TGludXggLSAtSEFORy0gKFhzZXJ2ZXIpIFdoZW4gcGVyZm9taW5nIGRpc3BsYXkud2FrZSgpIGluIGEgRE5EIGRyYWdTdGFydCgpCjxicj4xR0ZLSzM3OiBTV1Q6TGludXggLSBGaWxlVmlld2VyIGV4YW1wbGVzIGlzc3Vlcwo8YnI+MUdGQkhYNjogU1dUOkFMTCAtIENUYWJJdGVtIHRvb2wgdGlwIGZsYXNoaW5nCjxicj4xR0Y5Wk1UOiBTV1Q6U1BBUkMgLSA4LWJpdCBJY29ucyBhcmUgbG9zaW5nIGNvbG9ycwo8YnI+MUdGOVpKRzogU1dUOlNQQVJDIC0gSWNvbnMgYXJlIGJlaW5nIG1hc2tlZCBpbmNvcnJlY3RseSBvbiBTb2xhcmlzCjxicj4xR0Y5WUhEOiBJVFBVSTpXSU4yMDAwIC0gU1dURXhjZXB0aW9uOiBoZWxwIHZpZXcKPGJyPjFHRjlZMzI6IFNXVDpTUEFSQyAtIDI0LWJpdCBNU0IgSWNvbnMgYXJlIHdyb25nIGNvbG9yIChncmVlbmlzaCkKPGJyPjFHRjBEMDU6IFNXVDpMaW51eCAtIEdQRnMgd2hlbiBydW5uaW5nIEpVbml0IFRlc3RSdW5uZXIgaW4gSjkgQVdUCjxicj4xR0VVWlpDOiBTV1Q6QUxMIC0gIk5hbWUiIG9mIHBsdWdpbiBpbmNvbnNpc3RhbnQgd2l0aCBvdGhlciBwbHVnaW5zCjxicj4xR0VURFA1OiBJVFBVSTpMaW51eCAtIE5QRSB3aGlsZSBjbG9zaW5nIGVkaXRvciBvbiBsaW51eAo8YnI+MUdEVlJUNTogU1dUOk5ldXRyaW5vIC0gQWxwaGEgY2hhbm5lbCBtZW1vcnkgbGVhawo8YnI+MUdEUlhaUjogSVRQSlVJOkxpbnV4IC0gU1dUOiBDb250ZXh0LU1lbnVzIGlzc3VlIHVuZGVyIExpbnV4IAo8YnI+MUdEME9TSzogU1dUOkFMTCAtIEFQSSAtIHBhY2thZ2UgamF2YWRvYyBmb3IgU1dUIHBhY2thZ2VzIG1pc3NpbmcKPGJyPjFHQ0hTNzU6IFNXVDpXSU5OVCAtIHdvcmtiZW5jaCBleGl0cyBkdXJpbmcgZXhwYW5kIGNvbGxhcHNlCjxicj4xR0NGVVMwOiBTV1Q6QUxMIC0gQ1RhYkZvbGRlciAiZmxvYXRpbmciIFggc3RpY2tzIHNvbWV0aW1lcwo8YnI+MUdBUjk1TzogU1dUOkFMTCAtIFJlbW92ZSBTbWFsbHRhbGsgY29tbWVudHMgZnJvbSBTV1QgY29kZQo8YnI+MUdBUVJORDogU1dUOkFMTCAtIERPQzogV3JpdGUgZ29vZCBKYXZhZG9jIGNvbW1lbnRzIGZvciBhbGwgb2YgU1dUCjxicj4xRzk3STI4OiBTV1Q6TGludXggLSBUb29sIGJhciBidXR0b25zIGRvIG5vdCBhbHdheXMgd29yawo8YnI+MUc4NEFaQjogSVRQRFVJOkFMTCAtIFJlbmFtZSB0cnVuY2F0ZXMgbmFtZQo8YnI+MUc4NDVFWjogU1dUOldJTjIwMDAgLSBTcGVjIGZvciBMYXlvdXQuY29tcHV0ZVNpemUoKSBpcyB0cnVuY2F0ZWQKPGJyPjFHN1lYTEI6IFNXVDpXSU4gLSBTdHlsZWRUZXh0IC0gTkxTIFN1cHBvcnQKPGJyPjFHN05TSFI6IFNXVDpBTEwgLSBXaWRnZXQuYWRkTGlzdGVuZXIoaW50LCBMaXN0ZW5lcikgdnMuIGFkZGluZyB0eXBlZCBsaXN0ZW5lcnMKPGJyPjFHNFhESk86IFNXVDpMaW51eCAtIFRyZWUgbmVlZHMgdG8gZGlzcGxheSBhbiBpbnNlcnQgbWFya2VyCjxicj4xRzBZOE5aOiBTV1Q6QUxMIC0gQ29tYm8gYm94IGRvZXNuJ3Qgc2VuZCBrZXkgYW5kIG1vdXNlIGV2ZW50cyAKPGJyPjFGWEFWTEY6IFNXVDpXSU5OVCAtIERpc2FibGVkIHRvb2xiYXIgaWNvbnMgZG9uJ3QgYWRhcHQgdG8gYXBwZWFyYW5jZSBjaGFuZ2VzCjxicj4xRlYxUzE4OiBTV1Q6QUxMIC0gTmVlZCBtb3JlIFdNXyogbWVzc2FnZXMgcGFzc2VkIHRvIEFjdGl2ZVggQ29udHJvbAo8YnI+MUZUV1g1NTogU1dUOkFMTCAtIEluY29uc2lzdGFudCBjb21tZW50aW5nIG9mIHdoaWNoIFNXVCBvYmplY3RzIG5lZWQgdG8gYmUgZGlzcG9zZWQuCjwvYmxvY2txdW90ZT4KPC9ib2R5Pgo8L2h0bWw+Cg==